{"version":3,"file":"static/js/main.ab2088be.js","mappings":"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,OAAOiH,CACT,CAQA,SAASO,EAAMC,GACb,MAAMC,EAAYjD,EAAO,MAEzB,IAAK,MAAOkD,EAAU/H,KAAUqE,EAAQwD,GACdvB,EAAqBuB,EAAQE,KAG/CrK,MAAMC,QAAQqC,GAChB8H,EAAUC,GAAYJ,EAAW3H,GAEjCA,GACiB,kBAAVA,GACPA,EAAMgI,cAAgBtD,OAEtBoD,EAAUC,GAAYH,EAAM5H,GAE5B8H,EAAUC,GAAY/H,GAK5B,OAAO8H,CACT,CASA,SAASG,EAAaJ,EAAQK,GAC5B,KAAkB,OAAXL,GAAiB,CACtB,MAAMM,EAAO1D,EAAyBoD,EAAQK,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAO7C,EAAQ4C,EAAKC,KAGtB,GAA0B,oBAAfD,EAAKnI,MACd,OAAOuF,EAAQ4C,EAAKnI,MAExB,CAEA6H,EAASrD,EAAeqD,EAC1B,CAEA,SAASQ,IACP,OAAO,IACT,CAEA,OAAOA,CACT,CC1LO,MAAMC,EAAO3D,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIW4D,EAAM5D,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW6D,EAAa7D,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW8D,EAAgB9D,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW+D,EAAS/D,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWgE,EAAmBhE,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWiE,EAAOjE,EAAO,CAAC,UCrRfkE,EAAOlE,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGWmE,EAAMnE,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWoE,EAASpE,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aA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CACX,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGErjB,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEyuG,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DtoG,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE0N,EAA0B,CAC5B,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGE6oE,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEmhB,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/Dt6E,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE+kE,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,I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0X,GAAS,SACf/V,EAAW3B,EACC,GAATmW,EAAGnW,IAAWA,GAAK0X,KACtB1X,EAAA,IAEAyX,EAAWzX,EAAI2B,EAAA,GACf8V,GApCI,GAoCa,CACnB05B,EAAM15B,GAAY,MACb,IAAIqB,EAAW,EAAGA,GAAYq4B,IAAOr4B,EACxC0tF,EAAU9mG,GACZ+X,GAAsB,GAExB/V,EAAM,MAAQyU,EAAGnW,GACjBwmG,EAAUvzF,GAAMwE,GAAY,GAAKD,EAAS9V,KAC1C8kG,EAAUphG,EAAQ1D,IAClB1B,GAAA,QA5CQ,IA8CN0X,GACF8uF,EAAUouB,GAEL/kG,CAAA,UA8HA4yE,EAAWnhG,GAClBA,EAAUuY,KAAKoS,IAAIpS,KAAKC,IAAIxY,EAAS,GAAI,KAErCI,GAAkBJ,IAAA,SA1qBCA,GAAA,QACnB6V,EAAM,CACR,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGO0Y,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBtZ,EAAIq+G,GAAQz9G,EAAI0Y,GAAKvuB,EAAK,IAAM,KACpCiV,EAAIsD,KAAKoS,IAAIpS,KAAKC,IAAIvD,EAAG,GAAI,KAC7B7W,EAAOwmB,EAAO2J,IAAMtZ,CAAA,SAElBtD,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GA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A,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEJ93F,EAAE,aAAc,iBAChB5oG,EAAKklM,WAAa,kBACT,YAETllM,EAAKmlM,WAAa,SAASnlM,GAAA,OAClBA,CAAA,EAETA,EAAKolM,WAAa,SAASplM,EAAG6V,EAAG0Y,GAAA,OACxB1Y,EAAE0Y,EAAI,IAEfvuB,EAAKqlM,WAA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mB,IAAIzqM,OAAS,OAClC8lM,GACFG,GACAC,GACAG,GACAG,GACAJ,GA+3BA0B,GAIAC,GACAI,GACAH,GACAC,GACAC,GACA1hF,GACA0S,GACAkvE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAzD,GACAkB,GACAnB,GACAiC,GAz5BAM,GAAKvjM,EAAE,KACPwjM,GAAKxjM,EAAE,MACPyjM,GAAKzjM,EAAE,KACP0jM,GAAK1jM,EAAE,KACPsjM,GAAK,EACLsB,GAAKpB,GACL1V,GAAK2V,GACLkB,GAAIjB,GACJmB,GAAItB,GACJ1B,GAAK,EACLX,GAAK,EACLc,GAAK,EACLb,GAAK,EACLJ,GAAK,EACLK,GAAK,EACLgB,GAAK,EACL7B,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACLqC,GAAK,CAAC,EAAG,EAAG,GACZD,GAAK,CAAC,EAAG,EAAG,IACZF,GAAK,CAAC,IAAK,IAAK,IAAK,IAAK,IAC1BI,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAClBH,GAAK,CAAC,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IACpEvB,GAAK,CACH,GACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,KAEFqB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF36F,GAAK,EACLhB,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEFc,GAAK,CACH,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,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AK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,QAIzDd,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,E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CA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,MACA,IACA,MACA,MACA,IACA,MACA,MACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,KACA,IACA,IACA,IACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IA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gBACAC,sBACA94L,QACAq5L,sBACAE,YACAr5G,QACAk5G,kBACAF,iBACAC,2BACAvlF,OACAvkC,WACA4pH,mBASS,EA0BUU,CAAwBzoI,GAC/C,MAAO,IACAmnI,KACAC,EACN,EE1HCsB,GAAuBC,EAAAA,cAA6B,MCPpDC,GAA0B,sEC6B1BC,GAAyB,CAJ3B,WACA,QACA,eAzBA,YACA,QACA,cACA,aACA,cACA,OACA,WACA,eACA,qBACA,UACA,UAoBA,oBACA,WACA,oBClCEC,GAAmB,CACrB,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QCxMEC,GAA0B,CAC5BC,UAAW,CACP19N,MAAO,YACP86B,YAAa,uBACb72C,KAAM,OACN05O,aAAc,OACdxqK,YAAY,GAEhByqK,kBAAmB,CACf59N,MAAO,oBACP86B,YAAa,+BACb72C,KAAM,OACN05O,aAAc,gBACdxqK,YAAY,GAEhB0qK,iBAAkB,CACd79N,MAAO,mBACP86B,YAAa,+BACb72C,KAAM,WACN05O,aAAc,eACdxqK,YAAY,GAEhBgrB,MAAO,CACHn+E,MAAO,QACP86B,YAAa,mBACb72C,KAAM,QACN05O,aAAc,WACdxqK,YAAY,GAEhB2qK,YAAa,CACT99N,MAAO,cACP86B,YAAa,yBACb72C,KAAM,OACN05O,aAAc,cACdxqK,YAAY,GAEhB4qK,WAAY,CACR/9N,MAAO,aACP86B,YAAa,wBACb72C,KAAM,OACN05O,aAAc,aACdxqK,YAAY,GAEhB6qK,YAAa,CACTh+N,MAAO,cACP86B,YAAa,yBACb72C,KAAM,OACN05O,aAAc,kBACdxqK,YAAY,GAEhBpvE,KAAM,CACFic,MAAO,OACP86B,YAAa,kBACb72C,KAAM,OACN05O,aAAc,OACdxqK,YAAY,GAEhB8qK,SAAU,CACNj+N,MAAO,WACP86B,YAAa,sBACb72C,KAAM,OACN05O,aAAc,MACdxqK,YAAY,GAEhBkrB,SAAU,CACNr+E,MAAO,WACP86B,YAAa,sBACb72C,KAAM,WACN05O,aAAc,eACdxqK,YAAY,GAEhB+qK,aAAc,CACVl+N,MAAO,eACP86B,YAAa,0BACb72C,KAAM,MACN05O,aAAc,MACdQ,SAAU,KACVC,aAAcZ,GACdrqK,YAAY,GAEhBkrK,mBAAoB,CAChBr+N,MAAO,qBACP86B,YAAa,gCACb72C,KAAM,OACNkvE,YAAY,GAEhBmrK,QAAS,CACLt+N,MAAO,UACP86B,YAAa,mBACb72C,KAAM,MACN05O,aAAc,MACdxqK,YAAY,GAEhBorK,QAAS,CACLv+N,MAAO,UACP86B,YAAa,mBACb72C,KAAM,MACN05O,aAAc,MACdxqK,YAAY,GAEhB0/C,SAAU,CACN7yG,MAAO,WACP86B,YAAa,sBACb72C,KAAM,OACN05O,aAAc,WACdxqK,YAAY,IASdqrK,GAA6B,CAC/B,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,KAAM,IAAK,IAAK,IAAK,IAAK,IAC1B,IAAK,IAAK,IAAK,IAAK,IAAK,IACzB,IAAK,IAAK,KCrGRC,GAA2Bx4G,GACtBs3G,GAAuBz1J,SAASm+C,GAKrCy4G,GAAa5zG,IACf,OAAKA,GAJQiuB,EAMDjuB,EALLnnI,MAAMC,QAAQm1J,GAMVjuB,EAGA,CAACA,IALD,KALEiuB,KAWb,ECpCE72G,GAAS,IAAI0uF,GAAc,eAI1B,MACH3iI,WAAAA,GAII/D,KAAKq+C,SAAW,KAIhBr+C,KAAKy0O,MAAQ,KAIbz0O,KAAK00O,MAAQ,CAAC,CACtB,CAIIC,kBAAAA,IAES30O,KAAKy0O,OACY,qBAAXnuO,QACPA,QACAA,OAAOwxC,YACP93C,KAAKy0O,MAAQnuO,OAAOwxC,UAAUsvE,UAElCpvE,GAAO+G,MAAM/+C,KAAKy0O,MAC1B,CAMIprC,WAAAA,CAAYl/E,GACRnqH,KAAKy0O,MAAQtqH,CACrB,CAOIhmH,GAAAA,CAAI5E,GAAyB,IAApBq1O,EAAM9xO,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,QAAGQ,EAEd,GADAtD,KAAK20O,sBACA30O,KAAKy0O,MACN,MAAyB,qBAAXG,EAAyBA,EAASr1O,EAEpD,MAAM4qH,EAAOnqH,KAAKy0O,MAClB,IAAI5lF,EAAM7uJ,KAAK60O,cAAct1O,EAAK4qH,GAClC,OAAI0kC,IAGA1kC,EAAKhoH,QAAQ,KAAO,IACpB0sJ,EAAM7uJ,KAAK60O,cAAct1O,EAAK4qH,EAAKxwH,MAAM,KAAK,KAE9Ck1J,IAGqB,qBAAX+lF,EAAyBA,EAASr1O,GACxD,CAQIs1O,aAAAA,CAAct1O,EAAK6nH,GAAyB,IAAfwtH,EAAM9xO,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,GAAG,KAClC,IAAKskH,EACD,OAAOwtH,EAEX,MAAME,EAAW90O,KAAK00O,MAAMttH,GAC5B,OAAK0tH,EAGEA,EAASv1O,GAFLq1O,CAGnB,CAOIG,0BAAAA,CAA2B3tH,EAAU4tH,GACjC,IAAIF,EAAW90O,KAAK00O,MAAMttH,GACrB0tH,IACDA,EAAW90O,KAAK00O,MAAMttH,GAAY,CAAC,GAEvCpnH,KAAK00O,MAAMttH,GAAY,IAAK0tH,KAAaE,EACjD,CAOIC,eAAAA,CAAgBD,GACZv0O,OAAO0+C,KAAK61L,GAAcxzO,SAAQjC,IAC9BS,KAAK+0O,2BAA2Bx1O,EAAKy1O,EAAaz1O,GAAK,GAEnE,GCxGU,IAAC21O,IACX,SAAWA,GACPA,EAA6B,cAAI,eACpC,CAFD,CAEGA,KAAkBA,GAAgB,CAAC,IACtC,MAKax5F,GAASN,GALD,CACjB,CAAC85F,GAAcC,eAAgB,CAC3B30K,QAAS,6BCJXxoB,GAAS,IAAI0uF,GAAc,QACjC,IAAIU,GAAU,CAAEhgB,SAAU,MACtBguH,GAAQ,KAIL,MAAMC,GAOT,gBAAOnuG,CAAUC,GAEb,OADAnvF,GAAO+G,MAAM,kBACRooF,GAGLC,GAAU3mI,OAAOgU,OAAO,CAAC,EAAG2yH,GAASD,EAAOkuG,MAAQluG,GACpDkuG,GAAKhS,iBACEj8F,IAJIA,EAKnB,CACI,oBAAOkuG,GACH,MAAO,MACf,CAMI,qBAAOjS,GACHrrL,GAAO+G,MAAM,wBACTq2L,KAGJA,GAAQ,IAAIG,GACpB,CAMI,kBAAOlsC,CAAYl/E,GACfkrH,GAAKG,cACL95F,KAAS05F,GAAOF,GAAcC,eAC9BC,GAAM/rC,YAAYl/E,EAC1B,CAOI,UAAOhmH,CAAI5E,EAAKq1O,GACZ,OAAKS,GAAKG,eAGV95F,KAAS05F,GAAOF,GAAcC,eACvBC,GAAMjxO,IAAI5E,EAAKq1O,IAHO,qBAAXA,EAAyBr1O,EAAMq1O,CAIzD,CAQI,iCAAOG,CAA2B3tH,EAAU4tH,GACxCK,GAAKG,cACL95F,KAAS05F,GAAOF,GAAcC,eAC9BC,GAAML,2BAA2B3tH,EAAU4tH,EACnD,CAQI,sBAAOC,CAAgBD,GACnBK,GAAKG,cACL95F,KAAS05F,GAAOF,GAAcC,eAC9BC,GAAMH,gBAAgBD,EAC9B,CACI,kBAAOQ,GAIH,OAHKJ,IACDC,GAAKhS,kBAEF,CACf,EAGAgS,GAAKhS,iBCjGL,MC0BMoS,GAAe,ICeA,CCxCjBC,YAAa,mBACbC,YAAa,mBACbC,aAAc,kBACdC,UAAW,YACXC,gBAAiB,kBACjBC,kBAAmB,WACnBC,KAAM,OACNC,aAAc,iCACdC,aAAc,mEACdC,UAAW,iEACXC,YAAa,kEACbC,iBAAkB,mBAClBC,6BAA8B,+BAC9BC,+BAAgC,sBAChCC,uBAAwB,kBACxBC,YAAa,mBAEbC,oBAAqB,mBACrBC,aAAc,oBACdC,QAAS,UACTC,kBAAmB,oBACnBC,WAAY,aACZC,eAAgB,iBAChBC,iBAAkB,mBAClBC,cAAe,QACfC,gBAAiB,uBACjBC,WAAY,kBACZC,wBAAyB,+BACzBC,YAAa,mBACbC,kBAAmB,yBACnBC,iBAAkB,wBAClBC,kBAAmB,yBACnBC,WAAY,kBACZC,gBAAiB,sBACjBC,eAAgB,sBAChBC,mBAAoB,0BACpBC,yBAA0B,gCAC1BC,eAAgB,sBAChBC,YAAa,cACbC,WAAY,aACZC,gBAAiB,mBACjBC,qBAAsB,wBACtBC,cAAe,gBACfC,QAAS,UACTC,WAAY,WACZC,YAAa,cACbC,KAAM,OACNC,SAAU,WACVC,aAAc,eACdC,GAAI,KACJ/nM,SAAU,WACVgoM,aAAc,eACdC,mBAAoB,qBACpBC,QAAS,UACTC,YAAa,cACbC,uBAAwB,sBACxBC,eAAgB,iBAChBC,UAAW,YACXC,QAAS,UACTC,WAAY,aACZC,cAAe,gBACfC,eAAgB,UAChBC,YAAa,UACbC,oBAAqB,sBACrB7nG,mBAAoB,qBACpB8nG,sBAAuB,wBACvBC,oBAAqB,sBACrBC,QAAS,0BACTC,eAAgB,uBAChBC,kBAAmB,aACnBC,KAAM,OACNC,OAAQ,SACRC,WAAY,aACZC,eAAgB,OAChBC,eAAgB,iBAChBC,eAAgB,yDAChBC,OAAQ,SACRC,WAAY,iBACZC,aAAc,iBACdC,UAAW,gBACXC,QAAS,YF/Cb,SAASzvL,GAAU0vL,GACf,OAAOnF,GAAKlxO,IAAIq2O,EACpB,CAOA,MGzCMC,GAAmBjwI,IAAU,IAAAsnI,EAC/B,MAAM4I,EAAuB,OAALlwI,QAAK,IAALA,GAAqB,QAAhBsnI,EAALtnI,EAAOpzF,QAAQ+vH,cAAM,IAAA2qG,OAAA,EAArBA,EAAuB4I,iBAIxCC,GAA+B,OAAfD,QAAe,IAAfA,EAAAA,EAAmB,CAAC,YAC3C,OAAOC,CAAY,ECEjBC,GAAuBC,IACzB,IAAI//O,EAAUy4O,GAAwBsH,GACtC,MAAM,KAAE9gP,GAASe,EAIjB,MAHa,QAATf,IACAe,EAAU,IAAKA,EAASm5O,SANH,OAQlBn5O,CAAO,EAGZggP,GAA4BtwI,IAC9B,MAAMmwI,EAAeF,GAAgBjwI,GACrC,MAAO,IACAowI,GAAoBD,GACvBlH,aAAc,WACjB,EAGCsH,GAAiCvwI,IAAK,CACxCkpI,kBAAmB,IACZkH,GAAoB,qBACvB9kO,MAAO,SACP86B,YAAa,UAwFfoqM,GAA2B,CAC7BC,OAtFyBzwI,IAAK,CAC9Bme,SAAU,IAAKmyH,GAAyBtwI,IACxCrW,SAAU,IACHymJ,GAAoB,YACvBnH,aAAc,sBAmFlBnoF,OAhFyB9gD,IACzB,MAAM,gBAAEkwI,EAAe,iBAAEQ,GAAqB1wI,EAAMpzF,QAAQ+vH,OACtDwzG,EAAeF,GAAgBjwI,GAI/B2wI,EAAa1hP,MAAMkV,KAAK,IAAI+mD,IAAI,IAC/BglL,EACH,WACA,sBACGQ,KAEDE,EAAY,CAAC,EACnB,IAAK,MAAMP,KAAaM,EACpB,GAAI5G,GAAwBsG,GAAY,CACpC,MAAMQ,EAAaR,IAAcF,EAC3BG,GAAyBtwI,GACzBowI,GAAoBC,GAC1BO,EAAUP,GAAa,IAAKQ,EAChC,MAGIj0O,QAAQ23C,MAAM,4DAADroC,OAA6DmkO,EAAS,mDAG3F,OAAOO,CAAS,EAwDhB7vF,cAtDgC/gD,IAAK,CACrCkpI,kBAAmB,IACZkH,GAAoB,qBACvBhqM,YAAa,qBAoDjB0qM,cAAeP,GACfQ,iBA1BmC/wI,IACnC,MAAMooI,EAAalC,GAAclmI,IAC3B,kBAAEgxI,GAAsB5I,EAAWx7N,QACnC+jO,EAAa1hP,MAAMkV,KAAK,IAAI+mD,IAAI,CAClC,WACA,sBACqB,OAAjB8lL,QAAiB,IAAjBA,EAAAA,EAAqB,MAEvBJ,EAAY,CAAC,EACnB,IAAK,MAAMP,KAAaM,EAChB5G,GAAwBsG,GACxBO,EAAUP,GAAa,IAAKD,GAAoBC,IAIhDzzO,QAAQ23C,MAAM,4DAADroC,OAA6DmkO,EAAS,6DAG3F,OAAOO,CAAS,EAShB5vF,eAnDiChhD,IACjC,MAAMmwI,EAAeF,GAAgBjwI,IAC/B,MAAE10F,GAAUy9N,GAAwBoH,GAC1C,MAAO,CACHhyH,SAAU,IACHmyH,GAAyBtwI,GAC5B10F,MAAO,cAAFY,OAAgBZ,EAAM9b,eAC3B42C,YAAa,cAAFl6B,OAAgBZ,EAAM9b,gBAExC,EA2CDyhP,qBAzCuCjxI,IAAK,IACzCuwI,KACH5mJ,SAAU,IACHymJ,GAAoB,YACvB9kO,MAAO,eACP86B,YAAa,gBAEjB+iM,iBAAkB,IACXiH,GAAoB,oBACvB9kO,MAAO,mBACP86B,YAAa,sBAgCjB8qM,kBAAmBX,GACnBY,UAAWZ,ICnHTa,GAAsBA,CAACpiH,EAAOhvB,KAAU,IAAAqnI,EAC1C,MAAMgK,EAAyC,QAAzBhK,EAAGjB,GAAgBpmI,UAAM,IAAAqnI,GAAY,QAAZA,EAAtBA,EAAwBiK,kBAAU,IAAAjK,OAAA,EAAlCA,EAAqCr4G,GAC9D,OAAKqiH,GAA6D,IAAzCp7O,OAAO0+C,KAAK08L,GAAkBngP,OAGhD+E,OAAOL,QAAQy7O,GAAkB5/O,QAAO,CAAC2gC,EAAG65F,KAAiC,IAA9BokH,EAAWkB,GAActlH,EAC3E,GAAe,WAAV+C,GAAgC,mBAAVA,GACT,aAAdqhH,EASC,IbOqB9+G,IACvBs3G,GAAuBz1J,SAASm+C,GaR1BigH,CAAyBnB,GAAY,CAG1C,MACMoB,EAAgB,IADC1I,GAAwBsH,MACDkB,GAC9C,MAAO,IAAKn/M,EAAK,CAACi+M,GAAYoB,EAClC,CAGI,MAAO,IAAKr/M,EAAK,CAACi+M,GAAYkB,EAClC,CAnB8B,CAI1B,MAEME,EAAgB,IAFCnB,GAAyBtwI,MAEFuxI,GAC9C,MAAO,IAAKn/M,EAAK,CAACi+M,GAAYoB,EAClC,CAWA,GACD,CAAC,GAxBO,CAAC,CAwBN,EAEJC,GAAgBA,CAAC1iH,EAAOhvB,KAC1B,MAAM2xI,EAnCmBC,EAAC5iH,EAAOhvB,KAE1B6xI,EADiBrB,GAAyBxhH,IAC1BhvB,GAiCG4xI,CAAqB5iH,EAAOhvB,GAEhDsxI,EAAa,IAAKK,KADCP,GAAoBpiH,EAAOhvB,IAGpD,cADOsxI,EAAe,GFnCAA,KACtB,MAAMQ,EAAgB,IAAKR,GAC3B,IAAK,MAAOjiP,EAAMiB,KAAY2F,OAAOL,QAAQ07O,GAAa,CACtD,MAAM,MAAEhmO,EAAK,YAAE86B,GAAgB91C,EAC/BwhP,EAAcziP,GAAQ,IACfiB,EACHgb,MAAOA,EAAQg1C,GAAUh1C,QAASxS,EAClCstC,YAAaA,EAAcka,GAAUla,QAAettC,EAE5D,CACA,OAAOg5O,CAAa,EE0BbC,CAAiBT,EAAW,EASjCU,GAAsBA,CAAChjH,EAAOhvB,IAPXsxI,IAAeA,EAAWlgP,KAAKmgI,GAI7C,CAHKA,EAAM,GAEH,IAAKA,EAAM,GAAIn5F,WAAOt/B,MAM9Bm5O,CFlCaX,IACbr7O,OAAOL,QAAQ07O,GACjB77O,MAAK,CAACJ,EAAGC,KACKD,EAAE,GAAG+iC,OAASgwF,OAAO8pH,YACrB58O,EAAE,GAAG8iC,OAASgwF,OAAO8pH,aAGnChvN,QAAQivN,QAAyCr5O,IAAtBq5O,EAAe,KE2BxBC,CADJV,GAAc1iH,EAAOhvB,KCzDtCqyI,GAAuB,CACzB,uBACA,gBACA,gBACA,oBACA,mBACA,iBACA,YACA,SACA,SACA,cCPJ,MAAMC,GAAoBA,KAAM,EAKhC,SAASC,GAAqBC,EAAaC,GACvC,OAAID,EAAYthP,SAAWuhP,EAASvhP,QAG7BshP,EAAYpyM,OAAM,CAACsyM,EAAY/gP,KAClC,MAAMghP,EAAUF,EAAS9gP,GACzB,SzB2FR,WAAmC,QAAA0G,EAAAC,UAAApH,OAAR6vB,EAAM,IAAA9xB,MAAAoJ,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAANwoB,EAAMxoB,GAAAD,UAAAC,GAC7B,OAAOwoB,EAAOqf,MAAMilM,GACxB,CyB7FYuN,CAAeF,EAAYC,KzB6GvC,WAAoC,QAAAn6O,EAAAF,UAAApH,OAAR6vB,EAAM,IAAA9xB,MAAAuJ,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANsoB,EAAMtoB,GAAAH,UAAAG,GAC9B,OAAOsoB,EAAOqf,MAAMklM,GACxB,CyB9GYuN,CAAgBH,EAAYC,KAGzBD,IAAeC,CAAO,GAErC,CACA,MAAMG,GAAiBC,GAAa,CAACC,EAAeC,IAIzCV,GAHqBQ,EAASC,GACZD,EAASE,IAIhCC,GAAelzI,IAAK,IAAAqnI,EAAA,MAAM,IACH,QAAzBA,EAAGjB,GAAgBpmI,UAAM,IAAAqnI,GAAY,QAAZA,EAAtBA,EAAwBiK,kBAAU,IAAAjK,GAAW,QAAXA,EAAlCA,EAAoC8J,iBAAS,IAAA9J,OAAA,EAA7CA,EAA+C8L,GACrD,EAgBKC,GAAmBA,CAACpkH,EAAOhvB,EAAOioI,IC3CXj5G,IAAUqjH,GAAqB1iP,MAAM0jP,GAAmBA,IAAmBrkH,ID4ChGskH,CAAoBtkH,GACH,eAAVA,EAhBwBi5G,IAC3BA,GACJhyO,OAAOL,QAAQqyO,GAA0B72O,KAAIqlJ,IAAmB,IAAjBpnJ,EAAMkC,GAAMklJ,EAEvD,OADsBj/B,GAASjmH,IACRlC,EAGhB,CAAEA,OAAMic,MAAO/Z,EAAOhC,KAAM,QAASgC,SAFjC,CAAC,CAEuC,IAUjDgiP,CAA8BtL,GACZ+J,GAAoBhjH,EAAOhvB,GAnBdwzI,SAAQvnH,IAAA,IAAE58H,EAAMiB,GAAQ27H,EAAA,MAAM,CAAE58H,UAASiB,EAAS,IAqBpF,GExCX,SAASmjP,GAAiBV,GACtB,MAAMnmO,EAAU+7N,EAAAA,WAA0BD,IAC1C,IAAK97N,EACD,MAAM,IAAInY,MAAMm0O,IAEpB,MAAM,QAAEh+F,GAAYh+H,GACd,KAAE2oC,GAASq1F,EACX8oG,GAAiB11I,EAAAA,EAAAA,cAAagC,IAAK,IAAWknI,GAAiB,CAAE3xL,OAAMyqD,aAAa,CAACzqD,IACrFo+L,EAAaZ,EAAWD,GAAcC,GAAYT,IAGlD,WAAE9J,GAAe57N,EACjBgnO,ExBNH,SAAqB7N,EAAOgN,EAAU3wI,EAASrG,QAClC,IAAZqG,IAAsBA,EAAUwjI,IACpC,IAAIE,GAAuBtnI,EAAAA,EAAAA,QAAO,MAC9BooE,GAAY5oE,EAAAA,EAAAA,cAAY,SAAU61I,GAElC,OADkB9N,EAAMn/D,UAAUitE,GAAmBhtE,WAEzD,GAAG,CAACk/D,IACA+N,GAAmB91I,EAAAA,EAAAA,cAAY,WAC/B,OAAIjC,EACOA,EAAYgqI,GAEhBF,GAAmBE,EAAOD,EACrC,GAAG,CAACC,EAAOhqI,IAEX,OADuBisB,EAAAA,GAAAA,kCAAiC4+C,EAAWktE,EAAkBA,EAAkBf,EAAU3wI,EAErH,CwBTmB2xI,CAAYnpG,EAAS8oG,EAAgBC,IAC9C,MAAE3kH,EAAK,eAAEg5G,EAAc,yBAAEC,EAAwB,KAAEvlF,KAASjzB,GAASmkH,EAGrEI,EAAkBppG,EAAQ7uC,cAE1Bk4I,EAAqB,cAAVjlH,EAAwBkkH,GAAYc,GAAmB,KAGxE,MAAO,IACAvkH,EACH+4G,aACAx5G,QACAg5G,iBACAC,2BACAvlF,OAEAi+B,OATWyyD,GAAiBpkH,EAAOglH,EAAiB/L,GAUpDgM,WAER,CCvCA,MAAMC,GAAgBjoH,IAAA,IAAC,MAAE+C,GAAO/C,EAAA,MAAK,CAAC+C,EAAM,ECF5C,MAAMmlH,GAA8B,CAChCr1F,KAAM,CAAC/J,GAAWq/F,WAAYr/F,GAAWs/F,gBACzCx1F,SAAUjK,GAASnT,MAEjB6yG,GAA2B,CAC7Bx1F,KAAM,CACF/J,GAAWw/F,OACXx/F,GAAWy/F,cACXz/F,GAAW0/F,iBACX1/F,GAAW2/F,OACX3/F,GAAW4/F,cACX5/F,GAAWoN,oBACXpN,GAAW6/F,QACX7/F,GAAW8/F,cACX9/F,GAAW+/F,qBACX//F,GAAWggG,oBAEfl2F,SAAUjK,GAASnT,MAEjBuzG,GAA8B,CAChCl2F,KAAM,CAAC5J,GAAqB+/F,0BAC5Bp2F,SAAUjK,GAASjO,gBAEjBuuG,GAA6B,CAC/Br2F,SAAUjK,GAAS9P,IACnBga,KAAM,CACF7J,GAAUkgG,aACVlgG,GAAUmgG,qBACVngG,GAAUogG,kBAGZC,GAAsB,CACxBz2F,SAAUjK,GAAS9P,IACnBga,KAAM,IAEJy2F,GAA6B,CAC/Bz2F,KAAM,CAACvJ,GAAcigG,YACrB32F,SAAUjK,GAAS5T,SCzBjBy0G,GAAexpH,IAA8C,IAA7C,cAAE7tD,EAAa,YAAEs3K,EAAW,QAAEz4O,GAAUgvH,EAC1D,MAAM0pH,EAAc,CAAC,MAADzpO,OAAOwpO,GAAez4O,GAC1C,OAAQmhE,GACJ,IAAK,gBACDugF,GAAmB,IACZ21F,GACHr1F,kBAAmB,CAAC,CAAC7gF,GAAgBu3K,KAEzC,MAEJ,IAAK,iBACL,IAAK,aACDh3F,GAAmB,IACZw1F,GACHl1F,kBAAmB,CAAC,CAAC,mBAAoB02F,KAE7C,MAEJ,IAAK,iBACDh3F,GAAmB,IACZq2F,GACH/1F,kBAAmB,CAAC,CAAC7gF,GAAgBu3K,KAEzC,MAEJ,IAAK,iBACDh3F,GAAmB,IACZu2F,GACHj2F,kBAAmB,CAAC,CAAC7gF,GAAgBu3K,KAEzC,MAEJ,IAAK,UACDh3F,GAAmB,IACZ22F,GACHr2F,kBAAmB,CAAC,CAAC7gF,GAAgBu3K,KAEzC,MAEJ,IAAK,iBACDh3F,GAAmB,IACZ42F,GACHt2F,kBAAmB,CAAC,CAAC7gF,GAAgBu3K,KAKjD,OAAOz7B,EAAI,EC9Cf,ICfI07B,GAyBAC,GDVA3jP,GAAW,WAQX,OAPAA,GAAW+D,OAAOgU,QAAU,SAAkBhV,GAC1C,IAAK,IAAI5B,EAAGuT,EAAI,EAAGsD,EAAI5R,UAAUpH,OAAQ0V,EAAIsD,EAAGtD,IAE5C,IAAK,IAAIkD,KADTzW,EAAIiF,UAAUsO,GACO3Q,OAAOc,UAAUxC,eAAe6Q,KAAK/R,EAAGyW,KAAI7U,EAAE6U,GAAKzW,EAAEyW,IAE9E,OAAO7U,CACX,EACO/C,GAASmE,MAAMb,KAAM8C,UAChC,EAEA,SAASw9O,GAAOziP,EAAGyX,GACf,IAAI7V,EAAI,CAAC,EACT,IAAK,IAAI6U,KAAKzW,EAAO4C,OAAOc,UAAUxC,eAAe6Q,KAAK/R,EAAGyW,IAAMgB,EAAEnT,QAAQmS,GAAK,IAC9E7U,EAAE6U,GAAKzW,EAAEyW,IACb,GAAS,MAALzW,GAAqD,oBAAjC4C,OAAOyhE,sBACtB,KAAI9wD,EAAI,EAAb,IAAgBkD,EAAI7T,OAAOyhE,sBAAsBrkE,GAAIuT,EAAIkD,EAAE5Y,OAAQ0V,IAC3DkE,EAAEnT,QAAQmS,EAAElD,IAAM,GAAK3Q,OAAOc,UAAUygE,qBAAqBpyD,KAAK/R,EAAGyW,EAAElD,MACvE3R,EAAE6U,EAAElD,IAAMvT,EAAEyW,EAAElD,IAF4B,CAItD,OAAO3R,CACX,CAEA,SAAS8gP,GAASxtH,GACd,IAAIl1H,EAAsB,oBAAXsY,QAAyBA,OAAOC,SAAUk5B,EAAIzxC,GAAKk1H,EAAEl1H,GAAIuT,EAAI,EAC5E,GAAIk+B,EAAG,OAAOA,EAAE1/B,KAAKmjH,GACrB,GAAIA,GAAyB,kBAAbA,EAAEr3H,OAAqB,MAAO,CAC1C2Z,KAAM,WAEF,OADI09G,GAAK3hH,GAAK2hH,EAAEr3H,SAAQq3H,OAAI,GACrB,CAAEh3H,MAAOg3H,GAAKA,EAAE3hH,KAAMoE,MAAOu9G,EACxC,GAEJ,MAAM,IAAIrwH,UAAU7E,EAAI,0BAA4B,kCACxD,CAEA,SAASm1H,GAAOD,EAAGr+G,GACf,IAAI46B,EAAsB,oBAAXn5B,QAAyB48G,EAAE58G,OAAOC,UACjD,IAAKk5B,EAAG,OAAOyjF,EACf,IAAmB/kG,EAAY1Y,EAA3BlE,EAAIk+B,EAAE1/B,KAAKmjH,GAAOt8G,EAAK,GAC3B,IACI,WAAc,IAAN/B,GAAgBA,KAAM,MAAQsZ,EAAI5c,EAAEiE,QAAQG,MAAMiB,EAAG9X,KAAKqvB,EAAEjyB,MACxE,CACA,MAAOu9C,GAAShkC,EAAI,CAAEgkC,MAAOA,EAAS,CAAC,QAEnC,IACQtrB,IAAMA,EAAExY,OAAS85B,EAAIl+B,EAAU,SAAIk+B,EAAE1/B,KAAKwB,EAClD,CAAC,QACS,GAAIkE,EAAG,MAAMA,EAAEgkC,KAAO,CACpC,CACA,OAAO7iC,CACX,CAEA,SAASH,GAAcC,EAAI5H,EAAM6H,GAC7B,GAAIA,GAA6B,IAArB1T,UAAUpH,OAAc,IAAK,IAA4B+a,EAAxBrF,EAAI,EAAG7N,EAAIoL,EAAKjT,OAAY0V,EAAI7N,EAAG6N,KACxEqF,GAAQrF,KAAKzC,IACR8H,IAAIA,EAAKhd,MAAM8H,UAAU5F,MAAMiU,KAAKjB,EAAM,EAAGyC,IAClDqF,EAAGrF,GAAKzC,EAAKyC,IAGrB,OAAOmF,EAAGG,OAAOD,GAAMhd,MAAM8H,UAAU5F,MAAMiU,KAAKjB,GACtD,ECzEA,SAAWyxO,GACTA,EAAmB,MAAI,eACvBA,EAAkB,KAAI,cACtBA,EAAmB,MAAI,eACvBA,EAAkB,KAAI,cACtBA,EAAoB,OAAI,gBACxBA,EAAuB,UAAI,GAC3BA,EAAoB,OAAI,gBACxBA,EAAmB,MAAI,eACvBA,EAAuB,UAAI,aAC3BA,EAAwB,WAAI,cAC5BA,EAAiB,IAAI,aACrBA,EAAkB,KAAI,cACtBA,EAAoB,OAAI,gBACxBA,EAA4B,eAAI,kBAChCA,EAAgC,mBAAI,sBACpCA,EAA2B,cAAI,iBAC/BA,EAAyB,YAAI,eAC7BA,EAAoB,OAAI,gBACxBA,EAAkB,KAAI,cACtBA,EAAoB,OAAI,eACzB,CArBD,CAqBGA,KAAgBA,GAAc,CAAC,IAIlC,SAAWC,GACTA,EAAuB,OAAI,WAC3BA,EAAyB,SAAI,YAC9B,CAHD,CAGGA,KAAmBA,GAAiB,CAAC,IC9BxC,ICMItlP,GDLAylP,GAAqB,CAAC,EACtBC,GAAqB,eEArBjlP,GAAQ4kP,GAAYM,MACpBxnN,GAAOknN,GAAYO,KACnBC,GAAQR,GAAYS,MACpB9gM,GAAOqgM,GAAYU,KACnBpnB,GAAS0mB,GAAY9c,OACrByd,GAAYX,GAAYY,UACxBvsO,GAAS2rO,GAAYa,OAGrBpzK,IAFQuyK,GAAYc,MACRd,GAAYe,UAClBf,GAAYgB,KAClBld,GAAOkc,GAAYiB,KACnBzsB,GAASwrB,GAAYkB,OAErBC,IADiBnB,GAAYoB,eACbpB,GAAYqB,eAC5BnoM,GAAQ8mM,GAAYsB,YACpBvpG,GAASioG,GAAYuB,OACrBC,GAASxB,GAAYyB,OACrBC,GAAO1B,GAAY2B,KCnBnBC,IAAgBj+K,EFUpB,SAASk+K,GAAaC,EAAeC,EAAc7mP,QAC/B,IAAdA,IACFA,EDZkB,KCepB,IAAI8mP,EAAmBC,GAAaH,EAAe5mP,GAC/CgnP,EAAkBD,GAAaF,EAAc7mP,GAEjD,OAAI0mH,GAASsgI,KACPtgI,GAASogI,IACJE,IAAoBF,EAO3BpgI,GAASogI,GACJA,KAAoBE,EAGtB7hP,OAAO0+C,KAAKijM,GAAkBx3M,OAAM,SAAUrrC,GACnD,OAAMA,KAAO+iP,GAINL,GAAaG,EAAiB7iP,GAAM+iP,EAAgB/iP,GAC7D,GACF,CACA,SAASgjP,GAAa7tJ,GACpB,IACE,OAAOstB,GAASttB,IAA2B,kBAAVA,EAAqB,GAAGh+E,OAAOg+E,GAASA,EAAM36F,IACjF,CAAE,MAAOub,IACP,MAAM,IAAIrW,MAAM,uEAClB,CACF,CAQA,SAASujP,GAAYC,EAASnnP,GAC5B,IACE,OAAI5B,GAAQ+oP,GACHA,EAGFA,EAAQ3gP,WAAWnI,MAAM2B,EAClC,CAAE,MAAOga,IACP,MAAM,IAAIrW,MAAM,IAAIyX,OAAO+rO,EAAS,gCACtC,CACF,CAIA,SAASJ,GAAaK,EAAYpnP,GAChC,MAHwB,kBADLkvG,EAIHk4I,IAHoB,UAAWl4I,GAAS,YAAaA,GAAS,UAAWA,GAAS,WAAYA,EAIrGk4I,EAAW3mP,MAGhBrC,GAAQgpP,GACHC,GAAiBD,GAGA,kBAAfA,EACFA,EAIFC,GADSH,GAAYE,EAAYpnP,IAhB1C,IAAqBkvG,CAkBrB,CACA,SAASm4I,GAAiBC,GACxB,GAAyB,IAArBA,EAAUlnP,OACZ,OAAOknP,EAAU,GAMnB,IAHA,IAAI7mP,EAAQ,CAAC,EACT8mP,EAAS9mP,EAEJqV,EAAI,EAAGA,EAAIwxO,EAAUlnP,OAAS,EAAG0V,IACpCA,IAAMwxO,EAAUlnP,OAAS,EAC3BmnP,EAAOD,EAAUxxO,IAAMwxO,EAAUxxO,EAAI,IAErCyxO,EAAOD,EAAUxxO,IAAM,CAAC,EACxByxO,EAASA,EAAOD,EAAUxxO,KAI9B,OAAOrV,CACT,CACA,SAAS+mP,GAAUC,EAAY5rL,GAI7B,IAHA,IAAI57D,EAAS,CAAC,EACVynP,EAAiBviP,OAAO0+C,KAAK4jM,GAExB3xO,EAAI,EAAGA,EAAI4xO,EAAetnP,OAAQ0V,IAAK,CAC9C,IAAI7R,EAAMyjP,EAAe5xO,GACzB7V,EAAOgE,GAAO43D,EAAS4rL,EAAWxjP,GAAMA,EAAKwjP,EAAY3xO,EAC3D,CAEA,OAAO7V,CACT,CACA,SAAS0nP,GAAgBF,EAAY5rL,EAAUb,GAC7C,IAAI4sL,EAAKnoP,EAELQ,EAAS,CAAC,EAEd,IACE,IAAK,IAAIN,EAAKslP,GAAS9/O,OAAO0+C,KAAK4jM,IAAc5nP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CACzF,IAAI9V,EAAMpE,EAAGY,MACTgE,EAAOgjP,EAAWxjP,GAEjB+2D,EAAUv2D,KAIfxE,EAAOgE,GAAO43D,EAASp3D,EAAMR,EAAKwjP,GACpC,CACF,CAAE,MAAOI,GACPD,EAAM,CACJ5pM,MAAO6pM,EAEX,CAAE,QACA,IACMhoP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAIioP,EAAK,MAAMA,EAAI5pM,KACrB,CACF,CAEA,OAAO/9C,CACT,CAMA,IAAI6lD,GAAO,SAAUod,GACnB,OAAO,SAAU56D,GACf,IAAIw/O,EAAKroP,EAELQ,EAASqI,EAEb,IACE,IAAK,IAAIy/O,EAAU9C,GAAS/hL,GAAQ8kL,EAAYD,EAAQhuO,QAASiuO,EAAU9tO,KAAM8tO,EAAYD,EAAQhuO,OAAQ,CAE3G9Z,EAASA,EADE+nP,EAAUvnP,MAEvB,CACF,CAAE,MAAOwnP,GACPH,EAAM,CACJ9pM,MAAOiqM,EAEX,CAAE,QACA,IACMD,IAAcA,EAAU9tO,OAASza,EAAKsoP,EAAQp9J,SAASlrF,EAAG6U,KAAKyzO,EACrE,CAAE,QACA,GAAID,EAAK,MAAMA,EAAI9pM,KACrB,CACF,CAEA,OAAO/9C,CACT,CACF,EAgCA,SAASioP,GAAad,GACpB,OAAKA,EAID1gI,GAAS0gI,GACJ,CAAC,CAACA,IAGEnkC,GAAQ99M,OAAO0+C,KAAKujM,GAAY9mP,KAAI,SAAU2D,GACzD,IAAIkkP,EAAgBf,EAAWnjP,GAE/B,MAA6B,kBAAlBkkP,GAAgCA,GAAkBhjP,OAAO0+C,KAAKskM,GAAe/nP,OAIjF8nP,GAAad,EAAWnjP,IAAM3D,KAAI,SAAU8nP,GACjD,MAAO,CAACnkP,GAAKmX,OAAOgtO,EACtB,IALS,CAAC,CAACnkP,GAMb,KAjBS,CAAC,GAmBZ,CAyCA,SAASg/M,GAAQn7M,GACf,IAAIrI,EAEJ,OAAQA,EAAK,IAAI2b,OAAO7V,MAAM9F,EAAIub,GAAc,GAAI08G,GAAO5vH,IAAQ,GACrE,CACA,SAASugP,GAAc5nP,GACrB,OAAIrC,GAAQqC,GACHA,EAGF,CAACA,EACV,CACA,SAASw/G,GAAQx/G,GACf,YAAcuH,IAAVvH,EACK,GAGF4nP,GAAc5nP,EACvB,CACA,SAAS6nP,GAAWC,EAAQzsO,EAAS0sO,GACnC,IAAIC,EAAKhpP,EAET,GAAIu/D,GAAWupL,GACb,OAAOA,EAAOzsO,EAAS0sO,EAAOjzO,MAGhC,IAAItV,EAAS,CAAC,EAEd,IACE,IAAK,IAAIN,EAAKslP,GAAS9/O,OAAO0+C,KAAK0kM,IAAU1oP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CACrF,IAAI9V,EAAMpE,EAAGY,MACTioP,EAAYH,EAAOtkP,GAEnB+6D,GAAW0pL,GACbzoP,EAAOgE,GAAOykP,EAAU5sO,EAAS0sO,EAAOjzO,MAExCtV,EAAOgE,GAAOykP,CAElB,CACF,CAAE,MAAOC,GACPF,EAAM,CACJzqM,MAAO2qM,EAEX,CAAE,QACA,IACM9oP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAI8oP,EAAK,MAAMA,EAAIzqM,KACrB,CACF,CAEA,OAAO/9C,CACT,CAIA,SAAS2oP,GAAcnoP,GACrB,OAAIA,aAAiBkZ,WAKP,OAAVlZ,IAAmBu+D,GAAWv+D,IAA2B,kBAAVA,IAAuBu+D,GAAWv+D,EAAM0Z,MAK7F,CAmCA,SAAS0uO,GAAoBC,EAAM1B,GACjC,OAAOI,GAAUsB,EAAKC,QAAQ,SAAUC,EAAS/kP,GAC/C,GAAK+kP,EAAL,CAIA,IAAIb,GAAiBzhI,GAAS0gI,QAAcp/O,EAAYo/O,EAAWnjP,MAAU+kP,EAAUA,EAAQrkO,aAAU3c,GAEzG,GAAKmgP,EAIL,MAAO,CACLxjO,QAASwjO,EACTY,OAAQF,GAAoBG,EAASb,GAVvC,CAYF,GACF,CAOA,SAASc,GAAcntO,EAAS0sO,EAAQU,EAAeh6I,GAChDw3I,IACH36O,KAAO+P,EAAS,0CAGlB,IAAIqtO,EAAiBrtO,EAAUotO,EAAcvoP,QAAO,SAAU2gC,EAAK8nN,GACjE,IAAIC,EAAK5pP,EAEL6pP,EAAaF,EAAaE,WAC1BjhK,EAAO,CACT6mB,MAAOA,EACP3E,OAAQ6+I,EACRZ,OAAQA,GAENe,EAAgB,CAAC,EAErB,GAAIvqL,GAAWsqL,GACbC,EAAgBD,EAAWhoN,EAAKknN,EAAOjzO,KAAM8yE,QAE7C,IACE,IAAK,IAAI1oF,EAAKslP,GAAS9/O,OAAO0+C,KAAKylM,IAAczpP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CACzF,IAAI9V,EAAMpE,EAAGY,MACT+oP,EAAiBF,EAAWrlP,GAChCslP,EAActlP,GAAO+6D,GAAWwqL,GAAkBA,EAAeloN,EAAKknN,EAAOjzO,KAAM8yE,GAAQmhK,CAC7F,CACF,CAAE,MAAOC,GACPJ,EAAM,CACJrrM,MAAOyrM,EAEX,CAAE,QACA,IACM5pP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAI0pP,EAAK,MAAMA,EAAIrrM,KACrB,CACF,CAGF,OAAO74C,OAAOgU,OAAO,CAAC,EAAGmoB,EAAKioN,EAChC,GAAGztO,GAAWA,EACd,OAAOqtO,CACT,CAEA,IAAIp9O,GAAO,WAAa,EAsBxB,SAAS3N,GAAQqC,GACf,OAAOtC,MAAMC,QAAQqC,EACvB,CAEA,SAASu+D,GAAWv+D,GAClB,MAAwB,oBAAVA,CAChB,CACA,SAASimH,GAASjmH,GAChB,MAAwB,kBAAVA,CAChB,CACA,SAASipP,GAAQC,EAAWC,GAC1B,GAAKD,EAIL,OAAIjjI,GAASijI,GACJ,CACLlrP,KAAM0mP,GACN5mP,KAAMorP,EACN3uL,UAAW4uL,EAAWA,EAASD,QAAa3hP,GAI5Cg3D,GAAW2qL,GACN,CACLlrP,KAAM0mP,GACN5mP,KAAMorP,EAAUprP,KAChBy8D,UAAW2uL,GAIRA,CACT,CApDKjD,KACH36O,GAAO,SAAU49O,EAAWzkL,GAC1B,IAAIlnB,EAAQ2rM,aAAqBhmP,MAAQgmP,OAAY3hP,EAErD,IAAKg2C,IAAS2rM,SAIE3hP,IAAZ8D,QAAuB,CACzB,IAAIjG,EAAO,CAAC,YAAYuV,OAAO8pD,IAE3BlnB,GACFn4C,EAAKxC,KAAK26C,GAIZlyC,QAAQC,KAAKxG,MAAMuG,QAASjG,EAC9B,CACF,GA0CF,IAAIgkP,GAAgC,WAClC,MAAyB,oBAAXhvO,QAAyBA,OAAOivO,YAAc,cAC9D,CAFoC,IAIdrqP,GAAK,CAAC,GAAMoqP,IAAoB,WACpD,OAAOnlP,IACT,EAAGjF,GAAGob,OAAOivO,YAAc,WACzB,OAAOplP,IACT,EACA,SAASqlP,GAAUtpP,GACjB,QAASA,GAAS,iBAAkBA,CACtC,CAIA,IAAIupP,GAAwB,WAC1B,IAAIC,EAAY,EAChB,OAAO,WAEL,SADAA,GACiBzjP,SAAS,GAC5B,CACF,CAN4B,GAO5B,SAAS0jP,GAAc9wJ,EAAOsO,GAE5B,OAAIgf,GAASttB,IAA2B,kBAAVA,EACrBh4F,GAAS,CACd3C,KAAM26F,GACLsO,GAGEtO,CACT,CACA,SAAS+wJ,GAAa/wJ,EAAOgxJ,GAC3B,IAAK1jI,GAASttB,IAAU,WAAYA,GAA0B,UAAjBA,EAAMixJ,OACjD,OAAOjxJ,EAGT,IAAIkxJ,EAAcJ,GAAc9wJ,GAChC,OAAOh4F,GAAS,CACd7C,KAAM+rP,EAAY7rP,KAClB8W,KAAM+0O,EACND,OAAQ,QACR5rP,KAAM,YACL2rP,EACL,CACA,SAASG,GAAwBnxJ,EAAOoxJ,GAatC,OAZkBnC,GAAcmC,GAAYlqP,KAAI,SAAUmqP,GACxD,MAA8B,qBAAnBA,GAA4D,kBAAnBA,GAA+BV,GAAUU,GACpF,CACLjpM,OAAQipM,EACRrxJ,MAAOA,GAIJh4F,GAASA,GAAS,CAAC,EAAGqpP,GAAiB,CAC5CrxJ,MAAOA,GAEX,GAEF,CAsBA,SAASsxJ,GAAcvV,EAAS1xK,EAAO3nD,EAAS0sO,EAAQt5I,GACtD,IAAIy7I,EAASxV,EAAQ31O,QAAQmrP,OACzBC,EAAY,CACd17I,MAAOA,EACPurB,KAAMh3D,EACN+kL,OAAQA,GAGV,GAAI/kL,EAAMhlE,OAAS0mP,GACjB,QAAoB,OAAXwF,QAA8B,IAAXA,OAAoB,EAASA,EAAOlnL,EAAMllE,QAAUklE,EAAMzI,WAAWl/C,EAAS0sO,EAAOjzO,KAAMq1O,GAGzH,IAAIC,EAAoB,OAAXF,QAA8B,IAAXA,OAAoB,EAASA,EAAOlnL,EAAMhlE,MAE1E,IAAKosP,EACH,MAAM,IAAIlnP,MAAM,UAAUyX,OAAOqoD,EAAMhlE,KAAM,qCAAqC2c,OAAO+5N,EAAQx+K,GAAI,OAGvG,OAAOk0L,EAAO/uO,EAAS0sO,EAAOjzO,KAAMq1O,EACtC,CACA,SAASE,GAAez6M,GACtB,MAAmB,kBAARA,EACF,CACL5xC,KAAM4xC,GAIHA,CACT,CACA,SAAS06M,GAAWC,EAAaC,EAAcC,GAC7C,IAAI9hC,EAAO,WAAa,EAEpB+hC,EAAoC,kBAAhBH,EACpBjiL,EAAOoiL,EAAaH,EAAc,KACtC,MAAO,CACLjxO,OAAQoxO,EAAaH,EAAYjxO,KAAOixO,IAAgB5hC,GAAMn6I,KAAKlG,GACnE/qB,QAASmtM,EAAaH,EAAYhtM,MAAQitM,IAAiB7hC,GAAMn6I,KAAKlG,GACtE/nB,WAAYmqM,EAAaH,EAAYhqM,SAAWkqM,IAAsB9hC,GAAMn6I,KAAKlG,GAErF,CACA,SAASqiL,GAAeC,EAAaxqP,GACnC,MAAO,GAAGua,OAAOiwO,EAAa,gBAAgBjwO,OAAOva,EAAO,IAC9D,CACA,SAASyqP,GAAiB/gJ,GACxB,OAAQA,EAAO9rG,OAAS6mP,IAAS/6I,EAAO9rG,OAASgmD,IAAQ8lD,EAAOtvF,KAAO8pO,GAAewG,WAAqC,kBAAjBhhJ,EAAOuY,KACnH,CG7mBA,IAAI0oI,GAAa,SAAUniK,GACzB,MAA0B,WAAnBA,EAAU5qF,MAAwC,UAAnB4qF,EAAU5qF,IAClD,EACA,SAASgtP,GAAepiK,GACtB,OAAOlkF,OAAO0+C,KAAKwlC,EAAU0/J,QAAQzoP,KAAI,SAAU2D,GACjD,OAAOolF,EAAU0/J,OAAO9kP,EAC1B,GACF,CACA,SAASqjI,GAAYj+C,GACnB,OAAOoiK,GAAepiK,GAAWj3D,QAAO,SAAUm2K,GAChD,MAAmB,YAAZA,EAAG9pM,IACZ,GACF,CACA,SAASitP,GAAiBriK,GACxB,IAAIsiK,EAAa,CAACtiK,GAElB,OAAImiK,GAAWniK,GACNsiK,EAGFA,EAAWvwO,OAAO6nM,GAAQ37E,GAAYj+C,GAAW/oF,IAAIorP,KAC9D,CACA,SAASE,GAAiBC,EAAgBF,GACxC,IAAI/D,EAAKnoP,EAAIqoP,EAAKnoP,EAAImsP,EAAKjsP,EAAIksP,EAAKhsP,EAGhCisP,EAAcC,GADM,IAAI7xL,IAAIyxL,IAE5Bp4C,EAAgB,IAAIr5I,IAAIuxL,GAE5B,IAEE,IAAK,IAAIO,EAAkBjH,GAASxxC,GAAgB04C,EAAoBD,EAAgBnyO,QAASoyO,EAAkBjyO,KAAMiyO,EAAoBD,EAAgBnyO,OAI3J,IAHA,IACIi6B,GADAzxC,EAAI4pP,EAAkB1rP,OAChBkS,OAEHqhC,IAAMy/J,EAAcxwJ,IAAIjP,IAC7By/J,EAAc/3L,IAAIs4B,GAClBA,EAAIA,EAAErhC,MAGZ,CAAE,MAAOk1O,GACPD,EAAM,CACJ5pM,MAAO6pM,EAEX,CAAE,QACA,IACMsE,IAAsBA,EAAkBjyO,OAASza,EAAKysP,EAAgBvhK,SAASlrF,EAAG6U,KAAK43O,EAC7F,CAAE,QACA,GAAItE,EAAK,MAAMA,EAAI5pM,KACrB,CACF,CAEA,IAAIouM,EAAUH,GAAWx4C,GAEzB,IAEE,IAAK,IAAI44C,EAAkBpH,GAASxxC,GAAgB64C,EAAoBD,EAAgBtyO,QAASuyO,EAAkBpyO,KAAMoyO,EAAoBD,EAAgBtyO,OAAQ,CAGnK,GAAe,cAFXxX,EAAI+pP,EAAkB7rP,OAEpBhC,MAAyB2tP,EAAQvjP,IAAItG,IAAO6pP,EAAQvjP,IAAItG,GAAGnC,QAW/D,GAAe,aAAXmC,EAAE9D,KACJ,IACE,IAAK,IAAI2zD,GAAM05L,OAAM,EAAQ7G,GAAS39G,GAAY/kI,KAAM+vD,EAAKF,EAAGr4C,QAASu4C,EAAGp4C,KAAMo4C,EAAKF,EAAGr4C,OAAQ,CAChG,IAAI+kC,EAAQwT,EAAG7xD,MAEVgzM,EAAcxwJ,IAAInE,KACrB20J,EAAc/3L,IAAIojC,GAEdktM,EAAYnjP,IAAIi2C,GAClBktM,EAAYnjP,IAAIi2C,GAAO54C,SAAQ,SAAUqiM,GACvC,OAAOkL,EAAc/3L,IAAI6sL,EAC3B,IAEAzpJ,EAAMytM,kBAAkBrmP,SAAQ,SAAUqiM,GACxC,OAAOkL,EAAc/3L,IAAI6sL,EAC3B,IAGN,CACF,CAAE,MAAOikD,GACPV,EAAM,CACJ9tM,MAAOwuM,EAEX,CAAE,QACA,IACMl6L,IAAOA,EAAGp4C,OAASra,EAAKuyD,EAAGu4B,SAAS9qF,EAAGyU,KAAK89C,EAClD,CAAE,QACA,GAAI05L,EAAK,MAAMA,EAAI9tM,KACrB,CACF,OAvCEguM,EAAYnjP,IAAItG,GAClBypP,EAAYnjP,IAAItG,GAAG2D,SAAQ,SAAUqiM,GACnC,OAAOkL,EAAc/3L,IAAI6sL,EAC3B,IAEAhmM,EAAEgqP,kBAAkBrmP,SAAQ,SAAUqiM,GACpC,OAAOkL,EAAc/3L,IAAI6sL,EAC3B,GAmCN,CACF,CAAE,MAAO0/C,GACPH,EAAM,CACJ9pM,MAAOiqM,EAEX,CAAE,QACA,IACMqE,IAAsBA,EAAkBpyO,OAASva,EAAK0sP,EAAgB1hK,SAAShrF,EAAG2U,KAAK+3O,EAC7F,CAAE,QACA,GAAIvE,EAAK,MAAMA,EAAI9pM,KACrB,CACF,CAEA,IAEE,IAAK,IAAIyuM,EAAkBxH,GAASxxC,GAAgBi5C,EAAoBD,EAAgB1yO,QAAS2yO,EAAkBxyO,KAAMwyO,EAAoBD,EAAgB1yO,OAC3J,KAAIxX,EAGJ,IAFIyxC,GADAzxC,EAAImqP,EAAkBjsP,OAChBkS,OAEHqhC,IAAMy/J,EAAcxwJ,IAAIjP,IAC7By/J,EAAc/3L,IAAIs4B,GAClBA,EAAIA,EAAErhC,MALuB,CAQnC,CAAE,MAAOg6O,GACPZ,EAAM,CACJ/tM,MAAO2uM,EAEX,CAAE,QACA,IACMD,IAAsBA,EAAkBxyO,OAASna,EAAK0sP,EAAgB9hK,SAAS5qF,EAAGuU,KAAKm4O,EAC7F,CAAE,QACA,GAAIV,EAAK,MAAMA,EAAI/tM,KACrB,CACF,CAEA,OAAOy1J,CACT,CAEA,SAASm5C,GAAgBC,EAAUT,GACjC,IAAIU,EAAkBV,EAAQvjP,IAAIgkP,GAElC,IAAKC,EACH,MAAO,CAAC,EAGV,GAAsB,aAAlBD,EAASpuP,KAAqB,CAChC,IAAIsuP,EAAiBD,EAAgB,GAErC,IAAIC,EAKF,MAAO,CAAC,EAJR,GAAIvB,GAAWuB,GACb,OAAOA,EAAe9oP,GAK5B,CAEA,IAAImjP,EAAa,CAAC,EAIlB,OAHA0F,EAAgB5mP,SAAQ,SAAU8mP,GAChC5F,EAAW4F,EAAI/oP,KAAO2oP,GAAgBI,EAAKZ,EAC7C,IACOhF,CACT,CAEA,SAAS6E,GAAWx4C,GAClB,IAAIg1C,EAAKhpP,EAEL2sP,EAAU,IAAIvyL,IAElB,IACE,IAAK,IAAIozL,EAAkBhI,GAASxxC,GAAgBy5C,EAAoBD,EAAgBlzO,QAASmzO,EAAkBhzO,KAAMgzO,EAAoBD,EAAgBlzO,OAAQ,CACnK,IAAIxX,EAAI2qP,EAAkBzsP,MAErB2rP,EAAQnpM,IAAI1gD,IACf6pP,EAAQvkP,IAAItF,EAAG,IAGbA,EAAEoQ,SACCy5O,EAAQnpM,IAAI1gD,EAAEoQ,SACjBy5O,EAAQvkP,IAAItF,EAAEoQ,OAAQ,IAGxBy5O,EAAQvjP,IAAItG,EAAEoQ,QAAQtP,KAAKd,GAE/B,CACF,CAAE,MAAOomP,GACPF,EAAM,CACJzqM,MAAO2qM,EAEX,CAAE,QACA,IACMuE,IAAsBA,EAAkBhzO,OAASza,EAAKwtP,EAAgBtiK,SAASlrF,EAAG6U,KAAK24O,EAC7F,CAAE,QACA,GAAIxE,EAAK,MAAMA,EAAIzqM,KACrB,CACF,CAEA,OAAOouM,CACT,CACA,SAASlmL,GAASinL,EAAU15C,GAE1B,OAAOm5C,GAAgBO,EAAUlB,GADpBL,GAAiB,CAACuB,GAAW15C,IAE5C,CACA,SAASxwJ,GAAI0gB,EAAUl/D,GACrB,OAAItG,MAAMC,QAAQulE,GACTA,EAAS9kE,MAAK,SAAUuuP,GAC7B,OAAOA,IAAW3oP,CACpB,IAGEk/D,aAAoBvJ,KACfuJ,EAAS1gB,IAAIx+C,EAIxB,CAMA,SAAS4oP,GAAe55C,EAAepqH,GACrC,MAAuB,aAAnBA,EAAU5qF,KACL6oI,GAAYj+C,GAAWxqF,MAAK,SAAU0D,GAC3C,MAAkB,UAAXA,EAAE9D,MAAoBwkD,GAAIwwJ,EAAelxM,EAClD,IAGqB,aAAnB8mF,EAAU5qF,MACL6oI,GAAYj+C,GAAW/5C,OAAM,SAAUi5J,GAC5C,OAAO8kD,GAAe55C,EAAelL,EACvC,GAIJ,CAcA,SAAS+kD,GAAyB75C,GAChC,OAAO,IAAIr5I,IAAI6oJ,GAAQxP,EAAcnzM,KAAI,SAAUioM,GACjD,OAAOA,EAAGglD,IACZ,KACF,CC3PA,IAAIC,GAAyBrD,GAAa,CACxC1rP,KAAMmqO,KAER,SAAS6kB,GAAkBC,EAAYC,GACrC,OAAOA,GAAoBA,EAAkBD,SAA2B1lP,CAC1E,CACA,SAAS4lP,GAAerjJ,EAAQojJ,GAC9B,IAAIE,EAEJ,GAAInnI,GAASnc,IAA6B,kBAAXA,EAI3BsjJ,EADE7uL,GAFAmJ,EAAOslL,GAAkBljJ,EAAQojJ,IAGpB,CACblvP,KAAM8rG,EACNpiC,KAAMA,GAECA,GAGM,CACb1pE,KAAM8rG,EACNpiC,UAAMngE,QAGL,GAAIg3D,GAAWurC,GACpBsjJ,EAAe,CAEbpvP,KAAM8rG,EAAOhsG,MAAQgsG,EAAO/jG,WAC5B2hE,KAAMoiC,OAEH,CACL,IAAIpiC,EAEJ,GAAInJ,GAFAmJ,EAAOslL,GAAkBljJ,EAAO9rG,KAAMkvP,IAGxCE,EAAezsP,GAASA,GAAS,CAAC,EAAGmpG,GAAS,CAC5CpiC,KAAMA,SAEH,GAAIA,EAAM,CACf,IAAIulL,EAAavlL,EAAK1pE,MAAQ8rG,EAAO9rG,KACrCovP,EAAezsP,GAASA,GAASA,GAAS,CAAC,EAAG+mE,GAAOoiC,GAAS,CAC5D9rG,KAAMivP,GAEV,MACEG,EAAetjJ,CAEnB,CAEA,OAAOsjJ,CACT,CACA,IAAIC,GAAkB,SAAUvjJ,EAAQojJ,GACtC,OAAKpjJ,GAISnsG,GAAQmsG,GAAUA,EAAS,CAACA,IAC3BjqG,KAAI,SAAUytP,GAC3B,OAAOH,GAAeG,EAAWJ,EACnC,IANS,EAOX,EACA,SAASK,GAAqBzjJ,GAC5B,IAAIsjJ,EAAeD,GAAerjJ,GAClC,OAAOnpG,GAASA,GAAS,CACvBu1D,GAAI+vD,GAASnc,GAAUA,EAASsjJ,EAAal3L,IAC5Ck3L,GAAe,CAChBpvP,KAAMovP,EAAapvP,MAEvB,CAQA,SAAS6mP,GAAMlsJ,EAAO55F,GACpB,MAAO,CACLf,KAAMwvP,GACN70J,MAAwB,oBAAVA,EAAuBA,EAAQ8wJ,GAAc9wJ,GAC3D0pB,MAAOtjH,EAAUA,EAAQsjH,WAAQ96G,EACjC2uD,GAAgB,OAAZn3D,QAAgC,IAAZA,OAAqB,EAASA,EAAQm3D,GAElE,CAkCA,SAASlS,GAAK20C,EAAO55F,GACnB,MAAO,CACLyb,GAAIzb,EAAUA,EAAQyb,QAAKjT,EAC3BvJ,KAAMyvP,GACN90J,MAAOp6B,GAAWo6B,GAASA,EAAQ8wJ,GAAc9wJ,GACjD0pB,MAAOtjH,EAAUA,EAAQsjH,WAAQ96G,EAGjC2uD,GAAIn3D,QAA0BwI,IAAfxI,EAAQm3D,GAAmBn3D,EAAQm3D,GAAKqI,GAAWo6B,GAASA,EAAM76F,KAAO0oP,GAAa7tJ,GAEzG,CA+BA,SAAS+0J,GAAW/0J,EAAO55F,GACzB,OAAOilD,GAAK20C,EAAOh4F,GAASA,GAAS,CAAC,EAAG5B,GAAU,CACjDyb,GAAI8pO,GAAe7yD,SAEvB,CAmBA,SAASk8D,KACP,OAAOD,GAAWtxG,GACpB,CA4CA,IAAIwxG,GAAa,SAAU9jJ,EAAQp6D,EAAKq4M,GACtC,OAAOpnP,GAASA,GAAS,CAAC,EAAGmpG,GAAS,CACpC9pG,MAAOimH,GAASnc,EAAOt0F,MAAQs0F,EAAOt0F,KAAOs0F,EAAOt0F,KAAKk6B,EAAKq4M,EAAOjzO,KAAM,CACzEizO,OAAQA,KAGd,EASIpqB,GAAS,SAAUkwB,GACrB,MAAO,CACL7vP,KAAM8vP,GACND,OAAQA,EAEZ,EAOA,SAASpuP,GAAMsuP,GACb,IAAIC,EAAcT,GAAqBQ,GACvC,MAAO,CACL/vP,KAAMqmP,GAAYM,MAClBoJ,SAAUC,EACVtmL,UAAMngE,EAEV,CAOA,SAAS41B,GAAKi3M,GACZ,IAAI2Z,EAAWxvL,GAAW61K,GAAYA,EAAWmZ,GAAqBnZ,GACtE,MAAO,CACLp2O,KAAMqmP,GAAYO,KAClBmJ,SAAUA,EACVrmL,UAAMngE,EAEV,CAkBA,IAAImR,GAAS,SAAUmwO,GACrB,MAAO,CACL7qP,KAAMiwP,GACNpF,WAAYA,EAEhB,EAYA,SAAS7pM,GAAMkvM,EAAUh4L,GACvB,IAAIi4L,EAAWj4L,EAAK,IAAIv7C,OAAOu7C,GAAM,GACrC,MAAO,GAAGv7C,OAAO0pO,GAAYc,MAAO,KAAKxqO,OAAOuzO,EAAU,KAAKvzO,OAAOwzO,EACxE,CASA,SAAS10O,GAAKy8C,EAAIphD,GAChB,IAAI9W,EAAO,GAAG2c,OAAO0pO,GAAYe,UAAW,KAAKzqO,OAAOu7C,GACpD2zL,EAAc,CAChB7rP,KAAMA,EACN8W,KAAMA,EAGR+0O,SAAuB,WACrB,OAAO7rP,CACT,GAEA,OAAO6rP,CACT,CAWA,SAASuE,GAAWl4L,EAAIphD,GACtB,IAAI9W,EAAO,GAAG2c,OAAO0pO,GAAYgK,WAAY,KAAK1zO,OAAOu7C,GACrD2zL,EAAc,CAChB7rP,KAAMA,EACN8W,KAAMA,EAGR+0O,SAAuB,WACrB,OAAO7rP,CACT,GAEA,OAAO6rP,CACT,CACA,SAAStsM,GAAM2Y,EAAIphD,GACjB,IAAI9W,EAAO,GAAG2c,OAAO0pO,GAAYqB,cAAe,KAAK/qO,OAAOu7C,GACxD2zL,EAAc,CAChB7rP,KAAMA,EACN8W,KAAMA,EAGR+0O,SAAuB,WACrB,OAAO7rP,CACT,GAEA,OAAO6rP,CACT,CAcA,SAASyE,GAAUvtM,EAAQhiD,GACzB,IAAKknP,MAAmBllM,GAA4B,oBAAXA,GAAwB,CAC/D,IAAIwtM,EAAmBxtM,EAEvBA,EAAS,WAGP,IAFA,IAAI37C,EAAO,GAEFyX,EAAK,EAAGA,EAAK9V,UAAUpH,OAAQkd,IACtCzX,EAAKyX,GAAM9V,UAAU8V,GAGvB,IAAI2xO,EAA6C,oBAArBD,EAAkCA,EAAiBzpP,WAAM,EAAQyV,GAAc,GAAI08G,GAAO7xH,IAAO,IAAUmpP,EAEvI,IAAKC,EACH,MAAM,IAAItrP,MAAM,6FAGlB,OAAOsrP,CACT,CACF,CAEA,OAAOxqM,IAAK,SAAU54C,EAAGutF,GACvB,OAAOA,CACT,GAAGh4F,GAASA,GAAS,CAAC,EAAG5B,GAAU,CACjCyb,GAAIumC,IAER,CAmBA,SAAS8kM,GAAO4I,GACd,MAAO,CACLzwP,KAAMqmP,GAAYyB,OAClB2I,MAAOA,EAEX,CAEA,IAAIC,GAAe,SAAUC,GAC3B,IAAIxH,EAAKnoP,EAELypP,EAAgB,GAEpB,IACE,IAAK,IAAImG,EAAiBpK,GAASmK,GAAeE,EAAmBD,EAAet1O,QAASu1O,EAAiBp1O,KAAMo1O,EAAmBD,EAAet1O,OAIpJ,IAHA,IAAIqW,EAAQk/N,EAAiB7uP,MACzBqV,EAAI,EAEDA,EAAIsa,EAAMm/N,QAAQnvP,QACnBgwB,EAAMm/N,QAAQz5O,GAAGrX,OAASiwP,GAM9B54O,KALEozO,EAAc7lP,KAAK+sB,EAAMm/N,QAAQz5O,IACjCsa,EAAMm/N,QAAQxgO,OAAOjZ,EAAG,GAOhC,CAAE,MAAO+xO,GACPD,EAAM,CACJ5pM,MAAO6pM,EAEX,CAAE,QACA,IACMyH,IAAqBA,EAAiBp1O,OAASza,EAAK4vP,EAAe1kK,SAASlrF,EAAG6U,KAAK+6O,EAC1F,CAAE,QACA,GAAIzH,EAAK,MAAMA,EAAI5pM,KACrB,CACF,CAEA,OAAOkrM,CACT,EAEA,SAASsG,GAAera,EAASsa,EAAcC,EAAgBlH,EAAQ4G,EAAcO,EAAiBC,QACxE,IAAxBA,IACFA,GAAsB,GAGxB,IAAI1G,EAAgB0G,EAAsB,GAAKT,GAAaC,GACxDjG,EAAiBD,EAAc9oP,OAAS6oP,GAAcyG,EAAgBlH,EAAQU,EAAeuG,GAAgBC,EAC7GG,EAAoBD,EAAsB,CAACF,QAAkB1nP,EAC7D8nP,EAAqB,GAEzB,SAASC,EAAaC,EAAWnC,GAC/B,IAAIpuP,EAEJ,OAAQouP,EAAapvP,MACnB,KAAKwvP,GAED,IAAIgC,EAnZd,SAAsB1lJ,EAAQp6D,EAAKq4M,EAAQ0H,GACzC,IAIIC,EAJA9nK,EAAO,CACTmgK,OAAQA,GAEN4H,EAAgBjG,GAAanrL,GAAWurC,EAAOnR,OAASmR,EAAOnR,MAAMjpD,EAAKq4M,EAAOjzO,KAAM8yE,GAAQkiB,EAAOnR,OAG1G,GAAIstB,GAASnc,EAAOuY,OAAQ,CAC1B,IAAIutI,EAAcH,GAAaA,EAAU3lJ,EAAOuY,OAChDqtI,EAAgBnxL,GAAWqxL,GAAeA,EAAYlgN,EAAKq4M,EAAOjzO,KAAM8yE,GAAQgoK,CAClF,MACEF,EAAgBnxL,GAAWurC,EAAOuY,OAASvY,EAAOuY,MAAM3yE,EAAKq4M,EAAOjzO,KAAM8yE,GAAQkiB,EAAOuY,MAG3F,OAAO1hH,GAASA,GAAS,CAAC,EAAGmpG,GAAS,CACpC9rG,KAAMwvP,GACNzF,OAAQ4H,EACRttI,MAAOqtI,GAEX,CAgY6BG,CAAazC,EAAc1E,EAAgBX,EAAQrT,EAAQ31O,QAAQ+wP,QAMtF,OAJIZ,GAAiD,kBAAvBM,EAAantI,OACzC6sI,EAAgBM,EAAc9G,EAAgBX,GAGzCyH,EAGX,KAAK/B,GACH,IAAIsC,EAjXZ,SAAqBjmJ,EAAQp6D,EAAKq4M,EAAQ0H,GACxC,IAKIC,EALA9nK,EAAO,CACTmgK,OAAQA,GAGN4H,EAAgBjG,GAAanrL,GAAWurC,EAAOnR,OAASmR,EAAOnR,MAAMjpD,EAAKq4M,EAAOjzO,KAAM8yE,GAAQkiB,EAAOnR,OAG1G,GAAIstB,GAASnc,EAAOuY,OAAQ,CAC1B,IAAIutI,EAAcH,GAAaA,EAAU3lJ,EAAOuY,OAChDqtI,EAAgBnxL,GAAWqxL,GAAeA,EAAYlgN,EAAKq4M,EAAOjzO,KAAM8yE,GAAQgoK,CAClF,MACEF,EAAgBnxL,GAAWurC,EAAOuY,OAASvY,EAAOuY,MAAM3yE,EAAKq4M,EAAOjzO,KAAM8yE,GAAQkiB,EAAOuY,MAG3F,IAAImsI,EAAiBjwL,GAAWurC,EAAOtvF,IAAMsvF,EAAOtvF,GAAGk1B,EAAKq4M,EAAOjzO,KAAM8yE,GAAQkiB,EAAOtvF,GACxF,OAAO7Z,GAASA,GAAS,CAAC,EAAGmpG,GAAS,CACpCtvF,GAAIg0O,EACJzG,OAAQ4H,EACRh3J,MAAOg3J,EAAc76O,KACrButG,MAAOqtI,GAEX,CA2VyBM,CAAY5C,EAAc1E,EAAgBX,EAAQrT,EAAQ31O,QAAQ+wP,QAEnF,IAAK7J,GAAe,CAClB,IAAIgK,EAAkB7C,EAAa/qI,MAEnC/2G,IAAM26G,GAASgqI,IAAgD,kBAArBF,EAAW1tI,MACrD,4CAA4C1nG,OAAOs1O,EAAiB,4BAA4Bt1O,OAAO+5N,EAAQx+K,GAAI,KACrH,CAUA,OARIg5L,GAAmBa,EAAWv1O,KAAO8pO,GAAewG,WACpC,UAAdyE,EACFF,EAAmBzsP,KAAKmtP,GAExBb,EAAgBa,EAAYrH,EAAgBX,IAIzCgI,EAET,KAAKG,GAED,IAAIC,EAAWvC,GAAWR,EAAc1E,EAAgBX,GAExD,OADoB,OAApBmH,QAAgD,IAApBA,GAAsCA,EAAgBiB,EAAUzH,EAAgBX,GACrGoI,EAGX,KAAKC,GAQD,KALIC,EAGI,QAHcrxP,EADHouP,EACqBqB,MAAM9yO,MAAK,SAAUutO,GAC3D,IAAIlmL,EAAQimL,GAAQC,EAAUlvH,KAAM06G,EAAQ31O,QAAQmrP,QACpD,OAAQlnL,GAASinL,GAAcvV,EAAS1xK,EAAO0lL,EAAgBX,EAASmH,OAAiC3nP,EAAfynP,EAC5F,WAAuB,IAAPhwP,OAAgB,EAASA,EAAG8vP,SAG1C,MAAO,GAGT,IAAI5vP,EAAK+3H,GAAO83H,GAAera,EAASsa,EAActG,EAAgBX,EAAQ,CAAC,CAC7E/pP,KAAMuxP,EACNT,QAASzB,GAAgB7tI,GAAQ6wI,GAAiB3b,EAAQ31O,QAAQ+vP,WAChEI,EAAiBC,GAAsB,GACvCmB,EAA4BpxP,EAAG,GAC/BqxP,EAA4BrxP,EAAG,GAInC,OAFAwpP,EAAiB6H,EACK,OAAtBnB,QAAoD,IAAtBA,GAAwCA,EAAkBxsP,KAAK8lP,GACtF4H,EAGX,KAAKE,GAED,IAAIH,EAEJ,KAFIA,EAAiBjD,EAAahlP,IAAIsgP,EAAgBX,EAAOjzO,OAG3D,MAAO,GAGT,IAAI1V,EAAK63H,GAAO83H,GAAera,EAASsa,EAActG,EAAgBX,EAAQ,CAAC,CAC7E/pP,KAAMuxP,EACNT,QAASzB,GAAgB7tI,GAAQ6wI,GAAiB3b,EAAQ31O,QAAQ+vP,WAChEI,EAAiBC,GAAsB,GACvCsB,EAA0BrxP,EAAG,GAC7BsxP,EAAkBtxP,EAAG,GAIzB,OAFAspP,EAAiBgI,EACK,OAAtBtB,QAAoD,IAAtBA,GAAwCA,EAAkBxsP,KAAK8lP,GACtF+H,EAGX,KAAKE,GAEGR,EArSd,SAAqBrmJ,EAAQzuF,EAAS0sO,GACpC,IAAI6I,EAAmBryL,GAAWurC,EAAOikJ,UAAYjkJ,EAAOikJ,SAAS1yO,EAAS0sO,EAAOjzO,MAAQg1F,EAAOikJ,SAChG8C,EAA+C,kBAArBD,EAAgC,CAC5D16L,GAAI06L,GACFA,EAKJ,MAJmB,CACjB5yP,KAAMqmP,GAAYO,KAClBmJ,SAAU8C,EAGd,CA2RyBC,CAAY1D,EAAc1E,EAAgBX,GAEzD,OADoB,OAApBmH,QAAgD,IAApBA,GAAsCA,EAAgBiB,EAAUlB,EAAgBlH,GACrGoI,EAGX,KAAKlC,GAEDvF,EAAiBF,GAAcE,EAAgBX,EAAQ,CAACqF,GAAgB8B,OAAiC3nP,EAAfynP,GACpE,OAAtBI,QAAoD,IAAtBA,GAAwCA,EAAkBxsP,KAAK8lP,GAC7F,MAGJ,QACE,IAAIqI,EAAuB5D,GAAeC,EAAc1Y,EAAQ31O,QAAQ+vP,SACpEkC,EAASD,EAAqBrpL,KAElC,GAAIwnL,EACFA,EAAgB6B,EAAsBrI,EAAgBX,QACjD,GAAIiJ,GAAU5B,EAAmB,CACtC,IAAI6B,EAAiB7B,EAAkBzvP,OAAS,EAE5CuxP,EAAUvwP,GAASA,GAAS,CAAC,EAAGowP,GAAuB,CACzDrpL,KAAM,SAAUypL,GAGd,IAFA,IAAI/rP,EAAO,GAEFyX,EAAK,EAAGA,EAAK9V,UAAUpH,OAAQkd,IACtCzX,EAAKyX,EAAK,GAAK9V,UAAU8V,GAG3Bm0O,EAAOlsP,WAAM,EAAQyV,GAAc,CAAC60O,EAAkB6B,IAAkBh6H,GAAO7xH,IAAO,GACxF,IAGF2rP,EAAuBG,CACzB,CAEA,OAAOH,EAEb,CAmCA,IAAIK,EAAkB5uC,GAAQmsC,EAAa9uP,KAjC3C,SAAsB8vB,GACpB,IAAI03N,EAAKroP,EAELoyP,EAAkB,GAEtB,IACE,IAAK,IAAIlyP,EAAKslP,GAAS70N,EAAMm/N,SAAU1vP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CAC/E,IAAIwwF,EAAS1qG,EAAGY,MACZmwP,EAAWb,EAAa3/N,EAAM3xB,KAAM8rG,GAEpCqmJ,IACFiB,EAAkBA,EAAgBz2O,OAAOw1O,GAE7C,CACF,CAAE,MAAO3I,GACPH,EAAM,CACJ9pM,MAAOiqM,EAEX,CAAE,QACA,IACMpoP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAImoP,EAAK,MAAMA,EAAI9pM,KACrB,CACF,CAMA,OAJA8xM,EAAmB5pP,SAAQ,SAAUqkG,GACnColJ,EAAgBplJ,EAAQ4+I,EAAgBX,EAC1C,IACAsH,EAAmB1vP,OAAS,EACrByxP,CACT,KAGA,MAAO,CAACA,EAAiB1I,EAC3B,CCpoBA,SAAS2I,GAAiBvtP,EAAGC,GAC3B,GAAID,IAAMC,EACR,OAAO,EAGT,QAAUwD,IAANzD,QAAyByD,IAANxD,EACrB,OAAO,EAGT,GAAIkiH,GAASniH,IAAMmiH,GAASliH,GAC1B,OAAOD,IAAMC,EAGf,IAAIutP,EAAQ5sP,OAAO0+C,KAAKt/C,GACpBytP,EAAQ7sP,OAAO0+C,KAAKr/C,GACxB,OAAOutP,EAAM3xP,SAAW4xP,EAAM5xP,QAAU2xP,EAAMziN,OAAM,SAAUrrC,GAC5D,OAAO6tP,GAAiBvtP,EAAEN,GAAMO,EAAEP,GACpC,GACF,CACA,SAASguP,GAAc/iJ,GACrB,MAAqB,kBAAVA,GAAgC,OAAVA,IAI1B,UAAWA,GAAS,WAAYA,EACzC,CAsBA,IAAIgjJ,GAIJ,WAaE,SAASA,EAAMrmH,GACb,IAEIpsI,EFwKSg0M,EE1KTp/J,EAAQ3vC,KAIZA,KAAK6qP,QAAU,GACf7qP,KAAKytP,WAAajN,GAClBxgP,KAAK2jF,KAAO,CAAC,EACb3jF,KAAK+oL,OAAS,GACd/oL,KAAKjE,MAAQorI,EAAOprI,MACpBiE,KAAKoX,QAAU+vH,EAAO/vH,QACtBpX,KAAK8jP,OAAS38G,EAAO28G,OACrB9jP,KAAK0tP,WAAavmH,EAAOumH,WACzB1tP,KAAK00F,MAAQ10F,KAAK8jP,OAAOjzO,KACzB7Q,KAAK2tP,aAAexmH,EAAOwmH,aAC3B3tP,KAAKm3H,QAAUgQ,EAAOhQ,QACtBn3H,KAAK6qP,QAAU1jH,EAAO0jH,SAAW,GACjC7qP,KAAKytP,WAAatmH,EAAOsmH,YAAcjN,GACvCxgP,KAAK2jF,WF0Je,KADPorH,EEzJO5nE,EAAO4nE,iBF2J3BA,EAAgB,IAGXA,EAAc9yM,QAAO,SAAU2gC,EAAK+nD,GAKzC,YAJuBrhF,IAAnBqhF,EAAUhB,OACZ/mD,EAAI+nD,EAAU1yB,IAAM0yB,EAAUhB,MAGzB/mD,CACT,GAAG,CAAC,IEnKF58B,KAAK+oL,OAAS5hD,EAAO4hD,QAAU,GAC/B/oL,KAAKkP,QAAUlP,KAAKkP,QAAQq7D,KAAKvqE,MACjCA,KAAK4tP,UAAY5tP,KAAK4tP,UAAUrjL,KAAKvqE,MACrCA,KAAK+uM,cAAgB5nE,EAAO4nE,cAC5B/uM,KAAKktG,YAAci6B,EAAOj6B,YAC1BltG,KAAK4/E,SAAWunD,EAAOvnD,SACvB5/E,KAAKwV,OAAS2xH,EAAO3xH,KACrBxV,KAAK6oP,KAAkF,QAA1E9tP,EAAKtB,MAAMC,QAAQytI,EAAO0hH,MAAQ,IAAInzL,IAAIyxE,EAAO0hH,MAAQ1hH,EAAO0hH,YAAyB,IAAP9tP,EAAgBA,EAAK,IAAI26D,IACxH11D,KAAKywO,QAAUtpG,EAAOspG,QACtBhwO,OAAOwsC,eAAejtC,KAAM,aAAc,CACxCmE,IAAK,WACH,OFyHR,SAAoB4qM,GAClB,OAAOz4L,GAAc,GAAI08G,GAAO,IAAIt9D,IAAI6oJ,GAAQjoM,GAAc,GAAI08G,GAAO+7E,EAAcnzM,KAAI,SAAUioM,GACnG,OAAOA,EAAGgqD,SACZ,MAAK,OAAW,EAClB,CE7HeC,CAAWn+M,EAAMo/J,cAC1B,GAEJ,CAsKA,OA9JAy+C,EAAM7+O,KAAO,SAAU+zO,EAAYtrO,GACjC,OAAIsrO,aAAsB8K,EACpB9K,EAAWtrO,UAAYA,EAClB,IAAIo2O,EAAM,CACfzxP,MAAO2mP,EAAW3mP,MAClBqb,QAASA,EACT0sO,OAAQpB,EAAWoB,OACnB4J,WAAY,KACZC,aAAcjL,EAAWiL,aACzBx2H,QAASurH,EAAWvrH,QACpB0zH,QAAS,GACT4C,WAAY/K,EAAW+K,WACvB9pK,KAAM,CAAC,EACPolG,OAAQ,GACRgmB,cAAe,GACf7hG,YAAa,GACbttB,SAAU,CAAC,IAIR8iK,EAIF,IAAI8K,EAAM,CACfzxP,MAAO2mP,EACPtrO,QAASA,EACT0sO,OAJWgF,GAKX4E,WAAY,KACZC,kBAAcrqP,EACd6zH,aAAS7zH,EACTunP,QAAS,GACT4C,gBAAYnqP,EACZqgF,UAAMrgF,EACNylL,OAAQ,GACRgmB,cAAe,GACf7hG,YAAa,GACbttB,SAAU,CAAC,GAEf,EAOA4tK,EAAM5sP,OAAS,SAAUumI,GACvB,OAAO,IAAIqmH,EAAMrmH,EACnB,EAQAqmH,EAAMO,MAAQ,SAAUrL,EAAYtrO,GAClC,GAAIsrO,aAAsB8K,EAAO,CAC/B,IAAK9K,EAAWmI,QAAQnvP,OACtB,OAAOgnP,EAGT,IAAIoB,EAASgF,GACb,OAAO,IAAI0E,EAAM,CACfzxP,MAAO2mP,EAAW3mP,MAClBqb,QAASA,EACT0sO,OAAQA,EACR4J,WAAY,KACZC,aAAcjL,EAAWiL,aACzBx2H,QAASurH,EAAWvrH,QACpBs2H,WAAY/K,EAAW+K,WACvB1+C,cAAe2zC,EAAW3zC,cAC1B7hG,YAAa,GACbttB,SAAU,CAAC,GAEf,CAEA,OAAO4tK,EAAM7+O,KAAK+zO,EAAYtrO,EAChC,EAQAo2O,EAAMjsP,UAAUqsP,UAAY,SAAUlL,EAAYpnP,GAChD,IAAIq0C,EAAQ3vC,KAUZ,QARmB,IAAf0iP,IACFA,EAAa1iP,KAAKjE,YAGF,IAAdT,IACFA,EAAY,KAGV0mH,GAAS0gI,GACX,MAAO,CAACA,GAGV,IAAIsL,EAAYvtP,OAAO0+C,KAAKujM,GAC5B,OAAOsL,EAAUt3O,OAAO7V,MAAMmtP,EAAW13O,GAAc,GAAI08G,GAAOg7H,EAAUpyP,KAAI,SAAU2D,GACxF,OAAOowC,EAAMi+M,UAAUlL,EAAWnjP,GAAMjE,GAAWM,KAAI,SAAUiC,GAC/D,OAAO0B,EAAMjE,EAAYuC,CAC3B,GACF,MAAK,GACP,EAEA2vP,EAAMjsP,UAAUorN,OAAS,WACvB,IAAI5xN,EAAKiF,KACLjF,EAAGg0M,cACHh0M,EAAGmyG,YACH,IAAI27I,EAAO9tP,EAAG8tP,KACd9tP,EAAG01O,QACH,IAAIwd,EAAa3N,GAAOvlP,EAAI,CAAC,gBAAiB,cAAe,OAAQ,YAEzE,OAAO2B,GAASA,GAAS,CAAC,EAAGuxP,GAAa,CACxCpF,KAAMpvP,MAAMkV,KAAKk6O,IAErB,EAEA2E,EAAMjsP,UAAU2N,QAAU,SAAUkzO,GAClC,OAAOH,GAAaG,EAAkBpiP,KAAKjE,MAC7C,EAOAyxP,EAAMjsP,UAAUuxO,OAAS,SAAUt/N,GACjC,OAAOxT,KAAK6oP,KAAKtqM,IAAI/qC,EACvB,EAWAg6O,EAAMjsP,UAAU2sP,IAAM,SAAUx5J,GAC9B,IAAI35F,EAEAinP,IACF36O,KAAOrH,KAAKywO,QAAS,iGAGvB,IAAI0d,EAAyC,QAAvBpzP,EAAKiF,KAAKywO,eAA4B,IAAP11O,OAAgB,EAASA,EAAGqzP,kBAAkBpuP,KAAM00F,GACzG,SAA6B,OAAnBy5J,QAA8C,IAAnBA,OAA4B,EAASA,EAAejhJ,YAAYxxG,SACrGyyP,EAAejhJ,YAAY/yG,MAAK,SAAUsF,GACxC,YAAoB6D,IAAb7D,EAAEq9C,QAAwBr9C,EAAEorP,QAAQnvP,MAC7C,GACF,EAEO8xP,CACT,CArNA,GCxDIhvI,GAAiB,CACnB6vI,aAAa,GAGXC,GAIJ,WACE,SAASA,EAAUxzP,GACjBkF,KAAKuuP,iBAAkB,EACvBvuP,KAAKN,MAAQ,GACbM,KAAK+hI,aAAc,EACnB/hI,KAAKlF,QAAU4B,GAASA,GAAS,CAAC,EAAG8hH,IAAiB1jH,EACxD,CA2DA,OAzDAwzP,EAAU/sP,UAAUyzE,WAAa,SAAU3V,GAGzC,GAFAr/D,KAAK+hI,aAAc,EAEf1iE,EAAU,CACZ,IAAKr/D,KAAKlF,QAAQuzP,YAEhB,YADAruP,KAAKwuP,SAASnvL,GAIhBr/D,KAAK+jE,QAAQ1E,EACf,CAEAr/D,KAAKyuP,aACP,EAEAH,EAAU/sP,UAAUitP,SAAW,SAAU37F,GACvC,GAAK7yJ,KAAK+hI,cAAe/hI,KAAKuuP,gBAA9B,CAKA,GAA0B,IAAtBvuP,KAAKN,MAAMhE,OACb,MAAM,IAAIuD,MAAM,gEAGlBe,KAAK+jE,QAAQ8uF,GACb7yJ,KAAKyuP,aAPL,MAFEzuP,KAAKN,MAAMf,KAAKk0J,EAUpB,EAEAy7F,EAAU/sP,UAAUqzD,MAAQ,WAC1B50D,KAAKN,MAAQ,EACf,EAEA4uP,EAAU/sP,UAAUktP,YAAc,WAGhC,IAFA,IAAIC,EAAe1uP,KAAKN,MAAMQ,QAEvBwuP,GACL1uP,KAAK+jE,QAAQ2qL,GACbA,EAAe1uP,KAAKN,MAAMQ,OAE9B,EAEAouP,EAAU/sP,UAAUwiE,QAAU,SAAU1E,GACtCr/D,KAAKuuP,iBAAkB,EAEvB,IACElvL,GACF,CAAE,MAAO/pD,IAIP,MADAtV,KAAK40D,QACCt/C,EACR,CAAE,QACAtV,KAAKuuP,iBAAkB,CACzB,CACF,EAEOD,CACT,CAlEA,GCNIK,GAAe,GACfC,GAAU,SAAUx5G,EAASxgB,GAC/B+5H,GAAahwP,KAAKy2I,GAClB,IAAI75I,EAASq5H,EAAGwgB,GAEhB,OADAu5G,GAAa9vP,MACNtD,CACT,EACIszP,GAAU,SAAUj6H,GACtB,OAAOA,EAAG+5H,GAAaA,GAAajzP,OAAS,GAC/C,ECTA,SAASozP,GAAgB78L,GACvB,IAAIl3D,EAEJ,OAAOA,EAAK,CACVk3D,GAAIA,EACJlS,KAAM,WAEN,EACAqxH,UAAW,WACT,MAAO,CACLC,YAAa,WAEb,EAEJ,EACA9qE,YAAa,WAEb,EACAomH,OAAQ,WACN,MAAO,CACL16J,GAAIA,EAER,IACIkzL,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,CACL,CAmBA,SAASg0P,GAAoBC,EAAQ/8L,EAAIphD,GACvC,IAAIo+O,EAAYH,GAAgB78L,GAIhC,GAFAg9L,EAAUC,UAAW,EAEjB7J,GAAU2J,GAAS,CAErB,IAAIG,EAAiBF,EAAUzkJ,MAAQokJ,QAAQtrP,GAAW,WACxD,OAAQuN,EAAOm+O,EAAOI,YAAYv+O,GAAQm+O,GAAQprC,YACpD,IAEAqrC,EAAU1oJ,YAAc,WACtB,OAAO4oJ,CACT,CACF,CAEA,OAAOF,CACT,CClEA,IAAIrvK,GAAwB,IAAIzqB,IAC5Bk6L,GAAiB,EACjBC,GACM,WACN,MAAO,KAAK54O,OAAO24O,KACrB,EAHEC,GAIQ,SAAUr9L,EAAIs+K,GAEtB,OADA3wJ,GAASz8E,IAAI8uD,EAAIs+K,GACVt+K,CACT,EAPEq9L,GAQG,SAAUr9L,GACb,OAAO2tB,GAASz7E,IAAI8tD,EACtB,EAVEq9L,GAWI,SAAUr9L,GACd2tB,GAAS2K,OAAOt4B,EAClB,ECbF,SAAS5rD,KACP,MAA0B,qBAAf8tH,WACFA,WAGW,qBAAT9vD,KACFA,KAGa,qBAAX/9D,OACFA,OAGa,qBAAX46D,EAAAA,EACFA,EAAAA,OAGJ8gL,IACH56O,QAAQC,KAAK,kKAEjB,CAYA,SAASkoP,GAAgBn6G,GACvB,GAAK/uI,KAAL,CAIA,IAAImpP,EAfN,WACE,IAAItuL,EAAS76D,KAEb,GAAI66D,GAAU,eAAgBA,EAC5B,OAAOA,EAAOuuL,UAIlB,CAOiBC,GAEXF,GACFA,EAASG,SAASv6G,EALpB,CAOF,CC4BA,SAASw6G,GAAcC,EAAU/0P,QACf,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI0vG,EAAQqlJ,EAASjsC,aACjBksC,EAAY,IAAIp6L,IAChBq6L,EAAU,GACVC,GAAW,EAoBXzf,EHtBN,SAAoB0f,GAClB,IAAIl1P,EAEJ,OAAO2B,KAAU3B,EAAK,CACpBq2K,UAAW,WACT,MAAO,CACLC,YAAa,WAEb,EAEJ,EACAp/G,GAAI,YACJs0C,YAAa,WAEb,IACI4+I,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,GAAKk1P,EACV,CGIcC,CAAW,CACrBj+L,GAAIn3D,EAAQm3D,GACZlS,KAAM,SAAU20C,GACdq7J,EAAQpxP,KAAK+1F,GArBL,WACV,IAAIs7J,EAAJ,CAMA,IAFAA,GAAW,EAEJD,EAAQr0P,OAAS,GAAG,CACzB,IAAIy0P,EAAUJ,EAAQ7vP,QACtBsqG,EAAQqlJ,EAAS/jK,WAAW0e,EAAO2lJ,EAASC,GAC5CN,EAAUtuP,SAAQ,SAAU6uP,GAC1B,OAAOA,EAASh7O,KAAKm1F,EACvB,GACF,CAEAwlJ,GAAW,CAZX,CAaF,CAMIn7B,EACF,EACAtuH,YAAa,WACX,OAAOiE,CACT,EACA4mE,UAAW,SAAU/7J,EAAMi7O,EAAah0M,GACtC,IAAI+zM,EAAWhK,GAAWhxO,EAAMi7O,EAAah0M,GAG7C,OAFAwzM,EAAU94O,IAAIq5O,GACdA,EAASh7O,KAAKm1F,GACP,CACL6mE,YAAa,WACXy+E,EAAUvlK,OAAO8lK,EACnB,EAEJ,IAEED,EAAW,CACbniP,OAAQnT,EAAQmT,OAChBo2D,KAAMksK,EACNt+K,GAAIn3D,EAAQm3D,IAAM,YAClB69L,UAAWA,GAGb,OADAtlJ,EAAQqlJ,EAASr0P,MAAQq0P,EAASr0P,MAAM40P,GAAY5lJ,EAC7C+lI,CACT,CClHA,IAIIggB,GAJAC,GAAwB,CAC1BC,MAAM,EACNC,aAAa,IAIf,SAAWH,GACTA,EAAkBA,EAA8B,WAAI,GAAK,aACzDA,EAAkBA,EAA2B,QAAI,GAAK,UACtDA,EAAkBA,EAA2B,QAAI,GAAK,SACvD,CAJD,CAIGA,KAAsBA,GAAoB,CAAC,IAE9C,IAAII,GAIJ,WAOE,SAASA,EAAYlgB,EAAS31O,QACZ,IAAZA,IACFA,EAAU61P,EAAYnyI,gBAGxB,IAAI7uE,EAAQ3vC,KAEZA,KAAKywO,QAAUA,EACfzwO,KAAK4wP,iBAAmB,CAAC,EACzB5wP,KAAK20F,UAAY,IAAIj/B,IACrB11D,KAAK6wP,iBAAmB,IAAIn7L,IAC5B11D,KAAK8wP,cAAgB,IAAIp7L,IACzB11D,KAAK+wP,cAAgB,IAAIr7L,IACzB11D,KAAKgxP,eAAiB,IAAIt7L,IAC1B11D,KAAKixP,cAAgB,IAAIv7L,IAKzB11D,KAAK+hI,aAAc,EACnB/hI,KAAKq/C,OAASkxM,GAAkBW,WAChClxP,KAAK4/E,SAAW,IAAIzqB,IACpBn1D,KAAKqqP,UAAY,IAAI30L,IACrB11D,KAAKmxP,eAAiB,GAKtBnxP,KAAKkkO,KAAOlkO,KAAKxE,MAWjBwE,KAAK+/C,KAAO,SAAU20C,EAAOsO,GAC3B,GAAItpG,GAAQg7F,GAGV,OAFA/kD,EAAMwvK,MAAMzqH,GAEL/kD,EAAM66D,MAGf,IAAIs5I,EAAS2B,GAAaD,GAAc9wJ,EAAOsO,IAE/C,GAAIrzD,EAAM0P,SAAWkxM,GAAkBa,QAMrC,OAJKpP,IACH36O,IAAK,EAAO,UAAWqP,OAAOotO,EAAOjqP,KAAM,mCAAqC6c,OAAOi5B,EAAM8gM,QAAQx+K,GAAI,0FAA2Fv7C,OAAOihG,KAAKC,UAAUksI,EAAOjzO,QAG5N8+B,EAAM66D,MAGf,GAAI76D,EAAM0P,SAAWkxM,GAAkBc,UAAY1hN,EAAM70C,QAAQuzP,YAC/D,MAAM,IAAIpvP,MAAM,UAAWyX,OAAOotO,EAAOjqP,KAAM,yCAA2C6c,OAAOi5B,EAAM8gM,QAAQx+K,GAC7G,mHAAoHv7C,OAAOihG,KAAKC,UAAUksI,EAAOjzO,QAYrJ,OATA8+B,EAAM2hN,UAAU9C,UAAS,WAEvB7+M,EAAM4hN,QAAQzN,GAEd,IAAI0N,EAAY7hN,EAAM8hN,WAAW3N,GAEjCn0M,EAAMwoG,OAAOq5G,EAAW1N,EAC1B,IAEOn0M,EAAM+hN,MAEf,EAEA1xP,KAAK2xP,OAAS,SAAUj9J,EAAOn+E,EAAIq7O,GACjC,IZ6YW71P,EY7YP81P,EAAWliN,EAAM1hC,SAAWsI,IAAO8pO,GAAe7yD,QAAU79I,EAAM1hC,OAAOgkD,KAAO17C,GAChFumC,EAAS+0M,EAAWliN,EAAM1hC,OAAS+zG,GAASzrG,GAAMA,IAAO8pO,GAAewG,SAAWl3M,EAAQA,EAAMiwC,SAASz7E,IAAIoS,IAAO+4O,GAAa/4O,IZ4Y3Hxa,EY5YyIwa,IZ6YhH,oBAAfxa,EAAMgkD,KY7Y+HxpC,OAAKjT,EAE/J,GAAKw5C,EAaL,GAAI,YAAaA,GAGf,GAAInN,EAAM0P,SAAWkxM,GAAkBa,SAAWzhN,EAAM1hC,SAAW6uC,GACnEnN,EAAM66D,MAAMh1F,KAAM,CAEhB,IAAIkwO,EAAahpP,GAASA,GAAS,CAAC,EAAGg4F,GAAQ,CAC7C76F,KAAM66F,EAAM76F,OAASi4P,GAAU,GAAGp7O,OAAO4iC,GAAM3J,EAAMsiB,KAAOyiC,EAAM76F,KAClE29H,OAAQ7nF,EAAMgtH,aAGXi1F,GAAajiN,EAAM8gM,QAAQtpG,OAAO4qH,2BACrCpiN,EAAMwhN,eAAexyP,KAAK,CAACm+C,EAAQ4oM,IAEnC5oM,EAAOiD,KAAK2lM,EAEhB,OAGKkM,GAAajiN,EAAM8gM,QAAQtpG,OAAO4qH,2BACrCpiN,EAAMwhN,eAAexyP,KAAK,CAACm+C,EAAQ43C,EAAM7jF,OAEzCisC,EAAOiD,KAAK20C,EAAM7jF,UAnCtB,CACE,IAAKghP,EACH,MAAM,IAAI5yP,MAAM,kCAAkCyX,OAAOH,EAAI,oBAAoBG,OAAOi5B,EAAMsiB,GAAI,OAI/F+vL,IACH36O,IAAK,EAAO,YAAYqP,OAAOi5B,EAAMsiB,GAAI,0CAA0Cv7C,OAAOg+E,EAAM36F,MAIpG,CA2BF,EAEAiG,KAAKgyP,MAAQ,SAAUnsJ,EAAQzuF,EAAS0sO,EAAQmF,QACpB,IAAtBA,IACFA,EAAoBt5M,EAAM8gM,QAAQ31O,QAAQ+vP,SAG5C,IAAIoH,EAAepsJ,EAAOpiC,MAAQslL,GAAkBljJ,EAAO9rG,KAAMkvP,GAC7DxlL,EAAOnJ,GAAW23L,GAAgBA,EAAeA,EAAeA,EAAaxuL,KAAOoiC,EAAOpiC,KAE/F,GAAIA,EACF,IACE,OAAOA,EAAKrsD,EAAS0sO,EAAOjzO,KAAO8+B,EAAM8gM,QAAQtpG,OAAO4qH,2BAIpD,CACFlsJ,OAAQA,EACRi+I,OAAQA,GAN2E,CACnFj+I,OAAQA,EACR2E,MAAO76D,EAAM66D,MACbs5I,OAAQA,GAKZ,CAAE,MAAO/6K,GAQP,MAPIp5B,EAAM1hC,QACR0hC,EAAM1hC,OAAO8xC,KAAK,CAChBhmD,KAAM,eACN8W,KAAMk4D,IAIJA,CACR,CAGF,OAAQ88B,EAAO9rG,MACb,KAAK6mP,GAGD,IAAIsR,EAAersJ,EAEnBl2D,EAAMwiN,MAAMD,GAEZ,MAGJ,KAAKnyM,GACH,IAAI+rM,EAAajmJ,EAEjB,GAAgC,kBAArBimJ,EAAW1tI,MAGpB,YAFAzuE,EAAMwiN,MAAMrG,GAIRA,EAAWv1O,GACbo5B,EAAMgiN,OAAO7F,EAAWhI,OAAQgI,EAAWv1O,GAAIutO,IAAWgF,IAE1Dn5M,EAAMoQ,KAAK+rM,EAAWhI,QAI1B,MAEF,KAAKpqB,GACH/pL,EAAM+pL,OAAO7zH,EAAO+jJ,QAEpB,MAEF,KAAKpuP,GAED,GAAIm0C,EAAM0P,SAAWkxM,GAAkBc,QACrC,OAGF,IAAIvH,EAAWjkJ,EAAOikJ,SAItB,IACCn6M,EAAM8gM,QAAQtpG,OAAO4qH,6BAA+BpiN,EAAM66D,MAAMijJ,WAAW3D,EAAS73L,IAAM63L,EAAS/vP,MAClG,MAIF,GAAI+vP,EAAS/vP,OAASqmP,GAAYkB,OAAQ,CACxC,IAAI8Q,EAAehM,GAAe0D,EAASn+M,KACvC0mN,EAAiB1iN,EAAM8gM,QAAQ31O,QAAQw3P,SAAW3iN,EAAM8gM,QAAQ31O,QAAQw3P,SAASF,EAAar4P,WAAQuJ,EACtG2uD,EAAK63L,EAAS73L,GACdphD,EAAOi5O,EAASj5O,KAEfmxO,IACH36O,KAAO,YAAayiP,GACpB,6DAA6DpzO,OAAOozO,EAASn+M,IAAK,qBAAqBj1B,OAAOi5B,EAAM8gM,QAAQx+K,GAAI,QAAU,qCAG5I,IAAIy+L,EAAc,gBAAiB5G,EAAWA,EAAS4G,cAAgB5G,EAASyH,QAEhF,IAAKc,EAMH,YAJKrQ,IACH36O,IAAK,EAAO,oCAAoCqP,OAAOozO,EAASn+M,IAAK,kBAAkBj1B,OAAOi5B,EAAM8gM,QAAQx+K,GAAI,QAMpH,IAAIsgM,EAAe1hP,EAAO+yO,GAAW/yO,EAAMuG,EAAS0sO,QAAUxgP,EAE9D,GAA8B,kBAAnB+uP,EAET,OAGF,IAAIp4L,EAASK,GAAW+3L,GAAkBA,EAAej7O,EAAS0sO,EAAOjzO,KAAM,CAC7EA,KAAM0hP,EACN5mN,IAAKymN,EACLzuK,KAAMmmK,EAASnmK,OACZ0uK,EAEL,IAAKp4L,EAEH,OAGF,IAAIn/D,OAAU,EAEVuqP,GAAUprL,KACZA,EAASs4L,EAAet4L,EAAOm1L,YAAYmD,GAAgBt4L,EAC3Dn/D,EAAU,CACR41P,YAAaA,IAIjB/gN,EAAM6iN,MAAMv4L,EAAQhI,EAAIn3D,EAC1B,MACE60C,EAAM8iN,cAAc3I,GAGtB,MAGJ,KAAK5wN,GAEDyW,EAAM+iN,UAAU7sJ,EAAOikJ,SAAS73L,IAEhC,MAGJ,KAAK4b,GACH,IAAI9yE,EAAK8qG,EACL/vF,EAAQ/a,EAAG+a,MACX/Z,EAAQhB,EAAGgB,MAEX+Z,EACF65B,EAAMqI,OAAOliC,EAAO/Z,GAEpB4zC,EAAMqI,OAAOj8C,GAGf,MAEF,QACOimP,IACH36O,IAAK,EAAO,4CAA4CqP,OAAOmvF,EAAO9rG,KAAM,MAKpF,EAEA,IAAI44P,EAAkBj2P,GAASA,GAAS,CAAC,EAAGi0P,EAAYnyI,gBAAiB1jH,GAErE83P,EAAQD,EAAgBC,MACxB56M,EAAS26M,EAAgB36M,OACzB/pC,EAAS0kP,EAAgB1kP,OACzBgkD,EAAK0gM,EAAgB1gM,GACrB4gM,OAAoBvvP,IAAP2uD,EAAmBA,EAAKw+K,EAAQx+K,GACjDjyD,KAAKiyD,GAAK4gM,EACV7yP,KAAKg4C,OAASA,EACdh4C,KAAK4yP,MAAQA,EACb5yP,KAAKiO,OAASA,EACdjO,KAAKlF,QAAU63P,EACf3yP,KAAKsxP,UAAY,IAAIhD,GAAU,CAC7BD,YAAaruP,KAAKlF,QAAQuzP,cAE5BruP,KAAK28J,UAAY2yF,IACnB,CAinCA,OA/mCA7uP,OAAOwsC,eAAe0jN,EAAYpvP,UAAW,eAAgB,CAC3D4C,IAAK,WACH,IAAIwrC,EAAQ3vC,KAEZ,OAAIA,KAAK8yP,cACA9yP,KAAK8yP,cAGPlE,GAAQ5uP,MAAM,WAEnB,OADA2vC,EAAMmjN,cAAgBnjN,EAAM8gM,QAAQ7sB,aAC7Bj0K,EAAMmjN,aACf,GACF,EACAzoP,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAe0jN,EAAYpvP,UAAW,QAAS,CAIpD4C,IAAK,WAKH,OAJK69O,IACH36O,GAAKrH,KAAKq/C,SAAWkxM,GAAkBW,WAAY,uDAAuDx6O,OAAO1W,KAAKiyD,GAAI,+CAGrHjyD,KAAK0xP,MACd,EACArnP,YAAY,EACZD,cAAc,IAShBumP,EAAYpvP,UAAUwxP,QAAU,SAAUvoJ,EAAOwoJ,GAC/C,IAAI9P,EAAKnoP,EAET,IACE,IAAK,IAAIE,EAAKslP,GAAS/1I,EAAMqgJ,SAAU1vP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CAC/E,IAAIwwF,EAAS1qG,EAAGY,MAChBiE,KAAKyjE,KAAKoiC,EAAQ2E,EAAOwoJ,EAC3B,CACF,CAAE,MAAO7P,GACPD,EAAM,CACJ5pM,MAAO6pM,EAEX,CAAE,QACA,IACMhoP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAIioP,EAAK,MAAMA,EAAI5pM,KACrB,CACF,CACF,EAEAq3M,EAAYpvP,UAAU42I,OAAS,SAAU3tC,EAAOs5I,GAC9C,IAAIV,EAAKroP,EAAIqsP,EAAKnsP,EAAIosP,EAAKlsP,EAAI4oP,EAAK1oP,EAEhCs0C,EAAQ3vC,KAOZ,GAJAwqG,EAAMkjJ,WAAa1tP,KAAK28J,UAExB38J,KAAK0xP,OAASlnJ,EAERxqG,KAAKywO,QAAQtpG,OAAO4qH,4BAE1BjO,IAAWgF,KAAc9oP,KAAKlF,QAAQi4P,QAKpC,IAFA,IAAIhzP,OAAO,EAEJA,EAAOC,KAAKmxP,eAAejxP,SAChCH,EAAK,GAAGggD,KAAKhgD,EAAK,SALpBC,KAAK+yP,QAAQ/yP,KAAKwqG,OAmBpB,GATAxqG,KAAK4/E,SAASp+E,SAAQ,SAAU44C,GAC9BzK,EAAM66D,MAAM5qB,SAASxlC,EAAM6X,IAAM7X,CACnC,IAEIp6C,KAAKwvP,UACPxvP,KAAKwvP,SAASzvM,KAAK+jM,EAAOjzO,KAAM25F,GAI9BA,EAAM9V,MACR,IACE,IAAK,IAAIhnC,EAAK6yL,GAASvgP,KAAKgxP,gBAAiBpjM,EAAKF,EAAGr4C,QAASu4C,EAAGp4C,KAAMo4C,EAAKF,EAAGr4C,OAAQ,EACjFikF,EAAW1rC,EAAG7xD,OACTyuG,EAAM9V,MACjB,CACF,CAAE,MAAO6uJ,GACPH,EAAM,CACJ9pM,MAAOiqM,EAEX,CAAE,QACA,IACM31L,IAAOA,EAAGp4C,OAASza,EAAK2yD,EAAGu4B,SAASlrF,EAAG6U,KAAK89C,EAClD,CAAE,QACA,GAAI01L,EAAK,MAAMA,EAAI9pM,KACrB,CACF,CAGF,IACE,IAAK,IAAIqU,EAAK4yL,GAASvgP,KAAK20F,WAAY7mC,EAAKH,EAAGt4C,QAASy4C,EAAGt4C,KAAMs4C,EAAKH,EAAGt4C,OAAQ,EAC5EikF,EAAWxrC,EAAG/xD,OACTyuG,EAAOA,EAAM9V,MACxB,CACF,CAAE,MAAOozJ,GACPV,EAAM,CACJ9tM,MAAOwuM,EAEX,CAAE,QACA,IACMh6L,IAAOA,EAAGt4C,OAASva,EAAK0yD,EAAGs4B,SAAShrF,EAAG2U,KAAK+9C,EAClD,CAAE,QACA,GAAIy5L,EAAK,MAAMA,EAAI9tM,KACrB,CACF,CAEA,IACE,IAAK,IAAIuU,EAAK0yL,GAASvgP,KAAK6wP,kBAAmB7iM,EAAKH,EAAGx4C,QAAS24C,EAAGx4C,KAAMw4C,EAAKH,EAAGx4C,OAAQ,EAEvF49O,EADsBjlM,EAAGjyD,OACTiE,KAAKwqG,MAAMpzF,QAASpX,KAAKwqG,MAAM2sB,QAAUn3H,KAAKwqG,MAAM2sB,QAAQ//G,aAAU9T,EACxF,CACF,CAAE,MAAO2kP,GACPZ,EAAM,CACJ/tM,MAAO2uM,EAEX,CAAE,QACA,IACMj6L,IAAOA,EAAGx4C,OAASra,EAAK0yD,EAAGo4B,SAAS9qF,EAAGyU,KAAKi+C,EAClD,CAAE,QACA,GAAIw5L,EAAK,MAAMA,EAAI/tM,KACrB,CACF,CAEA,GAAIt5C,KAAKwqG,MAAMh1F,KAAM,CAEnB,IAAI09O,EAAsB1oJ,EAAMukG,cAAcr3L,MAAK,SAAUmsL,GAC3D,MAAmB,UAAZA,EAAG9pM,MAAoB8pM,EAAG51L,SAAW0hC,EAAM8gM,OACpD,IACI0iB,EAAWD,GAAuBA,EAAoBC,SAAWvP,GAAWsP,EAAoBC,SAAU3oJ,EAAMpzF,QAAS0sO,QAAUxgP,EACvItD,KAAKozP,WAAajJ,GAAWnqP,KAAKiyD,GAAIkhM,GAEtC,IACE,IAAK,IAAIplM,EAAKwyL,GAASvgP,KAAK+wP,eAAgB7iM,EAAKH,EAAG14C,QAAS64C,EAAG14C,KAAM04C,EAAKH,EAAG14C,OAAQ,EAChFikF,EAAWprC,EAAGnyD,OACTiE,KAAKozP,WAChB,CACF,CAAE,MAAOnP,GACPF,EAAM,CACJzqM,MAAO2qM,EAEX,CAAE,QACA,IACM/1L,IAAOA,EAAG14C,OAASna,EAAK0yD,EAAGk4B,SAAS5qF,EAAGuU,KAAKm+C,EAClD,CAAE,QACA,GAAIg2L,EAAK,MAAMA,EAAIzqM,KACrB,CACF,CAEAt5C,KAAKqzP,QAELrzP,KAAKszP,gBAELhE,GAActvP,KAAK28J,UACrB,CACF,EASAg0F,EAAYpvP,UAAUgyP,aAAe,SAAUj6J,GAO7C,OANAt5F,KAAK20F,UAAU39E,IAAIsiF,GAEft5F,KAAKq/C,SAAWkxM,GAAkBc,SACpC/3J,EAASt5F,KAAKwqG,MAAOxqG,KAAKwqG,MAAM9V,OAG3B10F,IACT,EAEA2wP,EAAYpvP,UAAU6vK,UAAY,SAAUoiF,EAAwBrsP,EACpEssP,GACE,IAAI9jN,EAAQ3vC,KAERqwP,EAAWhK,GAAWmN,EAAwBrsP,EAAGssP,GACrDzzP,KAAK20F,UAAU39E,IAAIq5O,EAASh7O,MAExBrV,KAAKq/C,SAAWkxM,GAAkBW,YACpCb,EAASh7O,KAAKrV,KAAKwqG,OAGrB,IAAIkpJ,EAAe,WACjB/jN,EAAMohN,cAAcxmK,OAAOmpK,GAE3B/jN,EAAMmhN,cAAcvmK,OAAOmpK,GAE3BrD,EAAS/zM,UACX,EASA,OAPIt8C,KAAKq/C,SAAWkxM,GAAkBa,QACpCf,EAAS/zM,YAETt8C,KAAK2zP,OAAOD,GACZ1zP,KAAK4zP,OAAOF,IAGP,CACLriF,YAAa,WACX1hI,EAAMglD,UAAUpK,OAAO8lK,EAASh7O,MAEhCs6B,EAAMohN,cAAcxmK,OAAOmpK,GAE3B/jN,EAAMmhN,cAAcvmK,OAAOmpK,EAC7B,EAEJ,EAOA/C,EAAYpvP,UAAUsyP,QAAU,SAAUv6J,GAExC,OADAt5F,KAAKgxP,eAAeh6O,IAAIsiF,GACjBt5F,IACT,EAOA2wP,EAAYpvP,UAAUuyP,OAAS,SAAUx6J,GAEvC,OADAt5F,KAAKixP,cAAcj6O,IAAIsiF,GAChBt5F,IACT,EAOA2wP,EAAYpvP,UAAUk8J,SAAW,SAAUnkE,GAEzC,OADAt5F,KAAK6wP,iBAAiB75O,IAAIsiF,GACnBt5F,IACT,EAOA2wP,EAAYpvP,UAAUqyP,OAAS,SAAUt6J,GAEvC,OADAt5F,KAAK8wP,cAAc95O,IAAIsiF,GAChBt5F,IACT,EAOA2wP,EAAYpvP,UAAUoyP,OAAS,SAAUr6J,GAOvC,OANIt5F,KAAKq/C,SAAWkxM,GAAkBa,SAAWpxP,KAAKozP,WACpD95J,EAASt5F,KAAKozP,YAEdpzP,KAAK+wP,cAAc/5O,IAAIsiF,GAGlBt5F,IACT,EAOA2wP,EAAYpvP,UAAUwyP,IAAM,SAAUz6J,GAOpC,OANAt5F,KAAK20F,UAAUpK,OAAO+O,GACtBt5F,KAAKgxP,eAAezmK,OAAO+O,GAC3Bt5F,KAAKixP,cAAc1mK,OAAO+O,GAC1Bt5F,KAAK8wP,cAAcvmK,OAAO+O,GAC1Bt5F,KAAK+wP,cAAcxmK,OAAO+O,GAC1Bt5F,KAAK6wP,iBAAiBtmK,OAAO+O,GACtBt5F,IACT,EAOA2wP,EAAYpvP,UAAU/F,MAAQ,SAAUooN,GACtC,IAAIj0K,EAAQ3vC,KAEZ,GAAIA,KAAKq/C,SAAWkxM,GAAkBc,QAEpC,OAAOrxP,KAOTA,KAAKywO,QAAQxyJ,QAEbqxK,GAAkBtvP,KAAK28J,UAAW38J,MAClCA,KAAK+hI,aAAc,EACnB/hI,KAAKq/C,OAASkxM,GAAkBc,QAChC,IAAI2C,OAAiC1wP,IAAjBsgN,EAA6B5jN,KAAK4jN,aAAegrC,GAAQ5uP,MAAM,WACjF,OAAOutP,GAAc3pC,GAAgBj0K,EAAM8gM,QAAQwjB,aAAarwC,GAAgBj0K,EAAM8gM,QAAQwjB,aAAazG,GAAM7+O,KAAKi1M,EAAcj0K,EAAM8gM,QAAQr5N,SACpJ,IASA,OAPIpX,KAAKlF,QAAQ00P,UACfxvP,KAAKk0P,YAGPl0P,KAAKsxP,UAAUt8K,YAAW,WACxBrlC,EAAMwoG,OAAO67G,EAAelL,GAC9B,IACO9oP,IACT,EAEA2wP,EAAYpvP,UAAU+xP,cAAgB,WAEpCtzP,KAAK4/E,SAASp+E,SAAQ,SAAU44C,GAC1BkgB,GAAWlgB,EAAMlhB,OACnBkhB,EAAMlhB,MAEV,IACAl5B,KAAK4/E,SAAShrB,OAChB,EAEA+7L,EAAYpvP,UAAU8xP,MAAQ,WAC5B,IAAIc,EAAKp5P,EAAI4pP,EAAK1pP,EAAIm5P,EAAKj5P,EAAIk5P,EAAKh5P,EAAIi5P,EAAM5mM,EAE9C,IACE,IAAK,IAAIE,EAAK2yL,GAASvgP,KAAK20F,WAAYhnC,EAAKC,EAAGv4C,QAASs4C,EAAGn4C,KAAMm4C,EAAKC,EAAGv4C,OAAQ,CAChF,IAAIikF,EAAW3rC,EAAG5xD,MAClBiE,KAAK20F,UAAUpK,OAAO+O,EACxB,CACF,CAAE,MAAOi7J,GACPJ,EAAM,CACJ76M,MAAOi7M,EAEX,CAAE,QACA,IACM5mM,IAAOA,EAAGn4C,OAASza,EAAK6yD,EAAGq4B,SAASlrF,EAAG6U,KAAKg+C,EAClD,CAAE,QACA,GAAIumM,EAAK,MAAMA,EAAI76M,KACrB,CACF,CAEA,IACE,IAAK,IAAIwU,EAAKyyL,GAASvgP,KAAK8wP,eAAgBjjM,EAAKC,EAAGz4C,QAASw4C,EAAGr4C,KAAMq4C,EAAKC,EAAGz4C,OAAQ,EAChFikF,EAAWzrC,EAAG9xD,SAGlBiE,KAAK8wP,cAAcvmK,OAAO+O,EAC5B,CACF,CAAE,MAAOyrJ,GACPJ,EAAM,CACJrrM,MAAOyrM,EAEX,CAAE,QACA,IACMl3L,IAAOA,EAAGr4C,OAASva,EAAK6yD,EAAGm4B,SAAShrF,EAAG2U,KAAKk+C,EAClD,CAAE,QACA,GAAI62L,EAAK,MAAMA,EAAIrrM,KACrB,CACF,CAEA,IACE,IAAK,IAAI0U,EAAKuyL,GAASvgP,KAAK6wP,kBAAmB9iM,EAAKC,EAAG34C,QAAS04C,EAAGv4C,KAAMu4C,EAAKC,EAAG34C,OAAQ,CACnFikF,EAAWvrC,EAAGhyD,MAClBiE,KAAK6wP,iBAAiBtmK,OAAO+O,EAC/B,CACF,CAAE,MAAOk7J,GACPJ,EAAM,CACJ96M,MAAOk7M,EAEX,CAAE,QACA,IACMzmM,IAAOA,EAAGv4C,OAASra,EAAK6yD,EAAGi4B,SAAS9qF,EAAGyU,KAAKo+C,EAClD,CAAE,QACA,GAAIomM,EAAK,MAAMA,EAAI96M,KACrB,CACF,CAEA,IACE,IAAK,IAAI4U,EAAKqyL,GAASvgP,KAAK+wP,eAAgB9iM,EAAKC,EAAG74C,QAAS44C,EAAGz4C,KAAMy4C,EAAKC,EAAG74C,OAAQ,CAChFikF,EAAWrrC,EAAGlyD,MAClBiE,KAAK+wP,cAAcxmK,OAAO+O,EAC5B,CACF,CAAE,MAAOm7J,GACPJ,EAAM,CACJ/6M,MAAOm7M,EAEX,CAAE,QACA,IACMxmM,IAAOA,EAAGz4C,OAASna,EAAK6yD,EAAG+3B,SAAS5qF,EAAGuU,KAAKs+C,EAClD,CAAE,QACA,GAAImmM,EAAK,MAAMA,EAAI/6M,KACrB,CACF,CAEA,IAAKt5C,KAAK+hI,YAER,OAAO/hI,KAGTA,KAAK+hI,aAAc,EACnB/hI,KAAKq/C,OAASkxM,GAAkBa,QAChCpxP,KAAK8yP,mBAAgBxvP,EAErB,IAGE,IAAK,IAAImqD,EAAK8yL,GAAS9/O,OAAO0+C,KAAKn/C,KAAK4wP,mBAAoBh9L,EAAKnG,EAAGp4C,QAASu+C,EAAGp+C,KAAMo+C,EAAKnG,EAAGp4C,OAAQ,CACpG,IAAI9V,EAAMq0D,EAAG73D,MACbiE,KAAK4yP,MAAMp3J,aAAax7F,KAAK4wP,iBAAiBrxP,GAChD,CACF,CAAE,MAAOm1P,GACPJ,EAAO,CACLh7M,MAAOo7M,EAEX,CAAE,QACA,IACM9gM,IAAOA,EAAGp+C,OAASk4C,EAAKD,EAAGw4B,SAASv4B,EAAG99C,KAAK69C,EAClD,CAAE,QACA,GAAI6mM,EAAM,MAAMA,EAAKh7M,KACvB,CACF,CAGAt5C,KAAKsxP,UAAU18L,QACf50D,KAAKsxP,UAAY,IAAIhD,GAAU,CAC7BD,YAAaruP,KAAKlF,QAAQuzP,aAE9B,EAQAsC,EAAYpvP,UAAU23B,KAAO,WAE3B,IAAIyW,EAAQ3vC,KAGRsxP,EAAYtxP,KAAKsxP,UA4DrB,OA1DAtxP,KAAKqzP,QAGL/B,EAAU9C,UAAS,WACjB,IAAIzzP,EAEJ,KAA4B,QAAvBA,EAAK40C,EAAM+hN,cAA2B,IAAP32P,OAAgB,EAASA,EAAGya,MAAhE,CAKA,IAAIsuO,EAAS2B,GAAa,CACxB1rP,KAAM,gBAGJy3P,EAAY5C,GAAQj/M,GAAO,WAC7B,IAAIglN,EAAcp2C,GAAQjoM,GAAc,GAAI08G,GAAOrjF,EAAM66D,MAAMukG,gBAAgB,GAAO9uM,MAAK,SAAUJ,EAAGC,GACtG,OAAOA,EAAE8iC,MAAQ/iC,EAAE+iC,KACrB,IAAGhnC,KAAI,SAAU+oF,GACf,OAAOykK,GAAgBzkK,EAAUiwK,OAAQjlN,EAAM8gM,QAAQ31O,QAAQ+vP,QACjE,KAEI9vP,EAAKi4H,GAAO83H,GAAen7M,EAAM8gM,QAAS9gM,EAAM66D,MAAO76D,EAAM66D,MAAMpzF,QAAS0sO,EAAQ,CAAC,CACvF/pP,KAAM,OACN8wP,QAAS8J,IACPhlN,EAAM8gM,QAAQtpG,OAAO4qH,2BAA6BpiN,EAAMqiN,WAAQ1uP,EAAWqsC,EAAM8gM,QAAQtpG,OAAO4qH,4BAA8BpiN,EAAM8gM,QAAQtpG,OAAO+jH,qBAAsB,GACzKiC,EAAkBpyP,EAAG,GACrB0pP,EAAiB1pP,EAAG,GAEpB2pI,EAAW,IAAI8oH,GAAM,CACvBzxP,MAAO4zC,EAAM66D,MAAMzuG,MACnBqb,QAASqtO,EACTX,OAAQA,EACR4J,WAAY/9M,EAAMgtH,UAClBgxF,kBAAcrqP,EACd6zH,QAASxnF,EAAM66D,MACfqgJ,QAASsC,EAAgBz/N,QAAO,SAAUm4E,GACxC,OAAQ+gJ,GAAiB/gJ,EAC3B,IACA4nJ,WAAY,CAAC,EACb1kE,OAAQ,GACRgmB,cAAe,GACf7hG,YAAa,GACbttB,SAAU,CAAC,EACXpqE,KAAMm6B,EAAM66D,MAAMh1F,KAClBqzO,KAAMl5M,EAAM66D,MAAMq+I,KAClBpY,QAAS9gM,EAAM8gM,UAGjB,OADA/rG,EAASmwH,SAAU,EACZnwH,CACT,IAEA/0F,EAAMwoG,OAAOq5G,EAAW1N,GAExBn0M,EAAM2jN,gBAENhE,GAAc3/M,EAAMgtH,UAhDpB,CAiDF,IACO38J,IACT,EAEA2wP,EAAYpvP,UAAU49M,MAAQ,SAAUp2B,GACtC,IAAIp5I,EAAQ3vC,KAEZ,GAAIA,KAAKq/C,SAAWkxM,GAAkBW,YAAclxP,KAAKlF,QAAQuzP,YAE1DrM,IACH36O,IAAK,EAAO,GAAGqP,OAAOqyK,EAAOrtL,OAAQ,kDAAmDgb,OAAO1W,KAAKywO,QAAQx+K,GAAI,+EAAgFv7C,OAAOihG,KAAKC,UAAUljB,cAEnN,GAAI10F,KAAKq/C,SAAWkxM,GAAkBc,QAC3C,MAAM,IAAIpyP,MACV,GAAGyX,OAAOqyK,EAAOrtL,OAAQ,kDAAmDgb,OAAO1W,KAAKywO,QAAQx+K,GAAI,2GAGtG,GAAK82H,EAAOrtL,OAAZ,CAIA,IAAI+nE,IAASzjE,KAAKywO,QAAQtpG,OAAO4qH,4BAA8B/xP,KAAKgyP,MACpEhyP,KAAKsxP,UAAU9C,UAAS,WACtB,IAAIsG,EAAM/5P,EAENy2P,EAAY7hN,EAAM66D,MAClBuqJ,GAAe,EACfC,EAAiB,GAEjBC,EAAU,SAAU9E,GACtB,IAAIrM,EAAS2B,GAAa0K,GAE1BxgN,EAAM4hN,QAAQzN,GAEd0N,EAAY5C,GAAQj/M,GAAO,WACzB,OAAOA,EAAM8gM,QAAQ3kJ,WAAW0lK,EAAW1N,OAAQxgP,EAAWmgE,QAAQngE,EACxE,IACA0xP,EAAer2P,KAAKkC,MAAMm0P,EAAgB1+O,GAAc,GAAI08G,GAAOrjF,EAAM8gM,QAAQtpG,OAAO4qH,2BAA6BP,EAAU3G,QAAU2G,EAAU3G,QAAQjvP,KAAI,SAAUiE,GACvK,OP/1BV,SAA2BgmG,EAAQ2E,GACjC,IAAI/mC,EAAOoiC,EAAOpiC,KAYlB,OAVkB/mE,GAASA,GAAS,CAAC,EAAGmpG,GAAS,CAC/CpiC,UAAengE,IAATmgE,EAAqB,WACzB,OAAOA,EAAK+mC,EAAMpzF,QAASozF,EAAM9V,MAAO,CACtCmR,OAAQA,EACR2E,MAAOA,EACPs5I,OAAQt5I,EAAMs5I,QAElB,OAAIxgP,GAIR,COi1BiB4xP,CAAkBr1P,EAAG2xP,EAC9B,MAAK,IACLuD,EAAeA,KAAkBvD,EAAUqD,OAC7C,EAEA,IACE,IAAK,IAAIM,EAAW5U,GAASx3D,GAASqsE,EAAaD,EAAS9/O,QAAS+/O,EAAW5/O,KAAM4/O,EAAaD,EAAS9/O,OAAQ,CAGlH4/O,EAFcG,EAAWr5P,MAG3B,CACF,CAAE,MAAOs5P,GACPP,EAAO,CACLx7M,MAAO+7M,EAEX,CAAE,QACA,IACMD,IAAeA,EAAW5/O,OAASza,EAAKo6P,EAASlvK,SAASlrF,EAAG6U,KAAKulP,EACxE,CAAE,QACA,GAAIL,EAAM,MAAMA,EAAKx7M,KACvB,CACF,CAEAk4M,EAAUqD,QAAUE,EACpBvD,EAAU3G,QAAUmK,EAEpBrlN,EAAMwoG,OAAOq5G,EAAW/L,GAAa18D,EAAOA,EAAOrtL,OAAS,IAC9D,GA9CA,CA+CF,EAQAi1P,EAAYpvP,UAAU+zP,OAAS,SAAU5gK,GACvC,OAAO10F,KAAK+/C,KAAKwqB,KAAKvqE,KAAM00F,EAC9B,EAEAi8J,EAAYpvP,UAAUkwP,WAAa,SAAU/8J,EAAOjxB,GAClD,IAAI9zB,EAAQ3vC,UAEC,IAATyjE,IACFA,IAASzjE,KAAKywO,QAAQtpG,OAAO4qH,4BAA8B/xP,KAAKgyP,OAGlE,IAAIlO,EAAS2B,GAAa/wJ,GAE1B,GAA2C,IAAvCovJ,EAAOjqP,KAAKsI,QAAQo/O,MAAyBvhP,KAAKwqG,MAAMsjJ,WAAW3zP,MAAK,SAAUo7P,GACpF,OAA4C,IAArCA,EAAUpzP,QAAQo/O,GAC3B,IACE,MAAMuC,EAAOjzO,KAAKA,KAMpB,OAHgB+9O,GAAQ5uP,MAAM,WAC5B,OAAO2vC,EAAM8gM,QAAQ3kJ,WAAWn8C,EAAM66D,MAAOs5I,OAAQxgP,EAAWmgE,QAAQngE,EAC1E,GAEF,EAUAqtP,EAAYpvP,UAAUiwP,UAAY,SAAU98J,GAC1C,OAAO10F,KAAKyxP,WAAW/8J,GAAO,EAChC,EAEAi8J,EAAYpvP,UAAUgwP,QAAU,SAAU78J,GACxC,IAAI8gK,EAAMz6P,EAEV,IACE,IAAK,IAAIE,EAAKslP,GAASvgP,KAAKqqP,WAAYlvP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CAChF,IAAI48C,EAAK92D,EAAGY,MACRq+C,EAAQp6C,KAAK4/E,SAASz7E,IAAI8tD,GAE9B,IAAK7X,EACH,MAAM,IAAIn7C,MAAM,4BAA4ByX,OAAOg+E,EAAO,wBAAwBh+E,OAAO1W,KAAKiyD,GAAI,4BAA4Bv7C,OAAOu7C,EAAI,OAG3I7X,EAAM2F,KAAK20C,EACb,CACF,CAAE,MAAO+gK,GACPD,EAAO,CACLl8M,MAAOm8M,EAEX,CAAE,QACA,IACMt6P,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAIu6P,EAAM,MAAMA,EAAKl8M,KACvB,CACF,CACF,EAEAq3M,EAAYpvP,UAAU4wP,MAAQ,SAAUrG,GACtC,IAAIn8M,EAAQ3vC,KAER01P,EAAU11P,KAAK4yP,MAAM3zM,YAAW,WAC9B,OAAQ6sM,GAAcA,EAAWv1O,GACnCo5B,EAAMgiN,OAAO7F,EAAWhI,OAAQgI,EAAWv1O,IAAI,GAE/Co5B,EAAMoQ,KAAK+rM,EAAWhI,OAE1B,GAAGgI,EAAW1tI,OAEV0tI,EAAW75L,KACbjyD,KAAK4wP,iBAAiB9E,EAAW75L,IAAMyjM,EAE3C,EAEA/E,EAAYpvP,UAAUm4N,OAAS,SAAUkwB,GACvC5pP,KAAK4yP,MAAMp3J,aAAax7F,KAAK4wP,iBAAiBhH,WACvC5pP,KAAK4wP,iBAAiBhH,EAC/B,EAEA+G,EAAYpvP,UAAUkiE,KAAO,SAAUoiC,EAAQ2E,EAAOy+I,QAC1B,IAAtBA,IACFA,EAAoBjpP,KAAKywO,QAAQ31O,QAAQ+vP,SAG3C7qP,KAAKgyP,MAAMnsJ,EAAQ2E,EAAMpzF,QAASozF,EAAMs5I,OAAQmF,EAClD,EAEA0H,EAAYpvP,UAAUiN,YAAc,SAAUmnP,GAC5C,IAAI56P,EAEJiF,KAAK4/E,SAAS2K,OAAOorK,GACrB31P,KAAKqqP,UAAU9/J,OAAOorK,GAGA,QAArB56P,EAAKiF,KAAKwqG,aAA0B,IAAPzvG,UAA8BA,EAAG6kF,SAAS+1K,EAC1E,EAEAhF,EAAYpvP,UAAUmxP,UAAY,SAAUiD,GAC1C,IAAIv7M,EAAQp6C,KAAK4/E,SAASz7E,IAAIwxP,GAEzBv7M,IAILp6C,KAAKwO,YAAYmnP,GAEbr7L,GAAWlgB,EAAMlhB,OACnBkhB,EAAMlhB,OAEV,EAEAy3N,EAAYpvP,UAAUixP,MAAQ,SAAUxD,EAAQn1P,EAAMiB,GACpD,GAAIkF,KAAKq/C,SAAWkxM,GAAkBc,QACpC,OAAOtC,GAAoBC,EAAQn1P,GAGrC,GAAIqqP,GAAc8K,GAChB,OAAOhvP,KAAK41P,aAAa3gP,QAAQD,QAAQg6O,GAASn1P,GAC7C,GAAIygE,GAAW00L,GACpB,OAAOhvP,KAAK61P,cAAc7G,EAAQn1P,GAC7B,GJp+BX,SAAiBkG,GACf,IACE,MAA4B,oBAAdA,EAAKggD,IACrB,CAAE,MAAOzqC,IACP,OAAO,CACT,CACF,CAESwgP,CADe/1P,EI69BMivP,IJ59BJ,OAAQjvP,EI69B5B,OAAOC,KAAK+1P,WAAW/G,EAAQn1P,GAC1B,GZ9jBX,SAAsBkC,GACpB,IACE,MAAO,cAAeA,GAASu+D,GAAWv+D,EAAMq1K,UAClD,CAAE,MAAO97J,IACP,OAAO,CACT,CACF,CYwjBe0gP,CAAahH,GACtB,OAAOhvP,KAAKi2P,gBAAgBjH,EAAQn1P,GAC/B,GAAIwrP,GAAU2J,GACnB,OAAOhvP,KAAKk2P,aAAalH,EAAQtyP,GAASA,GAAS,CAAC,EAAG5B,GAAU,CAC/Dm3D,GAAIp4D,KAED,GZ/tBQ,QADCkC,EYguBMizP,IZ/tBkB,kBAAVjzP,GAAsB,eAAgBA,GAAqC,oBAArBA,EAAM+vF,WYguBxF,OAAO9rF,KAAK4vP,cAAcZ,EAAQn1P,GAElC,MAAM,IAAIoF,MAAM,2BAA4ByX,OAAO7c,EAAM,eAAiB6c,cAAcs4O,EAAQ,OZnuBtG,IAAoBjzP,EQrQIgE,CI0+BtB,EAEA4wP,EAAYpvP,UAAU20P,aAAe,SAAUzlB,EAAS31O,GACtD,IAAI60C,EAAQ3vC,UAEI,IAAZlF,IACFA,EAAU,CAAC,GAGb,IAAIq7P,EAAe,IAAIxF,EAAYlgB,EAAS/zO,GAASA,GAAS,CAAC,EAAGsD,KAAKlF,SAAU,CAC/EmT,OAAQjO,KACRiyD,GAAIn3D,EAAQm3D,IAAMw+K,EAAQx+K,MAGxB0gM,EAAkBj2P,GAASA,GAAS,CAAC,EAAG8zP,IAAwB11P,GAEhE63P,EAAgBlC,MAClB0F,EAAa5C,cAAa,SAAU/oJ,GAClC76D,EAAMoQ,KAAKo4F,GAAQ,CACjB3tC,MAAOA,EACPv4C,GAAIkkM,EAAalkM,IAErB,IAGF,IAAIs+K,EAAQ4lB,EAcZ,OAbAn2P,KAAK4/E,SAASz8E,IAAIgzP,EAAalkM,GAAIs+K,GAE/BoiB,EAAgBjC,aAClB1wP,KAAKqqP,UAAUrzO,IAAIm/O,EAAalkM,IAGlCkkM,EAAaxC,QAAO,SAAUyC,GAC5BzmN,EAAMnhC,YAAY2nP,EAAalkM,IAE/BtiB,EAAMoQ,KAAK0lM,GAAa2Q,EAAW,CACjC5+H,OAAQ2+H,EAAalkM,KAEzB,IAAGz2D,QACI+0O,CACT,EAEAogB,EAAYpvP,UAAUquP,cAAgB,SAAUC,EAAU59L,GACxD,IAAIk+K,EAAWyf,GAAcC,EAAU,CACrC59L,GAAIA,EACJhkD,OAAQjO,OAGV,OADAA,KAAK4/E,SAASz8E,IAAI8uD,EAAIk+K,GACfA,CACT,EAEAwgB,EAAYpvP,UAAUq0P,aAAe,SAAU3gI,EAAShjE,GACtD,IAAIl3D,EAKAw3P,EAHA5iN,EAAQ3vC,KAERq2P,GAAW,EAEfphI,EAAQx/G,MAAK,SAAU6pC,GAChB+2M,IACH9D,EAAejzM,EAEf3P,EAAMnhC,YAAYyjD,GAElBtiB,EAAMoQ,KAAK0lM,GAAa0E,GAAWl4L,EAAI3S,GAAW,CAChDk4E,OAAQvlE,KAGd,IAAG,SAAUqkM,GACX,IAAKD,EAAU,CACb1mN,EAAMnhC,YAAYyjD,GAElB,IAAIskM,EAAaj9M,GAAM2Y,EAAIqkM,GAE3B,IAEE3mN,EAAMoQ,KAAK0lM,GAAa8Q,EAAY,CAClC/+H,OAAQvlE,IAEZ,CAAE,MAAO3Y,IZ9kBjB,SAA8Ck9M,EAAeC,EAAcxkM,GACzE,IAAK+vL,GAAe,CAClB,IAAI0U,EAAqBF,EAAc1vM,MAAQ,oBAAoBpwC,OAAO8/O,EAAc1vM,MAAO,KAAO,GAEtG,GAAI0vM,IAAkBC,EAEpBrvP,QAAQkyC,MAAM,2CAA2C5iC,OAAOu7C,EAAI,kBAAkBv7C,OAAO8/O,EAAe,MAAM9/O,OAAOggP,QACpH,CACL,IAAIC,EAAaF,EAAa3vM,MAAQ,oBAAoBpwC,OAAO+/O,EAAa3vM,MAAO,KAAO,GAE5F1/C,QAAQkyC,MAAM,wFAAwF5iC,OAAOu7C,EAAI,OAAS,oBAAoBv7C,OAAO8/O,EAAe,OAAO9/O,OAAOggP,EAAoB,uBAAuBhgP,OAAO+/O,EAAc,MAAM//O,OAAOigP,GACjQ,CACF,CACF,CYkkBUC,CAAqCN,EAAWh9M,EAAO2Y,GAEnDtiB,EAAM6/M,UACR7/M,EAAM6/M,SAASzvM,KAAKw2M,EAAY5mN,EAAM66D,OAGpC76D,EAAM8gM,QAAQomB,QAKhBlnN,EAAMzW,MAEV,CACF,CACF,IACA,IAAIq3M,IAASx1O,EAAK,CAChBk3D,GAAIA,EACJlS,KAAM,WAEN,EACAqxH,UAAW,SAAU/7J,EAAMi7O,EAAah0M,GACtC,IAAI+zM,EAAWhK,GAAWhxO,EAAMi7O,EAAah0M,GACzCw6M,GAAe,EAoBnB,OAnBA7hI,EAAQx/G,MAAK,SAAU6pC,GACjBw3M,IAIJzG,EAASh7O,KAAKiqC,GAEVw3M,GAIJzG,EAAS/zM,WACX,IAAG,SAAUysB,GACP+tL,GAIJzG,EAAS/2M,MAAMyvB,EACjB,IACO,CACLsoG,YAAa,WACX,OAAOylF,GAAe,CACxB,EAEJ,EACA59N,KAAM,WACJm9N,GAAW,CACb,EACA1pC,OAAQ,WACN,MAAO,CACL16J,GAAIA,EAER,EACAs0C,YAAa,WACX,OAAOgsJ,CACT,IACIpN,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,GAEH,OADAiF,KAAK4/E,SAASz8E,IAAI8uD,EAAIs+K,GACfA,CACT,EAEAogB,EAAYpvP,UAAUs0P,cAAgB,SAAUx2L,EAAUpN,GACxD,IAAIl3D,EAOAg8P,EAiBAC,EAtBArnN,EAAQ3vC,KAERq2P,GAAW,EACXY,EAAY,IAAIvhM,IAChBi/B,EAAY,IAAIj/B,IAoBpB,IACEshM,EAAe33L,GAlBH,SAAU/pD,GACtByhP,EAAUzhP,EACVq/E,EAAUnzF,SAAQ,SAAU83F,GAC1B,OAAOA,EAAShkF,EAClB,IAEI+gP,GAIJ1mN,EAAMoQ,KAAK0lM,GAAanwO,EAAG,CACzBkiH,OAAQvlE,IAEZ,IAKmC,SAAUilM,GACzCD,EAAUjgP,IAAIkgP,EAChB,GACF,CAAE,MAAOnuL,GACP/oE,KAAK+/C,KAAKzG,GAAM2Y,EAAI8W,GACtB,CAEA,GAAIm7K,GAAc8S,GAGhB,OAAOh3P,KAAK41P,aAAaoB,EAAc/kM,GAGzC,IAAIs+K,IAASx1O,EAAK,CAChBk3D,GAAIA,EACJlS,KAAM,SAAU20C,GACd,OAAOuiK,EAAUz1P,SAAQ,SAAU21P,GACjC,OAAOA,EAASziK,EAClB,GACF,EACA08E,UAAW,SAAU/7J,GACnB,IAAIg7O,EAAWhK,GAAWhxO,GAE1B,OADAs/E,EAAU39E,IAAIq5O,EAASh7O,MAChB,CACLg8J,YAAa,WACX18E,EAAUpK,OAAO8lK,EAASh7O,KAC5B,EAEJ,EACA6jB,KAAM,WACJm9N,GAAW,EAEP/7L,GAAW08L,IACbA,GAEJ,EACArqC,OAAQ,WACN,MAAO,CACL16J,GAAIA,EAER,EACAs0C,YAAa,WACX,OAAOwwJ,CACT,IACI5R,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,GAEH,OADAiF,KAAK4/E,SAASz8E,IAAI8uD,EAAIs+K,GACfA,CACT,EAEAogB,EAAYpvP,UAAU00P,gBAAkB,SAAUh8L,EAAQhI,GACxD,IAAIl3D,EAIAg8P,EAFApnN,EAAQ3vC,KAGRo3P,EAAen9L,EAAOm3G,WAAU,SAAUr1K,GAC5Cg7P,EAAUh7P,EAEV4zC,EAAMoQ,KAAK0lM,GAAa1pP,EAAO,CAC7By7H,OAAQvlE,IAEZ,IAAG,SAAU8W,GACXp5B,EAAMnhC,YAAYyjD,GAElBtiB,EAAMoQ,KAAK0lM,GAAansM,GAAM2Y,EAAI8W,GAAM,CACtCyuD,OAAQvlE,IAEZ,IAAG,WACDtiB,EAAMnhC,YAAYyjD,GAElBtiB,EAAMoQ,KAAK0lM,GAAa0E,GAAWl4L,GAAK,CACtCulE,OAAQvlE,IAEZ,IACIs+K,IAASx1O,EAAK,CAChBk3D,GAAIA,EACJlS,KAAM,WAEN,EACAqxH,UAAW,SAAU/7J,EAAMi7O,EAAah0M,GACtC,OAAO2d,EAAOm3G,UAAU/7J,EAAMi7O,EAAah0M,EAC7C,EACApjB,KAAM,WACJ,OAAOk+N,EAAa/lF,aACtB,EACA9qE,YAAa,WACX,OAAOwwJ,CACT,EACApqC,OAAQ,WACN,MAAO,CACL16J,GAAIA,EAER,IACIkzL,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,GAEH,OADAiF,KAAK4/E,SAASz8E,IAAI8uD,EAAIs+K,GACfA,CACT,EAEAogB,EAAYpvP,UAAUw0P,WAAa,SAAUxlB,EAAO12O,GAElD,OADAmG,KAAK4/E,SAASz8E,IAAItJ,EAAM02O,GACjBA,CACT,EAEAogB,EAAYpvP,UAAUkxP,cAAgB,SAAU3I,GAC9C,IAAI1gP,EAAiBpJ,KAAKywO,QAAQ31O,SAAWkF,KAAKywO,QAAQ31O,QAAQ2yP,WAAaztP,KAAKywO,QAAQ31O,QAAQ2yP,WAAW3D,EAAS/vP,WAAQuJ,EAEhI,GAAK8F,EAAL,CAUA,IAAIi+L,EAAUj+L,EAAepJ,KAAKwqG,MAAMpzF,QAAS0yO,GACjD9pP,KAAKq3P,YAAYvN,EAAS73L,GAAIo1I,EAJ9B,MANO26C,IACH36O,IAAK,EAAO,yCAAyCqP,OAAOozO,EAAS/vP,KAAM,KAUjF,EAEA42P,EAAYpvP,UAAU81P,YAAc,SAAUplM,EAAIo1I,GAChD,IAAItsM,EAEJiF,KAAK4/E,SAASz8E,IAAI8uD,IAAKl3D,EAAK,CAC1Bk3D,GAAIA,EACJlS,KAAM,WAEN,EACAqxH,UAAW,WACT,MAAO,CACLC,YAAa,WAEb,EAEJ,EACAn4I,KAAMmuK,QAAW/jM,EACjBijG,YAAa,WAEb,EACAomH,OAAQ,WACN,MAAO,CACL16J,GAAIA,EAER,IACIkzL,IAAoB,WACxB,OAAOnlP,IACT,EAAGjF,GACL,EAEA41P,EAAYpvP,UAAU2yP,UAAY,WAChC,IAAIhzL,EAAS76D,KAEb,GAAIrG,KAAKlF,QAAQ00P,UAAYtuL,EAAQ,CACnC,GAAIA,EAAOo2L,6BAA8B,CACvC,IAAIC,EAAmD,kBAA1Bv3P,KAAKlF,QAAQ00P,SAAwBxvP,KAAKlF,QAAQ00P,cAAWlsP,EAC1FtD,KAAKwvP,SAAWtuL,EAAOo2L,6BAA6BE,QAAQ96P,GAASA,GAAS,CAC5E7C,KAAMmG,KAAKiyD,GACXwlM,WAAW,EACXC,eAAgB,SAAUltJ,GACxB,MAAO,CACLzuG,MAAOyuG,EAAMzuG,MACbqb,QAASozF,EAAMpzF,QACfyzO,QAASrgJ,EAAMqgJ,QAEnB,GACC0M,GAAkB,CACnBI,SAAUj7P,GAAS,CACjBk7P,MAAM,EACNC,MAAM,GACLN,EAAkBA,EAAgBI,cAAWr0P,KAC9CtD,KAAKywO,SACTzwO,KAAKwvP,SAAStrB,KAAKlkO,KAAKwqG,MAC1B,CAGA+kJ,GAAgBvvP,KAClB,CACF,EAEA2wP,EAAYpvP,UAAUorN,OAAS,WAC7B,MAAO,CACL16J,GAAIjyD,KAAKiyD,GAEb,EAEA0+L,EAAYpvP,UAAU4jP,IAAoB,WACxC,OAAOnlP,IACT,EAEA2wP,EAAYpvP,UAAUglG,YAAc,WAClC,OAAIvmG,KAAKq/C,SAAWkxM,GAAkBW,WAC7BlxP,KAAK4jN,aAGP5jN,KAAK0xP,MACd,EASAf,EAAYnyI,eAAiB,CAC3Bu0I,SAAS,EACT1E,aAAa,EACbuE,MAAO,CACL3zM,WAAY,SAAU21E,EAAIg2E,GACxB,OAAO3rJ,WAAW21E,EAAIg2E,EACxB,EACApvG,aAAc,SAAUvpC,GACtB,OAAOupC,aAAavpC,EACtB,GAEFja,OAAqB5wC,QAAQymE,IAAItD,KAAKnjE,SACtCooP,UAAU,GAEZmB,EAAYmH,UAAYA,GACjBnH,CACT,CAr6CA,GAu6CIoH,GAAsB,SAAUC,GAClC,OAAIh2I,GAASg2I,GACJt7P,GAASA,GAAS,CAAC,EAAG8zP,IAAwB,CACnD32P,KAAMm+P,IAIHt7P,GAASA,GAASA,GAAS,CAAC,EAAG8zP,IAAwB,CAC5D32P,KAAMyrP,OACJ0S,EACN,EAEA,SAASxF,GAAMxD,EAAQgJ,GACrB,IAAIrF,EAAkBoF,GAAoBC,GAC1C,OAAOnJ,IAAQ,SAAUz5G,GACvB,IAAK4sG,GAAe,CAClB,IAAIiW,EAAe5S,GAAU2J,IAAW10L,GAAW00L,GACnD3nP,KAAO+tI,GAAW6iH,EAAc,qCAAsCvhP,OAAO2uO,GAAU2J,GAAUA,EAAO/8L,GAAK,YAAa,sDAC5H,CAEA,OAAImjF,EACKA,EAAQo9G,MAAMxD,EAAQ2D,EAAgB94P,KAAM84P,GAE5C5D,GAAoBC,EAAQ2D,EAAgB94P,KAEvD,GACF,CAQA,SAASi+P,GAAUrnB,EAAS31O,GAE1B,OADkB,IAAI61P,GAAYlgB,EAAS31O,EAE7C,CCz+Ce,SAASo9P,GAAYtjI,GAChC,IAAI50B,EAAM09B,EAAAA,SAIV,OAHK19B,EAAI//E,UACL+/E,EAAI//E,QAAU,CAAE9hB,EAAGy2H,MAEhB50B,EAAI//E,QAAQ9hB,CACvB,CCPA,IAAIzB,GAAsC,WAStC,OARAA,GAAW+D,OAAOgU,QAAU,SAAShV,GACjC,IAAK,IAAI5B,EAAGuT,EAAI,EAAGsD,EAAI5R,UAAUpH,OAAQ0V,EAAIsD,EAAGtD,IAE5C,IAAK,IAAIkD,KADTzW,EAAIiF,UAAUsO,GACO3Q,OAAOc,UAAUxC,eAAe6Q,KAAK/R,EAAGyW,KACzD7U,EAAE6U,GAAKzW,EAAEyW,IAEjB,OAAO7U,CACX,EACO/C,GAASmE,MAAMb,KAAM8C,UAChC,EACIw9O,GAAkC,SAAUziP,EAAGyX,GAC/C,IAAI7V,EAAI,CAAC,EACT,IAAK,IAAI6U,KAAKzW,EAAO4C,OAAOc,UAAUxC,eAAe6Q,KAAK/R,EAAGyW,IAAMgB,EAAEnT,QAAQmS,GAAK,IAC9E7U,EAAE6U,GAAKzW,EAAEyW,IACb,GAAS,MAALzW,GAAqD,oBAAjC4C,OAAOyhE,sBACtB,KAAI9wD,EAAI,EAAb,IAAgBkD,EAAI7T,OAAOyhE,sBAAsBrkE,GAAIuT,EAAIkD,EAAE5Y,OAAQ0V,IAC3DkE,EAAEnT,QAAQmS,EAAElD,IAAM,GAAK3Q,OAAOc,UAAUygE,qBAAqBpyD,KAAK/R,EAAGyW,EAAElD,MACvE3R,EAAE6U,EAAElD,IAAMvT,EAAEyW,EAAElD,IAF4B,CAItD,OAAO3R,CACX,EACIuzH,GAAkC,SAAUD,EAAGr+G,GAC/C,IAAI46B,EAAsB,oBAAXn5B,QAAyB48G,EAAE58G,OAAOC,UACjD,IAAKk5B,EAAG,OAAOyjF,EACf,IAAmB/kG,EAAY1Y,EAA3BlE,EAAIk+B,EAAE1/B,KAAKmjH,GAAOt8G,EAAK,GAC3B,IACI,WAAc,IAAN/B,GAAgBA,KAAM,MAAQsZ,EAAI5c,EAAEiE,QAAQG,MAAMiB,EAAG9X,KAAKqvB,EAAEjyB,MACxE,CACA,MAAOu9C,GAAShkC,EAAI,CAAEgkC,MAAOA,EAAS,CAAC,QAEnC,IACQtrB,IAAMA,EAAExY,OAAS85B,EAAIl+B,EAAU,SAAIk+B,EAAE1/B,KAAKwB,EAClD,CAAC,QACS,GAAIkE,EAAG,MAAMA,EAAEgkC,KAAO,CACpC,CACA,OAAO7iC,CACX,EA0CO,SAAS0hP,GAAaC,GAEzB,IADA,IAAIr9P,EAAK,GACA6d,EAAK,EAAGA,EAAK9V,UAAUpH,OAAQkd,IACpC7d,EAAG6d,EAAK,GAAK9V,UAAU8V,GAE3B,IAAI3d,EAAK+3H,GAAOj4H,EAAI,GAAII,EAAKF,EAAG,GAAIH,OAAiB,IAAPK,EAAgB,CAAC,EAAIA,EAAIk9P,EAAqBp9P,EAAG,GAC3Fm6I,EA3CD,SAA4BgjH,EAAYt9P,GAC3C,IAAI21O,EAAUynB,IAAY,WACtB,MAA6B,oBAAfE,EAA4BA,IAAeA,CAC7D,IASIhhP,EAAUtc,EAAQsc,QAAS6uO,EAASnrP,EAAQmrP,OAAQ4E,EAAU/vP,EAAQ+vP,QAAS4C,EAAa3yP,EAAQ2yP,WAAY6E,EAAWx3P,EAAQw3P,SAAUzG,EAAS/wP,EAAQ+wP,OAAyCyM,GAAfx9P,EAAQ0vG,MAA4B81I,GAAOxlP,EAAS,CAAC,UAAW,SAAU,UAAW,aAAc,WAAY,SAAU,WACjTs6I,EAAU8iH,IAAY,WACtB,IAAIK,EAAgB,CAChBnhP,QAASA,EACT6uO,OAAQA,EACR4E,QAASA,EACT4C,WAAYA,EACZ6E,SAAUA,EACVzG,OAAQA,GAGZ,OAAOiM,GADiBrnB,EAAQ+nB,WAAWD,GAAe,WAAc,OAAQ77P,GAASA,GAAS,CAAC,EAAG+zO,EAAQr5N,SAAUA,EAAW,IAC/FkhP,EACxC,IAWA,OAPAj6H,IAA0B,WACtB59H,OAAOgU,OAAO2gI,EAAQq7F,QAAQ31O,QAAQ+vP,QAASA,GAC/CpqP,OAAOgU,OAAO2gI,EAAQq7F,QAAQ31O,QAAQmrP,OAAQA,GAC9CxlP,OAAOgU,OAAO2gI,EAAQq7F,QAAQ31O,QAAQ2yP,WAAYA,GAClDhtP,OAAOgU,OAAO2gI,EAAQq7F,QAAQ31O,QAAQw3P,SAAUA,GAChD7xP,OAAOgU,OAAO2gI,EAAQq7F,QAAQ31O,QAAQ+wP,OAAQA,EAClD,GAAG,CAAChB,EAAS5E,EAAQwH,EAAY6E,EAAUzG,IACpCz2G,CACX,CAOkBqjH,CAAmBL,EAAYt9P,GAkB7C,OAjBA4tG,EAAAA,EAAAA,YAAU,WACN,GAAK2vJ,EAAL,CAGA,IAAIxhH,EAAMzB,EAAQg8B,UAAUi1E,GAAWgS,IACvC,OAAO,WACHxhH,EAAIw6B,aACR,CAJA,CAKJ,GAAG,CAACgnF,KACJ3vJ,EAAAA,EAAAA,YAAU,WACN,IAAIgwJ,EAAkB59P,EAAQ0vG,MAE9B,OADA4qC,EAAQ55I,MAAMk9P,EAAkBlL,GAAM5sP,OAAO83P,QAAmBp1P,GACzD,WACH8xI,EAAQl8G,OACRk8G,EAAQ/1F,OAASkxM,GAAkBW,UACvC,CACJ,GAAG,IACI97G,CACX,CC/FA,MAAMujH,GAAwBA,CAAAliI,EAAc2e,EAASt6I,KAAY,IAAlC,QAAEkoG,GAASyzB,EACtC,MAAM,MAAE/hC,GAAUsO,GACZ,KAAEjjD,GAASq1F,GACX,SAAEwjH,EAAQ,UAAEC,GAAqB,OAAP/9P,QAAO,IAAPA,EAAAA,EAAW,CAAC,EAC5C,OAAQ45F,GACJ,IAAK,WACGp6B,GAAWs+L,IACXA,EAAS51J,GAEb,MAEJ,IAAK,qBACDjjD,EAAK,yBACL,MAEJ,IAAK,YACL,IAAK,uBACa,cAAV20C,GAAyBp6B,GAAWu+L,IACpCA,IAEJ94M,EAAK,YAGb,EAUE+4M,GAAkB,SAAC1jH,GAA6C,IAApC2jH,EAAOj2P,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,GAAG61P,GAExC,OAAOjvH,GAAIjkB,OAAO,QADI50G,GAASkoP,EAAQloP,EAAMukI,IACL,4BAC5C,ECvCA,SAASgxG,GAAez6M,GACtB,GAAmB,kBAARA,EAAkB,CAC3B,IAAIqtN,EAAY,CACdj/P,KAAM4xC,EAGRqtN,SAAqB,WACnB,OAAOrtN,CACT,GAGA,OAAOqtN,CACT,CAEA,OAAOrtN,CACT,CACA,SAASstN,GAAmBC,GAC1B,OAAOx8P,GAASA,GAAS,CACvB3C,KAAM66N,IACLskC,GAAe,CAChBvsC,OAAQ,WACNusC,EAAavF,OACTuF,EAAa1zK,QACb,IAAI2zK,EAAY7Y,GAAO4Y,EAAc,CAAC,SAAU,YAEpD,OAAOx8P,GAASA,GAAS,CAAC,EAAGy8P,GAAY,CACvCp/P,KAAM66N,GACNjpL,IAAKy6M,GAAe8S,EAAavtN,MAErC,GAEJ,CC1BA,IAAIytN,GAAa,GAEbC,GAAW,IACXC,GAAe,CAAC,EAEhBC,GAAY,SAAU9+P,GACxB,MALqB,MAKdA,EAAI,EACb,EAoBI++P,GAIJ,WACE,SAASA,EAITryH,EAAQrsI,EAIRwyB,EACAmsO,QACmB,IAAbnsO,IACFA,EAAW,YAAa65G,EAASA,EAAO/vH,aAAU9T,GAGpD,IAEIvI,EAFA40C,EAAQ3vC,KAIZA,KAAKmnI,OAASA,EACdnnI,KAAKstB,SAAWA,EAKhBttB,KAAK4iC,OAAS,EACd5iC,KAAK05P,cAAe,EACpB15P,KAAK25P,QAAU,CACb5wE,YAAQzlL,EACRs2P,cAAe,IAAIzkM,IACnB0kM,uBAAmBv2P,EACnBsgN,kBAActgN,EACdmgM,QAAIngM,EACJ4pG,iBAAa5pG,EACbw2P,WAAY,CAAC,EACbC,wBAAoBz2P,GAEtBtD,KAAKg6P,MAAQ,CAAC,EACdh6P,KAAK6oP,KAAO,GACZ7oP,KAAKlF,QAAU2F,OAAOgU,OA5DjB,CACLo2O,QAAS,CAAC,EACV5E,OAAQ,CAAC,EACTqM,SAAU,CAAC,EACX7E,WAAY,CAAC,EACb5B,OAAQ,CAAC,GAuD4C/wP,GACrDkF,KAAKiO,OAAwB,OAAfwrP,QAAsC,IAAfA,OAAwB,EAASA,EAAWxrP,OACjFjO,KAAKT,IAAMS,KAAKmnI,OAAO5nI,MAAuB,OAAfk6P,QAAsC,IAAfA,OAAwB,EAASA,EAAWl6P,MAAQS,KAAKmnI,OAAOl1E,IAAM,YAC5HjyD,KAAKywO,QAAUzwO,KAAKiO,OAASjO,KAAKiO,OAAOwiO,QAAUzwO,KACnDA,KAAKohD,KAAOphD,KAAKiO,OAASjO,KAAKiO,OAAOmzC,KAAK1qC,OAAO1W,KAAKT,KAAO,GAC9DS,KAAK1E,UAAY0E,KAAKmnI,OAAO7rI,YAAc0E,KAAKiO,OAASjO,KAAKiO,OAAO3S,UlBtFnD,KkBuFlB0E,KAAKiyD,GAAKjyD,KAAKmnI,OAAOl1E,IAAM37C,GAAc,CAACtW,KAAKywO,QAAQlxO,KAAMyzH,GAAOhzH,KAAKohD,OAAO,GAAOvlD,KAAKmE,KAAK1E,WAClG0E,KAAKyH,QAAUzH,KAAKiO,OAASjO,KAAKiO,OAAOxG,QAAUzH,KAAKmnI,OAAO1/H,QAC/DzH,KAAKjG,KAAOiG,KAAKmnI,OAAOptI,OAASiG,KAAKmnI,OAAO8yH,SAAW,WAAaj6P,KAAKmnI,OAAOk9G,QAAU5jP,OAAO0+C,KAAKn/C,KAAKmnI,OAAOk9G,QAAQ3oP,OAAS,WAAasE,KAAKmnI,OAAOhQ,QAAU,UAAY,UACnLn3H,KAAKw9N,OAASx9N,KAAKiO,OAASjO,KAAKywO,QAAQjT,OAAuC,QAA7BziO,EAAKiF,KAAKmnI,OAAOq2F,cAA2B,IAAPziO,EAAgBA,EAAK,CAAC,EAC9GiF,KAAKq4M,YAAcr4M,KAAKmnI,OAAOkxE,YAE1B2pC,IACH36O,KAAO,aAAcrH,KAAKmnI,QAAS,6EAA+EzwH,OAAO1W,KAAKmnI,OAAO8yH,SAAW,kCAAoC,eAAevjP,OAAO1W,KAAKjG,KAAM,MAAO,mCAAmC2c,OAAO1W,KAAKiyD,GAAI,eAGjRjyD,KAAKk6P,QAAUl6P,KAAKmnI,OAAO+yH,QAC3Bl6P,KAAKqkP,OAASrkP,KAAKmnI,OAAOk9G,OAASvB,GAAU9iP,KAAKmnI,OAAOk9G,QAAQ,SAAU8V,EAAa56P,GACtF,IAAIxE,EAEA4pF,EAAY,IAAI60K,EAAUW,EAAa,CAAC,OAAG72P,EAAW,CACxD2K,OAAQ0hC,EACRpwC,IAAKA,IAGP,OADAkB,OAAOgU,OAAOk7B,EAAMqqN,MAAOt9P,KAAU3B,EAAK,CAAC,GAAM4pF,EAAU1yB,IAAM0yB,EAAW5pF,GAAK4pF,EAAUq1K,QACpFr1K,CACT,IAAK20K,GAEL,IAAI12N,EAAQ,GAEZ,SAASw3N,EAAIz1K,GACX,IAAIu+J,EAAKnoP,EAET4pF,EAAU/hD,MAAQA,IAElB,IACE,IAAK,IAAI3nC,EAAKslP,GAASwG,GAAepiK,IAAaxpF,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CAE3F+kP,EADYj/P,EAAGY,MAEjB,CACF,CAAE,MAAOonP,GACPD,EAAM,CACJ5pM,MAAO6pM,EAEX,CAAE,QACA,IACMhoP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAIioP,EAAK,MAAMA,EAAI5pM,KACrB,CACF,CACF,CAEA8gN,CAAIp6P,MAEJA,KAAKm3H,SAAkC,IAAxBn3H,KAAKmnI,OAAOhQ,QAAmB,UAAYn3H,KAAKmnI,OAAOhQ,UAAW,EACjFn3H,KAAKq6P,aAAer6P,KAAKmnI,OAAOmzH,UAAYt6P,KAAKmnI,OAAOs8D,KAAahqM,MAAMC,QAAQsG,KAAKmnI,OAAOs8D,IAAMzjM,KAAKmnI,OAAOs8D,GAAGtpM,MAAK,SAAUY,GAEjI,OADYA,EAAG25F,QACE0kK,EACnB,IAAKA,MAAcp5P,KAAKmnI,OAAOs8D,IAC/BzjM,KAAK62P,SAAW72P,KAAKmnI,OAAO0vH,OAE5B72P,KAAKu6P,QAAUh/I,GAAQv7G,KAAKmnI,OAAOhzF,OAASn0C,KAAKmnI,OAAOozH,SAAS3+P,KAAI,SAAUiqG,GAC7E,OAAOqjJ,GAAerjJ,EACxB,IAEA7lG,KAAK40P,OAASr5I,GAAQv7G,KAAKmnI,OAAO81E,MAAQj9M,KAAKmnI,OAAOytH,QAAQh5P,KAAI,SAAUiqG,GAC1E,OAAOqjJ,GAAerjJ,EACxB,IACA7lG,KAAK2jF,KAAO3jF,KAAKmnI,OAAOxjD,KACxB3jF,KAAKmzP,SAAyB,UAAdnzP,KAAKjG,KAAmBiG,KAAKmnI,OAAOt2H,UAAOvN,EAC3DtD,KAAK40N,OAASr5G,GAAQv7G,KAAKmnI,OAAOytF,QAAQh5N,KAAI,SAAUs9P,EAAc9nP,GACpE,IAAIrW,EAAIE,EAER,GAAIoqP,GAAU6T,GAAe,CAC3B,IAAIsB,EAAW9T,GAAe/2M,EAAMsiB,GAAI7gD,GAExC,OADAu+B,EAAM8gM,QAAQ31O,QAAQw3P,SAAW51P,KAAU3B,EAAK,CAAC,GAAMy/P,GAAYtB,EAAcn+P,GAAK40C,EAAM8gM,QAAQ31O,QAAQw3P,UACrG2G,GAAmB,CACxBttN,IAAK6uN,EACLvoM,GAAIuoM,GAER,CAAO,GAAIx4I,GAASk3I,EAAavtN,KAAM,CACjC6uN,EAAWtB,EAAajnM,IAAMy0L,GAAe/2M,EAAMsiB,GAAI7gD,GAC3D,OAAO6nP,GAAmBv8P,GAASA,GAAS,CAAC,EAAGw8P,GAAe,CAC7DjnM,GAAIuoM,EACJ7uN,IAAKutN,EAAavtN,MAEtB,CAAO,GAAI05M,GAAU6T,EAAavtN,MAAQ2uB,GAAW4+L,EAAavtN,KAAM,CAClE6uN,EAAWtB,EAAajnM,IAAMy0L,GAAe/2M,EAAMsiB,GAAI7gD,GAE3D,OADAu+B,EAAM8gM,QAAQ31O,QAAQw3P,SAAW51P,KAAUzB,EAAK,CAAC,GAAMu/P,GAAYtB,EAAavtN,IAAK1wC,GAAK00C,EAAM8gM,QAAQ31O,QAAQw3P,UACzG2G,GAAmBv8P,GAASA,GAAS,CAC1Cu1D,GAAIuoM,GACHtB,GAAe,CAChBvtN,IAAK6uN,IAET,CACE,IAAIpI,EAAe8G,EAAavtN,IAChC,OAAOstN,GAAmBv8P,GAASA,GAAS,CAC1Cu1D,GAAIy0L,GAAe/2M,EAAMsiB,GAAI7gD,IAC5B8nP,GAAe,CAChBvtN,IAAKymN,IAGX,IACApyP,KAAKytP,WAAalyI,GAAQv7G,KAAKmnI,OAAOsmH,YAAY/2O,OAAO1W,KAAK40N,QAAQh5N,KAAI,SAAUkuP,GAClF,OAAOR,GAAqBQ,EAC9B,IACA9pP,KAAK8rF,WAAa9rF,KAAK8rF,WAAWvhB,KAAKvqE,MACvCA,KAAK6oP,KAAOttI,GAAQv7G,KAAKmnI,OAAO0hH,KAKlC,CA42CA,OA12CA2Q,EAAUj4P,UAAU08E,MAAQ,WACtBj+E,KAAK25P,QAAQzsJ,aAIjB85I,GAAiBhnP,MAAMwB,SAAQ,SAAUmjF,GACvC,OAAOA,EAAU8+G,EACnB,GACF,EASA+1D,EAAUj4P,UAAUi3P,WAAa,SAAU19P,EAASsc,GAClD,IAAIrc,EAAKiF,KAAKlF,QACV+vP,EAAU9vP,EAAG8vP,QACb4C,EAAa1yP,EAAG0yP,WAChBxH,EAASlrP,EAAGkrP,OACZqM,EAAWv3P,EAAGu3P,SACdzG,EAAS9wP,EAAG8wP,OAChB,OAAO,IAAI2N,EAAUx5P,KAAKmnI,OAAQ,CAChC0jH,QAASnuP,GAASA,GAAS,CAAC,EAAGmuP,GAAU/vP,EAAQ+vP,SACjD4C,WAAY/wP,GAASA,GAAS,CAAC,EAAG+wP,GAAa3yP,EAAQ2yP,YACvDxH,OAAQvpP,GAASA,GAAS,CAAC,EAAGupP,GAASnrP,EAAQmrP,QAC/CqM,SAAU51P,GAASA,GAAS,CAAC,EAAG41P,GAAWx3P,EAAQw3P,UACnDzG,OAAQnvP,GAASA,GAAS,CAAC,EAAGmvP,GAAS/wP,EAAQ+wP,SAClC,OAAZz0O,QAAgC,IAAZA,EAAqBA,EAAUpX,KAAKoX,QAC7D,EAQAoiP,EAAUj4P,UAAU6tP,YAAc,SAAUh4O,GAC1C,OAAO,IAAIoiP,EAAUx5P,KAAKmnI,OAAQnnI,KAAKlF,QAASsc,EAClD,EAEA3W,OAAOwsC,eAAeusN,EAAUj4P,UAAW,UAAW,CACpD4C,IAAK,WACH,OAAOm2D,GAAWt6D,KAAKstB,UAAYttB,KAAKstB,WAAattB,KAAKstB,QAC5D,EACAjjB,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,aAAc,CAIvD4C,IAAK,WACH,MAAO,CACL8tD,GAAIjyD,KAAKiyD,GACT1yD,IAAKS,KAAKT,IACVkI,QAASzH,KAAKyH,QACd2P,QAASpX,KAAKoX,QACdrd,KAAMiG,KAAKjG,KACXmgQ,QAASl6P,KAAKk6P,QACd/iI,QAASn3H,KAAKm3H,QACdktH,OAAQvB,GAAU9iP,KAAKqkP,QAAQ,SAAU75I,GACvC,OAAOA,EAAMupB,UACf,IACA0vE,GAAIzjM,KAAKyjM,GACTv2F,YAAaltG,KAAKktG,YAClB/4D,MAAOn0C,KAAKu6P,QACZt9C,KAAMj9M,KAAK40P,OACXnH,WAAYztP,KAAKytP,YAAc,GAC/B9pK,KAAM3jF,KAAK2jF,KACX/gD,MAAO5iC,KAAK4iC,QAAU,EACtB/xB,KAAM7Q,KAAKmzP,SACXv+B,OAAQ50N,KAAK40N,OACbvc,YAAar4M,KAAKq4M,YAClBwwC,KAAM7oP,KAAK6oP,KAEf,EACAx+O,YAAY,EACZD,cAAc,IAGhBovP,EAAUj4P,UAAUorN,OAAS,WAC3B,OAAO3sN,KAAK+zH,UACd,EAEAtzH,OAAOwsC,eAAeusN,EAAUj4P,UAAW,KAAM,CAI/C4C,IAAK,WACH,GAAInE,KAAK25P,QAAQl2D,GACf,OAAOzjM,KAAK25P,QAAQl2D,GAGtB,IAAIv2F,EAAcltG,KAAKktG,YACvB,OAAOltG,KAAK25P,QAAQl2D,GAAKv2F,EAAYjxG,QAAO,SAAUL,EAAKkwF,GAGzD,OAFAlwF,EAAIkwF,EAAW2uK,WAAa7+P,EAAIkwF,EAAW2uK,YAAc,GACzD7+P,EAAIkwF,EAAW2uK,WAAW97P,KAAKmtF,GACxBlwF,CACT,GAAG,CAAC,EACN,EACAyO,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,QAAS,CAClD4C,IAAK,WACH,OAAOnE,KAAK25P,QAAQI,qBAAuB/5P,KAAK25P,QAAQI,mBAAqB/5P,KAAK06P,wBAAyB16P,KAAK25P,QAAQI,mBAC1H,EACA1vP,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,cAAe,CAIxD4C,IAAK,WACH,OAAOnE,KAAK25P,QAAQzsJ,cAAgBltG,KAAK25P,QAAQzsJ,YAAcltG,KAAK26P,oBAAqB36P,KAAK25P,QAAQzsJ,YACxG,EACA7iG,YAAY,EACZD,cAAc,IAGhBovP,EAAUj4P,UAAUq5P,cAAgB,SAAUC,GAC5C,GAAI76P,KAAK25P,QAAQG,WAAWe,GAC1B,OAAO76P,KAAK25P,QAAQG,WAAWe,GAGjC,IAAIC,EAAYD,IAAczB,GAC1BU,EAAa95P,KAAKktG,YAAYx/E,QAAO,SAAUo+D,GACjD,IAAIivK,EAAgBjvK,EAAW2uK,YAAcI,EAE7C,OAAOC,EAAYC,EAAgBA,GAAiBjvK,EAAW2uK,YAAcpB,EAC/E,IAEA,OADAr5P,KAAK25P,QAAQG,WAAWe,GAAaf,EAC9BA,CACT,EAMAN,EAAUj4P,UAAUm5P,sBAAwB,WAC1C,IAAI/qN,EAAQ3vC,KAERg7P,EAAch7P,KAAKmnI,OAAOpsF,MAE9B,IAAKigN,EACH,MAAO,GAGT,IAAIC,EAAkB,SAAU78I,EAAOhtG,GACrC,IACIqpP,EAAY1/M,GADDuf,GAAW8jD,GAAS,GAAG1nG,OAAOi5B,EAAMsiB,GAAI,WAAWv7C,OAAOtF,EAAG,KAAOgtG,EACnDzuE,EAAMsiB,IAQtC,OANAtiB,EAAM4qN,QAAQ57P,KAAKohD,GAAK06M,EAAW,CACjCr8I,MAAOA,KAGTzuE,EAAMilN,OAAOj2P,KAAK+6N,GAAO+gC,IAElBA,CACT,EAEIV,EAAqBrgQ,GAAQshQ,GAAeA,EAAYp/P,KAAI,SAAUkwF,EAAY16E,GACpF,IAAIqpP,EAAYQ,EAAgBnvK,EAAWsyB,MAAOhtG,GAClD,OAAO1U,GAASA,GAAS,CAAC,EAAGovF,GAAa,CACxC4I,MAAO+lK,GAEX,IAAKl8C,GAAQ99M,OAAO0+C,KAAK67M,GAAap/P,KAAI,SAAUwiH,EAAOhtG,GACzD,IAAI8pP,EAAmBF,EAAY58I,GAC/B+8I,EAAqBn5I,GAASk5I,GAAoB,CACpDp+M,OAAQo+M,GACNA,EACAzP,EAAiB38K,OAAOsvC,GAAkBA,GAARA,EAClCq8I,EAAYQ,EAAgBxP,EAAer6O,GAC/C,OAAOmqG,GAAQ4/I,GAAoBv/P,KAAI,SAAUkwF,GAC/C,OAAOpvF,GAASA,GAAS,CAAC,EAAGovF,GAAa,CACxC4I,MAAO+lK,EACPr8I,MAAOqtI,GAEX,GACF,KACA,OAAOsO,EAAmBn+P,KAAI,SAAUw/P,GACtC,IAAIh9I,EAAQg9I,EAAkBh9I,MAC9B,OAAO1hH,GAASA,GAAS,CAAC,EAAGizC,EAAM0rN,iBAAiBD,IAAqB,CACvEh9I,MAAOA,GAEX,GACF,EAQAo7I,EAAUj4P,UAAU+5P,cAAgB,SAAU9wJ,GAC5C,IAAIzvG,EAEA40C,EAAQ3vC,KAEZ,IAAKwqG,EACH,MAAO,GAGT,IAAIk4I,EAAal4I,aAAiBgjJ,GAAQhjJ,EAAMzuG,MAAQsmP,GAAa73I,EAAOxqG,KAAK1E,WAEjF,GAAI0mH,GAAS0gI,GAAa,CACxB,IAAImX,EAAoB75P,KAAKu7P,aAAa7Y,GAAYwX,QACtD,YAA6B52P,IAAtBu2P,EAAkC75P,KAAKs7P,gBAAevgQ,EAAK,CAAC,GAAM2nP,GAAcmX,EAAmB9+P,IAAO,CAACiF,KAAMA,KAAKqkP,OAAO3B,GACtI,CAEA,IAAI8Y,EAAe/6P,OAAO0+C,KAAKujM,GAC3B+Y,EAAgB,CAACz7P,MAIrB,OAHAy7P,EAAc98P,KAAKkC,MAAM46P,EAAenlP,GAAc,GAAI08G,GAAOurF,GAAQi9C,EAAa5/P,KAAI,SAAU8/P,GAClG,OAAO/rN,EAAM4rN,aAAaG,GAAaJ,cAAc5Y,EAAWgZ,GAClE,OAAM,IACCD,CACT,EAQAjC,EAAUj4P,UAAU08M,QAAU,SAAUvpH,GACtC,IAAI+lK,EAAYlY,GAAa7tJ,GAC7B,OAAO10F,KAAK+oL,OAAOnrG,SAAS68K,EAC9B,EAUAjB,EAAUj4P,UAAU0yP,aAAe,SAAUzpJ,GAC3C,IAAImxJ,EAAkBnxJ,aAAiBgjJ,GAAQhjJ,EAAQgjJ,GAAM5sP,OAAO4pG,GAChEukG,EAAgBt1M,MAAMkV,KAAKu4O,GAAiB,GAAIlnP,KAAKs7P,cAAcK,EAAgB5/P,SACvF,OAAO,IAAIyxP,GAAM9wP,GAASA,GAAS,CAAC,EAAGi/P,GAAkB,CACvD5/P,MAAOiE,KAAKgV,QAAQ2mP,EAAgB5/P,OACpCgzM,cAAeA,EACfv5L,KAAMmzO,GAAe55C,EAAe/uM,MACpC6oP,KAAMD,GAAyB75C,GAC/B0hC,QAASzwO,KAAKywO,UAElB,EAEA+oB,EAAUj4P,UAAUq6P,mBAAqB,SAAUlZ,EAAYl4I,EAAOs5I,GACpE,IACIzuO,EADYrV,KAAKu7P,aAAa7Y,GACbrtO,KAAKm1F,EAAOs5I,GAEjC,OAAKzuO,GAASA,EAAK63F,YAAYxxG,OAIxB2Z,EAHErV,KAAKqV,KAAKm1F,EAAOs5I,EAI5B,EAEA0V,EAAUj4P,UAAUs6P,uBAAyB,SAAUnZ,EAAYl4I,EAAOs5I,GACxE,IAAI0X,EAAe/6P,OAAO0+C,KAAKujM,GAG3BrtO,EAFYrV,KAAKu7P,aAAaC,EAAa,IAE1BM,YAAYpZ,EAAW8Y,EAAa,IAAKhxJ,EAAOs5I,GAErE,OAAKzuO,GAASA,EAAK63F,YAAYxxG,OAIxB2Z,EAHErV,KAAKqV,KAAKm1F,EAAOs5I,EAI5B,EAEA0V,EAAUj4P,UAAUw6P,uBAAyB,SAAUrZ,EAAYl4I,EAAOs5I,GACxE,IAAIV,EAAKroP,EAELihQ,EAAgB,CAAC,EAErB,IACE,IAAK,IAAI/gQ,EAAKslP,GAAS9/O,OAAO0+C,KAAKujM,IAAcvnP,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CACzF,IAAIqmP,EAAcvgQ,EAAGY,MACjB0nP,EAAgBf,EAAWgZ,GAE/B,GAAKjY,EAAL,CAIA,IAEIpuO,EAFerV,KAAKu7P,aAAaG,GAEbI,YAAYrY,EAAej5I,EAAOs5I,GAEtDzuO,IACF2mP,EAAcN,GAAermP,EAP/B,CASF,CACF,CAAE,MAAOkuO,GACPH,EAAM,CACJ9pM,MAAOiqM,EAEX,CAAE,QACA,IACMpoP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAImoP,EAAK,MAAMA,EAAI9pM,KACrB,CACF,CAEA,IAAI2iN,EAAmBx7P,OAAO0+C,KAAK68M,GAAepgQ,KAAI,SAAU2D,GAC9D,OAAOy8P,EAAcz8P,EACvB,IACI28P,EAAqB39C,GAAQ09C,EAAiBrgQ,KAAI,SAAU6sH,GAC9D,OAAOA,EAAGvb,WACZ,KACIivJ,EAAiBF,EAAiB9hQ,MAAK,SAAUsuH,GACnD,OAAOA,EAAGvb,YAAYxxG,OAAS,CACjC,IAEA,IAAKygQ,EACH,OAAOn8P,KAAKqV,KAAKm1F,EAAOs5I,GAG1B,IAAI/0C,EAAgBwP,GAAQ99M,OAAO0+C,KAAK68M,GAAepgQ,KAAI,SAAU2D,GACnE,OAAOy8P,EAAcz8P,GAAKwvM,aAC5B,KACA,MAAO,CACL7hG,YAAagvJ,EACbE,QAAS79C,GAAQ09C,EAAiBrgQ,KAAI,SAAU6D,GAC9C,OAAOA,EAAE28P,OACX,KACArtD,cAAeA,EACf90I,OAAQuwC,EACRqgJ,QAAStsC,GAAQ99M,OAAO0+C,KAAK68M,GAAepgQ,KAAI,SAAU2D,GACxD,OAAOy8P,EAAcz8P,GAAKsrP,OAC5B,KAEJ,EAEA2O,EAAUj4P,UAAUu6P,YAAc,SAAUpZ,EAAYl4I,EAAOs5I,GAE7D,OAAI9hI,GAAS0gI,GACJ1iP,KAAK47P,mBAAmBlZ,EAAYl4I,EAAOs5I,GAIb,IAAnCrjP,OAAO0+C,KAAKujM,GAAYhnP,OACnBsE,KAAK67P,uBAAuBnZ,EAAYl4I,EAAOs5I,GAIjD9jP,KAAK+7P,uBAAuBrZ,EAAYl4I,EAAOs5I,EACxD,EAEA0V,EAAUj4P,UAAU6sP,kBAAoB,SAAU5jJ,EAAO9V,GACvD,OAAO10F,KAAK87P,YAAYtxJ,EAAMzuG,MAAOyuG,EAAOi7I,GAAa/wJ,GAC3D,EAEA8kK,EAAUj4P,UAAU8T,KAAO,SAAUm1F,EAAOs5I,GAC1C,IAAIsD,EAAKrsP,EAOLshQ,EALA1sN,EAAQ3vC,KAER66P,EAAY/W,EAAOjqP,KACnBgxP,EAAU,GACVyR,EAAiB,GAGrB,IACE,IAAK,IAAIrhQ,EAAKslP,GAASvgP,KAAK46P,cAAcC,IAAa1/P,EAAKF,EAAGoa,QAASla,EAAGqa,KAAMra,EAAKF,EAAGoa,OAAQ,CAC/F,IAAIknP,EAAYphQ,EAAGY,MACfg6H,EAAOwmI,EAAUxmI,KACjBymI,EAAUD,EAAUE,GACpBhQ,EAAkBjiJ,EAAMpzF,QACxBslP,GAAYF,IAAUx6I,GAASw6I,IAAYjD,GAAUiD,GACzDhyJ,EAAMt7F,QAAQmzO,GAAariP,KAAK28P,iBAAiBH,GAASp7M,KAAMphD,KAAK1E,YACrE2mP,GAAaI,GAAama,EAASx8P,KAAK1E,WAAY8lD,GAAKphD,KAAKohD,KAAKzlD,MAAM,GAAI,GAAzBylD,CAA6BopD,EAAMzuG,SACnF6gQ,GAAc,EAElB,IACEA,GAAe7mI,GAAQiwH,GAAchmP,KAAKywO,QAAS16G,EAAM02H,EAAiB3I,EAAQt5I,EACpF,CAAE,MAAOzhC,GACP,MAAM,IAAI9pE,MAAM,6BAA6ByX,OAAOq/G,EAAKl8H,MAAQk8H,EAAKh8H,KAAM,+BAA+B2c,OAAOmkP,EAAW,qBAAqBnkP,OAAO1W,KAAKiyD,GAAI,QAAQv7C,OAAOqyD,EAAIvI,SACvL,CAEA,GAAIo8L,GAAeF,EAAW,MACHp5P,IAArBi5P,EAAUz/M,SACZw/M,EAAiBC,EAAUz/M,QAG7B+tM,EAAQlsP,KAAKkC,MAAMgqP,EAASv0O,GAAc,GAAI08G,GAAOupI,EAAU1R,UAAU,IACzEwR,EAAqBE,EACrB,KACF,CACF,CACF,CAAE,MAAOzU,GACPV,EAAM,CACJ9tM,MAAOwuM,EAEX,CAAE,QACA,IACM3sP,IAAOA,EAAGqa,OAASza,EAAKE,EAAGgrF,SAASlrF,EAAG6U,KAAK3U,EAClD,CAAE,QACA,GAAImsP,EAAK,MAAMA,EAAI9tM,KACrB,CACF,CAEA,GAAK+iN,EAAL,CAIA,IAAKC,EAAe5gQ,OAClB,MAAO,CACLwxG,YAAa,CAACmvJ,GACdD,QAAS,GACTrtD,cAAevkG,EAAMzuG,MAAQ,CAACiE,MAAQ,GACtCi6D,OAAQuwC,EACRqgJ,QAASA,GAIb,IAAIgS,EAAoBt+C,GAAQ+9C,EAAe1gQ,KAAI,SAAU+oF,GAC3D,OAAOh1C,EAAMmtN,sBAAsBn4K,EAAW6lB,EAAMmjJ,aACtD,KAEA,MAAO,CACLzgJ,YAAa,CAACmvJ,GACdD,UAHiBC,EAAmB/+H,SAGd,GAAKihF,GAAQ+9C,EAAe1gQ,KAAI,SAAUmhQ,GAC9D,OAAOptN,EAAMqtN,8BAA8BD,EAC7C,KACAhuD,cAAe8tD,EACf5iM,OAAQuwC,EACRqgJ,QAASA,EAvBX,CAyBF,EAKA2O,EAAUj4P,UAAUy7P,8BAAgC,SAAUD,GAC5D,GAAI/8P,KAAK4iC,MAAQm6N,EAAWn6N,MAC1B,MAAO,CAAC5iC,MAOV,IAJA,IAAIb,EAAQ,GACR0jP,EAAS7iP,KACTi9P,EAAmBF,EAEhBla,GAAUA,IAAWoa,GAC1B99P,EAAMR,KAAKkkP,GACXA,EAASA,EAAO50O,OAGlB,OAAI40O,IAAWoa,EAGN,IAGT99P,EAAMR,KAAKs+P,GACJ99P,EACT,EAEAq6P,EAAUj4P,UAAU27P,WAAa,SAAU78G,EAAgB88G,EAAQrxK,EAAYk/J,EAAgBlH,EAAQsZ,EAAWnS,GAChH,IAAI5D,EAAKtsP,EAAIgpP,EAAK9oP,EAEd00C,EAAQ3vC,KAERq9P,EAAaD,EAAYlW,GAAiB,GAAIlnP,KAAKs7P,cAAc8B,EAAUrhQ,QAAU,GACrFuhQ,EAAW,IAAI5nM,IAEnB,IACE,IAAK,IAAIv6D,EAAKolP,GAAS9mP,MAAMkV,KAAK0xI,GAAgBpgJ,MAAK,SAAUJ,EAAGC,GAClE,OAAOD,EAAE+iC,MAAQ9iC,EAAE8iC,KACrB,KAAKvnC,EAAKF,EAAGka,QAASha,EAAGma,KAAMna,EAAKF,EAAGka,OAAQ,GAGxCkpC,GAAI8+M,EAFLx5D,EAAKxoM,EAAGU,QAEgBwiD,GAAIutC,EAAWswK,QAASv4D,IAAOA,EAAG51L,QAAUqvP,EAAS/+M,IAAIslJ,EAAG51L,UACtFqvP,EAAStmP,IAAI6sL,EAEjB,CACF,CAAE,MAAOokD,GACPZ,EAAM,CACJ/tM,MAAO2uM,EAEX,CAAE,QACA,IACM5sP,IAAOA,EAAGma,OAASza,EAAKI,EAAG8qF,SAASlrF,EAAG6U,KAAKzU,EAClD,CAAE,QACA,GAAIksP,EAAK,MAAMA,EAAI/tM,KACrB,CACF,CAEA,IACE,IAAK,IAAIikN,EAAehd,GAAS8c,GAAaG,EAAiBD,EAAaloP,QAASmoP,EAAehoP,KAAMgoP,EAAiBD,EAAaloP,OAAQ,CAC9I,IAAIwuL,EAECtlJ,GAAI8hG,EAFLwjD,EAAK25D,EAAezhQ,SAEQwiD,GAAIutC,EAAWswK,QAASv4D,EAAG51L,SACzD69E,EAAWswK,QAAQz9P,KAAKklM,EAE5B,CACF,CAAE,MAAOogD,GACPF,EAAM,CACJzqM,MAAO2qM,EAEX,CAAE,QACA,IACMuZ,IAAmBA,EAAehoP,OAASva,EAAKsiQ,EAAat3K,SAAShrF,EAAG2U,KAAK2tP,EACpF,CAAE,QACA,GAAIxZ,EAAK,MAAMA,EAAIzqM,KACrB,CACF,CAEAwyC,EAAWswK,QAAQn8P,MAAK,SAAUJ,EAAGC,GACnC,OAAOA,EAAE8iC,MAAQ/iC,EAAE+iC,KACrB,IACA,IAAI66N,EAAchkQ,MAAMkV,KAAK2uP,GAAUr9P,MAAK,SAAUJ,EAAGC,GACvD,OAAOD,EAAE+iC,MAAQ9iC,EAAE8iC,KACrB,IACI86N,EAAa,IAAIhoM,IAAIo2B,EAAWswK,SAChCuB,EAAap/C,GAAQk/C,EAAY7hQ,KAAI,SAAUioM,GACjD,IAAI9a,EAAS,GAEb,GAAgB,UAAZ8a,EAAG9pM,KACL,OAAOgvL,EAGT,IAAI96K,EAAS41L,EAAG51L,OAEhB,IAAKA,EAAOA,OACV,OAAO86K,EAGTA,EAAOpqL,KAAK6W,GAAKquL,EAAG5xI,GAAI4xI,EAAGsvD,UAC3B39O,GAAKvH,EAAOgkD,GAAI4xI,EAAGsvD,SAAWvP,GAAW//C,EAAGsvD,SAAUnI,EAAgBlH,QAAUxgP,IAChF,IAAIs6P,EAAc3vP,EAAOA,OAUzB,MARyB,aAArB2vP,EAAY7jQ,MACV6oI,GAAYg7H,GAAahzN,OAAM,SAAUz5B,GAC3C,OAAOw3O,GAAe78J,EAAWijH,cAAe59L,EAClD,KACE43K,EAAOpqL,KAAK6W,GAAKooP,EAAY3rM,KAI1B82H,CACT,KACI80E,EAAeJ,EAAY7hQ,KAAI,SAAU+oF,GAC3C,IAAIk5K,EAAel5K,EAAU41K,QACzBuD,EAAgBn5K,EAAU8oK,WAAW7xP,KAAI,SAAUkuP,GACrD,OAAOtuP,GAAMsuP,EACf,IACA,MAAO,CACL/vP,KAAM,QACN8wP,QAASzB,GAAgB6B,EAAkB30O,GAAcA,GAAc,GAAI08G,GAAO6qI,IAAe,GAAQ7qI,GAAO8qI,IAAgB,GAASxnP,GAAcA,GAAc,GAAI08G,GAAO8qI,IAAgB,GAAQ9qI,GAAO6qI,IAAe,GAAQluN,EAAM8gM,QAAQ31O,QAAQ+vP,SAEhQ,IAAGn0O,OAAO,CACR3c,KAAM,aACN8wP,QAAS8S,EAAW/hQ,KAAI,SAAU84F,GAChC,OAAOksJ,GAAMlsJ,EACf,MAUEm2J,EARcpxP,MAAMkV,KAAK+uP,GAAY9hQ,KAAI,SAAU+oF,GACrD,MAAO,CACL5qF,KAAM,OACN8wP,QAASzB,GAAgB9yO,GAAcA,GAAc,GAAI08G,GAAOruC,EAAUiwK,SAAS,GAAQ5hI,GAAOruC,EAAU8oK,WAAW7xP,KAAI,SAAUkuP,GACnI,OAAO5wN,GAAK4wN,EACd,MAAK,GAAQn6M,EAAM8gM,QAAQ31O,QAAQ+vP,SAEvC,IAC0Bn0O,OAAO,CAC/B3c,KAAM,aACN8wP,QAASzB,GAAgBt9J,EAAW++J,QAAS7qP,KAAKywO,QAAQ31O,QAAQ+vP,WACjEn0O,OAAOmnP,GAEV,GAAIV,EAAQ,CACV,IAAIY,EAAc3U,GAAgB7qC,GAAQjoM,GAAc,GAAI08G,GAAOqtB,IAAiB,GAAOpgJ,MAAK,SAAUJ,EAAGC,GAC3G,OAAOA,EAAE8iC,MAAQ/iC,EAAE+iC,KACrB,IAAGhnC,KAAI,SAAU+oF,GACf,OAAOA,EAAUiwK,MACnB,KAAK50P,KAAKywO,QAAQ31O,QAAQ+vP,SAASn9N,QAAO,SAAUm4E,GAClD,OAAQ+gJ,GAAiB/gJ,EAC3B,IACA,OAAOglJ,EAAQn0O,OAAO,CACpB3c,KAAM,OACN8wP,QAASkT,GAEb,CAEA,OAAOlT,CACT,EAUA2O,EAAUj4P,UAAUuqF,WAAa,SAAU0e,EAAO9V,EAAOt9E,EAASqsD,QAClD,IAAV+mC,IACFA,EAAQxqG,KAAK4jN,cAGf,IAEImnC,EjBregB0P,EiBmehB3W,EAAS2B,GAAa/wJ,GAI1B,GAAI8V,aAAiBgjJ,GACnBzC,OAA2BznP,IAAZ8T,EAAwBozF,EAAQxqG,KAAKi0P,aAAazG,GAAM7+O,KAAK67F,EAAOpzF,QAC9E,CACL,IAAI4mP,EAAqBh8I,GAASxX,GAASxqG,KAAKgV,QAAQ2tO,GAAiB3iP,KAAKi+P,gBAAgBzzJ,KAAWxqG,KAAKgV,QAAQw1F,GAClHiiJ,EAA8B,OAAZr1O,QAAgC,IAAZA,EAAqBA,EAAUpX,KAAKywO,QAAQr5N,QACtF2zO,EAAe/qP,KAAKi0P,aAAazG,GAAM7+O,KAAKqvP,EAAoBvR,GAClE,CAEA,IAAKzK,IAAiB8B,EAAOjqP,OAASw/P,GACpC,MAAM,IAAIp6P,MAAM,4CAA4CyX,OAAO2iP,GAAU,OAG/E,GAAIr5P,KAAK62P,SACF72P,KAAK+oL,OAAOnrG,SAASkmK,EAAOjqP,QjBpff4gQ,EiBofwC3W,EAAOjqP,MjBnf9D,kBAAkB0I,KAAKk4P,IiBofxB,MAAM,IAAIx7P,MAAM,YAAYyX,OAAO1W,KAAKiyD,GAAI,6BAA6Bv7C,OAAOotO,EAAOjqP,KAAM,MAIjG,IAAIqkQ,EAAkBl+P,KAAK87P,YAAY/Q,EAAahvP,MAAOgvP,EAAcjH,IAAW,CAClF52I,YAAa,GACb6hG,cAAe,GACfqtD,QAAS,GACTniM,OAAQ8wL,EACRF,QAAS,IAEPwS,EAAanW,GAAiB,GAAIlnP,KAAKs7P,cAAcvQ,EAAahvP,QAClEskJ,EAAiB69G,EAAgBnvD,cAAcrzM,OAASwrP,GAAiBmW,EAAYa,EAAgBnvD,eAAiBsuD,EAE1H,OADAa,EAAgBnvD,cAAgBz4L,GAAc,GAAI08G,GAAOqtB,IAAiB,GACnErgJ,KAAKm+P,kBAAkBD,EAAiBnT,EAAcA,EAAa3zO,QAASqsD,EAAMqgL,EAC3F,EAEA0V,EAAUj4P,UAAU68P,wBAA0B,SAAU5zJ,EAAOs5I,EAAQua,EAAepT,GACpF,IAAIlwP,EAEAujQ,EAAiB9zJ,EAAMqgJ,QAS3B,OARArgJ,EAAQxqG,KAAK8rF,WAAW0e,EAAOs5I,OAAQxgP,EAAW2nP,IAG5CnH,OAASua,EACf7zJ,EAAM9V,MAAQ2pK,EAAcxtP,MAE3B9V,EAAKyvG,EAAMqgJ,SAASthO,QAAQ1oB,MAAM9F,EAAIub,GAAc,GAAI08G,GAAOsrI,IAAiB,IAE1E9zJ,CACT,EAEAgvJ,EAAUj4P,UAAU48P,kBAAoB,SAAUD,EAAiBnT,EAAc3zO,EAAS6zO,EAAiBnH,GACzG,IAAIqQ,EAAKp5P,EAAI4pP,EAAK1pP,EAEd00C,EAAQ3vC,UAEG,IAAX8jP,IACFA,EAASgF,IAGX,IAAI/5C,EAAgBmvD,EAAgBnvD,cAIhCotD,GAAkBpR,GAAgBmT,EAAgBhxJ,YAAYxxG,OAAS,EACvE6iQ,EAAwBpC,EAAiB+B,EAAgBnvD,cAAgBg8C,EAAeA,EAAah8C,cAAgB,GACrHouD,EAASxU,GAAe4V,EAAuBv+P,MAC/Cg+P,EAAqB7B,EAAiB36L,GAASxhE,KAAKywO,QAAS1hC,QAAiBzrM,EAC9EqqP,EAAe5C,EAAeA,EAAa4C,aAAe5C,EAAa4C,aAAeuQ,EAAgBjkM,OAASj6D,KAAKywO,QAAQkd,aAAa5C,EAAahvP,YAASuH,OAAYA,EAC3KonP,EAAe1qP,KAAKk9P,WAAW,IAAIxnM,IAAI6oM,GAAwBpB,EAAQe,EAAiB9mP,EAAS0sO,EAAQiH,EAAcE,GACvHwC,EAAa1C,EAAeruP,GAAS,CAAC,EAAGquP,EAAa0C,YAAc,CAAC,EAEzE,IACE,IAAK,IAAI9C,EAAiBpK,GAASmK,GAAeE,EAAmBD,EAAet1O,QAASu1O,EAAiBp1O,KAAMo1O,EAAmBD,EAAet1O,OAAQ,CAC5J,IAAIqW,EAAQk/N,EAAiB7uP,MAE7B,IACE,IAAK,IAAIZ,GAAMwpP,OAAM,EAAQpE,GAAS70N,EAAMm/N,UAAWxvP,EAAKF,EAAGka,QAASha,EAAGma,KAAMna,EAAKF,EAAGka,OAAQ,CAC/F,IAAIwwF,EAASxqG,EAAGU,MAEZ8pG,EAAO9rG,OAASykQ,GAClB/Q,EAAW5nJ,EAAOikJ,SAAS73L,IAAM4zC,EAAOikJ,SAAS/vP,MAAQ8rG,EAChDA,EAAO9rG,OAAS2yP,KACzBe,EAAW5nJ,EAAOikJ,SAAS73L,IAAM4zC,EAAOikJ,SAAS/vP,OAAQ,EAE7D,CACF,CAAE,MAAOgrP,GACPJ,EAAM,CACJrrM,MAAOyrM,EAEX,CAAE,QACA,IACM1pP,IAAOA,EAAGma,OAASva,EAAKE,EAAG8qF,SAAShrF,EAAG2U,KAAKzU,EAClD,CAAE,QACA,GAAIwpP,EAAK,MAAMA,EAAIrrM,KACrB,CACF,CACF,CACF,CAAE,MAAOi7M,GACPJ,EAAM,CACJ76M,MAAOi7M,EAEX,CAAE,QACA,IACM3J,IAAqBA,EAAiBp1O,OAASza,EAAK4vP,EAAe1kK,SAASlrF,EAAG6U,KAAK+6O,EAC1F,CAAE,QACA,GAAIwJ,EAAK,MAAMA,EAAI76M,KACrB,CACF,CAEA,IjB7gBwB8qM,EAAM1B,EiB6gB1Bh1L,EAAKslE,GAAO83H,GAAe9qP,KAAM+qP,EAAc3zO,EAAS0sO,EAAQ4G,EAAcO,EAAiBjrP,KAAKywO,QAAQtpG,OAAO4qH,4BAA8B/xP,KAAKywO,QAAQtpG,OAAO+jH,qBAAsB,GAC3LiC,EAAkBz/L,EAAG,GACrB+2L,EAAiB/2L,EAAG,GAEpBE,EAAKolE,GjBlkBb,SAAmB6+B,EAAOv7F,GACxB,IAAI69L,EAAKp5P,EAELE,EAAK+3H,GAAO,CAAC,GAAI,IAAK,GACtByrI,EAASxjQ,EAAG,GACZyjQ,EAAQzjQ,EAAG,GAEf,IACE,IAAK,IAAI0jQ,EAAUpe,GAAS1uF,GAAQ+sG,EAAYD,EAAQtpP,QAASupP,EAAUppP,KAAMopP,EAAYD,EAAQtpP,OAAQ,CAC3G,IAAItV,EAAO6+P,EAAU7iQ,MAEjBu6D,EAAUv2D,GACZ0+P,EAAO9/P,KAAKoB,GAEZ2+P,EAAM//P,KAAKoB,EAEf,CACF,CAAE,MAAOw0P,GACPJ,EAAM,CACJ76M,MAAOi7M,EAEX,CAAE,QACA,IACMqK,IAAcA,EAAUppP,OAASza,EAAK4jQ,EAAQ14K,SAASlrF,EAAG6U,KAAK+uP,EACrE,CAAE,QACA,GAAIxK,EAAK,MAAMA,EAAI76M,KACrB,CACF,CAEA,MAAO,CAACmlN,EAAQC,EAClB,CiBoiBoBG,CAAU1R,EAAiBvG,IAAmB,GAC1DkY,EAAelxM,EAAG,GAClBmxM,EAAmBnxM,EAAG,GAEtBkwM,EAAgB3Q,EAAgBz/N,QAAO,SAAUm4E,GACnD,IAAI9qG,EAEJ,OAAO8qG,EAAO9rG,OAASykQ,KAAuC,QAA1BzjQ,EAAK8qG,EAAOikJ,gBAA6B,IAAP/uP,OAAgB,EAASA,EAAGhB,QAAU66N,EAC9G,IACIh1I,EAAWk+K,EAAc7hQ,QAAO,SAAU2gC,EAAKipE,GAEjD,OADAjpE,EAAIipE,EAAOikJ,SAAS73L,ITx3B1B,SAA8B+sM,EAAkBvuB,EAASr5N,EAAS0sO,GAChE,IAAI/oP,EAEAkkQ,EAAY7Y,GAAe4Y,EAAiBrzN,KAC5C0mN,EAAuG,QAArFt3P,EAAiB,OAAZ01O,QAAgC,IAAZA,OAAqB,EAASA,EAAQ31O,QAAQw3P,gBAA6B,IAAPv3P,OAAgB,EAASA,EAAGkkQ,EAAUllQ,MACrJw4P,EAAeyM,EAAiBnuP,KAAO+yO,GAAWob,EAAiBnuP,KAAMuG,EAAS0sO,QAAUxgP,EAC5F2rP,EAAYoD,EAAiBtD,GAAoBsD,EAAgB2M,EAAiB/sM,GAAIsgM,GAAgBzD,GAAgBkQ,EAAiB/sM,IAG3I,OADAg9L,EAAUtrK,KAAOq7K,EACV/P,CACT,CS82BgCiQ,CAAqBr5J,EAAOikJ,SAAUn6M,EAAM8gM,QAASgU,EAAgBX,GACxFlnN,CACT,GAAGmuN,EAAeruP,GAAS,CAAC,EAAGquP,EAAanrK,UAAY,CAAC,GACrD4xK,EAAY,IAAIhE,GAAM,CACxBzxP,MAAOiiQ,GAAsBjT,EAAahvP,MAC1Cqb,QAASqtO,EACTX,OAAQA,EAER4J,WAAY3C,EAAeA,EAAa2C,WAAa,KACrDC,aAAcqQ,EAAqBrQ,GjBpiBbvJ,EiBoiB+CuJ,EjBpiBzCjL,EiBoiBuDsb,EjBniBhF,CACL/9O,QAASyiO,EACT2B,OAAQF,GAAoBC,EAAM1B,UiBiiByEp/O,EAAYynP,EAAeA,EAAa4C,kBAAerqP,EAChK6zH,SAAU6mI,GAAsBE,EAAgBjkM,OAAS8wL,OAAeznP,EACxEunP,QAASmT,EAAqBe,EAAmB,GACjDtR,WAAYuQ,EAAqBvQ,EAAa1C,EAAeA,EAAa0C,WAAa,CAAC,EACxF1kE,OAAQ,GACRgmB,cAAewvD,EACfrxJ,YAAagxJ,EAAgBhxJ,YAC7BttB,SAAUA,EACVpqE,KAAM2nP,EACNtU,KAAMD,GAAyB2V,GAC/B9tB,QAASzwO,OAEPm/P,EAAmB/nP,IAAYqtO,EACnC+M,EAAUqD,QAAU/Q,EAAOjqP,OAASs+I,IAAUgnH,EAE9C,IAAIhoI,EAAUq6H,EAAUr6H,QAEpBA,UACKA,EAAQA,QAKjB,IAAIioI,GAAwBjC,IAAWn9P,KAAKq6P,YAActrD,EAAc50M,MAAK,SAAUwqF,GACrF,OAAOA,EAAU01K,UACnB,KASA,IAAK8B,KAAoBiD,GAAwBtb,EAAOjqP,OAASu/P,IAC/D,OAAO5H,EAGT,IAAI6N,EAAiB7N,EAErB,IAAK2L,EAOH,IANIiC,IACFC,EAAiBr/P,KAAKo+P,wBAAwBiB,EAAgB,CAC5DtlQ,KAAMgnP,IACL+C,EAAQmH,IAGN6T,EAAapjQ,QAAQ,CAC1B,IAAI4jQ,EAAcR,EAAa5+P,QAC/Bm/P,EAAiBr/P,KAAKo+P,wBAAwBiB,EAAgBC,EAAYxb,OAAQA,EAAQmH,EAC5F,CAIF,IAAI4J,EAAUwK,EAAexK,UAAY19H,IAAYkoI,EAAexU,QAAQnvP,QAAUyjQ,UAA2BhoI,EAAQp7H,eAAiBsjQ,EAAetjQ,QAAUqxP,GAAiBiS,EAAetjQ,MAAOo7H,EAAQp7H,YAASuH,GAI3N,OAHA+7P,EAAexK,QAAUA,EAEzBwK,EAAeloI,QAAUA,EAClBkoI,CACT,EAMA7F,EAAUj4P,UAAUg6P,aAAe,SAAUgE,GAC3C,GAAIhG,GAAUgG,GACZ,OAAOv/P,KAAKywO,QAAQksB,iBAAiB4C,GAGvC,IAAKv/P,KAAKqkP,OACR,MAAM,IAAIplP,MAAM,mCAAmCyX,OAAO6oP,EAAU,YAAY7oP,OAAO1W,KAAKiyD,GAAI,8BAGlG,IAAI12D,EAASyE,KAAKqkP,OAAOkb,GAEzB,IAAKhkQ,EACH,MAAM,IAAI0D,MAAM,gBAAgByX,OAAO6oP,EAAU,yBAAyB7oP,OAAO1W,KAAKiyD,GAAI,MAG5F,OAAO12D,CACT,EAQAi+P,EAAUj4P,UAAUo7P,iBAAmB,SAAUla,GAC/C,IAAI+c,EAAkBjG,GAAU9W,GAAWA,EAAQ9mP,MAAM8jQ,GAA2Bhd,EAEpF,GAAI+c,IAAoBx/P,KAAKiyD,GAC3B,OAAOjyD,KAGT,IAAI2kF,EAAY3kF,KAAKywO,QAAQupB,MAAMwF,GAEnC,IAAK76K,EACH,MAAM,IAAI1lF,MAAM,sBAAsByX,OAAO8oP,EAAiB,iCAAiC9oP,OAAO1W,KAAKiyD,GAAI,MAGjH,OAAO0yB,CACT,EAQA60K,EAAUj4P,UAAUm+P,mBAAqB,SAAU9c,GACjD,GAAyB,kBAAdA,GAA0B2W,GAAU3W,GAC7C,IACE,OAAO5iP,KAAK28P,iBAAiB/Z,EAAUjnP,MAAM,GAC/C,CAAE,MAAO2Z,IACP,CAOJ,IAHA,IAAIqqP,EAAiBnd,GAAYI,EAAW5iP,KAAK1E,WAAWK,QACxDikQ,EAAmB5/P,KAEhB2/P,EAAejkQ,QAAQ,CAC5B,IAAI6D,EAAMogQ,EAAez/P,QAEzB,IAAKX,EAAI7D,OACP,MAGFkkQ,EAAmBA,EAAiBrE,aAAah8P,EACnD,CAEA,OAAOqgQ,CACT,EAQApG,EAAUj4P,UAAUyT,QAAU,SAAU0tO,GACtC,IAAI3nP,EAEA40C,EAAQ3vC,KAEZ,IAAK0iP,EACH,OAAO1iP,KAAK65P,mBAAqBP,GAGnC,OAAQt5P,KAAKjG,MACX,IAAK,WACH,OAAO+oP,GAAU9iP,KAAK65P,mBAAmB,SAAUpW,EAAeiY,GAChE,OAAOjY,EAAgB9zM,EAAM4rN,aAAaG,GAAa1mP,QAAQ0tO,EAAWgZ,IAAgBjY,GAAiB6V,EAC7G,IAEF,IAAK,WACH,GAAIt3I,GAAS0gI,GAAa,CACxB,IAAImd,EAAe7/P,KAAKu7P,aAAa7Y,GAErC,MAA0B,aAAtBmd,EAAa9lQ,MAA6C,aAAtB8lQ,EAAa9lQ,OAC5CgB,EAAK,CAAC,GAAM2nP,GAAcmd,EAAahG,kBAAmB9+P,GAG5D2nP,CACT,CAEA,OAAKjiP,OAAO0+C,KAAKujM,GAAYhnP,OAItBonP,GAAUJ,GAAY,SAAUe,EAAeiY,GACpD,OAAOjY,EAAgB9zM,EAAM4rN,aAAaG,GAAa1mP,QAAQyuO,GAAiB6V,EAClF,IALSt5P,KAAK65P,mBAAqB,CAAC,EAOtC,QACE,OAAOnX,GAAc4W,GAE3B,EAEAE,EAAUj4P,UAAU08P,gBAAkB,SAAU6B,GAC9C,GAAIvG,GAAUuG,GAAkB,CAC9B,IAAIn7K,EAAY3kF,KAAKywO,QAAQupB,MAAM8F,EAAgBnkQ,MAAM8jQ,IAEzD,IAAK96K,EACH,MAAM,IAAI1lF,MAAM,8BAA8ByX,OAAOopP,EAAiB,MAGxE,OAAOn7K,EAAUvjC,IACnB,CAEA,OAAOohM,GAAYsd,EAAiB9/P,KAAK1E,UAC3C,EAEAmF,OAAOwsC,eAAeusN,EAAUj4P,UAAW,oBAAqB,CAC9D4C,IAAK,WACH,IAAIpJ,EAMA8+P,EAJJ,GAAI75P,KAAK25P,QAAQE,kBACf,OAAO75P,KAAK25P,QAAQE,kBAKtB,GAAkB,aAAd75P,KAAKjG,KACP8/P,EAAoB5W,GAAgBjjP,KAAKqkP,QAAQ,SAAU75I,GACzD,OAAOA,EAAMqvJ,mBAAqBP,EACpC,IAAG,SAAU30K,GACX,QAA4B,YAAnBA,EAAU5qF,KACrB,SACK,QAAqBuJ,IAAjBtD,KAAKk6P,QAAuB,CACrC,IAAKl6P,KAAKqkP,OAAOrkP,KAAKk6P,SACpB,MAAM,IAAIj7P,MAAM,kBAAkByX,OAAO1W,KAAKk6P,QAAS,oBAAoBxjP,OAAO1W,KAAKT,IAAK,MAG9Fs6P,EAAoB/S,GAAW9mP,KAAKqkP,OAAOrkP,KAAKk6P,UAAYl6P,KAAKk6P,UAAWn/P,EAAK,CAAC,GAAMiF,KAAKk6P,SAAWl6P,KAAKqkP,OAAOrkP,KAAKk6P,SAASL,kBAAmB9+P,EACvJ,MAEE8+P,EAAoB,CAAC,EAIvB,OADA75P,KAAK25P,QAAQE,kBAAoBA,EAC1B75P,KAAK25P,QAAQE,iBACtB,EACAxvP,YAAY,EACZD,cAAc,IAGhBovP,EAAUj4P,UAAUw+P,gBAAkB,SAAUrd,EAAYtrO,GAC1DpX,KAAKi+E,QAGL,IAAI8wH,EAAgB/uM,KAAKs7P,cAAc5Y,GACvC,OAAO1iP,KAAKm+P,kBAAkB,CAC5BpvD,cAAeA,EACfqtD,QAAS,GACTlvJ,YAAa,GACbjzC,YAAQ32D,EACRunP,QAAS,SACRvnP,EAAuB,OAAZ8T,QAAgC,IAAZA,EAAqBA,EAAUpX,KAAKywO,QAAQr5N,aAAS9T,EACzF,EAEA7C,OAAOwsC,eAAeusN,EAAUj4P,UAAW,eAAgB,CAKzD4C,IAAK,WACH,IAAI01P,EAAoB75P,KAAK65P,kBAE7B,IAAKA,EACH,MAAM,IAAI56P,MAAM,oDAAoDyX,OAAO1W,KAAKiyD,GAAI,OAGtF,OAAOjyD,KAAK+/P,gBAAgBlG,EAC9B,EACAxvP,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,SAAU,CAKnD4C,IAAK,WACH,IAAI24C,EAEJ,GAAkB,YAAd98C,KAAKjG,KAAoB,CAC3B,IAAIimQ,EAAgBhgQ,KAAKmnI,OAGvBrqF,EADEklE,GAASg+I,EAAcljN,SAChBy8M,GAAUyG,EAAcljN,QAAU6lM,GAAiB3iP,KAAKywO,QAAQksB,iBAAiBqD,EAAcljN,QAAQsE,KAAKzlD,MAAMqE,KAAKohD,KAAK1lD,OAAS,IAErIskQ,EAAcljN,MAE3B,CAEA,OAAOA,CACT,EACAzyC,YAAY,EACZD,cAAc,IAUhBovP,EAAUj4P,UAAUu7P,sBAAwB,SAAUmD,EAAiBtS,EAAc34O,GAKnF,YAJgB,IAAZA,IACFA,GAAU,GAGLA,EAAmC,YAAzBirP,EAAgBlmQ,KAAqBkmQ,EAAgBC,eAAevS,GAAgBsS,EAAgBpY,kBAAoB,CAACoY,EAC5I,EAEAx/P,OAAOwsC,eAAeusN,EAAUj4P,UAAW,oBAAqB,CAC9D4C,IAAK,WACH,IAAIwrC,EAAQ3vC,KAEZ,OAAI8mP,GAAW9mP,MACN,CAACA,MAIQ,aAAdA,KAAKjG,MAAwBiG,KAAKk6P,QAS/B37C,GADqBilC,GAAaxjP,KAAK65P,mBACTj+P,KAAI,SAAUukQ,GACjD,OAAOxwN,EAAMywN,oBAAoBD,EACnC,MAVOne,IACH36O,IAAK,EAAO,wBAAwBqP,OAAO1W,KAAKiyD,GAAI,4BAG/C,CAACjyD,MAOZ,EACAqK,YAAY,EACZD,cAAc,IAShBovP,EAAUj4P,UAAU6+P,oBAAsB,SAAU3mI,GAClD,IAAKA,EAAa/9H,OAChB,MAAO,CAACsE,MAGV,IAAIjF,EAAKi4H,GAAOyG,GACZ8lI,EAAWxkQ,EAAG,GACdslQ,EAAiBtlQ,EAAGY,MAAM,GAE9B,IAAKqE,KAAKqkP,OACR,MAAM,IAAIplP,MAAM,4BAA4ByX,OAAO6oP,EAAU,+BAG/D,IAAIlX,EAAiBroP,KAAKu7P,aAAagE,GAEvC,GAA4B,YAAxBlX,EAAetuP,KACjB,OAAOsuP,EAAe6X,iBAGxB,IAAKlgQ,KAAKqkP,OAAOkb,GACf,MAAM,IAAItgQ,MAAM,gBAAgByX,OAAO6oP,EAAU,yBAAyB7oP,OAAO1W,KAAKiyD,GAAI,MAG5F,OAAOjyD,KAAKqkP,OAAOkb,GAAUa,oBAAoBC,EACnD,EAEA7G,EAAUj4P,UAAUosP,aAAe,SAAU2S,GAC3C,GAAK7/P,OAAO0+C,KAAKn/C,KAAKqkP,QAAQ3oP,OAI9B,MAAO,CACLukB,QAASqgP,GAAsBtgQ,KAAK65P,kBACpCxV,OAAQpB,GAAgBjjP,KAAKqkP,QAAQ,SAAU1/J,EAAWplF,GACxD,IAAK+gQ,EACH,OAAO37K,EAAUgpK,eAGnB,IAAIlK,EAAgBzhI,GAASs+I,QAAsBh9P,EAAYg9P,EAAmB/gQ,GAClF,OAAOolF,EAAUgpK,aAAalK,GAAiB9+J,EAAUk1K,kBAC3D,IAAG,SAAUl1K,GACX,OAAQA,EAAUwyC,OACpB,IAEJ,EASAqiI,EAAUj4P,UAAU2+P,eAAiB,SAAUvS,GAC7C,IAAIh+M,EAAQ3vC,KAEZ,GAAkB,YAAdA,KAAKjG,KACP,MAAO,CAACiG,MAGV,IAAIiO,EAASjO,KAAKiO,OAElB,IAAK0/O,EAAc,CACjB,IAAI4S,EAAgBvgQ,KAAK88C,OACzB,OAAOyjN,EAAgBhiD,GAAQilC,GAAa+c,GAAe3kQ,KAAI,SAAU4kQ,GACvE,OAAOvyP,EAAOmyP,oBAAoBI,EACpC,KAAMvyP,EAAO45O,iBACf,CAEA,IjBpoCgBrpL,EAAOiiM,EiBooCnBC,GjBpoCYliM,EiBooCiBvwD,EAAOmzC,KjBpoCjBq/M,EiBooCuB,SjBnoCzC,SAAU78P,GACf,IAAIwjP,EAAKrsP,EAELQ,EAASqI,EAEb,IACE,IAAK,IAAI+8P,EAAUpgB,GAAS/hL,GAAQoiM,EAAYD,EAAQtrP,QAASurP,EAAUprP,KAAMorP,EAAYD,EAAQtrP,OAAQ,CAC3G,IAAIpR,EAAO28P,EAAU7kQ,MACrBR,EAASA,EAAOklQ,GAAcx8P,EAChC,CACF,CAAE,MAAO6jP,GACPV,EAAM,CACJ9tM,MAAOwuM,EAEX,CAAE,QACA,IACM8Y,IAAcA,EAAUprP,OAASza,EAAK4lQ,EAAQ16K,SAASlrF,EAAG6U,KAAK+wP,EACrE,CAAE,QACA,GAAIvZ,EAAK,MAAMA,EAAI9tM,KACrB,CACF,CAEA,OAAO/9C,CACT,GiB4mC0DoyP,GAAc1tO,QAEtE,OAAI+hG,GAAS0+I,GACJ,CAACzyP,EAAOstP,aAAamF,IAGvBniD,GAAQilC,GAAakd,GAAiB9kQ,KAAI,SAAUilQ,GACzD,MAAyB,SAAlBlxN,EAAMwnF,QAAqBlpH,EAAOmyP,oBAAoBS,GAAgB,CAAC5yP,EAAOo2O,OAAOwc,EAAa,IAC3G,IACF,EAEApgQ,OAAOwsC,eAAeusN,EAAUj4P,UAAW,WAAY,CAIrD4C,IAAK,WACH,IAAIwrC,EAAQ3vC,KAER8gQ,EAAgBviD,GAAQ99M,OAAO0+C,KAAKn/C,KAAKqkP,QAAQzoP,KAAI,SAAU2jQ,GACjE,OAAO5vN,EAAM00M,OAAOkb,GAAUwB,QAChC,KACA,MAAO,CAAC/gQ,KAAKiyD,IAAIv7C,OAAOoqP,EAC1B,EACAz2P,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,SAAU,CAInD4C,IAAK,WACH,IAAIiwP,EAAKr5P,EAAIs5P,EAAKp5P,EAElB,GAAI+E,KAAK25P,QAAQ5wE,OACf,OAAO/oL,KAAK25P,QAAQ5wE,OAGtB,IAAIs7D,EAASrkP,KAAKqkP,OACdt7D,EAAS,IAAIrzH,IAAI11D,KAAK6tP,WAE1B,GAAIxJ,EACF,IACE,IAAK,IAAIlpP,EAAKolP,GAAS9/O,OAAO0+C,KAAKklM,IAAUhpP,EAAKF,EAAGka,QAASha,EAAGma,KAAMna,EAAKF,EAAGka,OAAQ,CACrF,IACIm1F,EAAQ65I,EADEhpP,EAAGU,OAGjB,GAAIyuG,EAAM65I,OACR,IACE,IAAK,IAAI32L,GAAM2mM,OAAM,EAAQ9T,GAAS/1I,EAAMu+E,SAAUn7H,EAAKF,EAAGr4C,QAASu4C,EAAGp4C,KAAMo4C,EAAKF,EAAGr4C,OAAQ,CAC9F,IAAI86O,EAAUviM,EAAG7xD,MACjBgtL,EAAO/xK,IAAI,GAAGN,OAAOy5O,GACvB,CACF,CAAE,MAAOsE,GACPJ,EAAM,CACJ/6M,MAAOm7M,EAEX,CAAE,QACA,IACM7mM,IAAOA,EAAGp4C,OAASva,EAAKyyD,EAAGu4B,SAAShrF,EAAG2U,KAAK89C,EAClD,CAAE,QACA,GAAI2mM,EAAK,MAAMA,EAAI/6M,KACrB,CACF,CAEJ,CACF,CAAE,MAAOk7M,GACPJ,EAAM,CACJ96M,MAAOk7M,EAEX,CAAE,QACA,IACMn5P,IAAOA,EAAGma,OAASza,EAAKI,EAAG8qF,SAASlrF,EAAG6U,KAAKzU,EAClD,CAAE,QACA,GAAIi5P,EAAK,MAAMA,EAAI96M,KACrB,CACF,CAGF,OAAOt5C,KAAK25P,QAAQ5wE,OAAStvL,MAAMkV,KAAKo6K,EAC1C,EACA1+K,YAAY,EACZD,cAAc,IAEhB3J,OAAOwsC,eAAeusN,EAAUj4P,UAAW,YAAa,CAMtD4C,IAAK,WACH,IAAI4kL,EAAS,IAAIrzH,IAAI11D,KAAKktG,YAAYx/E,QAAO,SAAUo+D,GACrD,SAAUA,EAAWhvC,SAAWgvC,EAAW++J,QAAQnvP,QAAUowF,EAAWwxC,SAC1E,IAAG1hI,KAAI,SAAUkwF,GACf,OAAOA,EAAW2uK,SACpB,KACA,OAAOhhQ,MAAMkV,KAAKo6K,EACpB,EACA1+K,YAAY,EACZD,cAAc,IAGhBovP,EAAUj4P,UAAUy/P,cAAgB,SAAUC,GAC5C,IAAItxN,EAAQ3vC,KAEZ,QAAgBsD,IAAZ29P,EAKJ,OAAOA,EAAQrlQ,KAAI,SAAUkhD,GAC3B,IAAKklE,GAASllE,GACZ,OAAOA,EAGT,IAAIokN,EAAmBpkN,EAAO,KAAOnN,EAAMr0C,UAG3C,GAAI4lQ,IAAqBvxN,EAAM1hC,OAC7B,OAAO0hC,EAAM+vN,mBAAmB5iN,EAAOnhD,MAAM,IAG/C,IAAI4uP,EAAiB2W,EAAmBvxN,EAAMpwC,IAAMu9C,EAASA,EAE7D,IAAInN,EAAM1hC,OASR,OAAO0hC,EAAM+vN,mBAAmBnV,GARhC,IAGE,OAFsB56M,EAAM1hC,OAAOyxP,mBAAmBnV,EAGxD,CAAE,MAAOxhL,GACP,MAAM,IAAI9pE,MAAM,iDAAiDyX,OAAOi5B,EAAMsiB,GAAI,QAAQv7C,OAAOqyD,EAAIvI,SACvG,CAIJ,GACF,EAEAg5L,EAAUj4P,UAAU85P,iBAAmB,SAAU8F,GAC/C,IAAIxxN,EAAQ3vC,KAERohQ,EjBr5BR,SAAyBtkN,GACvB,QAAex5C,IAAXw5C,GD5iBe,KC4iBSA,EAI5B,OAAOy+D,GAAQz+D,EACjB,CiB+4B2BukN,CAAgBF,EAAiBrkN,QACpDwgF,EAAW,aAAc6jI,EAAmBA,EAAiB7jI,UAAW8jI,GAAmBA,EAAiBjnQ,MAAK,SAAU8mQ,GAC7H,OAAOj/I,GAASi/I,IAAYA,EAAQ,KAAOtxN,EAAMr0C,SACnD,IACI2qP,EAASjmP,KAAKywO,QAAQ31O,QAAQmrP,OAC9BnpM,EAAS98C,KAAKghQ,cAAcI,GAE5Bt1K,EAAapvF,GAASA,GAAS,CAAC,EAAGykQ,GAAmB,CACxDtW,QAASzB,GAAgB7tI,GAAQ4lJ,EAAiBtW,UAClD90H,KAAMivH,GAAQmc,EAAiBprI,KAAMkwH,GACrCnpM,OAAQA,EACRmd,OAAQj6D,KACRs9H,SAAUA,EACVm9H,UAAW0G,EAAiBzsK,MAC5Bi4H,OAAQ,WACN,OAAOjwN,GAASA,GAAS,CAAC,EAAGovF,GAAa,CACxChvC,OAAQgvC,EAAWhvC,OAASgvC,EAAWhvC,OAAOlhD,KAAI,SAAU6D,GAC1D,MAAO,IAAIiX,OAAOjX,EAAEwyD,GACtB,SAAK3uD,EACL22D,OAAQ,IAAIvjD,OAAOi5B,EAAMsiB,KAE7B,IAGF,OAAO65B,CACT,EAEA0tK,EAAUj4P,UAAUo5P,kBAAoB,WACtC,IAAIrG,EAAMv5P,EAINumQ,EAFA3xN,EAAQ3vC,KAIZ,GAAKA,KAAKmnI,OAAOs8D,GAEV,GAAIhqM,MAAMC,QAAQsG,KAAKmnI,OAAOs8D,IACnC69D,EAAWthQ,KAAKmnI,OAAOs8D,OAClB,CACL,IAAIxoM,EAAK+E,KAAKmnI,OAAOs8D,GACjBtoM,EAAKk+P,GACLh+P,EAAKJ,EAAGE,GACRomQ,OAAyB,IAAPlmQ,EAAgB,GAAKA,EACvCmmQ,EAA4BlhB,GAAOrlP,EAAI,CAA+BE,MAE1EmmQ,EAAW/iD,GAAQ99M,OAAO0+C,KAAKqiN,GAA2B5lQ,KAAI,SAAU2D,GACjEyiP,IAAiBziP,IAAQ65P,IAC5B/xP,IAAK,EAAO,4KAA8K,6CAA8CqP,OAAOi5B,EAAMsiB,GAAI,OAG3P,IAAIwvM,EAAwB5b,GAAwBtmP,EAAKiiQ,EAA0BjiQ,IAMnF,OAJKyiP,IAz9CuB,SAAUr9J,EAAW+P,EAAOwY,GAC9D,IAAIw0J,EAA4Bx0J,EAAYvxG,MAAM,GAAI,GAAGxB,MAAK,SAAU2xF,GACtE,QAAS,SAAUA,MAAiB,OAAQA,KAAgBk2B,GAASl2B,EAAWhvC,SAAWuoM,GAAUv5J,EAAWhvC,QAClH,IACI6kN,EAAYjtK,IAAU0kK,GAAa,sBAAwB,UAAU1iP,OAAOg+E,EAAO,KACvFrtF,IAAMq6P,EAA2B,+BAA+BhrP,OAAOirP,EAAW,eAAejrP,OAAOiuE,EAAU1yB,GAAI,uBAAyB,iEACjJ,CAo9CU2vM,CAA8BjyN,EAAOpwC,EAAKkiQ,GAGrCA,CACT,IAAG/qP,OAAOmvO,GAAwBwT,GAAUkI,IAC9C,MAvBED,EAAW,GAyBb,IAAIO,EAAkB7hQ,KAAKmnI,OAAOmzH,OAASzU,GAAwB,GAAI7lP,KAAKmnI,OAAOmzH,QAAU,GACzFwH,EAAa9hQ,KAAKmnI,OAAOwsH,OAAS9N,GAAwBjkP,OAAO4T,GAAKxV,KAAKiyD,KAAMjyD,KAAKmnI,OAAOwsH,QAAU,GAEtG3R,IACH36O,KAAOrH,KAAKmnI,OAAOwsH,SAAW3zP,KAAKiO,QAAS,+EAAkFyI,OAAO1W,KAAKiyD,GAAI,OAGhJ,IAAIinM,EAAe36C,GAAQv+M,KAAK40N,OAAOh5N,KAAI,SAAUu9P,GACnD,IAAI4I,EAAoB,GAUxB,OARI5I,EAAUxF,QACZoO,EAAkBpjQ,KAAKkC,MAAMkhQ,EAAmBzrP,GAAc,GAAI08G,GAAO6yH,GAAwBjkP,OAAOuoP,GAAWgP,EAAUlnM,KAAMknM,EAAUxF,UAAU,IAGrJwF,EAAU3zK,SACZu8K,EAAkBpjQ,KAAKkC,MAAMkhQ,EAAmBzrP,GAAc,GAAI08G,GAAO6yH,GAAwBjkP,OAAO03C,GAAM6/M,EAAUlnM,KAAMknM,EAAU3zK,WAAW,IAG9Iu8K,CACT,KACIhI,EAAqB/5P,KAAK+6C,MAC1BinN,EAAuBzjD,GAAQjoM,GAAcA,GAAcA,GAAcA,GAAc,GAAI08G,GAAO8uI,IAAa,GAAQ9uI,GAAOkmI,IAAe,GAAQlmI,GAAOsuI,IAAW,GAAQtuI,GAAO6uI,IAAkB,GAAOjmQ,KAAI,SAAUulQ,GAC/N,OAAO5lJ,GAAQ4lJ,GAAkBvlQ,KAAI,SAAUkwF,GAC7C,OAAOn8C,EAAM0rN,iBAAiBvvK,EAChC,GACF,KAEA,IACE,IAAK,IAAIm2K,EAAuB1hB,GAASwZ,GAAqBmI,EAAyBD,EAAqB5sP,QAAS6sP,EAAuB1sP,KAAM0sP,EAAyBD,EAAqB5sP,OAAQ,CACtM,IAAI+lP,EAAoB8G,EAAuBnmQ,MAC/CimQ,EAAqBrjQ,KAAKy8P,EAC5B,CACF,CAAE,MAAO1G,GACPJ,EAAO,CACLh7M,MAAOo7M,EAEX,CAAE,QACA,IACMwN,IAA2BA,EAAuB1sP,OAASza,EAAKknQ,EAAqBh8K,SAASlrF,EAAG6U,KAAKqyP,EAC5G,CAAE,QACA,GAAI3N,EAAM,MAAMA,EAAKh7M,KACvB,CACF,CAEA,OAAO0oN,CACT,EAEOxI,CACT,CArgDA,GCvCI2I,IAAS,EAQb,SAASC,GAAcj7H,EAAQrsI,GAM7B,OALKknP,IAAmB,+BAAgC76G,GAAYg7H,KAClEA,IAAS,EACT/6P,QAAQC,KAAK,sJAGR,IAAImyP,GAAUryH,EAAQrsI,EAC/B,CCHA,IAAI2Z,GAASu1O,GAKTN,GAAa2Y,GACbhY,GAAYiY,kBCfhB,MAEMC,GAAsBA,CAACtuB,EAAUuuB,IAAgB,GAAA9rP,OAAGu9N,GAAQv9N,OAAG8rP,GAActoQ,QAAQ,eAAgB,IACrGuoQ,GAAuBA,CAACt7P,EAAG5H,KAG7B,OAAQA,GACJ,IAAK,UACL,IAAK,YACL,IAAK,QACL,IAAK,cACL,IAAK,SACL,IAAK,aACL,IAAK,SACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,eACL,IAAK,UACL,IAAK,qBACL,IAAK,UACL,IAAK,aACL,IAAK,UACL,IAAK,WACD,OAAO,EAEX,QACI,OAAOA,EAAIo6H,WAAW,WAC9B,EAcE+oI,GAAiBA,CAAC/5I,EAAUg6I,EAAYC,KAC1C,MAAM,SAAEzuK,KAAa5oE,GAAWo3O,EAC1BpyP,EAdiBoyP,KACvB,MAAM,aAAE3uB,KAAiBrlG,GAAmBk0H,GAAOF,EAAYF,IAE/D,GAAIzgJ,GAASgyH,IAhCI,KAgCaA,EAA+B,CACzD,MAAM,aAAE8uB,GAAiBH,EACzB,MAAO,IACAh0H,EACHqlG,aAAcuuB,GAAoBO,EAAc9uB,GAExD,CACA,OAAOrlG,CAAc,EAIFo0H,CAAkBx3O,GAUrC,MAAO,CAAEo9F,WAAUx0B,WAAUr5F,QATb,CACZkoQ,WA9CqB,KA+CrBr0H,eAAgB,IAEW,iBAAnBi0H,EACE,IAAKryP,EAAYyjO,aAAcrrH,GAC/Bp4G,IAGwB,GCjDlCkE,GAAAA,IAAWo2O,EACboY,GAAqBxuP,GAAO,CAAEyuP,mBAAe5/P,IAC7C6/P,GAAqB1uP,GAAO,CAAE09N,mBAAe7uO,IAC7C8/P,GAAyB3uP,GAAO,CAAE+mO,uBAAmBl4O,IACrD+/P,GAAa5uP,GAAO,CAAE49N,iBAAa/uO,IACnCggQ,GAAkB7uP,GAAO,CAAEkuP,WAAY,CAAC,IACxCY,GAAe9uP,GAAO,CAAE+uP,QAAS,CAAC,IAClCC,GAAYhvP,GAAO,CAAEy4I,UAAM5pJ,IAC3BogQ,GAAuBjvP,GAAO,CAAE69N,gBAAiB,CAAC,IAIlDqxB,GAAoBlvP,GAAO,CAC7B+9N,eAAgBA,CAACrrO,EAACsvH,KAAe,IAAAmtI,EAAAC,EAAA,IAAb,KAAEhzP,GAAM4lH,EACxB,MAAM,aAAEqtI,GAAiD,QAAnCF,EAAiB,QAAjBC,EAAIhzP,EAAKkzP,gBAAQ,IAAAF,OAAA,EAAbA,EAAeG,wBAAgB,IAAAJ,EAAAA,EACrD,CAAC,EACL,OAAOE,CAAY,IAGrBG,GAAgBxvP,GAAO,CAAEW,KAAM,YAC/B8uP,GAAmCzvP,GAAO,CAC5CW,KAAM,kCAEJ+uP,GAAkC1vP,GAAO,CAC3CW,KAAM,+BAGJgvP,GAAmB3vP,GAAO,CAC5B09N,cAAeA,CAAChrO,EAAC85I,KAAe,IAAb,KAAEpwI,GAAMowI,EACvB,MAAM,WAAEojH,GAAexzP,EAAKkzP,SAC5B,MAAsB,kCAAfM,EACD,UACe,mCAAfA,EACI,0BACA/gQ,CAAS,IAGrBghQ,GAA4B7vP,GAAO,CACrCk0G,SAAUw4B,IAAqC,IAApC,WAAEwhH,EAAU,gBAAEjoB,GAAiBv5F,EACtC,MAAMyhH,EAAiBloB,EAAgB,IACjC,SAAE/xH,EAAQ,aAAEm6I,GAAiBH,EACnC,MAAuB,iBAAnBC,EAGOL,GAAoBO,EAAcn6I,GAGtCA,CAAQ,IAGjB47I,GAAoB9vP,GAAO,CAAEk0G,SDCT8N,IAAsC,IAArC,WAAEksI,EAAU,gBAAEjoB,GAAkBjkH,EACvD,MAAMmsI,EAAiBloB,EAAgB,GACvC,GAAuB,iBAAnBkoB,EAAmC,CACnC,MAAM,aAAEE,EAAY,aAAE9uB,GAAiB2uB,EACvC,OAAOJ,GAAoBO,EAAc9uB,EAC7C,CACA,OAAO2uB,EAAWC,EAAe,ICN/B4B,GAAoB/vP,GAAO,CAC7Bk0G,SAAU0b,IAAqC,IAApC,WAAEs+H,EAAU,gBAAEjoB,GAAiBr2G,EACtC,MAAMu+H,EAAiBloB,EAAgB,IACjC,SAAE/xH,EAAQ,aAAEm6I,GAAiBH,EACnC,MAAuB,iBAAnBC,EAGOL,GAAoBO,EAAcn6I,GAGtCA,CAAQ,IAGjB87I,GAAoBhwP,GAAO,CAC7BW,KAAMA,CAACjO,EAACg8H,KAAA,IAAE,KAAEtyH,GAAMsyH,EAAA,MAAkC,SAA7BtyH,EAAKkzP,SAASM,WAC/B,mBACAxzP,EAAKkzP,SAASM,UAAU,IAE5BK,GAAoBjwP,GAAO,CAC7BW,KAAMA,CAACjO,EAACw8H,KAAA,IAAE,KAAE9yH,GAAM8yH,EAAA,MAAkC,SAA7B9yH,EAAKkzP,SAASY,WAC/B,mBACA9zP,EAAKkzP,SAASY,UAAU,IAE5BC,GAA2BnwP,GAAO,CACpCW,KAAMA,CAACjO,EAAC29H,KAAA,IAAE,KAAEj0H,GAAMi0H,EAAA,MAAyC,SAApCj0H,EAAKkzP,SAASc,kBAC/B,0BACAh0P,EAAKkzP,SAASc,iBAAiB,IAEnCC,GAAuBrwP,GAAO,CAChC+mO,kBAAmBA,CAACr0O,EAACixJ,KAAA,IAAA2sG,EAAA,IAAE,KAAEl0P,GAAMunJ,EAAA,OAAkB,QAAlB2sG,EAAKl0P,EAAKkzP,gBAAQ,IAAAgB,OAAA,EAAbA,EAAevpB,iBAAiB,IAElEwpB,GAAiBvwP,GAAO,CAC1B69N,gBAAiBA,CAACnrO,EAACmxJ,KAAA,IAAE,KAAEznJ,GAAMynJ,EAAA,OAAKznJ,CAAI,IAEpCo0P,GAAiBxwP,GAAO,CAC1B49N,YAAaA,CAAClrO,EAACoxJ,KAAe,IAAb,KAAE1nJ,GAAM0nJ,EACrB,MAAkB,oBAAd1nJ,EAAKhX,KACE,6EAEA,OAAJgX,QAAI,IAAJA,OAAI,EAAJA,EAAM2vD,UAAW3vD,CAAI,IAG9BgsJ,GAAUpoJ,GAAO,CAAEy4I,KAAMA,CAAC/lJ,EAACqxJ,KAAA,IAAE,KAAE3nJ,GAAM2nJ,EAAA,OAAK3nJ,CAAI,IAC9Cq0P,GAA8BC,IAAO,CACvCC,YAAaD,EAAQE,YACrBC,eAAgBH,EAAQI,eACxBC,cAAeL,EAAQM,eAErBC,GAAyBjxP,GAAO,CAClC29N,oBAAqBA,CAACjrO,EAACsxJ,KAAe,IAAAktG,EAAA,IAAb,KAAE90P,GAAM4nJ,EAC7B,OAAQ,OAAJ5nJ,QAAI,IAAJA,GACU,QADN80P,EAAJ90P,EACEkzP,gBAAQ,IAAA4B,GADVA,EACYvzB,oBACL8yB,GAA2Br0P,EAC7BkzP,SAAS3xB,qBAEX8yB,GAA2Br0P,EAAK,IAGzC+0P,GAAcnxP,GAAO,CACvBkuP,WAAYA,CAACvrP,EAAOuhJ,KAAe,IAAb,KAAE9nJ,GAAM8nJ,EAC1B,MAAM,KAAE9+J,EAAI,MAAEkC,GAAU8U,EACxB,MAAO,IAAKuG,EAAoB,WAAG,CAACvd,GAAOkC,EAAO,IAGpD8pQ,GAAepxP,GAAO,CACxBkuP,WAAYA,CAACvrP,EAAOyhJ,KAAA,IAAE,KAAEhoJ,GAAMgoJ,EAAA,OC1FlC,SAAoBttI,GAAoB,QAAA1oB,EAAAC,UAAApH,OAAToqQ,EAAO,IAAArsQ,MAAAoJ,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAP+iQ,EAAO/iQ,EAAA,GAAAD,UAAAC,GAClC,OAAOtC,OAAOL,QAAQmrB,GAAQtvB,QAAO,CAAC2gC,EAAG65F,KAAA,IAAG58H,EAAMkC,GAAM06H,EAAA,MAAM,IACvD75F,EACH,CAAC/iC,GAAOisQ,EAAQloL,SAAS/jF,GAAQkC,EAAa,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO1B,OACnD,GAAG,CAAC,EACT,CDqFkC,CAEnB,IAAK+c,EAAoB,cAAMvG,GAAQ,WAAW,IAE3Dk1P,GAAatxP,GAAO,CACtB+uP,QAASA,CAACpsP,EAAO0hJ,KAAA,IAAE,KAAEjoJ,GAAMioJ,EAAA,MAAM,IAC1B1hJ,EAAiB,QACpB,CAACvG,EAAKhX,OAAO,EAChB,IAECmsQ,GAA8BvxP,GAAO,CACvCg+N,yBAA0BA,CAACtrO,EAAC4xJ,KAAe,IAAb,KAAEloJ,GAAMkoJ,EAClC,MAAM,MAAE9kE,EAAK,aAAE+/I,GAAiBnjO,EAKhC,MAJiC,IACzBojF,GAAS,CAAEA,YACX+/I,GAAgB,CAAEA,gBAEK,IAGjCiyB,GAA6BxxP,GAAO,CAAEyxP,2BAAuB5iQ,IAC7D6iQ,GAA2B1xP,GAAO,CACpCyxP,sBAAwB9uP,IAAO,IAAAgvP,EAAA,OAAuB,QAAvBA,EAAKhvP,EAAQurP,kBAAU,IAAAyD,OAAA,EAAlBA,EAAoBC,cAAc,IAIpEC,GAAU,CACZrD,sBACAE,sBACAE,cACAC,mBACAF,0BACA6C,8BACA1C,gBACAE,aACAC,wBACAqC,cACAH,eACAC,gBACAzB,oBACAsB,0BACAV,kBACAF,wBACAF,4BACAH,qBACAC,qBACAO,kBACAd,mCACAoC,2BAvB+B9xP,GAAO,CAAEW,KAAM,oBAwB9C8uP,oCACAiC,4BACAlC,iBACAN,qBACA9mG,WACAmpG,+BACA1B,6BACAE,qBACAD,sBExLEiC,GAAgC,CAClC,gCACA,kCA6CEC,GAAS,CACXC,kCAlCsCA,CAACv/P,EAACixJ,KAAA,IAAE,KAAEvnJ,GAAMunJ,EAAA,MAAoB,gCAAX,OAAJvnJ,QAAI,IAAJA,OAAI,EAAJA,EAAMuE,KAAqC,EAmClGuxP,0BArC8BA,CAACx/P,EAAC29H,KAAA,IAAE,KAAEj0H,GAAMi0H,EAAA,MAA0C,UAAjC,OAAJj0H,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASc,kBAA4B,EAsC1F+B,mBAxCuBA,CAACz/P,EAACg8H,KAAA,IAAE,KAAEtyH,GAAMsyH,EAAA,MAAmC,UAA1B,OAAJtyH,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASM,WAAqB,EAyC5EwC,mBAxCuBA,CAAC1/P,EAACw8H,KAAA,IAAE,KAAE9yH,GAAM8yH,EAAA,MAAmC,UAA1B,OAAJ9yH,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASY,WAAqB,EAyC5EmC,oBAlCwBA,CAAC3/P,EAACsxJ,KAAA,IAAE,KAAE5nJ,GAAM4nJ,EAAA,MAAoB,qBAAX,OAAJ5nJ,QAAI,IAAJA,OAAI,EAAJA,EAAMuE,KAA0B,EAmCzE2xP,2BAtC+BA,CAAC5/P,EAACmxJ,KAAA,IAAE,KAAEznJ,GAAMynJ,EAAA,MAAoB,iCAAX,OAAJznJ,QAAI,IAAJA,OAAI,EAAJA,EAAMuE,KAAsC,EAuC5F4xP,oBArCwBA,CAAC7/P,EAACqxJ,KAAA,IAAE,KAAE3nJ,GAAM2nJ,EAAA,MAAoB,oBAAX,OAAJ3nJ,QAAI,IAAJA,OAAI,EAAJA,EAAMuE,KAAyB,EAsCxE6xP,iCAvCqCA,CAAC9/P,EAACoxJ,KAAA,IAAE,KAAE1nJ,GAAM0nJ,EAAA,MAAoB,mCAAX,OAAJ1nJ,QAAI,IAAJA,OAAI,EAAJA,EAAMuE,KAAwC,EAwCpG8xP,uBAV2BA,CAAC//P,EAAC+xJ,KAAA,IAAE,KAAEroJ,GAAMqoJ,EAAA,MAAsB,+BAAjBroJ,EAAK2vD,OAAwC,EAWzF2mM,iBAhDqBA,CAAChgQ,EAACk9H,KAAA,IAAE,KAAExzH,GAAMwzH,EAAA,MAAmC,2BAA1B,OAAJxzH,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASY,WAAsC,EAiD3FyC,2BAnC+BruG,IAAA,IAAC,KAAE3jJ,GAAM2jJ,EAAA,MAAc,qCAAT3jJ,CAA2C,EAoCxFiyP,oBAvCwB1uG,IAAA,IAAC,KAAEvjJ,GAAMujJ,EAAA,OAAK6tG,GAA8B5oL,SAASxoE,EAAK,EAwClFkyP,mCAvDuCA,CAACngQ,EAACsvH,KAAA,IAAE,KAAE5lH,GAAM4lH,EAAA,MACnD,gDAD4D,OAAJ5lH,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASM,WAC3B,EAuD5CkD,oBArCwBvuG,IAAA,IAAC,KAAE5jJ,GAAM4jJ,EAAA,MAAc,oBAAT5jJ,CAA0B,EAsChEoyP,8BAtDkCA,CAACrgQ,EAACg6I,KAAA,IAAE,KAAEtwI,GAAMswI,EAAA,MAAmC,qBAA1B,OAAJtwI,QAAI,IAAJA,OAAI,EAAJA,EAAMkzP,SAASM,WAAgC,EAuDlGoD,oBAzCwB3uG,IAAA,IAAC,KAAE1jJ,GAAM0jJ,EAAA,MAAc,mBAAT1jJ,CAAyB,EA0C/DsyP,8BAzDkCA,CAACvgQ,EAAC85I,KAAA,IAAA4iH,EAAA,IAAE,KAAEhzP,GAAMowI,EAAA,MAAoC,oBAA3B,OAAJpwI,QAAI,IAAJA,GAAc,QAAVgzP,EAAJhzP,EAAMkzP,gBAAQ,IAAAF,OAAA,EAAdA,EAAgBQ,WAA+B,EA0DlGsD,gBA5CoB9uG,IAAA,IAAC,KAAEzjJ,GAAMyjJ,EAAA,MAAc,qCAATzjJ,CAA2C,EA6C7EwyP,sBAxC0BA,CAACzgQ,EAAC8xJ,KAAe,IAAb,KAAEpoJ,GAAMooJ,EACtC,MAAM,sBAAE4uG,EAAqB,eAAEC,GAAmBj3P,EAKlD,YAH4CvN,IAAnBwkQ,GAAmD,UAAnBA,UACNxkQ,IAA1BukQ,GAAiE,UAA1BA,EAErB,kBC1B/C,MAAME,GAAgBtpH,MAAO4uE,EAAU26C,EAAWC,EAAkB9qC,KAChE,MAAMv8F,QAAe3rH,QAAQsnC,IAAI4gL,EAAWvhO,KAAKqnN,GAAcA,EAAUoK,EAAU26C,EAAWC,MACxFC,EAAcvgM,GAAM,CAAC,KAAMi5D,GACjC,OAAIzP,GAAQ+2I,GAEDjzP,QAAQD,UAGRC,QAAQC,OAAOgzP,EAC1B,ECXQ,MAACC,GAAgB,CACzB1nM,OAAAA,CAAQ5lE,GAAyC,IAAlC,QAAEutQ,GAAStlQ,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAEslQ,SAAS,GACpC,MAAMC,EAA4B,kBAAVxtQ,EAAqBA,ECJ9C,SAAuBA,GAC1B,OAAOpB,MAAMkV,KAAK9T,GAAOy6E,GAAQ1zE,OAAOiX,cAAcy8D,KAAOz5E,KAAK,GACtE,CDE6DysQ,CAAcztQ,GAC7D0tQ,E5QSSC,MAEnB,GAAsB,qBAAXliQ,QAAiD,oBAAhBA,OAAOsqK,KAC/C,OAAOtqK,OAAOsqK,KAGlB,GAAoB,oBAATA,KACP,OAAOA,KAEX,MAAM,IAAIhoC,GAAa,CACnB/uI,KAAM,qBACN2mE,QAAS,4DACX,E4QrBqBgoM,GAAUH,GAE7B,OAAOD,EACDG,EAAWruQ,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAC9CquQ,CACd,GEEaE,GAAgBhqH,UACzB,MAAM,cAAEiqH,GAAkB5wN,UAC1B,IAAK4wN,EACD,OAAO5wN,UAAUC,UACrB,MAAM,SAAE2uG,EAAW,GAAE,gBAAEiiH,EAAkB,GAAE,MAAEC,EAAQ,GAAE,aAAEC,EAAe,GAAE,gBAAEC,EAAkB,UAAcJ,EAAcK,qBAAqB,CAC3I,WACA,kBACA,eACA,QACA,oBAEEC,EAAcF,EACfltQ,KAAKuC,GAAC,GAAAuY,OAAQvY,EAAE8qQ,MAAK,KAAAvyP,OAAIvY,EAAEsJ,WAC3B5L,KAAK,KAWV,MAVmB,CACf6qJ,EACAiiH,EACAE,EACAD,EACAliH,EACAsiH,GAECt7O,QAAO3xB,GAASA,IAChBF,KAAK,IACO,ECpCX,IAACqtQ,GAUAC,GAcAC,GAgBAC,GAmBAC,GAkBAC,GAYAC,GAYAC,GAaAC,GAkBAC,GAYAC,GAWAC,GAWAC,GAoBAC,GAWAC,GAkBAC,GAkBAC,GAwBAC,GAWAC,GAiBAC,GAsBAC,GAgBAC,GAgBAC,GAaAC,IA/VX,SAAWvB,GACPA,EAAiE,gCAAI,kCACrEA,EAAoD,mBAAI,qBACxDA,EAAwD,uBAAI,yBAC5DA,EAA2D,0BAAI,4BAC/DA,EAAwD,uBAAI,yBAC5DA,EAA2D,0BAAI,4BAC/DA,EAAmE,kCAAI,mCAC1E,CARD,CAQGA,KAAoCA,GAAkC,CAAC,IAE1E,SAAWC,GACPA,EAA4C,mBAAI,qBAChDA,EAAgD,uBAAI,yBACpDA,EAAmD,0BAAI,4BACvDA,EAAkD,yBAAI,2BACtDA,EAAgD,uBAAI,yBACpDA,EAAgD,uBAAI,yBACpDA,EAAwD,+BAAI,iCAC5DA,EAAmD,0BAAI,4BACvDA,EAAkD,yBAAI,2BACtDA,EAAmD,0BAAI,4BACvDA,EAA+C,sBAAI,uBACtD,CAZD,CAYGA,KAA4BA,GAA0B,CAAC,IAE1D,SAAWC,GACPA,EAA2C,mBAAI,qBAC/CA,EAA+C,uBAAI,yBACnDA,EAAuD,+BAAI,iCAC3DA,EAAkD,0BAAI,4BACtDA,EAAiD,yBAAI,2BACrDA,EAA8D,sCAAI,wCAClEA,EAA+C,uBAAI,yBACnDA,EAAuD,+BAAI,iCAC3DA,EAAkD,0BAAI,4BACtDA,EAAiD,yBAAI,2BACrDA,EAAgD,wBAAI,0BACpDA,EAAkD,0BAAI,4BACtDA,EAA8C,sBAAI,uBACrD,CAdD,CAcGA,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAsD,sBAAI,wBAC1DA,EAAqD,qBAAI,uBACzDA,EAAmD,mBAAI,qBACvDA,EAAuD,uBAAI,yBAC3DA,EAA+D,+BAAI,iCACnEA,EAA0D,0BAAI,4BAC9DA,EAAyD,yBAAI,2BAC7DA,EAAuD,uBAAI,yBAC3DA,EAAuD,uBAAI,yBAC3DA,EAA0D,0BAAI,4BAC9DA,EAA+D,+BAAI,iCACnEA,EAAyD,yBAAI,2BAC7DA,EAA0D,0BAAI,4BAC9DA,EAA8D,8BAAI,gCAClEA,EAA0D,0BAAI,4BAC9DA,EAAsD,sBAAI,uBAC7D,CAjBD,CAiBGA,KAAmCA,GAAiC,CAAC,IAExE,SAAWC,GACPA,EAA6C,qBAAI,uBACjDA,EAA8C,sBAAI,wBAClDA,EAA6C,qBAAI,uBACjDA,EAA2C,mBAAI,qBAC/CA,EAA+C,uBAAI,yBACnDA,EAAuD,+BAAI,iCAC3DA,EAAkD,0BAAI,4BACtDA,EAA+C,uBAAI,yBACnDA,EAA+C,uBAAI,yBACnDA,EAAkD,0BAAI,4BACtDA,EAAuD,+BAAI,iCAC3DA,EAAiD,yBAAI,2BACrDA,EAAkD,0BAAI,4BACtDA,EAAsD,8BAAI,gCAC1DA,EAA8C,sBAAI,uBACrD,CAhBD,CAgBGA,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAkD,mBAAI,qBACtDA,EAAsD,uBAAI,yBAC1DA,EAAyD,0BAAI,4BAC7DA,EAAsD,uBAAI,yBAC1DA,EAA8D,+BAAI,iCAClEA,EAAyD,0BAAI,4BAC7DA,EAAwD,yBAAI,2BAC5DA,EAAyD,0BAAI,4BAC7DA,EAAqD,sBAAI,uBAC5D,CAVD,CAUGA,KAAkCA,GAAgC,CAAC,IAEtE,SAAWC,GACPA,EAAwC,mBAAI,qBAC5CA,EAA4C,uBAAI,yBAChDA,EAA+C,0BAAI,4BACnDA,EAA4C,uBAAI,yBAChDA,EAAoD,+BAAI,iCACxDA,EAA+C,0BAAI,4BACnDA,EAA8C,yBAAI,2BAClDA,EAA+C,0BAAI,4BACnDA,EAA2C,sBAAI,uBAClD,CAVD,CAUGA,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAA0C,mBAAI,qBAC9CA,EAA8C,uBAAI,yBAClDA,EAAiD,0BAAI,4BACrDA,EAA6D,sCAAI,wCACjEA,EAA8C,uBAAI,yBAClDA,EAAsD,+BAAI,iCAC1DA,EAAiD,0BAAI,4BACrDA,EAAgD,yBAAI,2BACpDA,EAAiD,0BAAI,4BACrDA,EAA6C,sBAAI,uBACpD,CAXD,CAWGA,KAA0BA,GAAwB,CAAC,IAEtD,SAAWC,GACPA,EAAsD,6BAAI,+BAC1DA,EAA4C,mBAAI,qBAChDA,EAAgD,uBAAI,yBACpDA,EAA+D,sCAAI,wCACnEA,EAAwD,+BAAI,iCAC5DA,EAAmD,0BAAI,4BACvDA,EAA6D,oCAAI,sCACjEA,EAAkE,yCAAI,2CACtEA,EAAgD,uBAAI,yBACpDA,EAAgD,uBAAI,yBACpDA,EAAmD,0BAAI,4BACvDA,EAAkD,yBAAI,2BACtDA,EAAmD,0BAAI,4BACvDA,EAAuD,8BAAI,gCAC3DA,EAA+C,sBAAI,uBACtD,CAhBD,CAgBGA,KAA4BA,GAA0B,CAAC,IAE1D,SAAWC,GACPA,EAAqC,mBAAI,qBACzCA,EAAyC,uBAAI,yBAC7CA,EAA4C,0BAAI,4BAChDA,EAAyC,uBAAI,yBAC7CA,EAAiD,+BAAI,iCACrDA,EAA4C,0BAAI,4BAChDA,EAA2C,yBAAI,2BAC/CA,EAA4C,0BAAI,4BAChDA,EAAwC,sBAAI,uBAC/C,CAVD,CAUGA,KAAqBA,GAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAyC,yBAAI,2BAC7CA,EAAuC,uBAAI,yBAC3CA,EAA0C,0BAAI,4BAC9CA,EAAuC,uBAAI,yBAC3CA,EAAuC,uBAAI,yBAC3CA,EAA0C,0BAAI,4BAC9CA,EAA0C,0BAAI,4BAC9CA,EAAyC,yBAAI,0BAChD,CATD,CASGA,KAAmBA,GAAiB,CAAC,IAExC,SAAWC,GACPA,EAA6D,yBAAI,2BACjEA,EAA2D,uBAAI,yBAC/DA,EAA8E,0CAAI,4CAClFA,EAA8D,0BAAI,4BAClEA,EAA2D,uBAAI,yBAC/DA,EAA8D,0BAAI,4BAClEA,EAA8D,0BAAI,4BAClEA,EAA6D,yBAAI,0BACpE,CATD,CASGA,KAAuCA,GAAqC,CAAC,IAEhF,SAAWC,GACPA,EAAoE,6BAAI,+BACxEA,EAA0D,mBAAI,qBAC9DA,EAA8D,uBAAI,yBAClEA,EAA6E,sCAAI,wCACjFA,EAAsE,+BAAI,iCAC1EA,EAAiE,0BAAI,4BACrEA,EAA2E,oCAAI,sCAC/EA,EAAgF,yCAAI,2CACpFA,EAA8D,uBAAI,yBAClEA,EAA8D,uBAAI,yBAClEA,EAAsE,+BAAI,iCAC1EA,EAAiE,0BAAI,4BACrEA,EAAgE,yBAAI,2BACpEA,EAAiE,0BAAI,4BACrEA,EAAqE,8BAAI,gCACzEA,EAAiE,0BAAI,4BACrEA,EAA6D,sBAAI,uBACpE,CAlBD,CAkBGA,KAA0CA,GAAwC,CAAC,IAEtF,SAAWC,GACPA,EAA2C,mBAAI,qBAC/CA,EAA+C,uBAAI,yBACnDA,EAAkD,0BAAI,4BACtDA,EAA+C,uBAAI,yBACnDA,EAAuD,+BAAI,iCAC3DA,EAAkD,0BAAI,4BACtDA,EAAiD,yBAAI,2BACrDA,EAAkD,0BAAI,2BACzD,CATD,CASGA,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GACPA,EAAsD,+BAAI,iCAC1DA,EAA0C,mBAAI,qBAC9CA,EAA8C,uBAAI,yBAClDA,EAAsD,+BAAI,iCAC1DA,EAAiD,0BAAI,4BACrDA,EAA2D,oCAAI,sCAC/DA,EAAgE,yCAAI,2CACpEA,EAA6D,sCAAI,wCACjEA,EAA8C,uBAAI,yBAClDA,EAAiD,0BAAI,4BACrDA,EAAgD,yBAAI,2BACpDA,EAAiD,0BAAI,4BACrDA,EAAqD,8BAAI,gCACzDA,EAAiD,0BAAI,4BACrDA,EAA6C,sBAAI,uBACpD,CAhBD,CAgBGA,KAA0BA,GAAwB,CAAC,IAEtD,SAAWC,GACPA,EAA0D,6BAAI,+BAC9DA,EAAgD,mBAAI,qBACpDA,EAAoD,uBAAI,yBACxDA,EAAmE,sCAAI,wCACvEA,EAA4D,+BAAI,iCAChEA,EAAuD,0BAAI,4BAC3DA,EAAiE,oCAAI,sCACrEA,EAAsE,yCAAI,2CAC1EA,EAAoD,uBAAI,yBACxDA,EAAoD,uBAAI,yBACxDA,EAAuD,0BAAI,4BAC3DA,EAAsD,yBAAI,2BAC1DA,EAAuD,0BAAI,4BAC3DA,EAA2D,8BAAI,gCAC/DA,EAAmD,sBAAI,uBAC1D,CAhBD,CAgBGA,KAAgCA,GAA8B,CAAC,IAElE,SAAWC,GACPA,EAAsD,qBAAI,uBAC1DA,EAAuD,sBAAI,wBAC3DA,EAAsD,qBAAI,uBAC1DA,EAAoD,mBAAI,qBACxDA,EAAwD,uBAAI,yBAC5DA,EAAgE,+BAAI,iCACpEA,EAA2D,0BAAI,4BAC/DA,EAA0D,yBAAI,2BAC9DA,EAAqE,oCAAI,sCACzEA,EAA0E,yCAAI,2CAC9EA,EAAuE,sCAAI,wCAC3EA,EAA4D,2BAAI,6BAChEA,EAAwD,uBAAI,yBAC5DA,EAAgE,+BAAI,iCACpEA,EAA2D,0BAAI,4BAC/DA,EAAmE,kCAAI,oCACvEA,EAA0D,yBAAI,2BAC9DA,EAA2D,0BAAI,4BAC/DA,EAA+D,8BAAI,gCACnEA,EAA2D,0BAAI,4BAC/DA,EAAuD,sBAAI,uBAC9D,CAtBD,CAsBGA,KAAoCA,GAAkC,CAAC,IAE1E,SAAWC,GACPA,EAAkD,mBAAI,qBACtDA,EAAsD,uBAAI,yBAC1DA,EAAyD,0BAAI,4BAC7DA,EAAsD,uBAAI,yBAC1DA,EAA8D,+BAAI,iCAClEA,EAAyD,0BAAI,4BAC7DA,EAAyD,0BAAI,4BAC7DA,EAAqD,sBAAI,uBAC5D,CATD,CASGA,KAAkCA,GAAgC,CAAC,IAEtE,SAAWC,GACPA,EAA8C,6BAAI,+BAClDA,EAAwC,uBAAI,yBAC5CA,EAAuD,sCAAI,wCAC3DA,EAAgD,+BAAI,iCACpDA,EAA2C,0BAAI,4BAC/CA,EAA0C,yBAAI,2BAC9CA,EAAqD,oCAAI,sCACzDA,EAA0D,yCAAI,2CAC9DA,EAAwC,uBAAI,yBAC5CA,EAA2C,0BAAI,4BAC/CA,EAA0C,yBAAI,2BAC9CA,EAA2C,0BAAI,4BAC/CA,EAA+C,8BAAI,gCACnDA,EAAyC,wBAAI,yBAChD,CAfD,CAeGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAoD,qBAAI,uBACxDA,EAA4D,6BAAI,+BAChEA,EAAqD,sBAAI,wBACzDA,EAAoD,qBAAI,uBACxDA,EAAkD,mBAAI,qBACtDA,EAAsD,uBAAI,yBAC1DA,EAAqE,sCAAI,wCACzEA,EAA8D,+BAAI,iCAClEA,EAAyD,0BAAI,4BAC7DA,EAAmE,oCAAI,sCACvEA,EAAwE,yCAAI,2CAC5EA,EAAsD,uBAAI,yBAC1DA,EAA8D,+BAAI,iCAClEA,EAAyD,0BAAI,4BAC7DA,EAAwD,yBAAI,2BAC5DA,EAAyD,0BAAI,4BAC7DA,EAA6D,8BAAI,gCACjEA,EAAyD,0BAAI,4BAC7DA,EAAqD,sBAAI,uBAC5D,CApBD,CAoBGA,KAAkCA,GAAgC,CAAC,IAEtE,SAAWC,GACPA,EAAoD,sBAAI,wBACxDA,EAA8D,gCAAI,kCAClEA,EAAiD,mBAAI,qBACrDA,EAAqD,uBAAI,yBACzDA,EAAwD,0BAAI,4BAC5DA,EAAoE,sCAAI,wCACxEA,EAAqD,uBAAI,yBACzDA,EAA6D,+BAAI,iCACjEA,EAAwD,0BAAI,4BAC5DA,EAAgE,kCAAI,oCACpEA,EAAuD,yBAAI,2BAC3DA,EAAwD,0BAAI,4BAC5DA,EAAoD,sBAAI,uBAC3D,CAdD,CAcGA,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAmD,qBAAI,uBACvDA,EAAoD,sBAAI,wBACxDA,EAAmD,qBAAI,uBACvDA,EAAiD,mBAAI,qBACrDA,EAAqD,uBAAI,yBACzDA,EAAwD,0BAAI,4BAC5DA,EAAqD,uBAAI,yBACzDA,EAAqD,uBAAI,yBACzDA,EAA6D,+BAAI,iCACjEA,EAAwD,0BAAI,4BAC5DA,EAAuD,yBAAI,2BAC3DA,EAAwD,0BAAI,4BAC5DA,EAAoD,sBAAI,uBAC3D,CAdD,CAcGA,KAAiCA,GAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAgD,mBAAI,qBACpDA,EAAoD,uBAAI,yBACxDA,EAAuD,0BAAI,4BAC3DA,EAAmE,sCAAI,wCACvEA,EAAoD,uBAAI,yBACxDA,EAA4D,+BAAI,iCAChEA,EAAuD,0BAAI,4BAC3DA,EAAsD,yBAAI,2BAC1DA,EAAuD,0BAAI,4BAC3DA,EAAmD,sBAAI,uBAC1D,CAXD,CAWGA,KAAgCA,GAA8B,CAAC,IAElE,SAAWC,GACPA,EAAyC,mBAAI,qBAC7CA,EAA6C,uBAAI,yBACjDA,EAAgD,0BAAI,4BACpDA,EAA4D,sCAAI,wCAChEA,EAA6C,uBAAI,yBACjDA,EAAqD,+BAAI,iCACzDA,EAAgD,0BAAI,4BACpDA,EAA+C,yBAAI,2BACnDA,EAAgD,0BAAI,4BACpDA,EAA4C,sBAAI,uBACnD,CAXD,CAWGA,KAAyBA,GAAuB,CAAC,IC5W1C,IAACC,IACX,SAAWA,GACPA,EAA6C,oBAAI,sBACjDA,EAA6C,oBAAI,sBACjDA,EAAkD,yBAAI,2BACtDA,EAA6C,oBAAI,sBACjDA,EAA6C,oBAAI,sBACjDA,EAAoD,2BAAI,6BACxDA,EAAgD,uBAAI,yBACpDA,EAAuD,8BAAI,gCAC3DA,EAAgD,uBAAI,yBACpDA,EAA2D,kCAAI,oCAC/DA,EAA8D,qCAAI,uCAClEA,EAAmE,0CAAI,4CACvEA,EAAoD,2BAAI,6BACxDA,EAAkD,yBAAI,2BACtDA,EAAuD,8BAAI,gCAC3DA,EAA4C,mBAAI,qBAChDA,EAA6C,oBAAI,qBACpD,CAlBD,CAkBGA,KAA4BA,GAA0B,CAAC,IClB9C,MAACC,GAAqB,CAC9B,CAACD,GAAwBE,wBAAyB,CAC9CpqM,QAAS,kDAEb,CAACkqM,GAAwBG,mCAAoC,CACzDrqM,QAAS,gDAEb,CAACkqM,GAAwBI,wBAAyB,CAC9CtqM,QAAS,qCAEb,CAACkqM,GAAwBK,4BAA6B,CAClDvqM,QAAS,yCAEb,CAACkqM,GAAwBM,2CAA4C,CACjExqM,QAAS,wDAEb,CAACkqM,GAAwBO,sCAAuC,CAC5DzqM,QAAS,mDAEb,CAACkqM,GAAwBQ,+BAAgC,CACrD1qM,QAAS,yCAEb,CAACkqM,GAAwBS,4BAA6B,CAClD3qM,QAAS,yCAEb,CAACkqM,GAAwBU,qBAAsB,CAC3C5qM,QAAS,kCAEb,CAACkqM,GAAwBW,qBAAsB,CAC3C7qM,QAAS,kCAEb,CAACkqM,GAAwBY,qBAAsB,CAC3C9qM,QAAS,kCAEb,CAACkqM,GAAwBa,qBAAsB,CAC3C/qM,QAAS,kCAEb,CAACkqM,GAAwBc,0BAA2B,CAChDhrM,QAAS,mEACTqoE,mBAAoB,kDAExB,CAAC6hI,GAAwBe,oBAAqB,CAC1CjrM,QAAS,mEACTqoE,mBAAoB,oDAExB,CAAC6hI,GAAwBgB,0BAA2B,CAChDlrM,QAAS,uCAEb,CAACkqM,GAAwBiB,qBAAsB,CAC3CnrM,QAAS,8DAEb,CAACkqM,GAAwBkB,+BAAgC,CACrDprM,QAAS,0DAIP,IAACqrM,GAmBAC,GC1EJ,SAASC,GAAsBxwH,EAAW1hJ,GAC7C,MAAM,QAAE2mE,EAAO,mBAAEqoE,GAAuB8hI,GAAmB9wQ,GAC3D,IAAK0hJ,EACD,MAAM,IAAIuB,GAAU,CAAEjjJ,OAAM2mE,UAASqoE,sBAE7C,EDmDA,SAAWgjI,GACPA,EAA8B,YAAI,uBAClCA,EAA8B,YAAI,wBAClCA,EAA8B,YAAI,+BAClCA,EAAiC,eAAI,2BACrCA,EAAmC,iBAAI,qEACvCA,EAAiC,eAAI,2BACrCA,EAA6B,WAAI,oCACjCA,EAAgC,cAAI,yBACpCA,EAAyB,OAAI,+BAC7BA,EAA8B,YAAI,mBAClCA,EAAkC,gBAAI,qCACtCA,EAAkC,gBAAI,sDACtCA,EAAgC,cAAI,gBACpCA,EAAgC,cAAI,4DACpCA,EAAmC,iBAAI,yCACvCA,EAA8B,YAAI,oEACrC,CAjBD,CAiBGA,KAAqBA,GAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAgC,gBAAI,kBACpCA,EAAiC,iBAAI,sBACxC,CAHD,CAGGA,KAAmBA,GAAiB,CAAC,IErDxC,SAASE,KACL,MAAO,CACHrjJ,cAAUrlH,EACV6uO,mBAAe7uO,EACf2oQ,mBAAe3oQ,EAEvB,CACA,MASa4oQ,GATOnnD,KAChB,IAAIgmC,EAAehmC,EAPZ,CACHp8F,cAAUrlH,EACV6uO,mBAAe7uO,EACf2oQ,mBAAe3oQ,GAIwB,CAAEvJ,KAAM,sBACnD,MAAO,CACHoyQ,SAAUA,IAAMphB,EAChB9kJ,SAAUJ,IACNklJ,EAAehmC,EAAQgmC,EAAcllJ,EAAO,EAEnD,EAEsBumK,EA3CLC,CAAC7hK,EAAO3E,KAC1B,OAAQA,EAAO9rG,MACX,IAAK,sBACD,MAAO,IACAywG,EACHyhK,cAAepmK,EAAO9pG,OAE9B,IAAK,oBACD,MAAO,IACA8pG,EAAO9pG,OAElB,IAAK,qBACD,MAAO,IACAyuG,EACH2nI,cAAetsI,EAAO9pG,OAE9B,IAAK,eACD,MAAO,IACAyuG,EACHme,SAAU9iB,EAAO9pG,OAEzB,IAAK,oBACD,OAAOiwQ,KACX,QACI,OAAOxhK,EACnB,IAmBO,SAAS8hK,GAAqB9hK,GACjC0hK,GAAYjmK,SAAS,CACjBlsG,KAAM,oBACNgC,MAAOyuG,GAEf,CACO,SAAS+hK,KACZL,GAAYjmK,SAAS,CAAElsG,KAAM,qBACjC,CCpDY,MAACyyQ,GAAc,CACvB/rM,QAAQ5lE,IACG,IAAIy+I,aAAc/lE,OAAO14E,IC8CxC,SAAS4xQ,GAAW5sQ,EAAGC,GACV,MAALD,GACAG,KAAKstE,WAAWztE,EAAGC,EAC3B,CAEA,SAAS4sQ,KACL,OAAO,IAAID,GAAW,KAAM,KAChC,CAEA,IAAIE,GAkDJ,MAAMC,GAAiC,qBAAd90N,UACrB80N,IAA2C,gCAAtB90N,UAAU+0N,SAC/BJ,GAAWlrQ,UAAUurQ,GA9BzB,SAAa17P,EAAGpQ,EAAGiW,EAAGi0D,EAAGtlD,EAAGlR,GACxB,MAAMq4P,EAAS,MAAJ/rQ,EACL4iG,EAAK5iG,GAAK,GAChB,OAAS0T,GAAK,GAAG,CACb,IAAInR,EAAc,MAAVvD,KAAKoR,GACb,MAAM8F,EAAIlX,KAAKoR,MAAQ,GACjBk+B,EAAIs0D,EAAKrgG,EAAI2T,EAAI61P,EACvBxpQ,EAAIwpQ,EAAKxpQ,IAAU,MAAJ+rC,IAAe,IAAMr4B,EAAEi0D,IAAU,WAAJtlD,GAC5CA,GAAKriB,IAAM,KAAO+rC,IAAM,IAAMs0D,EAAK1sF,GAAK0O,IAAM,IAC9C3O,EAAEi0D,KAAW,WAAJ3nE,CACjB,CACI,OAAOqiB,CACX,EAmBI+mP,GAAQ,IAEHC,IAA2C,aAAtB90N,UAAU+0N,SACpCJ,GAAWlrQ,UAAUurQ,GA7CzB,SAAa17P,EAAGpQ,EAAGiW,EAAGi0D,EAAGtlD,EAAGlR,GACxB,OAASA,GAAK,GAAG,CACb,MAAMvW,EAAI6C,EAAIhB,KAAKoR,KAAO6F,EAAEi0D,GAAKtlD,EACjCA,EAAI5N,KAAKs9B,MAAMn3C,EAAI,UACnB8Y,EAAEi0D,KAAW,SAAJ/sE,CACjB,CACI,OAAOynB,CACX,EAuCI+mP,GAAQ,KAIRF,GAAWlrQ,UAAUurQ,GAxBzB,SAAa17P,EAAGpQ,EAAGiW,EAAGi0D,EAAGtlD,EAAGlR,GACxB,MAAMq4P,EAAS,MAAJ/rQ,EACL4iG,EAAK5iG,GAAK,GAChB,OAAS0T,GAAK,GAAG,CACb,IAAInR,EAAc,MAAVvD,KAAKoR,GACb,MAAM8F,EAAIlX,KAAKoR,MAAQ,GACjBk+B,EAAIs0D,EAAKrgG,EAAI2T,EAAI61P,EACvBxpQ,EAAIwpQ,EAAKxpQ,IAAU,MAAJ+rC,IAAe,IAAMr4B,EAAEi0D,GAAKtlD,EAC3CA,GAAKriB,GAAK,KAAO+rC,GAAK,IAAMs0D,EAAK1sF,EACjCD,EAAEi0D,KAAW,UAAJ3nE,CACjB,CACI,OAAOqiB,CACX,EAaI+mP,GAAQ,IAEZF,GAAWlrQ,UAAUyrQ,GAAKL,GAC1BF,GAAWlrQ,UAAU0rQ,IAAM,GAAKN,IAAS,EACzCF,GAAWlrQ,UAAUwpL,GAAK,GAAK4hF,GAE/BF,GAAWlrQ,UAAU2rQ,GAAKl1P,KAAKuO,IAAI,EADrB,IAEdkmP,GAAWlrQ,UAAU4rQ,GAFP,GAEoBR,GAClCF,GAAWlrQ,UAAU6rQ,GAAK,EAAIT,GAHhB,GAKd,MAAMU,GAAQ,uCACRC,GAAQ,GACd,IAAI1pF,GAAI2pF,GAER,IADA3pF,GAAK,IAAI5vK,WAAW,GACfu5P,GAAK,EAAGA,IAAM,IAAKA,GACpBD,GAAM1pF,MAAQ2pF,GAElB,IADA3pF,GAAK,IAAI5vK,WAAW,GACfu5P,GAAK,GAAIA,GAAK,KAAMA,GACrBD,GAAM1pF,MAAQ2pF,GAElB,IADA3pF,GAAK,IAAI5vK,WAAW,GACfu5P,GAAK,GAAIA,GAAK,KAAMA,GACrBD,GAAM1pF,MAAQ2pF,GAClB,SAASC,GAAS94P,GACd,OAAO24P,GAAM/yQ,OAAOoa,EACxB,CACA,SAAS+4P,GAAM5vQ,EAAGuT,GACd,MAAMwU,EAAI0nP,GAAMzvQ,EAAEmW,WAAW5C,IAC7B,OAAY,MAALwU,GAAa,EAAIA,CAC5B,CAoBA,SAAS8nP,GAAIt8P,GACT,MAAM4c,EAAI0+O,KAEV,OADA1+O,EAAE2/O,QAAQv8P,GACH4c,CACX,CA4HA,SAAS4/O,GAAM5sQ,GACX,IACIvB,EADAuuB,EAAI,EAsBR,OApBuB,KAAlBvuB,EAAIuB,IAAM,MACXA,EAAIvB,EACJuuB,GAAK,IAEY,KAAhBvuB,EAAIuB,GAAK,KACVA,EAAIvB,EACJuuB,GAAK,GAEY,KAAhBvuB,EAAIuB,GAAK,KACVA,EAAIvB,EACJuuB,GAAK,GAEY,KAAhBvuB,EAAIuB,GAAK,KACVA,EAAIvB,EACJuuB,GAAK,GAEY,KAAhBvuB,EAAIuB,GAAK,KACVA,EAAIvB,EACJuuB,GAAK,GAEFA,CACX,CAwTA,SAAS6/O,GAAWv+N,GAChBtvC,KAAKsvC,EAAIA,EACTtvC,KAAK8tQ,GAAKx+N,EAAEy+N,WACZ/tQ,KAAKguQ,IAAgB,MAAVhuQ,KAAK8tQ,GAChB9tQ,KAAKiuQ,IAAMjuQ,KAAK8tQ,IAAM,GACtB9tQ,KAAKkuQ,IAAM,GAAM5+N,EAAE09N,GAAK,IAAO,EAC/BhtQ,KAAKmuQ,IAAM,EAAI7+N,EAAE7vC,CACrB,CAoDAouQ,GAAWtsQ,UAAUk/D,QAlDrB,SAAqBz/D,GACjB,MAAMgtB,EAAI0+O,KAKV,OAJA1rQ,EAAEu5B,MAAM6zO,UAAUpuQ,KAAKsvC,EAAE7vC,EAAGuuB,GAC5BA,EAAEqgP,SAASruQ,KAAKsvC,EAAG,KAAMthB,GACrBhtB,EAAEnD,EAAI,GAAKmwB,EAAEsgP,UAAU7B,GAAWtoP,MAAQ,GAC1CnkB,KAAKsvC,EAAEi/N,MAAMvgP,EAAGA,GACbA,CACX,EA4CA6/O,GAAWtsQ,UAAUitQ,OA1CrB,SAAoBxtQ,GAChB,MAAMgtB,EAAI0+O,KAGV,OAFA1rQ,EAAEytQ,OAAOzgP,GACThuB,KAAK/D,OAAO+xB,GACLA,CACX,EAsCA6/O,GAAWtsQ,UAAUtF,OApCrB,SAAoB+E,GAChB,KAAOA,EAAEvB,GAAKO,KAAKmuQ,KAEfntQ,EAAEA,EAAEvB,KAAO,EACf,IAAK,IAAI2R,EAAI,EAAGA,EAAIpR,KAAKsvC,EAAE7vC,IAAK2R,EAAG,CAE/B,IAAI85D,EAAW,MAAPlqE,EAAEoQ,GACV,MAAMs9P,EAAMxjM,EAAIlrE,KAAKguQ,MACd9iM,EAAIlrE,KAAKiuQ,KAAOjtQ,EAAEoQ,IAAM,IAAMpR,KAAKguQ,IAAOhuQ,KAAKkuQ,KAAO,IACzDltQ,EAAEisQ,GAKN,IAHA/hM,EAAI95D,EAAIpR,KAAKsvC,EAAE7vC,EACfuB,EAAEkqE,IAAMlrE,KAAKsvC,EAAEw9N,GAAG,EAAG4B,EAAI1tQ,EAAGoQ,EAAG,EAAGpR,KAAKsvC,EAAE7vC,GAElCuB,EAAEkqE,IAAMlqE,EAAE+pL,IACb/pL,EAAEkqE,IAAMlqE,EAAE+pL,GACV/pL,IAAIkqE,IAEhB,CACIlqE,EAAE2tQ,QACF3tQ,EAAE4tQ,UAAU5uQ,KAAKsvC,EAAE7vC,EAAGuB,GAClBA,EAAEstQ,UAAUtuQ,KAAKsvC,IAAM,GACvBtuC,EAAEutQ,MAAMvuQ,KAAKsvC,EAAGtuC,EACxB,EAcA6sQ,GAAWtsQ,UAAUstQ,MAPrB,SAAmB7tQ,EAAG4U,EAAGoY,GACrBhtB,EAAE8tQ,WAAWl5P,EAAGoY,GAChBhuB,KAAK/D,OAAO+xB,EAChB,EAKA6/O,GAAWtsQ,UAAUwtQ,MAbrB,SAAmB/tQ,EAAGgtB,GAClBhtB,EAAEguQ,SAAShhP,GACXhuB,KAAK/D,OAAO+xB,EAChB,EAuGAy+O,GAAWlrQ,UAAUktQ,OA9nBrB,SAAmBzgP,GACf,IAAK,IAAI5c,EAAIpR,KAAKP,EAAI,EAAG2R,GAAK,IAAKA,EAC/B4c,EAAE5c,GAAKpR,KAAKoR,GAChB4c,EAAEvuB,EAAIO,KAAKP,EACXuuB,EAAEnwB,EAAImC,KAAKnC,CACf,EA0nBA4uQ,GAAWlrQ,UAAUosQ,QAxnBrB,SAAoB3sQ,GAChBhB,KAAKP,EAAI,EACTO,KAAKnC,EAAImD,EAAI,GAAK,EAAI,EAClBA,EAAI,EACJhB,KAAK,GAAKgB,EACLA,GAAK,EACVhB,KAAK,GAAKgB,EAAIhB,KAAK+qL,GAEnB/qL,KAAKP,EAAI,CACjB,EAgnBAgtQ,GAAWlrQ,UAAU+rE,WAxmBrB,SAAuBzvE,EAAGiC,GACtB,IAAI49E,EACJ,GAAU,KAAN59E,EACA49E,EAAI,OACH,GAAU,IAAN59E,EACL49E,EAAI,OACH,GAAU,IAAN59E,EACL49E,EAAI,OACH,GAAU,KAAN59E,EACL49E,EAAI,MACH,IAAU,IAAN59E,EAGL,MAAM,IAAIb,MAAM,4CAFhBy+E,EAAI,CAEuD,CAC/D19E,KAAKP,EAAI,EACTO,KAAKnC,EAAI,EACT,IAAIuT,EAAIvT,EAAEnC,OACN4rG,GAAK,EACL/D,EAAK,EACT,OAASnyF,GAAK,GAAG,CACb,MAAMpQ,EAAIysQ,GAAM5vQ,EAAGuT,GACfpQ,EAAI,EACgB,MAAhBnD,EAAEvD,OAAO8W,KACTk2F,GAAK,IAGbA,GAAK,EACM,IAAP/D,EACAvjG,KAAKA,KAAKP,KAAOuB,EACZuiG,EAAK7lB,EAAI19E,KAAKgtQ,IACnBhtQ,KAAKA,KAAKP,EAAI,KAAOuB,GAAM,GAAMhB,KAAKgtQ,GAAKzpK,GAAO,IAAOA,EACzDvjG,KAAKA,KAAKP,KAAOuB,GAAMhB,KAAKgtQ,GAAKzpK,GAGjCvjG,KAAKA,KAAKP,EAAI,IAAMuB,GAAKuiG,EAC7BA,GAAM7lB,EACF6lB,GAAMvjG,KAAKgtQ,KACXzpK,GAAMvjG,KAAKgtQ,IACvB,CACIhtQ,KAAK2uQ,QACDrnK,GACAmlK,GAAWtoP,KAAKoqP,MAAMvuQ,KAAMA,KACpC,EA+jBAysQ,GAAWlrQ,UAAUotQ,MA7jBrB,WACI,MAAM/oP,EAAI5lB,KAAKnC,EAAImC,KAAKitQ,GACxB,KAAOjtQ,KAAKP,EAAI,GAAKO,KAAKA,KAAKP,EAAI,IAAMmmB,KACnC5lB,KAAKP,CACf,EA0jBAgtQ,GAAWlrQ,UAAU6sQ,UAhdrB,SAAsB15P,EAAGsZ,GACrB,IAAI5c,EACJ,IAAKA,EAAIpR,KAAKP,EAAI,EAAG2R,GAAK,IAAKA,EAC3B4c,EAAE5c,EAAIsD,GAAK1U,KAAKoR,GACpB,IAAKA,EAAIsD,EAAI,EAAGtD,GAAK,IAAKA,EACtB4c,EAAE5c,GAAK,EACX4c,EAAEvuB,EAAIO,KAAKP,EAAIiV,EACfsZ,EAAEnwB,EAAImC,KAAKnC,CACf,EAycA4uQ,GAAWlrQ,UAAUqtQ,UAvcrB,SAAsBl6P,EAAGsZ,GACrB,IAAK,IAAI5c,EAAIsD,EAAGtD,EAAIpR,KAAKP,IAAK2R,EAC1B4c,EAAE5c,EAAIsD,GAAK1U,KAAKoR,GACpB4c,EAAEvuB,EAAIuY,KAAKC,IAAIjY,KAAKP,EAAIiV,EAAG,GAC3BsZ,EAAEnwB,EAAImC,KAAKnC,CACf,EAmcA4uQ,GAAWlrQ,UAAU0tQ,SAjcrB,SAAqBv6P,EAAGsZ,GACpB,MAAM01I,EAAKhvJ,EAAI1U,KAAKgtQ,GACdkC,EAAMlvQ,KAAKgtQ,GAAKtpG,EAChByrG,GAAM,GAAKD,GAAO,EAClBE,EAAKp3P,KAAKs9B,MAAM5gC,EAAI1U,KAAKgtQ,IAC/B,IACI57P,EADAwU,EAAK5lB,KAAKnC,GAAK6lK,EAAM1jK,KAAKitQ,GAE9B,IAAK77P,EAAIpR,KAAKP,EAAI,EAAG2R,GAAK,IAAKA,EAC3B4c,EAAE5c,EAAIg+P,EAAK,GAAMpvQ,KAAKoR,IAAM89P,EAAOtpP,EACnCA,GAAK5lB,KAAKoR,GAAK+9P,IAAOzrG,EAE1B,IAAKtyJ,EAAIg+P,EAAK,EAAGh+P,GAAK,IAAKA,EACvB4c,EAAE5c,GAAK,EACX4c,EAAEohP,GAAMxpP,EACRoI,EAAEvuB,EAAIO,KAAKP,EAAI2vQ,EAAK,EACpBphP,EAAEnwB,EAAImC,KAAKnC,EACXmwB,EAAE2gP,OACN,EAibAlC,GAAWlrQ,UAAU8tQ,SA/arB,SAAqB36P,EAAGsZ,GACpBA,EAAEnwB,EAAImC,KAAKnC,EACX,MAAMuxQ,EAAKp3P,KAAKs9B,MAAM5gC,EAAI1U,KAAKgtQ,IAC/B,GAAIoC,GAAMpvQ,KAAKP,EAEX,YADAuuB,EAAEvuB,EAAI,GAGV,MAAMikK,EAAKhvJ,EAAI1U,KAAKgtQ,GACdkC,EAAMlvQ,KAAKgtQ,GAAKtpG,EAChByrG,GAAM,GAAKzrG,GAAM,EACvB11I,EAAE,GAAKhuB,KAAKovQ,IAAO1rG,EACnB,IAAK,IAAItyJ,EAAIg+P,EAAK,EAAGh+P,EAAIpR,KAAKP,IAAK2R,EAC/B4c,EAAE5c,EAAIg+P,EAAK,KAAOpvQ,KAAKoR,GAAK+9P,IAAOD,EACnClhP,EAAE5c,EAAIg+P,GAAMpvQ,KAAKoR,IAAMsyJ,EAEvBA,EAAK,IACL11I,EAAEhuB,KAAKP,EAAI2vQ,EAAK,KAAOpvQ,KAAKnC,EAAIsxQ,IAAOD,GAC3ClhP,EAAEvuB,EAAIO,KAAKP,EAAI2vQ,EACfphP,EAAE2gP,OACN,EA6ZAlC,GAAWlrQ,UAAUgtQ,MA3ZrB,SAAkB1uQ,EAAGmuB,GACjB,IAAI5c,EAAI,EACJwU,EAAI,EACR,MAAM0pB,EAAIt3B,KAAKoS,IAAIvqB,EAAEJ,EAAGO,KAAKP,GAC7B,KAAO2R,EAAIk+B,GACP1pB,GAAK5lB,KAAKoR,GAAKvR,EAAEuR,GACjB4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEf,GAAIntQ,EAAEJ,EAAIO,KAAKP,EAAG,CAEd,IADAmmB,GAAK/lB,EAAEhC,EACAuT,EAAIpR,KAAKP,GACZmmB,GAAK5lB,KAAKoR,GACV4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEfpnP,GAAK5lB,KAAKnC,CAClB,KACS,CAED,IADA+nB,GAAK5lB,KAAKnC,EACHuT,EAAIvR,EAAEJ,GACTmmB,GAAK/lB,EAAEuR,GACP4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEfpnP,GAAK/lB,EAAEhC,CACf,CACImwB,EAAEnwB,EAAI+nB,EAAI,GAAK,EAAI,EACfA,GAAK,EACLoI,EAAE5c,KAAOpR,KAAK+qL,GAAKnlK,EACdA,EAAI,IACToI,EAAE5c,KAAOwU,GACboI,EAAEvuB,EAAI2R,EACN4c,EAAE2gP,OACN,EA0XAlC,GAAWlrQ,UAAUutQ,WAvXrB,SAAuBjvQ,EAAGmuB,GACtB,MAAMhtB,EAAIhB,KAAKu6B,MACT3kB,EAAI/V,EAAE06B,MACZ,IAAInpB,EAAIpQ,EAAEvB,EAEV,IADAuuB,EAAEvuB,EAAI2R,EAAIwE,EAAEnW,IACH2R,GAAK,GACV4c,EAAE5c,GAAK,EACX,IAAKA,EAAI,EAAGA,EAAIwE,EAAEnW,IAAK2R,EACnB4c,EAAE5c,EAAIpQ,EAAEvB,GAAKuB,EAAE8rQ,GAAG,EAAGl3P,EAAExE,GAAI4c,EAAG5c,EAAG,EAAGpQ,EAAEvB,GAC1CuuB,EAAEnwB,EAAI,EACNmwB,EAAE2gP,QACE3uQ,KAAKnC,IAAMgC,EAAEhC,GACb4uQ,GAAWtoP,KAAKoqP,MAAMvgP,EAAGA,EACjC,EA2WAy+O,GAAWlrQ,UAAUytQ,SAzWrB,SAAqBhhP,GACjB,MAAMhtB,EAAIhB,KAAKu6B,MACf,IAAInpB,EAAK4c,EAAEvuB,EAAI,EAAIuB,EAAEvB,EACrB,OAAS2R,GAAK,GACV4c,EAAE5c,GAAK,EACX,IAAKA,EAAI,EAAGA,EAAIpQ,EAAEvB,EAAI,IAAK2R,EAAG,CAC1B,MAAMwU,EAAI5kB,EAAE8rQ,GAAG17P,EAAGpQ,EAAEoQ,GAAI4c,EAAG,EAAI5c,EAAG,EAAG,IAChC4c,EAAE5c,EAAIpQ,EAAEvB,IAAMuB,EAAE8rQ,GAAG17P,EAAI,EAAG,EAAIpQ,EAAEoQ,GAAI4c,EAAG,EAAI5c,EAAI,EAAGwU,EAAG5kB,EAAEvB,EAAI2R,EAAI,KAChEpQ,EAAE+pL,KACF/8J,EAAE5c,EAAIpQ,EAAEvB,IAAMuB,EAAE+pL,GAChB/8J,EAAE5c,EAAIpQ,EAAEvB,EAAI,GAAK,EAE7B,CACQuuB,EAAEvuB,EAAI,IACNuuB,EAAEA,EAAEvuB,EAAI,IAAMuB,EAAE8rQ,GAAG17P,EAAGpQ,EAAEoQ,GAAI4c,EAAG,EAAI5c,EAAG,EAAG,IAC7C4c,EAAEnwB,EAAI,EACNmwB,EAAE2gP,OACN,EAyVAlC,GAAWlrQ,UAAU8sQ,SAtVrB,SAAqB/+N,EAAGsxD,EAAG5yE,GACvB,MAAMshP,EAAKhgO,EAAE/U,MACb,GAAI+0O,EAAG7vQ,GAAK,EACR,OACJ,MAAM43K,EAAKr3K,KAAKu6B,MAChB,GAAI88I,EAAG53K,EAAI6vQ,EAAG7vQ,EAKV,OAJS,MAALmhG,GACAA,EAAE+sK,QAAQ,QACL,MAAL3/O,GACAhuB,KAAKyuQ,OAAOzgP,IAGV,OAANA,IACAA,EAAI0+O,MACR,MAAM92P,EAAI82P,KACJhhE,EAAK1rM,KAAKnC,EACV+sM,EAAKt7J,EAAEzxC,EACP0xQ,EAAMvvQ,KAAKgtQ,GAAKY,GAAM0B,EAAGA,EAAG7vQ,EAAI,IAElC8vQ,EAAM,GACND,EAAGL,SAASM,EAAK35P,GACjByhK,EAAG43F,SAASM,EAAKvhP,KAGjBshP,EAAGb,OAAO74P,GACVyhK,EAAGo3F,OAAOzgP,IAEd,MAAMwhP,EAAK55P,EAAEnW,EACPyvD,EAAKt5C,EAAE45P,EAAK,GAClB,GAAW,IAAPtgN,EACA,OACJ,MAAM2oH,EAAK3oH,GAAM,GAAKlvD,KAAKmtQ,KAAOqC,EAAK,EAAI55P,EAAE45P,EAAK,IAAMxvQ,KAAKotQ,GAAK,GAC5DqC,EAAKzvQ,KAAKktQ,GAAKr1F,EACf63F,GAAM,GAAK1vQ,KAAKmtQ,IAAMt1F,EACtBviK,EAAI,GAAKtV,KAAKotQ,GACpB,IAAIh8P,EAAI4c,EAAEvuB,EACNyrE,EAAI95D,EAAIo+P,EACZ,MAAM/vQ,EAAU,OAANmhG,EAAa8rK,KAAQ9rK,EAS/B,IARAhrF,EAAEw4P,UAAUljM,EAAGzrE,GACXuuB,EAAEsgP,UAAU7uQ,IAAM,IAClBuuB,EAAEA,EAAEvuB,KAAO,EACXuuB,EAAEugP,MAAM9uQ,EAAGuuB,IAEfy+O,GAAWkD,IAAIvB,UAAUoB,EAAI/vQ,GAC7BA,EAAE8uQ,MAAM34P,EAAGA,GAEJA,EAAEnW,EAAI+vQ,GACT55P,EAAEA,EAAEnW,KAAO,EACf,OAASyrE,GAAK,GAAG,CAEb,IAAI2hB,EAAK7+D,IAAI5c,KAAO89C,EAAKlvD,KAAKitQ,GAAKj1P,KAAKs9B,MAAMtnB,EAAE5c,GAAKq+P,GAAMzhP,EAAE5c,EAAI,GAAKkE,GAAKo6P,GAC3E,IAAK1hP,EAAE5c,IAAMwE,EAAEk3P,GAAG,EAAGjgL,EAAI7+D,EAAGk9C,EAAG,EAAGskM,IAAO3iL,EAIrC,IAFAj3E,EAAEw4P,UAAUljM,EAAGzrE,GACfuuB,EAAEugP,MAAM9uQ,EAAGuuB,GACJA,EAAE5c,KAAOy7E,GACZ7+D,EAAEugP,MAAM9uQ,EAAGuuB,EAE3B,CACc,OAAN4yE,IACA5yE,EAAE4gP,UAAUY,EAAI5uK,GACZ8qG,IAAOd,GACP6hE,GAAWtoP,KAAKoqP,MAAM3tK,EAAGA,IAEjC5yE,EAAEvuB,EAAI+vQ,EACNxhP,EAAE2gP,QACEY,EAAM,GACNvhP,EAAEqhP,SAASE,EAAKvhP,GAEhB09K,EAAK,GACL+gE,GAAWtoP,KAAKoqP,MAAMvgP,EAAGA,EACjC,EAgRAy+O,GAAWlrQ,UAAUwsQ,SA7PrB,WACI,GAAI/tQ,KAAKP,EAAI,EACT,OAAO,EACX,MAAMuB,EAAIhB,KAAK,GACf,GAAgB,KAAP,EAAJgB,GACD,OAAO,EACX,IAAI4U,EAAQ,EAAJ5U,EAaR,OAXA4U,EAAKA,GAAK,GAAS,GAAJ5U,GAAW4U,GAAM,GAEhCA,EAAKA,GAAK,GAAS,IAAJ5U,GAAY4U,GAAM,IAEjCA,EAAKA,GAAK,IAAW,MAAJ5U,GAAc4U,EAAK,QAAY,MAIhDA,EAAKA,GAAK,EAAM5U,EAAI4U,EAAK5V,KAAK+qL,IAAQ/qL,KAAK+qL,GAGpCn1K,EAAI,EAAI5V,KAAK+qL,GAAKn1K,GAAKA,CAClC,EA0OA62P,GAAWlrQ,UAAUquQ,MArOrB,SAAkB/vQ,EAAGmuB,GACjB,IAAI5c,EAAI,EACJwU,EAAI,EACR,MAAM0pB,EAAIt3B,KAAKoS,IAAIvqB,EAAEJ,EAAGO,KAAKP,GAC7B,KAAO2R,EAAIk+B,GACP1pB,GAAK5lB,KAAKoR,GAAKvR,EAAEuR,GACjB4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEf,GAAIntQ,EAAEJ,EAAIO,KAAKP,EAAG,CAEd,IADAmmB,GAAK/lB,EAAEhC,EACAuT,EAAIpR,KAAKP,GACZmmB,GAAK5lB,KAAKoR,GACV4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEfpnP,GAAK5lB,KAAKnC,CAClB,KACS,CAED,IADA+nB,GAAK5lB,KAAKnC,EACHuT,EAAIvR,EAAEJ,GACTmmB,GAAK/lB,EAAEuR,GACP4c,EAAE5c,KAAOwU,EAAI5lB,KAAKitQ,GAClBrnP,IAAM5lB,KAAKgtQ,GAEfpnP,GAAK/lB,EAAEhC,CACf,CACImwB,EAAEnwB,EAAI+nB,EAAI,GAAK,EAAI,EACfA,EAAI,EACJoI,EAAE5c,KAAOwU,EACJA,GAAK,IACVoI,EAAE5c,KAAOpR,KAAK+qL,GAAKnlK,GACvBoI,EAAEvuB,EAAI2R,EACN4c,EAAE2gP,OACN,EAqMAlC,GAAWlrQ,UAAUO,SAnkBrB,SAAoBhC,GAChB,GAAIE,KAAKnC,EAAI,EACT,MAAO,IAAMmC,KAAK6vQ,SAAS/tQ,SAAShC,GACxC,IAAI49E,EACJ,GAAS,IAAL59E,EACA49E,EAAI,OACH,GAAU,IAAN59E,EACL49E,EAAI,OACH,GAAU,IAAN59E,EACL49E,EAAI,OACH,GAAU,KAAN59E,EACL49E,EAAI,MACH,IAAU,IAAN59E,EAGL,MAAM,IAAIb,MAAM,4CAFhBy+E,EAAI,CAEuD,CAC/D,MAAM+sH,GAAM,GAAK/sH,GAAK,EACtB,IAAI5/E,EACAwxC,GAAI,EACJthB,EAAI,GACJ5c,EAAIpR,KAAKP,EACT6U,EAAItU,KAAKgtQ,GAAO57P,EAAIpR,KAAKgtQ,GAAMtvL,EACnC,GAAItsE,KAAM,EAKN,IAJIkD,EAAItU,KAAKgtQ,KAAOlvQ,EAAIkC,KAAKoR,IAAMkD,GAAK,IACpCg7B,GAAI,EACJthB,EAAIw/O,GAAS1vQ,IAEVsT,GAAK,GACJkD,EAAIopE,GACJ5/E,GAAKkC,KAAKoR,IAAO,GAAKkD,GAAK,IAAQopE,EAAIppE,EACvCxW,GAAKkC,OAAOoR,KAAOkD,GAAKtU,KAAKgtQ,GAAKtvL,KAGlC5/E,EAAKkC,KAAKoR,KAAOkD,GAAKopE,GAAM+sH,EACxBn2L,GAAK,IACLA,GAAKtU,KAAKgtQ,KACR57P,IAGNtT,EAAI,IACJwxC,GAAI,GACJA,IACAthB,GAAKw/O,GAAS1vQ,IAG1B,OAAOwxC,EAAIthB,EAAI,GACnB,EAshBAy+O,GAAWlrQ,UAAUsuQ,OAphBrB,WACI,MAAM7hP,EAAI0+O,KAEV,OADAD,GAAWtoP,KAAKoqP,MAAMvuQ,KAAMguB,GACrBA,CACX,EAihBAy+O,GAAWlrQ,UAAUg5B,IA/gBrB,WACI,OAAOv6B,KAAKnC,EAAI,EAAImC,KAAK6vQ,SAAW7vQ,IACxC,EA8gBAysQ,GAAWlrQ,UAAU+sQ,UA5gBrB,SAAqBzuQ,GACjB,IAAImuB,EAAIhuB,KAAKnC,EAAIgC,EAAEhC,EACnB,GAAS,GAALmwB,EACA,OAAOA,EACX,IAAI5c,EAAIpR,KAAKP,EAEb,GADAuuB,EAAI5c,EAAIvR,EAAEJ,EACD,GAALuuB,EACA,OAAOhuB,KAAKnC,EAAI,GAAKmwB,EAAIA,EAC7B,OAAS5c,GAAK,MACkB,IAAvB4c,EAAIhuB,KAAKoR,GAAKvR,EAAEuR,IACjB,OAAO4c,EACf,OAAO,CACX,EAigBAy+O,GAAWlrQ,UAAUuuQ,UArerB,WACI,OAAI9vQ,KAAKP,GAAK,EACH,EACJO,KAAKgtQ,IAAMhtQ,KAAKP,EAAI,GAAKmuQ,GAAM5tQ,KAAKA,KAAKP,EAAI,GAAMO,KAAKnC,EAAImC,KAAKitQ,GAC5E,EAkeAR,GAAWlrQ,UAAU4vE,IAtRrB,SAAetxE,GACX,MAAMmuB,EAAI0+O,KAIV,OAHA1sQ,KAAKu6B,MAAM8zO,SAASxuQ,EAAG,KAAMmuB,GACzBhuB,KAAKnC,EAAI,GAAKmwB,EAAEsgP,UAAU7B,GAAWtoP,MAAQ,GAC7CtkB,EAAE0uQ,MAAMvgP,EAAGA,GACRA,CACX,EAiRAy+O,GAAWlrQ,UAAUumL,OAjPrB,SAAkBjoL,GACd,OAA6B,IAAtBG,KAAKsuQ,UAAUzuQ,EAC1B,EAgPA4sQ,GAAWlrQ,UAAUyV,IA1MrB,SAAenX,GACX,MAAMmuB,EAAI0+O,KAEV,OADA1sQ,KAAK4vQ,MAAM/vQ,EAAGmuB,GACPA,CACX,EAuMAy+O,GAAWlrQ,UAAUwuQ,SArMrB,SAAoBlwQ,GAChB,MAAMmuB,EAAI0+O,KAEV,OADA1sQ,KAAKuuQ,MAAM1uQ,EAAGmuB,GACPA,CACX,EAkMAy+O,GAAWlrQ,UAAUw5K,SAhMrB,SAAoBl7K,GAChB,MAAMmuB,EAAI0+O,KAEV,OADA1sQ,KAAK8uQ,WAAWjvQ,EAAGmuB,GACZA,CACX,EA6LAy+O,GAAWlrQ,UAAUyuQ,OA3LrB,SAAkBnwQ,GACd,MAAMmuB,EAAI0+O,KAEV,OADA1sQ,KAAKquQ,SAASxuQ,EAAGmuB,EAAG,MACbA,CACX,EAwLAy+O,GAAWlrQ,UAAU0uQ,OArHrB,SAAkB36P,EAAGg6B,EAAG+vB,GACpB,IACIqe,EADAtsE,EAAIkE,EAAEw6P,YAEN9hP,EAAI0/O,GAAI,GACZ,MAAMtpP,EAAI,IAAIypP,GAAWv+N,GACzB,GAAIl+B,GAAK,EACL,OAAO4c,EAEP0vD,EADKtsE,EAAI,GACL,EACCA,EAAI,GACL,EACCA,EAAI,IACL,EACCA,EAAI,IACL,EAEA,EAER,MAAMyE,EAAI,GACV,IAAInB,EAAI,EACR,MAAMw7P,EAAKxyL,EAAI,EACT+sH,GAAM,GAAK/sH,GAAK,EAEtB,GADA7nE,EAAE,GAAKuO,EAAEq8C,QAAQzgE,MACb09E,EAAI,EAAG,CACP,MAAMyyL,EAAKzD,KAEX,IADAtoP,EAAE2qP,MAAMl5P,EAAE,GAAIs6P,GACPz7P,GAAK+1L,GACR50L,EAAEnB,GAAKg4P,KACPtoP,EAAEyqP,MAAMsB,EAAIt6P,EAAEnB,EAAI,GAAImB,EAAEnB,IACxBA,GAAK,CAEjB,CACI,IACIuC,EAGAxX,EAJAyrE,EAAI51D,EAAE7V,EAAI,EAEV2wQ,GAAM,EACNlsN,EAAKwoN,KAGT,IADAt7P,EAAIw8P,GAAMt4P,EAAE41D,IAAM,EACXA,GAAK,GAAG,CASX,IARI95D,GAAK8+P,EACLj5P,EAAK3B,EAAE41D,IAAO95D,EAAI8+P,EAAOzlE,GAEzBxzL,GAAK3B,EAAE41D,IAAO,GAAM95D,EAAI,GAAM,IAAQ8+P,EAAK9+P,EACvC85D,EAAI,IACJj0D,GAAK3B,EAAE41D,EAAI,IAAOlrE,KAAKgtQ,GAAK57P,EAAI8+P,IAExCx7P,EAAIgpE,EACe,KAAP,EAAJzmE,IACJA,IAAM,IACJvC,EAMN,IAJKtD,GAAKsD,GAAK,IACXtD,GAAKpR,KAAKgtQ,KACR9hM,GAEFklM,EAEAv6P,EAAEoB,GAAGw3P,OAAOzgP,GACZoiP,GAAM,MAEL,CACD,KAAO17P,EAAI,GACP0P,EAAE2qP,MAAM/gP,EAAGk2B,GACX9/B,EAAE2qP,MAAM7qN,EAAIl2B,GACZtZ,GAAK,EAELA,EAAI,EACJ0P,EAAE2qP,MAAM/gP,EAAGk2B,IAEXzkD,EAAIuuB,EACJA,EAAIk2B,EACJA,EAAKzkD,GAET2kB,EAAEyqP,MAAM3qN,EAAIruC,EAAEoB,GAAI+W,EAC9B,CACQ,KAAOk9C,GAAK,GAA2B,KAArB51D,EAAE41D,GAAM,GAAK95D,IAC3BgT,EAAE2qP,MAAM/gP,EAAGk2B,GACXzkD,EAAIuuB,EACJA,EAAIk2B,EACJA,EAAKzkD,IACC2R,EAAI,IACNA,EAAIpR,KAAKgtQ,GAAK,IACZ9hM,EAGlB,CACI,MAAM3vE,EAAS6oB,EAAEoqP,OAAOxgP,GAExB,OADAqxC,EAAS,KAAM9jE,GACRA,CACX,EA8BAkxQ,GAAWtoP,KAAOupP,GAAI,GACtBjB,GAAWkD,IAAMjC,GAAI,GC7yBT,MCaCxzH,GAAe,CAAC,EAChBC,GAAe,CAAC,EAC7B,IAAK,IAAI/oI,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC1B,IAAIgpI,EAAchpI,EAAEtP,SAAS,IAAI9H,cACN,IAAvBogJ,EAAY1+I,SACZ0+I,EAAc,IAAH1jI,OAAO0jI,IAEtBF,GAAa9oI,GAAKgpI,EAClBD,GAAaC,GAAehpI,CAChC,CCnBY,MAACi/P,GAAmBC,IAC5B,GAAIA,EAAQ50Q,OAAS,IAAM,EACvB,MAAM,IAAIuD,MAAM,uDAEpB,MAAMy5I,EAAM,IAAIxkI,WAAWo8P,EAAQ50Q,OAAS,GAC5C,IAAK,IAAI0V,EAAI,EAAGA,EAAIk/P,EAAQ50Q,OAAQ0V,GAAK,EAAG,CACxC,MAAMgpI,EAAck2H,EAAQ30Q,MAAMyV,EAAGA,EAAI,GAAGpX,cAC5C,KAAIogJ,KAAeD,IAIf,MAAM,IAAIl7I,MAAM,uCAADyX,OAAwC0jI,EAAW,oBAHlE1B,EAAItnI,EAAI,GAAK+oI,GAAaC,EAKtC,CACI,OAAO1B,CAAG,ECdD63H,GAAmBv2P,IAC5B,IAAI0+H,EAAM,GACV,IAAK,IAAItnI,EAAI,EAAGA,EAAI4I,EAAM8jD,WAAY1sD,IAClCsnI,GAAOwB,GAAalgI,EAAM5I,IAE9B,OAAOsnI,CAAG,ECHD83H,GAAmB3/P,IAC5B,MAAM4/P,EAAS,IAAI/2H,GACnB+2H,EAAOt4H,OAAOtnI,GACd,MAAM6/P,EAAaD,EAAO52H,aACpB82H,EAAmBJ,GAAgBG,GACzC,OAAO,IAAIj3Q,MAAM,GAAKk3Q,EAAiBj1Q,QAAQG,KAAK,KAAO80Q,CAAgB,ECLlEC,GAAkBC,GAAWL,GAAgBH,GAAgBQ,ICJpEC,GAAgB,YA2BTC,GAAgBC,IACzB,KAAMA,aAAkBvE,IACpB,MAAM,IAAIxtQ,MAAM,oBAEpB,MAAMgyQ,EAAaD,EAAO1C,UAAU7B,GAAWtoP,MAAQ,EAEvD,IAAI0sP,EAASG,EAAOz2O,MAAMz4B,SAAS,IAKnC,GAHA+uQ,EAASA,EAAOn1Q,OAAS,IAAM,EAAI,IAAHgb,OAAOm6P,GAAWA,EAElDA,EAASC,GAAcvuQ,KAAKsuQ,GAAU,KAAHn6P,OAAQm6P,GAAWA,EAClDI,EAAY,CAEZ,MAAMC,EAAkBL,EACnBl3Q,MAAM,IACNiC,KAAKoF,IACN,MAAMmwQ,EAAoC,IAAlBnrP,SAAShlB,EAAG,IACpC,MAAO,mBAAmB1G,OAAO62Q,EAAe,IAE/Ct1Q,KAAK,IAGVg1Q,EADsB,IAAIpE,GAAWyE,EAAiB,IAAIl6P,IAAIy1P,GAAWkD,KAClD7tQ,SAAS,IAS5B+uQ,EAAOt0Q,cAAco9H,WAAW,SAChCk3I,EAASA,EAAO5iP,UAAU,GAEtC,CACI,OAAO4iP,CAAM,EC7CV,MAAMO,GACTrtQ,WAAAA,CAAYkrC,EAAOoiO,GACfrxQ,KAAKivC,MAAQ,GACb,IAAIqiO,EAAQriO,EACZqiO,EAAQtxQ,KAAKivC,MAAQqiO,GAAS,GAE1BtxQ,KAAKqxQ,cADQ/tQ,IAAb+tQ,EACgBA,EAGe,EAAfC,EAAM51Q,MAElC,CACIk+F,MAAAA,CAAO23K,GACH,MAAMtiO,EAAQ,GACd,IAAK,IAAI79B,EAAI,EAAGA,EAAImgQ,EAAQngQ,GAAK,EAC7B69B,EAAMtwC,KC9BCo8I,KACay2H,gBAAgB,IAAIz2P,YAAY,IAAI,ID+B5D,OAAO,IAAIq2P,GAAUniO,EAAOsiO,EACpC,CACIzvQ,QAAAA,GACI,OAjCR,SAAsB2vQ,GAElB,MAAM,MAAExiO,GAAUwiO,GACZ,SAAEJ,GAAaI,EAEfC,EAAW,GACjB,IAAK,IAAItgQ,EAAI,EAAGA,EAAIigQ,EAAUjgQ,IAAK,CAC/B,MAAMugQ,EAAQ1iO,EAAM79B,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IACvDsgQ,EAAS/yQ,MAAMgzQ,IAAS,GAAG7vQ,SAAS,KACpC4vQ,EAAS/yQ,MAAa,GAAPgzQ,GAAa7vQ,SAAS,IAC7C,CACI,OAAO4vQ,EAAS71Q,KAAK,GACzB,CAqBe+1Q,CAAa5xQ,KAC5B,EElCY,MAAC6xQ,GAAkBN,IAC3B,MAAM92Q,GAAM,IAAI22Q,IAAYx3K,OAAO23K,GAAQzvQ,WAC3C,OAAOuuQ,GAAgB51Q,EAAI,ECGhB,MAAMq3Q,GACjB/tQ,WAAAA,CAAW0yH,GAAgC,IAA/B,aAAEs7I,EAAY,EAAElyQ,EAAC,EAAEgW,EAAC,EAAEwO,EAAC,EAAEqgF,GAAI+xB,EACrCz2H,KAAKmuN,QAAUq+C,GACfxsQ,KAAK+xQ,aAAeA,EACpB/xQ,KAAKH,EAAIA,EACTG,KAAK6V,EAAIA,EACT7V,KAAKqkB,EAAIA,EACTrkB,KAAK0kG,EAAIA,EACT1kG,KAAK09E,EAAI,IAAI+uL,GAAWmE,GAAe,GAADl6P,OAAIq6P,GAAarsK,IAAEhuF,OAAGq6P,GAAal7P,KAAO,GACxF,CAIIm8P,iBAAAA,GACI,IAAKhyQ,KAAKi+I,eACN,MAAM,IAAInB,GAAU,CAChBjjJ,KAAM,gCACN2mE,QAAS,6BAGjB,OAAOxgE,KAAKi+I,cACpB,CAIIg0H,oBAAAA,GACI,IAAKjyQ,KAAKkyQ,kBACN,MAAM,IAAIp1H,GAAU,CAChBjjJ,KAAM,mCACN2mE,QAAS,+BAGjB,OAAOxgE,KAAKkyQ,iBACpB,CAIIC,kBAAAA,GACI,IAAKnyQ,KAAKoyQ,gBACN,MAAM,IAAIt1H,GAAU,CAChBjjJ,KAAM,iCACN2mE,QAAS,2BAGjB,OAAOxgE,KAAKoyQ,eACpB,CASI,wBAAMC,CAAmBr0H,EAAgBr1B,GACrC3oH,KAAKi+I,eC5DwBkqH,GAAc1nM,QAAQoxM,GAAe,KD6DlE,MAAMS,EAAiB,GAAH57P,OAAMsnI,GAActnI,OAAGiyG,EAAQ,KAAAjyG,OAAI1W,KAAKi+I,gBACtDs0H,EAAe/B,GAAgB8B,GAC/BE,EAAYjC,GAAgBsB,GAAe,KAGjD,OADA7xQ,KAAKkyQ,kBAAoBnB,GAAa,IAAItE,GAAW+F,EAAW,KACzD,IAAIv9P,SAAQ,CAACD,EAASE,KACzBlV,KAAK6V,EAAEo6P,OAAO,IAAIxD,GAAWmE,GAAe5wQ,KAAKkyQ,kBAAoBK,GAAe,IAAKvyQ,KAAK0kG,GAAG,CAAC37B,EAAKxtE,KAC/FwtE,EACA7zD,EAAO6zD,IAGX/oE,KAAKoyQ,gBAAkBrB,GAAax1Q,GACpCyZ,IAAS,GACX,GAEd,CASI,kCAAMy9P,CAA4BxxH,GAA8C,IAA7C,SAAEt4B,EAAQ,SAAEx0B,EAAQ,aAAEu+K,EAAY,KAAEC,GAAO1xH,EAC1E,GAAIyxH,EAAavhM,IAAInxE,KAAK0kG,GAAGojF,OAAO2kF,GAAWtoP,MAC3C,MAAM,IAAIllB,MAAM,qBAEpB,MAAMulB,EE3FYiyG,KAAe,IAAd,EAAEpyG,EAAC,EAAE4iE,GAAIwvC,EAChC,MAAMjyG,EAAI,IAAIioP,GAAWmE,GAAeG,GAAa1sP,GAAK0sP,GAAa9pL,IAAK,IAC5E,GAAIziE,EAAEsjK,OAAO2kF,GAAWtoP,MACpB,MAAM,IAAIllB,MAAM,qBAEpB,OAAOulB,CAAC,EFsFMouP,CAAW,CACjBvuP,EAAGrkB,KAAKqkB,EACR4iE,EAAGyrL,IAEDG,EAAmB,GAAHn8P,OAAM1W,KAAK+xQ,cAAYr7P,OAAGiyG,EAAQ,KAAAjyG,OAAIy9E,GACtD2+K,EAAuBtC,GAAgBqC,GACvC7xQ,EAAI,IAAIyrQ,GAAWmE,GAAeG,GAAa4B,GAAQG,GAAuB,IAC9ErjK,OVrGYgvC,WAAoC,IAA7B,EAAE5+I,EAAC,EAAEgW,EAAC,EAAE6nE,EAAC,EAAE18E,EAAC,EAAEimF,EAAC,EAAEyd,EAAC,EAAElgF,GAAIiyG,EACrD,OAAO,IAAIxhH,SAAQ,CAACD,EAASE,KACzBW,EAAEo6P,OAAOjvQ,EAAG0jG,GAAG,CAACquK,EAAUC,KAClBD,EACA79P,EAAO69P,GAGX9rL,EAAE8oL,SAASryL,EAAEq9F,SAASi4F,IAAc/C,OAAOpwQ,EAAEmX,IAAIwN,EAAEu2J,SAAS/5K,IAAK0jG,GAAG,CAACuuK,EAAUC,KACvED,EACA/9P,EAAO+9P,GAGXj+P,EAAQk+P,EAAY/hM,IAAIuzB,GAAG,GAC7B,GACJ,GACJ,EUsFkByuK,CAAW,CACvBtzQ,EAAGG,KAAKH,EACRgW,EAAG7V,KAAK6V,EACR6nE,EAAG19E,KAAK09E,EACR18E,IACAimF,EAAGyrL,EACHhuK,EAAG1kG,KAAK0kG,EACRlgF,MAEEpN,EAAUpX,KAAKmuN,QAAQ1tJ,QAAQ,uBAC/B2yM,EAASpzQ,KAAKmuN,QAAQ1tJ,QAAQ7+D,OAAOoX,aAAa,IAClDwgC,EAAO,IAAItlC,WAAWkD,EAAQ0mD,WAAas1M,EAAOt1M,YACxDtkB,EAAKr2C,IAAIiU,EAAS,GAClBoiC,EAAKr2C,IAAIiwQ,EAAQh8P,EAAQ0mD,YACzB,MAAMu1M,EG1GYC,EAACC,EAAKZ,EAAMn5N,KAClC,MAAMg6N,EAAgB,IAAI95H,GAAOi5H,GACjCa,EAAcr7H,OAAOo7H,GACrB,MAAME,EAAyBD,EAAc35H,aACvC65H,EAAoB,IAAIh6H,GAAO+5H,GAIrC,OAHAC,EAAkBv7H,OAAO3+F,GACOk6N,EAAkB75H,aAEtBl+I,MAAM,EAAG,GAAG,EHkGpB23Q,CAAWjD,GAAgBU,GAAathK,IAAK4gK,GAAgBU,GAAavsP,IAAKg1B,GAC/F,OAAO65N,CACf,EIpHY,MCUCM,GAA0Bl1H,UACnC,MAAM/5C,EAAI,IAAI+nK,GdfI,mwBcee,IAC3B52P,EAAI,IAAI42P,GAAW,IAAK,IACxB5sQ,EAAI+zQ,KACJvvP,ODdgBo6H,WAAwB,IAAjB,EAAE5+I,EAAC,EAAEgW,EAAC,EAAE6uF,GAAI+xB,EACzC,OAAO,IAAIxhH,SAAQ,CAACD,EAASE,KACzBW,EAAEo6P,OAAOpwQ,EAAG6kG,GAAG,CAAC37B,EAAK1kD,KACb0kD,EACA7zD,EAAO6zD,GAGP1kD,EAAE8sD,IAAIuzB,GAAGojF,OAAO2kF,GAAWtoP,MAC3BjP,EAAO,IAAIjW,MAAM,4CAGrB+V,EAAQqP,EAAE,GACZ,GACJ,ECCcwvP,CAAW,CAAEh0Q,IAAGgW,IAAG6uF,MACnC,OAAO,IAAIotK,GAAqB,CAAEC,eAAclyQ,IAAGgW,IAAGwO,IAAGqgF,KAAI,EAO3DkvK,GAA2BA,IAItB,IAAInH,GAFO8D,GAAgBsB,GAAe,MAEhB,IC9B/BiC,GAAc,CAChB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEEC,GAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACjDC,GAAeA,KACxB,MAAM5hN,EAAM,IAAID,KACV8hN,EAAUF,GAAW3hN,EAAI8hN,aACzBhgL,EAAQ4/K,GAAY1hN,EAAIooJ,eACxB25D,EAAM/hN,EAAIqoJ,aAChB,IAAI25D,EAAQhiN,EAAIsoJ,cACZ05D,EAAQ,KACRA,EAAQ,IAAH19P,OAAO09P,IAEhB,IAAIC,EAAUjiN,EAAIuoJ,gBACd05D,EAAU,KACVA,EAAU,IAAH39P,OAAO29P,IAElB,IAAIC,EAAUliN,EAAIwoJ,gBACd05D,EAAU,KACVA,EAAU,IAAH59P,OAAO49P,IAElB,MAAMC,EAAOniN,EAAImoJ,iBAGjB,MADgB,GAAH7jM,OAAMu9P,EAAO,KAAAv9P,OAAIw9E,EAAK,KAAAx9E,OAAIy9P,EAAG,KAAAz9P,OAAI09P,EAAK,KAAA19P,OAAI29P,EAAO,KAAA39P,OAAI49P,EAAO,SAAA59P,OAAQ69P,EACnE,EChCLC,GAAqB/9I,IAAqE,IAApE,aAAEs7I,EAAY,SAAEppJ,EAAQ,oBAAE8rJ,EAAmB,QAAEC,EAAO,KAAEC,GAAOl+I,EAC9F,MAAMm+I,EAAcpI,GAAY/rM,QAAQsxM,GAClC8C,EAAYrI,GAAY/rM,QAAQkoD,GAChCmsJ,EAAYC,GAAmBN,EAAoBO,cACnDC,EAAYzI,GAAY/rM,QAAQi0M,GAChCQ,EAAY,IAAIhhQ,WAAW0gQ,EAAY92M,WACzC+2M,EAAU/2M,WACVg3M,EAAUh3M,WACVm3M,EAAUn3M,YACdo3M,EAAU/xQ,IAAIyxQ,EAAa,GAC3BM,EAAU/xQ,IAAI0xQ,EAAWD,EAAY92M,YACrCo3M,EAAU/xQ,IAAI2xQ,EAAWF,EAAY92M,WAAa+2M,EAAU/2M,YAC5Do3M,EAAU/xQ,IAAI8xQ,EAAWL,EAAY92M,WAAa+2M,EAAU/2M,WAAag3M,EAAUh3M,YACnF,MAAM01M,EAAgB,IAAI95H,GAAOi7H,GACjCnB,EAAcr7H,OAAO+8H,GACrB,MAAMC,EAAsB3B,EAAc35H,aAE1C,OADwBsuH,GAAc1nM,QAAQ00M,EACxB,EAEpBJ,GAAsBK,IACxB,MACM57P,GAAU47P,EADA,IAAI5qO,QAAQ,EAAK4qO,EAAa15Q,OAAS,GAAM,IACrBxB,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACnE21M,EAAU50D,GAAcx6E,QAAQjnD,GAChC67P,EAAc,IAAInhQ,WAAW27L,EAAQn0M,QAC3C,IAAK,IAAI0V,EAAI,EAAGA,EAAIy+L,EAAQn0M,SAAU0V,EAClCikQ,EAAYjkQ,GAAKy+L,EAAQ77L,WAAW5C,GAExC,OAAOikQ,CAAW,ECbhBC,GAAkB,kBACjB72H,eAAe82H,GAAqB9+I,GAAuF,IAAtF,kBAAE++I,EAAiB,eAAEC,EAAc,QAAEC,EAAO,SAAE/sJ,EAAQ,OAAEwe,EAAM,kBAAE+kG,GAAoBz1G,EAC5H,MAAM,WAAEsW,EAAU,iBAAEC,GAAqB7F,EACnCwuI,EAAqB,CACvBC,SAAUjtJ,EACVktJ,OAAQL,GAEN13H,QAAwC,OAAjBouF,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB9D,kBAAkBz/G,IAC9Dm1B,GAAkBA,EAAeC,YACjC43H,EAAmBtvC,WAAavoF,EAAeC,WAEnD,MAKM+3H,EAAU,CACZC,cAAe,mBACfC,mBAAoBL,EACpBM,QAASP,EACTQ,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUE1tF,QAAiBosG,GAAuB,CAC1C5f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD22B,GACH,MAA+B,oBAA3Bx2N,EAASy2N,cACFI,GAAoB,CACvBxtJ,WACAwe,SACAsuI,iBACAC,QAASp2N,EAAS22N,QAClB/pC,sBAGD5sL,CACX,CA6HOm/F,eAAe23H,GAA2BztJ,EAAUx0B,EAAUshL,EAAgBtuI,EAAQ+kG,GAAmB,IAAApnG,EAAAuxI,EAAAC,EAAAC,EAC5G,MAAM,iBAAEvpI,EAAgB,WAAED,GAAe5F,EACnCqvI,EAAiB,CACnBZ,SAAUjtJ,EACVh4E,SAAUwjD,GAER2pD,QAAuBouF,EAAkB9D,kBAAkBz/G,GAC7Dm1B,GAAkBA,EAAeC,YACjCy4H,EAAenwC,WAAavoF,EAAeC,WAE/C,MAKM+3H,EAAU,CACZrvC,SAAU,qBACVN,eAAgBqwC,EAChBN,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAVoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBASE1tF,QAAiB8rG,GAAa,CAChCtf,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW2/F,SAClD42B,GACGW,EAC2C,QAD7B3xI,EAAyC,QAAzCuxI,EAA+B,QAA/BC,EAAGh3N,EAASo3N,2BAAmB,IAAAJ,OAAA,EAA5BA,EAA8BV,gBAAQ,IAAAS,EAAAA,EAC7B,QAD6BE,EACzDj3N,EAASo3N,2BAAmB,IAAAH,OAAA,EAA5BA,EAA8BI,uBAAe,IAAA7xI,EAAAA,EAC7Cnc,EAEJ,OADAiuJ,GAAwBH,GACO,oBAA3Bn3N,EAASy2N,cACFI,GAAoB,CACvBxtJ,SAAU8tJ,EACVtvI,SACAsuI,iBACAC,QAASp2N,EAAS22N,QAClB/pC,sBAED5sL,CACX,CAsCOm/F,eAAeo4H,GAA+BluJ,EAAU8sJ,EAAgBtuI,EAAQ+kG,GAAmB,IAAA4qC,EAAAC,EACtG,MAAM,iBAAE/pI,EAAgB,WAAED,GAAe5F,EACnCqvI,EAAiB,CACnBZ,SAAUjtJ,GAERm1B,QAAuBouF,EAAkB9D,kBAAkBz/G,GAC7Dm1B,GAAkBA,EAAeC,YACjCy4H,EAAenwC,WAAavoF,EAAeC,WAE/C,MAKM+3H,EAAU,CACZrvC,SAAU,cACVN,eAAgBqwC,EAChBN,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAVoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBASE1tF,QAAiB8rG,GAAa,CAChCtf,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW2/F,SAClD42B,GACGW,EAAuD,QAAzCK,EAA+B,QAA/BC,EAAGz3N,EAASo3N,2BAAmB,IAAAK,OAAA,EAA5BA,EAA8BnB,gBAAQ,IAAAkB,EAAAA,EAAInuJ,EAEjE,OADAiuJ,GAAwBH,GACO,oBAA3Bn3N,EAASy2N,cACFI,GAAoB,CACvBxtJ,SAAU8tJ,EACVtvI,SACAsuI,iBACAC,QAASp2N,EAAS22N,QAClB/pC,sBAED5sL,CACX,CAuCAm/F,eAAe03H,GAAmB/9G,GAAoE,IAAnE,SAAEzvC,EAAQ,OAAEwe,EAAM,eAAEsuI,EAAc,QAAEC,EAAO,kBAAExpC,GAAoB9zE,EAChG,MAAM,WAAErrB,GAAe5F,EACjB6vI,EAAW7vI,EAAO6F,iBAClB8Q,QAAwC,OAAjBouF,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB9D,kBAAkBz/G,IAClEk1B,GAAqBC,GACrB,MAAMm5H,QAA6BtD,GAAwB71H,EAAeE,gBAMpEk5H,EAA2B,CAC7BnB,cAAe,kBACfvvC,SAAUwwC,EACVhB,mBARuB,CACvBJ,SAAUjtJ,EACVwuJ,MAAOF,EAAqB5yP,EAAEviB,SAAS,IACvCukO,WAAYvoF,EAAeC,WAM3Bm4H,eAAgBT,EAChBQ,QAASP,IAELgB,oBAAqBU,EAA4B,QAAEnB,SAAkBvqH,GAAuB,CAAE5f,OAAQqgB,GAAUpf,IAAemqI,GACvI,OAEJz4H,eAA4C91B,EAAU8rJ,EAAqBgB,EAAgBC,EAASuB,EAAoB3+G,EAAoC4zE,GAAmB,IAAAmrC,EAAA,IAArD,WAAEtqI,EAAU,iBAAEC,GAAkBsrB,EACtJ,MAAMxa,QAAwC,OAAjBouF,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB9D,kBAAkBz/G,IAClEk1B,GAAqBC,GACrB,MAAM40H,EAAe,IAAIjG,GAA8B,OAAnBgI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB6C,MAAO,IAC1D3E,EAAO,IAAIlG,GAA8B,OAAnBgI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB8C,KAAM,KACjD,UAAEx5H,GAAcD,GAChB,eAAEE,GAAmBF,EACrB62H,QAAasC,EAAqBxE,6BAA6B,CACjE9pJ,SAAUm1B,EAAeC,UACzB5pD,SAAU2pD,EAAeG,eACzBy0H,eACAC,SAEE+B,EAAUV,KACV2B,EAAqB,CACvBC,SAAuC,QAA/ByB,EAAqB,OAAnB5C,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBmB,gBAAQ,IAAAyB,EAAAA,EAAI1uJ,EAC3C6uJ,4BAAgD,OAAnB/C,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBO,aAClDyC,UAAW/C,EACXgD,yBAA0BlD,GAAmB,CACzC7rJ,SAAUo1B,EACVg0H,aAAc/zH,EACdy2H,sBACAC,UACAC,SAEJtuC,WAAYtoF,GAEVuoF,EAAkBb,GAAmB,CACvC98G,WACAokB,aACAC,qBAEEkqI,EAA2B,CAC7BnB,cAAe,2BACfvvC,SAAUx5F,EACVgpI,mBAAoBL,EACpBM,QAASP,EACTQ,eAAgBT,EAChBnvC,mBAEJ,OAAO56E,GAAuB,CAAE5f,OAAQqgB,GAAUpf,IAAemqI,EACrE,CA3CWS,CAA6BhvJ,EAAUyuJ,EAA8B3B,EAAgBQ,EAASgB,EAAsB9vI,EAAQ+kG,EACvI,CA2COztF,eAAem5H,GAAgCzjL,EAAUsgL,EAAqBgB,EAAgBC,EAASuB,EAAsB9vI,EAAQ+kG,GACxI,MAAM,WAAEn/F,EAAU,iBAAEC,GAAqB7F,EACnC4qI,GAAyB,OAAVhlI,QAAU,IAAVA,OAAU,EAAVA,EAAYpzI,MAAM,KAAK,KAAM,GAC5C+4Q,EAAe,IAAIjG,GAA8B,OAAnBgI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB6C,MAAO,IAC1D3E,EAAO,IAAIlG,GAA8B,OAAnBgI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB8C,KAAM,IACjD5uJ,EAA8B,OAAnB8rJ,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBkC,gBACtC,IAAKhuJ,EACD,MAAM,IAAIm0B,GAAU,CAChBjjJ,KAAM,6BACN2mE,QAAS,yDAEjB,MAAMm0M,QAAasC,EAAqBxE,6BAA6B,CACjE9pJ,WACAx0B,WACAu+K,eACAC,SAEE+B,EAAUV,KACV2B,EAAqB,CACvBC,SAAUjtJ,EACV6uJ,4BAAgD,OAAnB/C,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBO,aAClDyC,UAAW/C,EACXgD,yBAA0BlD,GAAmB,CACzC7rJ,WACAopJ,eACA0C,sBACAC,UACAC,UAGF72H,QAAuBouF,EAAkB9D,kBAAkBz/G,GAC7Dm1B,GAAkBA,EAAeC,YACjC43H,EAAmBtvC,WAAavoF,EAAeC,WAEnD,MAKMm5H,EAA2B,CAC7BnB,cAAe,oBACfC,mBAAoBL,EACpBO,eAAgBT,EAChBQ,QAASP,EACTlvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUE1tF,QAAiBosG,GAAuB,CAAE5f,OAAQqgB,GAAUpf,IAAemqI,GACjF,MAA+B,oBAA3B53N,EAASy2N,cACFI,GAAoB,CACvBxtJ,WACAwe,SACAsuI,iBACAC,QAASp2N,EAAS22N,QAClB/pC,sBAED5sL,CACX,CACOm/F,eAAeo5H,GAAgB38I,GAAQ,IAAAwvB,EAC1C,MAAM,cAAEynF,EAAa,oBAAEsiC,GAAwBv5I,EACzC2R,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAE7C,OADAkP,GAA0BnP,GAClBslG,GACJ,IAAK,mBACD,MAAO,CACH2lC,YAAY,EACZ/T,SAAU,CACNM,WAAY,wCACZ0T,eAAgBtD,IAG5B,IAAK,YAAa,CACd,MAAM,cAAExI,EAAa,SAAEtjJ,GAAaujJ,GAAYC,WAChD,IAqML,SAA0B6L,EAAiBC,GAC9C,MAAM,eAAEC,GAAmBF,EACrBG,EAAWC,GAAYC,GAAcH,IAC3C,QAAKC,GAEEA,EAASv6L,SAASq6L,EAC7B,CA3MiBK,CAAiB7D,EAAqB,QACvC,MAAM,IAAI33H,GAAU,CAChBjjJ,KAAMiyQ,GAAeyM,gBACrB/3M,QAAS,mDAAF9pD,OAAqD0hQ,GAAYC,GAAc5D,EAAoByD,oBAElH,MAAM,QAAEjC,EAASuC,WAAYC,SAAqB5sH,GAAuB,CAAE/f,OAAQqgB,GAAUtf,EAAWE,aAAe,CACnHkpI,QAAShK,IAMb,OAJAC,GAAYjmK,SAAS,CACjBlsG,KAAM,sBACNgC,MAAOk6Q,IAEJ,CACH6B,YAAY,EACZ/T,SAAU,CACNM,WAAY,mCACZL,iBAAkB0U,GAAoBD,EAAY9vJ,IAGtE,CACQ,IAAK,wBACD,MAAO,CACHmvJ,YAAY,EACZ/T,SAAU,CACNM,WAAY,6CACZ7oB,kBAAmBm9B,GAAgBlE,EAAoBmE,sBAGnE,IAAK,kBACD,MAAO,CACHd,YAAY,EACZ/T,SAAU,CACNM,WAAY,sCACZwU,gBAAiBT,GAAYC,GAAc5D,EAAoBqE,oBAG3E,IAAK,UACD,MAAO,CACHhB,YAAY,EACZ/T,SAAU,CACNM,WAAY,gCACZjyB,oBAAqB,CACjBmzB,eAAgBkP,EAAoBsE,8BACpC1T,YAAaoP,EAAoBuE,6BAIjD,IAAK,qBACD,MAAO,CACHlB,YAAY,EACZ/T,SAAU,CACNM,WAAY,mCAa5B,MAAM,IAAIvnH,GAAU,CAChBjjJ,KAAMiyQ,GAAeyM,gBACrB/3M,QAAS,iDAAgD,GAAA9pD,OAClDy7N,EAAa,yEAE5B,CACO,SAASumC,GAAoBD,EAAY9vJ,GAC5C,MAAO,CACHm7I,aAAc2U,EACdQ,YAAaA,CAACpM,EAASqM,KACnB,MAAMC,EAAU,kBAAHziQ,OAAqBm2P,EAAO,KAAAn2P,OAAe,OAAXwiQ,QAAW,IAAXA,EAAAA,EAAevwJ,EAAQ,YAAAjyG,OAAW+hQ,EAAU,YAAA/hQ,OAAWm2P,GACpG,OAAO,IAAI1mH,GAAWgzH,EAAQ,EAG1C,CACO,SAASC,GAAyBC,GACrC,OAAIA,IAAcrP,GAAsBsP,+BAC7B,CACHxB,YAAY,EACZ/T,SAAU,CAAEM,WAAY,mBAGvBgV,IAAcrP,GAAsBuP,0BAClC,CACHzB,YAAY,EACZ/T,SAAU,CAAEM,WAAY,yBAH3B,CAMT,CACO,SAASsU,GAAgBpoQ,GAC5B,IAAKA,EACD,MAAO,GAEX,OADyBonG,KAAKtqF,MAAM9c,GAAY3U,KAAI49Q,GAAOA,EAAI57L,SAAS03L,IAAmBkE,EAAIt/Q,QAAQo7Q,GAAiB,IAAMkE,GAElI,CACO,SAASC,GAAiBlpQ,GAC7B,IAAKA,EACD,MAAO,CAAC,EACZ,MAAMmpQ,EAAgB,CAAC,EAKvB,OAJAj5Q,OAAOL,QAAQmQ,GAAY/O,SAAQ+2J,IAAkB,IAAhBh5J,EAAKxD,GAAMw8J,EACxCx8J,IACA29Q,EAAc,GAADhjQ,OAAI4+P,IAAe5+P,OAAGnX,IAASxD,EAAK,IAElD29Q,CACX,CACOj7H,eAAek7H,GAAoBhxJ,EAAUwpH,EAAeujC,EAASF,EAAmBruI,EAAQ+kG,EAAmBupC,EAAgB36Q,GACtI,MAAM6zI,EAAwB,OAAP7zI,QAAO,IAAPA,OAAO,EAAPA,EAAS6zI,eAC1BirI,EAAoB,OAAP9+Q,QAAO,IAAPA,OAAO,EAAPA,EAAS++Q,mBAC5B,OAAQ1nC,GACJ,IAAK,UACD,OA3dL1zF,eAAoCpa,GAAoE,IAAnE,kBAAEmxI,EAAiB,eAAEC,EAAc,QAAEC,EAAO,SAAE/sJ,EAAQ,OAAEwe,GAAS9C,EACzG,MAAM,WAAE0I,EAAU,iBAAEC,GAAqB7F,EAUnC2uI,EAAU,CACZC,cAAe,UACfC,mBAXuB,CACvBJ,SAAUjtJ,EACVmxJ,aAActE,GAUdS,QAASP,EACTQ,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUJ,OAAO0e,GAAuB,CAC1B5f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD22B,EACP,CAocmBiE,CAAsB,CACzBvE,oBACAC,iBACAC,UACA/sJ,WACAwe,WAER,IAAK,kBACD,OA5fLsX,eAA2C0C,GAAoE,IAAnE,kBAAEq0H,EAAiB,SAAE7sJ,EAAQ,eAAE8sJ,EAAc,QAAEC,EAAO,OAAEvuI,GAASga,EAChH,MAAM,WAAEpU,EAAU,iBAAEC,GAAqB7F,EACzC4kI,GAA4C,SAAtByJ,GAAsD,QAAtBA,EAA6B9K,GAAwBe,oBAC3G,MASMqK,EAAU,CACZC,cAAe,kBACfC,mBAXuB,CACvBJ,SAAUjtJ,EACVktJ,OAAQmE,GAAWxE,IAUnBS,QAASP,EACTQ,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUJ,OAAO0e,GAAuB,CAC1B5f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD22B,EACP,CAoemBmE,CAA6B,CAChCzE,oBACAC,iBACAC,UACA/sJ,WACAwe,WAER,IAAK,YACD,OA9hBLsX,eAAsCwC,GAAgF,IAA/E,kBAAEu0H,EAAiB,SAAE7sJ,EAAQ,eAAE8sJ,EAAc,QAAEC,EAAO,WAAEkE,EAAU,OAAEzyI,GAAS8Z,EACvH,MAAM,WAAElU,EAAU,iBAAEC,GAAqB7F,EACnCwuI,EAAqB,CACvBC,SAAUjtJ,IAER,QAAEstJ,SAAkBrqH,GAAoB,CAC1C9f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD,CACC+6B,SAAU1E,EACVS,QAASP,EACTyE,mBAAoBP,IAExB1N,GAAYjmK,SAAS,CACjBlsG,KAAM,sBACNgC,MAAOk6Q,IAEX,MAAMH,EAAU,CACZC,cAAe,YACfC,mBAAoBL,EACpBM,UACAC,eAAgBT,EAChBjvC,SAAUx5F,GAEd,OAAO0e,GAAuB,CAAE5f,OAAQqgB,GAAUpf,IAAe+oI,EACrE,CAqgBmBsE,CAAwB,CAC3B5E,oBACAC,iBACAC,UACA/sJ,WACAixJ,aACAzyI,WAER,IAAK,wBACD,OApcLsX,eAAiD9a,GAAwF,IAAvF,kBAAE6xI,EAAiB,eAAEC,EAAc,QAAEC,EAAO,SAAE/sJ,EAAQ,mBAAEiwJ,EAAkB,OAAEzxI,GAASxD,EAC1I,MAAM,WAAEoJ,EAAU,iBAAEC,GAAqB7F,EAWnC2uI,EAAU,CACZC,cAAe,wBACfC,mBAZuB,IACpByD,GAAiBb,GACpBngC,aAAc+8B,EACdI,SAAUjtJ,GAUVutJ,eAAgBT,EAChBQ,QAASP,EACTlvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUJ,OAAO0e,GAAuB,CAC1B5f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD22B,EACP,CA4amBuE,CAAmC,CACtC7E,oBACAC,iBACAC,UACA/sJ,WACAiwJ,mBAAoBjqI,EACpBxH,WAER,IAAK,mBACD,OAAOmzI,GAAiC/E,GAAuB,CAC3D,CACIC,oBACAC,iBACAC,UACA/sJ,WACAwe,SACA+kG,sBAELvjH,EAAUujH,GACjB,IAAK,qBACD,OAhfLztF,eAA8Ctb,GAAoE,IAAnE,kBAAEqyI,EAAiB,eAAEC,EAAc,QAAEC,EAAO,SAAE/sJ,EAAQ,OAAEwe,GAAShE,EACnH,MAAM,WAAE4J,EAAU,iBAAEC,GAAqB7F,EAUnC2uI,EAAU,CACZC,cAAe,qBACfC,mBAXuB,CACvBJ,SAAUjtJ,EACV4xJ,wBAAyB/E,GAUzBS,QAASP,EACTQ,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAXoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAUJ,OAAO0e,GAAuB,CAC1B5f,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW4/F,gBAClD22B,EACP,CAydmB0E,CAAgC,CACnChF,oBACAC,iBACAC,UACA/sJ,WACAwe,WAIZ,MAAM,IAAI2V,GAAU,CAChBjjJ,KAAMiyQ,GAAeyM,gBACrB/3M,QAAS,uDAAF9pD,OACXy7N,EAAa,yEAEjB,CACO,SAAS6nC,GAAWlsI,GACvB,IAAImqI,EAAU,UAGd,MAFY,SAARnqI,IACAmqI,EAAU,sBACPA,CACX,CACO,SAASwC,GAAW1gR,GACvB,MAAa,YAATA,EACO,MACE,uBAATA,EACO,YADX,CAGJ,CACO,SAASq+Q,GAAY34P,GACxB,GAAKA,EAEL,OAAOA,EAAM7jB,IAAI6+Q,IAAY/sP,OAAOrf,QACxC,CACO,SAASgqQ,GAAcvqI,GAC1B,OAAKA,EAEEn2B,KAAKtqF,MAAMygH,GADP,EAEf,CAQO2Q,eAAei8H,KAClB,IAAI57H,EACJ,IACIA,QAAiBN,IACzB,CACI,MAAOllG,GAAQ,CACf,GAAIwlG,GAAYA,EAASC,QAAUD,EAASn2B,SACxC,MAAM,IAAIm0B,GAAU,CAChBjjJ,KAAMmjJ,GACNx8E,QAAS,qCACTqoE,mBAAoB,6CAGhC,CAUO4V,eAAek8H,GAAqB5tI,EAAY6tI,EAAmBhkI,GACtE,IAAKgkI,EACD,OACJ,MAAM7I,EAAehlI,EAAWpzI,MAAM,KAAK,IAAM,GAC3Cs9Q,QAA6BtD,GAAwB5B,GACrDh0H,EAA6B,OAAjB68H,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBC,UAC/B78H,EAAkC,OAAjB48H,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBE,eAC1C,UACU7D,EAAqB5E,mBAAiC,OAAdr0H,QAAc,IAAdA,EAAAA,EAAkB,GAAa,OAATD,QAAS,IAATA,EAAAA,EAAa,GACzF,CACI,MAAOg9H,GAEH,MACR,CACI,MAAMC,EAA6B,CAC/BC,KAAM9S,GAAc1nM,QAAQ4vM,GAAgB4G,EAAqBhF,yBACjEiJ,iBAAkB/S,GAAc1nM,QAAQ4vM,GAAgB4G,EAAqB9E,wBAE3El0H,EAAiBg5H,EAAqBjF,oBAC5C,IAOI,aANMjmH,GAAc,CAAEjgB,OAAQqgB,GAAUpf,IAAe,CACnD6f,YAAahW,EACbukI,iBAAkB1S,KAClBoS,UAA4B,OAAjBD,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBC,UAC9BO,2BAA4BJ,IAEzB,CACHj9H,YACAC,iBACAC,iBAEZ,CACI,MAAO3kG,GAEH,MACR,CACA,CAMOmlG,eAAe67H,GAAiC33Q,EAAMxB,EAAMwnH,EAAUujH,GACzE,IACI,aAAavpO,KAAQxB,EAC7B,CACI,MAAOm4C,GACH,GAAIA,aAAiBwjG,IACF,8BAAfxjG,EAAMz/C,MACNy/C,EAAMknB,QAAQod,SAAS,0BAEvB,aADMsuJ,EAAkBxD,oBAAoB//G,GACrChmH,KAAQxB,GAEnB,MAAMm4C,CACd,CACA,CACO,SAASs9N,GAAwBjuJ,GACpC,MAAM,SAAE1iB,GAAaimK,GACrBjmK,EAAS,CAAElsG,KAAM,eAAgBgC,MAAO4sH,GAC5C,CACO,SAAS0yJ,GAAwB1yJ,GAAU,IAAA2yJ,EAE9C,OAAqB,QAArBA,EADcpP,GAAYC,WACbxjJ,gBAAQ,IAAA2yJ,EAAAA,EAAI3yJ,CAC7B,CCpvBO81B,eAAe88H,GAAmBh1C,GACrC,IAAIA,EAAqB35E,YAoCrB,MAAM,IAAIhkB,GAAa,CACnBpoE,QAAS,iBACT3mE,KAAM,gBACNgvI,mBAAoB,oCAvCU,CAClC,MAAM+N,EAAc+F,GAAU4pF,EAAqB35E,aAC7C4uH,EAA+D,KAAhC5kI,EAAY5zC,QAAQ2jI,KAAO,GAC1D80C,GAAc,IAAItpN,MAAOE,UACzB0jF,EAAaylI,EAA8B,EAC3CA,EAA8BC,EAC9B,EACN,IAAIl9H,EACAb,EACAI,EACAyoF,EAAqBm1C,eACrBh+H,EAAe6oF,EAAqBm1C,cAEpCn1C,EAAqBG,UACrBnoF,EAAU5B,GAAU4pF,EAAqBG,UAErB,OAApBH,QAAoB,IAApBA,GAAAA,EAAsBo1C,oBACtB79H,EAAiByoF,EAAqBo1C,mBAE1C,MAAMzzP,EAAS,CACX0uH,cACA2H,UACAb,eACA3H,aACA+H,iBACAn1B,SAAU49G,EAAqB59G,UAEX,OAApB49G,QAAoB,IAApBA,GAAAA,EAAsBvnF,gBACtB92H,EAAO82H,cAAgBunF,EAAqBvnF,qBAE1CktF,GAAkBJ,UAAU,CAC9B5jN,UAEZ,CASA,CCxCY,MACC0zP,GAA2Bn9H,UACpC,IACI/U,GAAIzjC,SAAS,OAAQ,CACjBvR,MAAO,WACP7jF,WAAY2tI,MACb,OAAQzV,GACnB,CACI,MAAOzvF,GACH,GAAIA,EAAMz/C,OAASkjJ,GACf,MAAM,IAAID,GAAU,CAChBjjJ,KpSGyC,wCoSFzC2mE,QAZa,2DAabqoE,mBAAoB,4JAG5B,MAAMvvF,CACd,GCDOmlG,eAAeo9H,GAAwBhhR,GAAO,IAAA6vJ,EACjD,MAAM,SAAE/hC,EAAQ,SAAEx0B,EAAQ,QAAEr5F,GAAYD,EAClCmkJ,EAAgB,CAClB88H,QAASnzJ,EACTozJ,aAAc,mBAEZlvI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAMpsB,EAAkB,OAAP3lH,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAC1B1J,KAAwBpjJ,EAAU+hJ,GAAwBW,qBAC1DU,KAAwB53K,EAAUu2K,GAAwBU,qBAC1D,IACI,MAAQ2K,cAAeiG,EAAsBtF,oBAAqBuF,EAA0B,qBAAE11C,EAAoB,QAAE0vC,SHqQrHx3H,eAAuC91B,EAAUx0B,EAAUshL,EAAgBtuI,EAAQ+kG,GAAmB,IAAAgwC,EACzGlgI,GAA0B7U,GAC1B,MAAM,WAAE4F,EAAU,iBAAEC,GAAqB7F,EACnC4qI,GAAyB,OAAVhlI,QAAU,IAAVA,OAAU,EAAVA,EAAYpzI,MAAM,KAAK,KAAM,GAC5Cs9Q,QAA6BtD,GAAwB5B,GAWrD+D,EAAU,CACZrvC,SAAU,cACVN,eAZmB,CACnByvC,SAAUjtJ,EACVwuJ,MAAOF,EAAqB5yP,EAAEviB,SAAS,IACvCq6Q,eAAgB,SAUhBjG,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAVoBb,GAAmB,CACvC98G,WACAokB,aACAC,uBASI0pI,oBAAqBjC,EAAqBwB,QAASP,SAAkBtqH,GAAa,CACtFtf,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW2/F,SAClD42B,GACGW,EAA8C,QAAhCyF,EAAsB,OAAnBzH,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBmB,gBAAQ,IAAAsG,EAAAA,EAAIvzJ,EAExD,OADAiuJ,GAAwBH,GACjB6D,GAAiC1C,GAAiC,CACrEzjL,EACAsgL,EACAgB,EACAC,EACAuB,EACA9vI,EACA+kG,GACDuqC,EAAgBvqC,EACvB,CG1S+IkwC,CAAwBzzJ,EAAUx0B,EAAUssB,EAAUosB,EAAYq/F,IACnMuqC,EAAiB4E,GAAwB1yJ,GAQ/C,OANA2jJ,GAAqB,CACjBL,cAAegK,EACfttJ,SAAU8tJ,EACVtkC,cAAe6pC,EACfh9H,kBAEAunF,SACMg1C,GAAmB,CACrB5yJ,SAAU8tJ,KACPlwC,EACHo1C,wBAAyBhB,GAAqB9tI,EAAWE,WAAYw5F,EAAqBo1C,kBAAmBp1C,EAAqB35E,aAClI5N,kBAEJutH,WACMqP,KACC,CACH9D,YAAY,EACZ/T,SAAU,CAAEM,WAAY,UAGzBwT,GAAgB,CACnB1lC,cAAe6pC,EACfvH,oBAAqBwH,GAEjC,CACI,MAAO3iO,GACHizN,KACA1qH,GAAmBvoG,GACnB,MAAM/9C,EAAS69Q,GAAyB9/N,EAAMz/C,MAC9C,GAAI0B,EACA,OAAOA,EACX,MAAM+9C,CACd,CACA,CChDOmlG,eAAe49H,GAAcxhR,GAAO,IAAA6vJ,EAAA4xH,EACvC,MAAM,SAAE3zJ,EAAQ,SAAEx0B,GAAat5F,EACzBgyI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QACvCkS,EAAgB,CAClB88H,QAASnzJ,EACTozJ,aAAc,iBAElB//H,GAA0BnP,GAC1B,MAAM0vI,EAA8B,QAAhBD,EAAGzhR,EAAMC,eAAO,IAAAwhR,OAAA,EAAbA,EAAe7G,eACtC1J,KAAwBpjJ,EAAU+hJ,GAAwBW,qBAC1DU,KAAwB53K,EAAUu2K,GAAwBU,qBAC1D,IACI,MAAQ2K,cAAeiG,EAAsBtF,oBAAqBuF,EAA0B,qBAAE11C,EAAoB,QAAE0vC,SJ2LrHx3H,eAAqC91B,EAAUx0B,EAAUshL,EAAgBtuI,EAAQ+kG,GAAmB,IAAAswC,EACvG,MAAM,WAAEzvI,EAAU,iBAAEC,GAAqB7F,EACnC4qI,GAAyB,OAAVhlI,QAAU,IAAVA,OAAU,EAAVA,EAAYpzI,MAAM,KAAK,KAAM,GAC5Cs9Q,QAA6BtD,GAAwB5B,GAUrD+D,EAAU,CACZrvC,SAAU,gBACVN,eAXmB,CACnByvC,SAAUjtJ,EACVwuJ,MAAOF,EAAqB5yP,EAAEviB,SAAS,KAUvCo0Q,eAAgBT,EAChBjvC,SAAUx5F,EACVs5F,gBAVoBb,GAAmB,CACvC98G,WACAokB,aACAC,sBASEkX,QAAakH,GAAa,CAC5Btf,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAW2/F,SAClD42B,IACKY,oBAAqBjC,EAAqBwB,QAASP,GAAYxxH,EACjEuyH,EAA8C,QAAhC+F,EAAsB,OAAnB/H,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBmB,gBAAQ,IAAA4G,EAAAA,EAAI7zJ,EAExD,OADAiuJ,GAAwBH,GACjB6D,GAAiC1C,GAAiC,CACrEzjL,EACAsgL,EACAgB,EACAC,EACAuB,EACA9vI,EACA+kG,GACDuqC,EAAgBvqC,EACvB,CI/N+IuwC,CAAsB9zJ,EAAUx0B,EAAUooL,EAAgB1vI,EAAYq/F,IACvMuqC,EAAiB4E,GAAwB1yJ,GAQ/C,OANA2jJ,GAAqB,CACjBL,cAAegK,EACfttJ,SAAU8tJ,EACVtkC,cAAe6pC,EACfh9H,kBAEAunF,GACAgmC,WACMgP,GAAmB,CACrB5yJ,SAAU8tJ,KACPlwC,EACHo1C,wBAAyBhB,GAAqB9tI,EAAWE,WAAYw5F,EAAqBo1C,kBAAmBp1C,EAAqB35E,aAClI5N,wBAEE48H,KACC,CACH9D,YAAY,EACZ/T,SAAU,CAAEM,WAAY,UAGzBwT,GAAgB,CACnB1lC,cAAe6pC,EACfvH,oBAAqBwH,GAEjC,CACI,MAAO3iO,GACHizN,KACA1qH,GAAmBvoG,GACnB,MAAM/9C,EAAS69Q,GAAyB9/N,EAAMz/C,MAC9C,GAAI0B,EACA,OAAOA,EACX,MAAM+9C,CACd,CACA,CCrDOmlG,eAAew8F,GAAOpgP,GAAO,IAAAyhR,EAChC,MAAMP,EAA4B,QAAhBO,EAAGzhR,EAAMC,eAAO,IAAAwhR,OAAA,EAAbA,EAAeP,aAEpC,aADMrB,KACEqB,GACJ,IAAK,gBAQL,QACI,OAAOM,GAAcxhR,GAPzB,IAAK,qBACD,OCHL4jJ,eAAsC5jJ,GAAO,IAAA6vJ,EAChD,MAAM,SAAE/hC,EAAQ,SAAEx0B,EAAQ,QAAEr5F,GAAYD,EAClCgyI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QACvCkS,EAAgB,CAClB88H,QAASnzJ,EACTozJ,aAAc,sBAElB//H,GAA0BnP,GAC1B,MAAMpsB,EAAkB,OAAP3lH,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAC1B1J,KAAwBpjJ,EAAU+hJ,GAAwBW,qBAC1DU,KAAwB53K,EAAUu2K,GAAwBU,qBAC1D,IACI,MAAQ2K,cAAe2G,EAAsBhG,oBAAqBiG,EAA0B,qBAAEp2C,EAAoB,QAAE0vC,SAAmBqE,GAAiClE,GAA4B,CAACztJ,EAAUx0B,EAAUssB,EAAUosB,EAAYq/F,IAAoBvjH,EAAUujH,IACvQuqC,EAAiB4E,GAAwB1yJ,GAQ/C,OANA2jJ,GAAqB,CACjBL,cAAegK,EACfttJ,SAAU8tJ,EACVtkC,cAAeuqC,EACf19H,kBAEAunF,SACMg1C,GAAmB,IAClBh1C,EACH59G,SAAU8tJ,EACVkF,wBAAyBhB,GAAqB9tI,EAAWE,WAAYw5F,EAAqBo1C,kBAAmBp1C,EAAqB35E,aAClI5N,kBAEJutH,WACMqP,KACC,CACH9D,YAAY,EACZ/T,SAAU,CAAEM,WAAY,UAGzBwT,GAAgB,CACnB1lC,cAAeuqC,EACfjI,oBAAqBkI,GAEjC,CACI,MAAOrjO,GACHizN,KACA1qH,GAAmBvoG,GACnB,MAAM/9C,EAAS69Q,GAAyB9/N,EAAMz/C,MAC9C,GAAI0B,EACA,OAAOA,EACX,MAAM+9C,CACd,CACA,CD7CmBsjO,CAAuB/hR,GAClC,IAAK,qBACD,OELL4jJ,eAAoC5jJ,GAAO,IAAA6vJ,EAC9C,MAAM7d,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,SAAElkB,EAAQ,SAAEx0B,EAAQ,QAAEr5F,GAAYD,EAClCmkJ,EAAgB,CAClB88H,QAASnzJ,EACTozJ,aAAc,sBAEZt7J,EAAkB,OAAP3lH,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAC1B1J,KAAwBpjJ,EAAU+hJ,GAAwBW,qBAC1DU,IAAuB53K,EAAUu2K,GAAwBc,0BACzD,IACI,MAAQuK,cAAe8G,EAAsBnG,oBAAqBoG,EAA0B,qBAAEv2C,EAAoB,QAAE0vC,SAAmBqE,GAAiCzD,GAAgC,CAACluJ,EAAUlI,EAAUosB,EAAYq/F,IAAoBvjH,EAAUujH,IACjQuqC,EAAiB4E,GAAwB1yJ,GAQ/C,OANA2jJ,GAAqB,CACjBL,cAAegK,EACfttJ,SAAU8tJ,EACVtkC,cAAe0qC,EACf79H,kBAEAunF,GACAgmC,WACMgP,GAAmB,CACrB5yJ,SAAU8tJ,KACPlwC,EACHo1C,wBAAyBhB,GAAqB9tI,EAAWE,WAAYw5F,EAAqBo1C,kBAAmBp1C,EAAqB35E,aAClI5N,wBAEE48H,KACC,CACH9D,YAAY,EACZ/T,SAAU,CAAEM,WAAY,UAGzBwT,GAAgB,CACnB1lC,cAAe0qC,EACfpI,oBAAqBqI,GAEjC,CACI,MAAOxjO,GACHizN,KACA1qH,GAAmBvoG,GACnB,MAAM/9C,EAAS69Q,GAAyB9/N,EAAMz/C,MAC9C,GAAI0B,EACA,OAAOA,EACX,MAAM+9C,CACd,CACA,CF3CmByjO,CAAqBliR,GAChC,IAAK,kBACD,OAAOghR,GAAwBhhR,GAI3C,CG7BA,MAAMmiR,GAAoBv+H,UACtB,MAAM,IAAI3B,GAAU,CAChBjjJ,KAAMqjJ,GACN18E,QAAS,wEACTqoE,mBAAoB,sFACtB,EAoFI,IAACm6H,GAAaga,GAKjB,SAASC,GAAc59M,GAC1B2jM,GAAa3jM,CACjB,CAMO,SAAS69M,KACZla,GAAaga,EACjB,CCrGA,MAAMG,GAA4B,KAwBlC,SAASC,GAASn8Q,EAAKm9G,GACnB,IAAIs2G,EACJ,OAAQvzN,IACCuzN,GACDzzN,KAAOE,GAEXq6F,aAAak5H,GACbA,EAAQz1K,YAAW,KACfy1K,OAAQpxN,CAAS,GAClB86G,EAAM,CAEjB,CAmCA,MAAMi/J,GAA8BD,IAlCpC,SAAkCE,EAAatoQ,EAASE,GACpD,MAAM1Z,EAAQ22D,KAAKC,MACbmrN,EAA8B7gO,aAAY+hG,UAG5C,GAFoBtsF,KAAKC,MAAQ52D,EACjB2hR,GAEZvgO,cAAc2gO,GACdC,IAAqB,GACrBtoQ,EAAO,IAAI4nI,GAAU,CACjBjjJ,KAAMqjJ,GACN18E,QAAS,yCACTqoE,mBAAoB,uGAExBq0I,UAGA,IACI,MAAMO,QAAqBxiC,GAAOqiC,GACO,oBAArCG,EAAa1Z,SAASM,aACtBrvP,EAAQyoQ,GACR7gO,cAAc2gO,GACdC,IAAqB,GACrBN,KAEpB,CACY,MAAO5jO,GACHsD,cAAc2gO,GACdC,IAAqB,GACrBtoQ,EAAOokC,GACP4jO,IAChB,CACA,GACO,IACP,GACuE,KACjEQ,GAA2CN,IA4BjD3+H,eAAuD6+H,EAAatoQ,EAASE,GACzE,IAEIF,QADqBimO,GAAOqiC,IAE5BJ,IACR,CACI,MAAO5jO,GACHpkC,EAAOokC,GACP4jO,IACR,CACA,GAtCmG,KACnG,IACIS,GADAC,IAAoB,EAEjB,SAASC,GAA6Bl1J,GACzCg1J,GAA4Bh1J,CAChC,CAIO,SAASm1J,KACZ,OAAOF,EACX,CACO,SAASJ,GAAqBzhR,IACnB,IAAVA,GACA8hR,QAA6Bv6Q,GAEjCs6Q,GAAoB7hR,CACxB,CACO,SAASgiR,GAAiBn2J,GAC7B,QAASA,EAAOo2J,aACpB,CAmBA,SAASC,GAAmBX,GACxB,OAAO7+H,SACI,IAAIxpI,SAAQ,CAACD,EAASE,KACzBwoQ,GAAyC,CAACJ,EAAatoQ,EAASE,GAAQ,GAGpF,CACY,MAACgpQ,GAA0BD,GC/FhCx/H,eAAe68F,GAAczgP,GAAO,IAAA6vJ,EACvC,MAAM,kBAAE8qH,EAAiB,QAAE16Q,GAAYD,GACjC,SAAE8tH,EAAQ,cAAEwpH,EAAa,cAAE85B,EAAa,cAAEjtH,GAAkBktH,GAAYC,WACxEt/H,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM0vI,EAAwB,OAAPzhR,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAEhC,GADA1J,KAAwByJ,EAAmB9K,GAAwBE,yBAC9DjiJ,IAAawpH,IAAkB85B,EAEhC,MAAM,IAAInvH,GAAU,CAChBjjJ,KAAMiyQ,GAAeyM,gBACrB/3M,QAAS,mQAQTqoE,mBAAoB,oJAG5B,IACI,MAAM,QAAEotI,EAASF,cAAeiG,EAAoB,qBAAEz1C,EAAsBmwC,oBAAqBuF,SAAsCtC,GAAoBhxJ,EAAUwpH,EAAe85B,EAAeuJ,EAAmB3oI,EAAYq/F,GAAmBqwC,EAAgBzhR,GAQrQ,OANAwxQ,GAAqB,CACjBL,cAAegK,EACfttJ,WACAwpH,cAAe6pC,EACfh9H,kBAEAunF,GACAgmC,WACMgP,GAAmB,CACrB5yJ,cACG49G,EACHo1C,wBAAyBhB,GAAqB9tI,EAAWE,WAAYw5F,EAAqBo1C,kBAAmBp1C,EAAqB35E,aAClI5N,wBAEE48H,KACC,CACH9D,YAAY,EACZ/T,SAAU,CAAEM,WAAY,UAGzBwT,GAAgB,CACnB1lC,cAAe6pC,EACfvH,oBAAqBwH,GAEjC,CACI,MAAO3iO,GACHuoG,GAAmBvoG,GACnB,MAAM/9C,EAAS69Q,GAAyB9/N,EAAMz/C,MAC9C,GAAI0B,EACA,OAAOA,EACX,MAAM+9C,CACd,CACA,CCjEOmlG,eAAe0/H,GAActjR,GAAO,IAAA6vJ,EAAA4xH,EACvC,MAAM,SAAE3zJ,GAAa9tH,EACrBkxQ,KAAwBpjJ,EAAU+hJ,GAAwBS,4BAC1D,MAAMt+H,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,iBAAEG,EAAgB,WAAED,GAAeF,EACnC4oI,EAA8B,QAAhB6G,EAAGzhR,EAAMC,eAAO,IAAAwhR,OAAA,EAAbA,EAAe7G,eAChCnvC,EAAkBb,GAAmB,CACvC98G,WACAokB,aACAC,qBAWEolG,SATY5mF,GAAe,CAC7B1f,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAW8/F,gBAClD,CACC++B,SAAUz1J,EACVutJ,eAAgBT,EAChBjvC,SAAU35F,EAAWG,iBACrBs5F,qBAE4B+3C,oBAChC,MAAO,CACHC,iBAAiB,EACjBva,SAAU,CACNc,kBAAmB,mCACnBzyB,oBAAqB,CACjBmzB,eAAmC,OAAnBnzB,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBkzB,eACrCD,YAAgC,OAAnBjzB,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBgzB,YAClC9pL,cAAkC,OAAnB82J,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBozB,gBAIpD,CC3CA,MAEM+Y,GAAuB5vI,IACzB,GAAKA,EAIL,MAN4BA,IAAmBl1I,MAAMC,QAAQi1I,GAMzD6vI,CAAuB7vI,GAChBluI,OAAOL,QAAQuuI,GAAgB/yI,KAAI66H,IAAA,IAAEtvH,EAAGpL,GAAM06H,EAAA,OAAKh2H,OAAO0+C,KAAKpjD,GAAO,EAAE,IAE5E0E,OAAO0+C,KAAKwvF,EAAe,EAEhC8vI,GAAkB,CACpB,sBAAMC,GAAmB,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACrB,MAAMxjR,EAAS8+I,GAAQK,YACjBskI,EAAuB,QAAdL,EAAGpjR,EAAO0wI,YAAI,IAAA0yI,OAAA,EAAXA,EAAa7xI,SACzB,UAAEqB,EAAS,eAAEQ,GAAuC,QAAvBiwI,EAAc,QAAdC,EAAGtjR,EAAO0wI,YAAI,IAAA4yI,OAAA,EAAXA,EAAa/xI,eAAO,IAAA8xI,EAAAA,EAAI,CAAC,EAe/D,MAAO,IACAI,EACHtkC,gBAhB0BvsG,EACxB1tI,OAAOL,QAAQ+tI,GACZzgH,QAAOuzH,IAAA,IAAE1hJ,EAAKuoB,GAAOm5H,EAAA,MAAa,UAAR1hJ,CAAe,IACzCmuB,QAAOyzH,IAAA,IAAEp+I,EAAMhH,GAAMolJ,EAAA,QAAOplJ,CAAK,IACjCH,KAAKqjR,GACsB,UAArBA,EAAc,GACf,eACAA,EAAc,UAEtB37Q,EAQF43O,iBAP2BqjC,GAAoB5vI,GAQ/C+jG,gBAPmC,OAATvkG,QAAS,IAATA,GAAgB,QAAP2wI,EAAT3wI,EAAWzB,aAAK,IAAAoyI,GAAhBA,EAAkBvwI,UACjB,QAD0BwwI,EACnD5wI,EAAUzB,MAAM6B,iBAAS,IAAAwwI,OAAA,EAAzBA,EAA2BnjR,KAAKsvI,GAAaA,EAASppI,WAAW9H,qBACjEsJ,EAOV,EACAk7I,eAAc,GACd0gI,aAAcjkC,GACdkkC,aC5BG1gI,eAAsB5jJ,GAAO,IAAA6vJ,EAAA00H,EAAA9C,EAChC,MAAM,SAAE3zJ,EAAQ,SAAEx0B,EAAQ,QAAEr5F,GAAYD,EAClCgyI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QACvC+H,EAA+D,QAAvCuqI,EAAa,OAAVvyI,QAAU,IAAVA,OAAU,EAAVA,EAAYgI,gCAAwB,IAAAuqI,EAAAA,EAAI,QACnE,eAAE3J,EAAc,eAAE4J,EAAc,WAAErc,GAA4B,QAAhBsZ,EAAGzhR,EAAMC,eAAO,IAAAwhR,EAAAA,EAAI,CAAC,EACzEtgI,GAA0BnP,GAC1Bk/H,KAAwBpjJ,EAAU+hJ,GAAwBa,qBAC1DQ,KAAwB53K,EAAUu2K,GAAwBY,qBAC1D,MAAMgU,EAA6C,mBAAftc,EAA2BA,OAAa1/P,EACtEg6Q,EAAc,CAChB30J,WACA7tH,QAASwkR,GAG8B,wBAAnB,OAApBA,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBvD,gBACtBuB,EAAYnpL,SAAWA,IAEvBmrL,IAAuC,IAAftc,KACxB6a,GAA6Bl1J,GAC7B60J,IAAqB,IAEzB,MAAM,WAAEzwI,EAAU,iBAAEC,GAAqBH,EACnC0yI,QAAqBC,GAAa,CACpC1zI,OAAQqgB,GAAUpf,GAClByX,eAAgBgI,GAAsBjN,GAAWw/F,SAClD,CACCq/B,SAAUz1J,EACV82J,SAAUtrL,EACVu4D,gBAAuB,OAAP5xJ,QAAO,IAAPA,OAAO,EAAPA,EAAS6zI,iBAAkB0d,GAAuB,OAAPvxJ,QAAO,IAAPA,OAAO,EAAPA,EAAS6zI,gBACpEunI,eAAgBT,EAChBiK,eAAgBL,GAAkBhzH,GAAgBgzH,GAClD74C,SAAUx5F,EACVs5F,gBAAiBb,GAAmB,CAChC98G,WACAokB,aACAC,wBAGF,QAAE2yI,EAAO,oBAAEtB,GAAwBkB,EACzC,GAAIxB,GAAiBwB,IAAiBzB,KAElC,OADAb,GAAciB,GAAwBZ,IAC/B,CACHS,kBAAkB,EAClBha,SAAU,CACNY,WAAY,yBAEhB5lH,OAAQ4gI,GAGX,GAAI5B,GAAiBwB,KAAkBzB,KACxC,MAAO,CACHC,kBAAkB,EAClBha,SAAU,CACNY,WAAY,QAEhB5lH,OAAQ4gI,GAGX,IAAK5B,GAAiBwB,IACvBzB,MAC6B,SAA7BjpI,GJ3ED,SAA8ByoI,GACjC,MAAMsC,EAAkBj2I,GAAYlkB,OAAO,iBAAiBg5B,UAAuB,IAAhB,QAAEz7C,GAASyzB,EAC1E,GACS,kBADDzzB,EAAQtO,MACU,CAClB,MAAMp1C,EAAW0jD,EAAQnyF,KACb,OAARyuC,QAAQ,IAARA,GAAAA,EAAUy+N,mBACVp0I,GAAY1jC,SAAS,gBAAiB,CAClCvR,MAAO,eAEXuoL,GAAcgB,GAAmBX,IACjCsC,IAEpB,CACA,IAGUC,EAAY5gO,YAAW,KACzB2gO,IACApC,IAAqB,GACrBhiL,aAAaqkL,GACb3C,IAAiB,GAClBC,GACP,CIsDQ2C,CAAqBxC,QAEpB,IAAKS,GAAiBwB,IACvBzB,MAC6B,SAA7BjpI,EAEA,OADAooI,GJUD,SAA+CK,GAClD,OAAO7+H,SACI,IAAIxpI,SAAQ,CAACD,EAASE,KACzBmoQ,GAA4B,CAACC,EAAatoQ,EAASE,GAAQ,GAGvE,CIhBsB6qQ,CAAsCzC,IAC7C,CACHS,kBAAkB,EAClBha,SAAU,CACNY,WAAY,wBACZvyB,oBAAqB,CACjBmzB,eAAmC,OAAnB8Y,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB/Y,eACrCD,YAAgC,OAAnBgZ,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBjZ,YAClC9pL,cAAkC,OAAnB+iM,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7Y,gBAG5CzmH,OAAQ4gI,GAGhB,MAAO,CACH5B,kBAAkB,EAClBha,SAAU,CACNY,WAAY,kBACZvyB,oBAAqB,CACjBmzB,eAAmC,OAAnB8Y,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB/Y,eACrCD,YAAgC,OAAnBgZ,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBjZ,YAClC9pL,cAAkC,OAAnB+iM,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7Y,gBAG5CzmH,OAAQ4gI,EAEhB,ED/DIK,oBAAqB1kC,GACrB2kC,oBE/BGxhI,eAA6B5jJ,GAAO,IAAA6vJ,EACvC,MAAM,SAAE/hC,EAAQ,iBAAEu3J,EAAgB,QAAEplR,GAAYD,EAC1CgyI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,WAAEE,EAAU,iBAAEC,GAAqBH,EACnC4oI,EAAwB,OAAP36Q,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAChC1J,KAAwBpjJ,EAAU+hJ,GAAwBK,4BAC1DgB,KAAwBmU,EAAkBxV,GAAwBI,wBAClE,MAAMxkC,EAAkBb,GAAmB,CACvC98G,WACAokB,aACAC,qBAaJ,aAXMmzI,GAAoB,CACtBr0I,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAWy/F,gBAClD,CACCo/B,SAAUz1J,EACVy3J,iBAAkBF,EAClBhK,eAAgBT,EAChB4K,mBAA2B,OAAPvlR,QAAO,IAAPA,OAAO,EAAPA,EAASwlR,mBAC7B95C,SAAU35F,EAAWG,iBACrBs5F,oBAEG,IAAIrxN,SAAQ,CAACD,EAASE,KACzB,IACI,MAAMqrQ,EAAY,CACdxC,kBAAkB,EAClBha,SAAU,CACNY,WAAY,SAGpB,IAAKmZ,OL8BV,SAA4Cn1J,GAC/C,OAAOg1J,KAA8Bh1J,CACzC,CK/BiB63J,CAAmC73J,GAEpC,YADA3zG,EAAQurQ,GAGZ,MAAME,EAAe92I,GAAYlkB,OAAO,iBAAiBgR,IAAiB,IAAhB,QAAEzzB,GAASyzB,EACjE,GACS,eADDzzB,EAAQtO,MAER1/E,EAAQ,CACJ+oQ,kBAAkB,EAClBha,SAAU,CACNY,WAAY,2BAGpB6Y,IAAqB,GACrBiD,GACxB,IAEY92I,GAAY1jC,SAAS,gBAAiB,CAClCvR,MAAO,gBACP7jF,KAAM0vQ,GAEtB,CACQ,MAAOjnO,GACHpkC,EAAOokC,EACnB,IAEA,EF3BIonO,2BGlCGjiI,eAAoC5jJ,GAAO,IAAA6vJ,EAAA4xH,EAC9C,MAAMzvI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,iBAAEG,EAAgB,WAAED,GAAeF,GACnC,SAAElkB,EAAQ,YAAEg4J,GAAgB9lR,EAClCkxQ,KAAwBpjJ,EAAU+hJ,GAAwBG,mCAC1DkB,KAAwB4U,EAAajW,GAAwBO,sCAC7D,MAAMt5K,EAAO92F,EAAMqlR,iBACnBnU,KAAwBp6K,EAAM+4K,GAAwBM,2CACtD,MAAMvqJ,EAAwB,QAAhB67J,EAAGzhR,EAAMC,eAAO,IAAAwhR,OAAA,EAAbA,EAAe7G,eAC1BnvC,EAAkBb,GAAmB,CACvC98G,WACAokB,aACAC,2BAEEye,GAAsB,CACxB3f,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAW+/F,uBAClD,CACC8+B,SAAUz1J,EACVy3J,iBAAkBzuL,EAClB8tL,SAAUkB,EACVzK,eAAgBz1J,EAChB+lH,SAAU35F,EAAWG,iBACrBs5F,mBAER,EHSIs6C,qBAAsBzC,GAEtB,0BAAM0C,CAAqBxzD,EAAU26C,GAAa,EAClD,0BAAM8Y,CAAqBzzD,EAAU26C,EAAWC,GAAkB,IAAA8Y,EAC9D,MAAM,SAAE5sL,GAAak5H,GACbl5H,SAAU6sL,GAAqBhZ,EAKvC,IAAKgZ,IAAqB/Y,EACtB,OAAO,KACX,MAAMgZ,EAAsB,GACtBC,EAA4C,QAA7BH,EAAG9Y,EAAiBr6H,iBAAS,IAAAmzI,EAAAA,EAzDd,EAyEpC,OAfI5sL,EAASz4F,OAASwlR,GAClBD,EAAoBtiR,KAAK,+BAAD+X,OAAgCwqQ,EAAe,gBAEvEjZ,EAAiB76H,mBAAqB,QAAQ7qI,KAAK4xF,IACnD8sL,EAAoBtiR,KAAK,yCACzBspQ,EAAiBz6H,mBAAqB,QAAQjrI,KAAK4xF,IACnD8sL,EAAoBtiR,KAAK,yCACzBspQ,EAAiB36H,iBAAmB,QAAQ/qI,KAAK4xF,IACjD8sL,EAAoBtiR,KAAK,8BAEzBspQ,EAAiBv6H,2B3C5CJv5C,IAAamgJ,GAA2Bn6O,MAAMwgG,GAASxG,EAASvW,SAAS+c,K2C4CxCwmL,CAAgBhtL,IAC9D8sL,EAAoBtiR,KAAK,yCAIS,IAA/BsiR,EAAoBvlR,OACrB,CAAEy4F,SAAU8sL,GACZ,IACV,EACA,6BAAMG,CAAwB/zD,EAAU26C,GACpC,MAAM,SAAE7zK,EAAQ,iBAAEw/I,GAAqBtmB,GAC/BsmB,iBAAkB0tC,EAA0BltL,SAAU6sL,GAAsBhZ,EACpF,OAAK7zK,GAAaw/I,GAIRx/I,GAAYw/I,IAClBx/I,IAAaw/I,IACX0tC,GAA4BL,IACjB,OAAR7sL,QAAQ,IAARA,OAAQ,EAARA,EAAUz4F,SAAU,IAAqB,OAAhBi4O,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBj4O,SAAU,GAInD,CACHi4O,iBAAkB,kCARrB,EAFM,IAaf,EACA,+BAAM2tC,CAA0Bj0D,EAAU26C,GAAa,GIxFpDvpH,eAAe8iI,GAAiB1mR,GAAO,IAAA6vJ,EAAA4xH,EAC1C,MAAM,SAAE3zJ,GAAa9tH,EACrBkxQ,KAAwBpjJ,EAAU+hJ,GAAwBa,qBAC1D,MAAM1+H,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,iBAAEG,EAAgB,WAAED,GAAeF,EACnC4oI,EAA8B,QAAhB6G,EAAGzhR,EAAMC,eAAO,IAAAwhR,OAAA,EAAbA,EAAe7G,eAChCnvC,EAAkBb,GAAmB,CACvC98G,WACAokB,aACAC,sBAEE,oBAAEqxI,SAA8B1yH,GAAuB,CACzD7f,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAW0/F,mBAClD,CACCm/B,SAAUz1J,EACVutJ,eAAgBT,EAChBjvC,SAAU35F,EAAWG,iBACrBs5F,qBAEE,eAAEg/B,EAAc,cAAEE,EAAa,YAAEJ,GAAgB,IAChDiZ,GAEP,MAAO,CACHhZ,YAAaD,EACbG,eAAgBD,EAChBhqL,cAAekqL,QAETliQ,EAEd,CC7Ce,IAAIojI,GAAc,aACFznI,MAuBnB,MAACuiR,GAAoB,CAC7BC,iBAAkB,CACdjhN,QAASqrM,GAAiB6V,YAC1B7zM,IAAK,6DAET8zM,SAAU,CACNnhN,QAASqrM,GAAiB+V,YAC1B/zM,IAAK,+nBAWTg0M,kBAAmB,CACfrhN,QAASqrM,GAAiB+V,YAC1B/zM,IAAK,soBAWTi0M,cAAe,CACXthN,QAASqrM,GAAiBkW,gBAG9BC,gBAAiB,CACbxhN,QAASqrM,GAAiBoW,kBAE9BC,cAAe,CACX1hN,QAASqrM,GAAiBsW,gBAE9BC,UAAW,CACP5hN,QAASqrM,GAAiBwW,YAE9BC,YAAa,CACT9hN,QAASqrM,GAAiB0W,cAC1B10M,IAAK,kEAET20M,MAAO,CACHhiN,QAASqrM,GAAiB4W,QAE9BC,WAAY,CACRliN,QAASqrM,GAAiB8W,aAE9BC,uBAAwB,CACpBpiN,QAASqrM,GAAiBgX,iBAE9BC,cAAe,CACXtiN,QAASqrM,GAAiBkX,iBAE9BC,aAAc,CACVxiN,QAASqrM,GAAiBoX,eAE9BC,aAAc,CACV1iN,QAASqrM,GAAiBsX,eAE9BC,gBAAiB,CACb5iN,QAASqrM,GAAiBwX,kBAE9BhoK,QAAS,CACL76C,QAASqrM,GAAiB+V,cC9FrB0B,GAAmBA,CAAC9iN,EAASqoE,IAAuB,IAAIiU,GAAU,CAC3Et8E,QAAgB,OAAPA,QAAO,IAAPA,EAAAA,EAAW,kDACpB3mE,KAAMiyQ,GAAeyX,iBACrB16I,mBAAsC,OAAlBA,QAAkB,IAAlBA,EAAAA,EAAsB24I,GAAkBC,iBAAiB5zM,MCNvE,IAAC21M,IACX,SAAWA,GACPA,EAAyB,SAAI,WAC7BA,EAAkC,kBAAI,oBACtCA,EAA8B,cAAI,gBAClCA,EAAgC,gBAAI,kBACpCA,EAA8B,cAAI,gBAClCA,EAA0B,UAAI,YAC9BA,EAA4B,YAAI,cAChCA,EAAsB,MAAI,QAC1BA,EAA2B,WAAI,aAC/BA,EAAuC,uBAAI,yBAC3CA,EAA8B,cAAI,gBAClCA,EAAwB,QAAI,UAC5BA,EAA6B,aAAI,eACjCA,EAA6B,aAAI,eACjCA,EAAgC,gBAAI,kBACpCA,EAAiC,iBAAI,kBACxC,CAjBD,CAiBGA,KAAmBA,GAAiB,CAAC,ICf5B,MAGCC,GAAgBhlI,UACzB,MAAMilI,QAAmBp5C,GAAWhB,iBAE9Bq6C,EAAiBn5K,IAAUk5K,EAAaA,OAAapgR,EAC3D,IAAKqgR,EACD,MAAM,IAAI7mI,GAAU,CAChBjjJ,KAAM2pR,GAAeD,iBACrB/iN,QAAmB,OAAVgqC,EAVe,0CACG,gDAU3Bq+B,mBAA8B,OAAVr+B,OAAiBlnG,EATL,+CAYxC,OAAOqgR,CAAc,ECTZC,GAAoBnlI,UAA8G,IAAvG,WAAElZ,EAAU,eAAEif,EAAc,SAAEwyH,EAAQ,YAAE6M,EAAW,aAAEx4O,EAAY,OAAEs/F,EAAM,qBAAEy/F,GAAuB3zG,EACtI,MAAMqtJ,EAAY,IAAI39H,GAAW5gB,GAC3BjsF,EAAQwqO,EAAUC,aAAa5/Q,IAAI,SACnC6/Q,EAAeF,EAAUC,aAAa5/Q,IAAI,qBAChD,GAAIm1C,EACA,MAAMgqO,GAA6B,OAAZU,QAAY,IAAZA,EAAAA,EAAgB1qO,GAE3C,MAAqB,SAAjBjO,EACO44O,GAAe,CAClB1+I,aACAif,iBACAwyH,WACA6M,cACAl5I,SACAy/F,yBAGD85C,GAAmB,CACtB3+I,aACAs+I,cACAz5C,wBACF,EAEA65C,GAAiBxlI,UAAgG,IAAApa,EAAA,IAAzF,WAAEkB,EAAU,eAAEif,EAAc,SAAEwyH,EAAQ,YAAE6M,EAAW,OAAEl5I,EAAM,qBAAEy/F,GAAuBnpF,EAG9G,MAAM/jH,EAAM,IAAIipH,GAAW5gB,GACrB5zC,EAAOz0D,EAAI6mP,aAAa5/Q,IAAI,QAC5BqmG,EAAQttE,EAAI6mP,aAAa5/Q,IAAI,SAKnC,IAAKwtF,IAAS6Y,EACV,MAAM84K,GAAiB,8BAG3B,MAAMK,QAAuBF,GAAcj5K,GACrC25K,EAAqB,WAAax5I,EAAS,gBAO3Cy5I,QAAqB95C,GAAWd,WAChC66C,EAAiB,CACnBC,WAAY,qBACZ3yL,OACA4yL,UAAWvN,EACXwN,aAAcX,KACVO,EAAe,CAAEK,cAAeL,GAAiB,CAAC,GAEpD50Q,EAAO/O,OAAOL,QAAQikR,GACvBzoR,KAAIulJ,IAAA,IAAEzjE,EAAGv/E,GAAEgjJ,EAAA,SAAAzqI,OAAQk2B,mBAAmB8wC,GAAE,KAAAhnE,OAAIk2B,mBAAmBzuC,GAAE,IACjEtC,KAAK,MACJ,aAAE6oR,EAAcC,cAAejnI,EAAY,SAAEknI,EAAQ,MAAEtrO,EAAOurO,cAAeb,EAAY,WAAEc,EAAU,WAAEC,eAA6B13O,MAAM82O,EAAoB,CAChKrgI,OAAQ,OACRp1B,QAAS,CACL,eAAgB,oCAChB,CAACuX,IAAoBue,GAEzBh1I,UACAmyI,OACJ,GAAIroG,EAEA,MAAMgqO,GAA6B,OAAZU,QAAY,IAAZA,EAAAA,EAAgB1qO,GAE3C,MAAMqvE,EAAoE,QAA5D0b,EAAIqgJ,GAAgB/nI,GAAU+nI,GAAc1hL,QAAQ2lB,gBAAQ,IAAA0b,EAAAA,EAAK,WAS/E,aARMk3I,GAAmB,CACrB5yJ,WACAikC,YAAa83H,EACbh+C,QAASk+C,EACTlJ,aAAch+H,EACdsnI,UAAWF,EACXG,UAAWF,IAERG,GAAa,CAChBrB,cACAr5K,MAAOm5K,EACPv5C,wBACF,EAEA85C,GAAqBzlI,UAA8D,IAAA0mI,EAAArgJ,EAAA,IAAvD,WAAES,EAAU,YAAEs+I,EAAW,qBAAEz5C,GAAuBjnG,EAEhF,MAAMjmG,EAAM,IAAIipH,GAAW5gB,IACrB,SAAEq/I,EAAQ,aAAEF,EAAY,MAAEl6K,EAAK,WAAEs6K,EAAU,WAAEC,EAAU,kBAAEK,EAAiB,MAAE9rO,IAAoB,QAAT6rO,EAACjoP,EAAIo5F,YAAI,IAAA6uJ,EAAAA,EAAI,KACrGl3P,UAAU,GACVt0B,MAAM,KACNiC,KAAIypR,GAAYA,EAAS1rR,MAAM,OAC/BsC,QAAO,CAACqpR,EAAK3hJ,KAAA,IAAGjmD,EAAGv/E,GAAEwlI,EAAA,MAAM,IAAK2hJ,EAAO,CAAC5nM,GAAIv/E,EAAG,GAAG,CACnDymR,cAAUthR,EACVohR,kBAAcphR,EACdknG,WAAOlnG,EACPwhR,gBAAYxhR,EACZyhR,gBAAYzhR,EACZ8hR,uBAAmB9hR,EACnBg2C,WAAOh2C,IAEX,GAAIg2C,EACA,MAAMgqO,GAAkC,OAAjB8B,QAAiB,IAAjBA,EAAAA,EAAqB9rO,GAEhD,IAAKorO,EAED,MAAMpB,GAAiB,6CAE3B,MAAMK,QAAuBF,GAAcj5K,GACrCme,EAAoE,QAA5Dmc,EAAI4/I,GAAgB/nI,GAAU+nI,GAAc1hL,QAAQ2lB,gBAAQ,IAAAmc,EAAAA,EAAK,WAQ/E,aAPMy2I,GAAmB,CACrB5yJ,WACAikC,YAAa83H,EACbh+C,QAASk+C,EACTI,UAAWF,EACXG,UAAWF,IAERG,GAAa,CAChBrB,cACAr5K,MAAOm5K,EACPv5C,wBACF,EAEA86C,GAAezmI,UAAyD,IAAlD,YAAEolI,EAAW,MAAEr5K,EAAK,qBAAE4/H,GAAuBhyE,ECjIlE,IAAuBztI,QDkIpB2/M,GAAWjB,uBACXiB,GAAWD,kBAAiB,EAAMD,GAIxCI,KACI+6C,GAAc/6K,IACdk/B,GAAIzjC,SAAS,OAAQ,CACjBvR,MAAO,mBACP7jF,MC3IkB8Z,ED2IE66P,GAAeh7K,IC1I1B7/E,EAAI3oB,MAAM,UAAY,IACvBpG,KAAI++F,GAAQ/4F,OAAOoX,aAAagN,SAAS20E,EAAM,OAAM9+F,KAAK,MD0InE,OAAQktI,IAEfW,GAAIzjC,SAAS,OAAQ,CAAEvR,MAAO,sBAAwB,OAAQq0C,UACxD6yI,KACN6J,GAAa5B,EAAY,EAEvB0B,GAAiB/6K,GACZ,IAAIjoG,KAAKioG,GAEdg7K,GAAkBh7K,GACbA,EAAM7wG,MAAM,KAAK0wB,OAAO,GAAGxuB,KAAK,KAErC4pR,GAAgB5B,IACI,qBAAXv9Q,QAAoD,qBAAnBA,OAAO6wH,SAC/C7wH,OAAO6wH,QAAQO,aAAapxH,OAAO6wH,QAAQ3sB,MAAO,GAAIq5K,EAC9D,EEzJO,SAASt5I,GAAem7I,GAAW,IAAAC,EAAAC,EACtC,MAAMC,EAAuE,QAA3CF,EAAY,OAATD,QAAS,IAATA,OAAS,EAATA,EAAWhuQ,KAAKouQ,WAAwB,IAAAH,EAAAA,EAChE,OAATD,QAAS,IAATA,OAAS,EAATA,EAAWhuQ,KAAKquQ,IACdC,EAAyD,QAA3BJ,EAAY,OAATF,QAAS,IAATA,OAAS,EAATA,EAAWhuQ,KAAKuuQ,WAAQ,IAAAL,EAAAA,EAAa,OAATF,QAAS,IAATA,OAAS,EAATA,EAAWhuQ,KAAKwuQ,IACnF,GAAIL,EACA,OAAOA,EAEN,GAAIG,EACL,MAAM5oI,GAEV,MAAMD,EACV,CAEA,MAAM2oI,GAA2BK,IAAQ,IAAA1vJ,EAAA,OAAK0vJ,EAASxsJ,WAAW/3H,OAAwD,QAAlD60H,EAACnwH,OAAO63C,SAASq5E,OAASlxH,OAAO63C,SAASk4E,gBAAQ,IAAAI,EAAAA,EAAI,KAAK,EAE7HsvJ,GAAmBI,GAAaA,EAASvoM,SAASh8E,OAAO0E,OAAO63C,SAASL,WACzEooO,GAAUC,GAAaA,EAASxsJ,WAAW,WAC3CssJ,GAAWE,GAAaA,EAASxsJ,WAAW,YCfrCysJ,GAAgB3nI,UACzB+rF,WACMF,GAAWlB,yBACjB1/F,GAAIzjC,SAAS,OAAQ,CAAEvR,MAAO,6BAA8B7jF,KAAM,CAAEyoC,UAAW,OAAQyvF,GAAe,ECD7Fs9I,GAA2B5nI,UACpC,IACIzC,GAA0BnP,GAC1BsP,GAAkBtP,GAClBy9F,GAAW5C,cAAc76F,EACjC,CACI,MAAO1lI,IAIH,MACR,CAEI,SAAYmjO,GAAWV,oBAGvB,IACI,MAAMrkG,EAAaj/H,OAAO63C,SAASP,MAC7B,UAAEuwF,EAAS,iBAAEnB,GAAqBH,GAClC,OAAElC,EAAM,eAAEE,EAAc,aAAEx/F,GAAiB8iG,EAAUzB,MACrDm3I,EAAct5I,GAAeM,SAC7B+4I,GAAkB,CACpBr+I,aACAyxI,SAAUhqI,EACVrC,SACAk5I,cACAx4O,eACAm5G,eAAgBgI,GAAsBjN,GAAWggG,qBAE7D,CACI,MAAOx2K,SACGq9M,GAAcr9M,EAC5B,GCjCA47D,MAGQ0V,GAAQtQ,IAAoBs8I,ICRxB,MAACC,GAAqC,CAC9CC,OAAQ,SACRC,SAAU,WACVC,OAAQ,kBACRC,MAAO,mBCJEC,GAAkBloI,UAAe,IAAAmoI,EAC/B,QAAPA,EAACtgR,cAAM,IAAAsgR,GAANA,EAAQzoO,WAIb73C,OAAO63C,SAASP,KAAO1gB,EAAIhjC,QAAQ,UAAW,YAAW,ECHvD2sR,GAAwB,iEAYjBC,GAAwBprR,IACjC,MAAMqrR,EAAc,IAAI7yQ,WAAWxY,GACnCq/I,KAAYy2H,gBAAgBuV,GAC5B,IACIC,EADAjrR,EAAQ,GAEZ,IAAK,MAAMu5E,KAAQyxM,EACfhrR,GAAS8qR,GAAsBvsR,OAAOg7E,EAAOuxM,IAEjD,MAAO,CACH9qR,QACA+nJ,OAAQ,OACRmjI,gBAAeA,IACPD,IAGJA,EAKZ,SAA+B5C,GAC3B,MAAM5Q,EAAgB,IAAI95H,GAC1B85H,EAAcr7H,OAAOisI,GACrB,MAAM4C,GAGiBE,EAHiB/e,GAAc1nM,QAAQ+yM,EAAc35H,aAAc,CAAEuuH,SAAS,IAI9F8e,EAAchtR,QAAQ,KAAM,KADvC,IAA2BgtR,EAFvB,OAAOF,CACX,CAV4BG,CAAsBprR,GAC/BirR,GAEd,EChCO,MCCCI,GAAgBA,IDDQ1rR,KACjC,MAAM2rR,EAAgB,iEACtB,IAAI9rR,EAAS,GACb,IAAK,IAAI6V,EAAI,EAAGA,EAAI1V,EAAQ0V,IACxB7V,GAAU8rR,EAAc/sR,OAAO0d,KAAKs9B,MAAsB+xO,GAAhBrvQ,KAAK4hF,WAEnD,OAAOr+F,CAAM,ECJN+rR,CAAqB,ICezB7oI,eAAe8oI,GAAmB1sR,GAAO,IAAA6vJ,EAAA88H,EAAAlL,EAC5C,MAAMzvI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1BsP,GAAkBtP,GAClBy9F,GAAW5C,cAAc76F,SACnB6tI,KACN,IAAIxvI,EAAW,UAOf,MAN+B,kBAAf,OAALrwI,QAAK,IAALA,OAAK,EAALA,EAAOqwI,UACdA,EAAWo7I,GAAmCzrR,EAAMqwI,UAE1C,OAALrwI,QAAK,IAALA,GAAe,QAAV2sR,EAAL3sR,EAAOqwI,gBAAQ,IAAAs8I,GAAfA,EAAiBC,SACtBv8I,EAAWrwI,EAAMqwI,SAASu8I,QAEvBrpI,GAAY,CACfspI,YAAa76I,EAAWsB,UAAUzB,MAClCsqI,SAAUnqI,EAAWG,iBACrB9B,WACA8e,YAAkB,OAALnvJ,QAAK,IAALA,OAAK,EAALA,EAAOmvJ,YACpBogF,qBAA2B,OAALvvO,QAAK,IAALA,GAAc,QAATyhR,EAALzhR,EAAOC,eAAO,IAAAwhR,OAAA,EAAdA,EAAgBlyC,sBAE9C,CACA,MAAMhsF,GAAcK,UAAmF,IAAAkpI,EAAA,IAA5E,YAAED,EAAW,SAAEx8I,EAAQ,SAAE8rI,EAAQ,YAAEhtH,EAAW,qBAAEogF,GAAuB3zG,EAC9F,MAAM,OAAEkU,EAAM,eAAEE,EAAc,aAAEx/F,EAAY,OAAE0/F,GAAW28I,EACnDE,EAAcR,KAOd58K,EAAQw/C,EAAW,GAAAtzI,OAChBkxQ,EAAW,KAAAlxQ,OAAkBszI,EC9CjCrwJ,MAAM,IACNiC,KAAI++F,GAAQA,EAAK3mF,WAAW,GAAGlS,SAAS,IAAI+lR,SAAS,EAAG,OACxDhsR,KAAK,KD6CJ+rR,EACN,MAAM,MAAE7rR,EAAK,OAAE+nJ,EAAM,gBAAEmjI,GAAoBH,GAAqB,KAC1DjD,EAAct5I,GAAem9I,EAAY78I,gBAC3ClG,MACA2lG,GAAWT,oBAAmB,GAClCS,GAAWf,gBAAgB/+H,GAC3B8/H,GAAWb,UAAU1tO,GACrB,MAAM4jD,EAAcl/C,OAAOL,QAAQ,CAC/BokR,aAAcX,EACdv1I,cAAejjG,EACfk5O,UAAWvN,EACX8Q,kBAAmB58I,EACnBN,MAAOG,EAAOlvI,KAAK,KACnB2uG,WACqB,SAAjBn/D,GAA2B,CAC3B08O,eAAgBd,IAChBe,sBAAuBlkI,KAG1BloJ,KAAIqlJ,IAAA,IAAEvjE,EAAGv/E,GAAE8iJ,EAAA,SAAAvqI,OAAQk2B,mBAAmB8wC,GAAE,KAAAhnE,OAAIk2B,mBAAmBzuC,GAAE,IACjEtC,KAAK,KAEJosR,EAAW,WAAHvxQ,OAAci0H,EAAM,sBAAAj0H,OAAqBipC,GErEZuoO,QFyEZ59C,GEhE/BhkO,OAAOm5C,iBAAiB,YARxBg/F,eAAe0pI,EAAsBzzL,GAEjC,GADkBA,EAAM0zL,iBACAF,EAAMt+C,oBAAsB,CAChD,MAAMtwL,EAAQgqO,GAAiB,oCACzB8C,GAAc9sO,EAChC,CACQhzC,OAAOg/E,oBAAoB,WAAY6iM,EAC/C,IFmEI,MAAM,KAAEpuR,EAAI,MAAEu/C,EAAK,IAAEpc,GAA8E,QAAzEyqP,QAAUhB,GAAgBsB,UAA+C,IAAAN,EAAAA,EAC/F,CAAC,EACL,IACI,GAAa,UAAT5tR,EACA,MAAMupR,GAAiB1hR,OAAO03C,IAErB,YAATv/C,GAAsBmjC,SAChB0mP,GAAkB,CACpBr+I,WAAYroG,EACZ85O,WACArsI,SACAk5I,cACAx4O,eACAm5G,eAAgBgI,GAAsBjN,GAAWggG,oBACjDnV,wBAGhB,CACI,MAAOrhK,GAGH,YAFMq9M,GAAcr9M,GAEdA,CACd,GGrGMs/M,GAA2BvrO,IAAM,CACnC3I,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,qBACLgoN,OAAQ,CAAE72M,UACV0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,aCGxCwrO,GAAuB,CACzB30B,OAAQ,CACJ,CACI59H,KAAM,qBACN80H,QAAS,oBACT/tM,OAAQ,oCAEZ,CACIi5E,KAAM,qCACN80H,QAAS,CAAC,uBAAwB,qBAClC/tM,OAAQ,oCAEZ,CACIi5E,KAAM,gCACN80H,QAAS,oBACT/tM,OAAQ,8BAEZ,CACIi5E,KAAM,gCACN80H,QAAS,oBACT/tM,OAAQ,iCAEZ,CACI+tM,QAAS,CACL,mBACA,uBACA,oBACA,qBAEJ/tM,OAAQ,sBAGhB0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,SAE5CyrO,GAAoC,CACtC50B,OAAQ,CACJ,CACI59H,KAAM,wBACN80H,QAAS,CACL,mCACA,+BAEJ/tM,OAAQ,yBAEZ,CACI+tM,QAAS,kCACT/tM,OAAQ,0BAGhB0oC,QAAS,CACLqlK,QAAS,kCACT/tM,OAAQ,0BCnDhB,MAAM0rO,GAA8B,CAChC70B,OAAQ,CACJ,CAAE9I,QAAS,yBAA0B/tM,OAAQ,0BAEjD0oC,QAAS,CAAEqlK,QAAS,CAAC,iBAAkB,gBAErC49B,GAA2B,CAC7B90B,OAAQ,CACJ,CACI59H,KAAM,qBACN80H,QAAS,oBACT/tM,OAAQ,oCAEZ,CACIi5E,KAAM,qCACN80H,QAAS,oBACT/tM,OAAQ,yBAEZ,CACIi5E,KAAM,gCACN80H,QAAS,oBACT/tM,OAAQ,8BAEZ,CACIi5E,KAAM,gCACN80H,QAAS,oBACT/tM,OAAQ,iCAEZ,CACI+tM,QAAS,CACL,oBACA,mBACA,uBACA,qBAEJ/tM,OAAQ,0BAGhB0oC,QAAS,CACLqlK,QAAS,iBACT/tM,OAAQ,0BAGVyrO,GAAoC,CACtC50B,OAAQ,CACJ,CACI59H,KAAM,wBACN80H,QAAS,CACL,mCACA,+BAEJ/tM,OAAQ,yBAEZ,CACI+tM,QAAS,kCACT/tM,OAAQ,0BAGhB0oC,QAAS,CACLqlK,QAAS,kCACT/tM,OAAQ,0BCjET,SAASs6F,KACZ,OAAOiD,GAAQpO,KAAKmL,kBACxB,CCAY,MCDCsxI,GAAqBjqI,MAAOxC,EAAeisI,KACpD,MAAM,cAAE/9C,SAAwB+9C,EAAMn+C,kBAItC,QDJgCtrF,iBAC1BypI,EAAM7+C,iBACZ6C,GAAkB3D,oBACZnxF,KACN1N,GAAIzjC,SAAS,OAAQ,CAAEvR,MAAO,aAAe,OAAQq0C,GAAe,ECD9D4/I,CAAqBT,GACvB/9C,EAEA,OCN4B1rF,eAAO5R,GACvCsP,GAAkBtP,GAClB,MAAM,UAAEsB,EAAS,iBAAEnB,GAAqBH,GAClC,OAAElC,EAAM,gBAAEG,GAAoBqD,EAAUzB,MACxCk8I,EAAar+I,GAAeO,GAC5B+9I,EAAsB,WAAHnyQ,OAAci0H,EAAM,YAAAj0H,OAAWjW,OAAOL,QAAQ,CACnEmkR,UAAWv3I,EACX87I,WAAYl8O,mBAAmBg8O,KAE9BhtR,KAAI66H,IAAA,IAAE/4C,EAAGv/E,GAAEs4H,EAAA,SAAA//G,OAAQgnE,EAAC,KAAAhnE,OAAIvY,EAAC,IACzBtC,KAAK,MACV,OAAO8qR,GAAgBkC,EAC3B,CDNeE,CAAqB9sI,EACpC,EECMjkG,GAAS,IAAI0uF,GAAc,QAO1B+X,eAAesO,GAAQlyJ,GAAO,IAAA6vJ,EACjC,MAAMzO,EAAwC,QAA3ByO,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAQhD,IAAIgI,EAPJkH,GAA0BC,GACjB,OAALphJ,QAAK,IAALA,GAAAA,EAAOqmE,aAmDfu9E,eAA6BxC,GACzB,IACI,MAAMgzF,QAAmB/C,GAAkBjB,gBAAgBtD,aAC3DtqF,GAAiB4xF,SACX+5C,GAAoB,CACtBl9I,OAAQqgB,GAAUlQ,EAAclP,YAChCyX,eAAgBgI,GAAsBjN,GAAW6/F,UAClD,CACCxyF,YAAaqiF,EAAWr4F,YAAY90I,YAEhD,CACI,MAAOinE,GAEH/wB,GAAO+G,MAAM,kEACrB,CACA,CAjEcktG,CAAchQ,SA+B5BwC,eAA6BxC,GACzB,IACI,MAAMgzF,QAAmB/C,GAAkBjB,gBAAgBtD,aAC3DnqF,GAAiCyxF,GAC7Bg6C,GAAmBh6C,EAAWr4F,oBACxByU,GAAY,CACdvf,OAAQqgB,GAAUlQ,EAAclP,YAChCyX,eAAgBgI,GAAsBjN,GAAW6/F,UAClD,CACC5Y,SAAUvqF,EAAcjP,iBACxBk8I,MAAOj6C,EAAWvxF,cAGlC,CACI,MAAO30E,GAEH/wB,GAAO+G,MAAM,kEACrB,CACA,CA9CcoqO,CAAcltI,GAGxB,IACIE,GAAkBF,GAClBnH,GAAiB,CACzB,CACI,MAAO/rE,GACH+rE,GAAiB,CACzB,CACI,GAAIA,EAAgB,KAAAs0I,EAChB,MAAM9+C,EAAa,IAAInB,GAAkB7D,IACzCgF,EAAW5C,cAAczrF,GACzB,MAAM,KAAEliJ,GAA6D,QAAvDqvR,QAAUV,GAAmBzsI,EAAequF,UAAW,IAAA8+C,EAAAA,EAAK,CAAC,EAC3E,GAAa,UAATrvR,EACA,MAAM,IAAI+iJ,GAAU,CAChBjjJ,K5UxBuB,wB4UyBvB2mE,QAAS,qEAGzB,MAGQ0rK,GAAkB3D,oBACZnxF,KACN1N,GAAIzjC,SAAS,OAAQ,CAAEvR,MAAO,aAAe,OAAQq0C,GAE7D,CAoCA,MAAMkgJ,GAAsB9gQ,IAAK,IAAAkhQ,EAAA,QAAY,OAALlhQ,QAAK,IAALA,GAAc,QAATkhQ,EAALlhQ,EAAO66E,eAAO,IAAAqmL,IAAdA,EAAgBC,WAAU,ECvF5DC,GAAeA,IACVnnB,GAAc,CACjBlI,QAAS,UACTjoM,GAAI,eACJ8/L,4BAA4B,EAC5B1N,OAAQ,CACJ1hJ,QAAS,CACLkmJ,KAAM,UACNj0B,OAAQ,CACJjpL,IAAK,UACLgoN,OAAQ,WACRnuK,QAAS,aAGjB0mK,SAAU,CAAEnyP,KAAM,SAClBwb,SAAU,CAAExb,KAAM,WAEvB,CACCu4P,SAAU,CACNvlG,QAASA,IAAMA,QClBd5W,GAAoBr7I,GACtB0uR,GAAyBnvI,GAASv/I,GCWhC2uR,GAAoChrI,UAAiB,IAAAiM,EAC9D,MAAM,iBAAEg/H,EAAgB,QAAE5uR,GAAYD,EAChCgyI,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QACvC2oI,EAAwB,OAAP36Q,QAAO,IAAPA,OAAO,EAAPA,EAAS26Q,eAChCz5H,GAA0BnP,GAC1B,MAAM,OAAE3kH,SAAiBiuH,GAAiB,CAAEc,cAAc,IAC1DoG,GAAiBn1H,GACjB,MAAM,oBAAEm2P,SAA8BryH,GAAiC,CACnElgB,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAWoqI,oCAClD,CACC/8H,YAAa1kI,EAAO0uH,YAAY90I,WAChCo0Q,eAAgBT,EAChBjQ,cAAekkB,KAEb,eAAEpkB,EAAc,cAAEE,EAAa,YAAEJ,GAAgB,IAChDiZ,GAEP,MAAO,CACHhZ,YAAaD,EACbG,eAAgBD,EAChBhqL,cAAekqL,EAClB,EChCL,SAASokB,KACL,OAAOxnB,GAAc,CACjBnwM,GAAI,4BACJioM,QAAS,uBACTnI,4BAA4B,EAC5B1N,OAAQ,CACJoe,qBAAsB,CAClBvI,QAAS,OACTj9C,KAAM,CAAC,aAAc,eAAgB,cACrConC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C+8L,KAAM,CAAE/8L,OAAQ,uCAChB+sO,OAAQ,CAAEh/B,QAAS,iBAG3Bi/B,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,oCACLgoN,OAAQ,CACJ9I,QAAS,CACL,2BACA,0BAEJ/tM,OAAQ,yDAEZ0oC,QAAS,CACLqlK,QAAS,iBACT/tM,OAAQ,YAM5BitO,2BAA4B,CACxB7vB,QAAS,OACTj9C,KAAM,CAAC,aAAc,kBAAmB,gBACxConC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C+8L,KAAM,sCACNgwC,OAAQ,CAAEh/B,QAAS,iBAG3Bi/B,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,6BACLgoN,OAAQ,CACJ9I,QAAS,CACL,kCACA,8BAEJ/tM,OAAQ,uCAEZ0oC,QAAS,CACLqlK,QAAS,iBACT/tM,OAAQ,YAM5BovM,SAAU,CAAEnyP,KAAM,QAAS8W,KAAM4lH,IAAA,IAAC,KAAErhH,GAAMqhH,EAAA,MAAM,CAAErhH,OAAM,KAE7D,CAECy1O,QAAS,IAAKyb,GAAS5c,WAAYA,MACnC4I,SAAU,CACNm3B,iCAAAA,CAAiCxoI,GAAqC,IAAlC0hH,YAAY,eAAE0D,IAAkBplH,EAIhE,OAAOwoI,GAHO,CACVC,iBAAkBrjB,GAG1B,EACA,gCAAM0jB,CAA0B5oI,GAAkF,IAA/EwhH,YAAcjvB,kBAAmBwsC,GAAkB,sBAAEha,GAAwB/kH,EAK5G,OC1ET1C,eAAoC5jJ,GAAO,IAAA6vJ,EAC9C,MAAM7d,EAAqC,QAA3B6d,EAAGrQ,GAAQK,YAAYzO,YAAI,IAAAye,OAAA,EAAxBA,EAA0B5d,QAC7CkP,GAA0BnP,GAC1B,MAAM,iBAAEqzI,EAAgB,iBAAEwJ,GAAqB7uR,EAC/CkxQ,KAAwBmU,EAAkBxV,GAAwBkB,+BAClE,MAAM,OAAE1jP,SAAiBiuH,GAAiB,CAAEc,cAAc,IAC1DoG,GAAiBn1H,SACXgkI,GAAoB,CACtBpgB,OAAQqgB,GAAUtf,EAAWE,YAC7ByX,eAAgBgI,GAAsBjN,GAAWyqI,uBAClD,CACCp9H,YAAa1kI,EAAO0uH,YAAY90I,WAChC0jQ,cAAekkB,EACfO,KAAM/J,GAEd,CD2DuBgK,CAJO,CACVhK,mBACAwJ,iBAAkBxjB,GAG1B,EACAznH,eAAoB0rI,MAAC/yQ,GACV2wP,GAAc3wP,EAAQurP,WAAYvrP,EAAQosP,QAASpsP,EAAQ6wP,iBAAkB,CAChFwW,GAAgBqC,qBAChBrC,GAAgB2C,4BAKpC,CE1FA,MAAMxwC,GAAkBA,CAACx5N,EAASgzQ,KAAW,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,MAAM,IAC5CvzQ,EAAQ8rP,cACX9tP,KAAkC,QAA9Bi1Q,EAAS,OAAPjzQ,QAAO,IAAPA,GAAsB,QAAfkzQ,EAAPlzQ,EAAS8rP,qBAAa,IAAAonB,OAAA,EAAtBA,EAAwBl1Q,YAAI,IAAAi1Q,EAAAA,EAAID,EAEtCznB,WAAY,CAAC,EACba,QAAS,CAAC,EACVlxB,gBAAiB,CAAC,EAElBwJ,WAA0B,QAAhByuC,EAAEnzQ,EAAQ+vH,cAAM,IAAAojJ,OAAA,EAAdA,EAAgBzuC,WAC5BpB,gBAA+B,QAAhB8vC,EAAEpzQ,EAAQ+vH,cAAM,IAAAqjJ,OAAA,EAAdA,EAAgB9vC,gBACjCutB,iBAAgC,QAAhBwiB,EAAErzQ,EAAQ+vH,cAAM,IAAAsjJ,OAAA,EAAdA,EAAgBxiB,iBAClC/sB,iBAAgC,QAAhBwvC,EAAEtzQ,EAAQ+vH,cAAM,IAAAujJ,OAAA,EAAdA,EAAgBxvC,iBAClCxI,gBAA+B,QAAhBi4C,EAAEvzQ,EAAQ+vH,cAAM,IAAAwjJ,OAAA,EAAdA,EAAgBj4C,gBACpC,GACOkP,GAAAA,GAAQ1oN,GAAAA,IAAS2xN,EACnB+/B,GAAaC,GAAc3xP,GAAK2xP,GAEhCC,GAAqB,CACvBrnF,GAAI,CACA7rD,KAAM,CACFizG,QAAS,YACT/tM,OAAQ,aAEZiuO,SAAU,2BAIZC,GAAmB,CACrB1wB,OAAQ,CAAEzP,QAAS,YAAa/tM,OAAQ,cAE5C,SAASmuO,GAA2BnwR,GAChC,MAAM,kBAAEowR,KAAsBC,GAAkC,OAAPrwR,QAAO,IAAPA,EAAAA,EAAW,CAAC,EAErE,OAAOsnQ,GAAc,CACjBnwM,GAAI,gBACJioM,QAAS,OACT9iP,QAAS,CACL81I,UAAM5pJ,EACN6jI,OAAQ,CAAC,EACTmrH,SAAUmsB,GACVtuC,cAAU7sO,EACV8nR,UAAU,GAEdr5B,4BAA4B,EAC5B1N,OAAQ,CAEJgnC,KAAM,CACFz2D,OAAQ,CACJjpL,IAAK,uBACLgoN,OAAQ,CAAE9I,QAAS,UAAW/tM,OAAQ,SACtC0oC,QAAS,CAAE1oC,OAAQ,WAG3BwuO,MAAO,CACHpxB,QAAS,aACT7V,OAAQ,CACJknC,WAxBGL,EAAoBF,GAAmBF,GAyB1CpwI,UAAW,CACPk6E,OAAQ,CACJjpL,IAAK,mBACLgoN,OAAQ,CACJ,CACI9I,QAAS,CAAC,qBAAsB,eAChC90H,KAAM,UACNj5E,OAAQ,gCAEZ,CACI+tM,QAAS,CAAC,qBAAsB,eAChC/tM,OAAQ,uBAKxB0uO,iBAAkB,CACdlxB,OAAQ,CACJ,CACIvkI,KAAM,uBACNj5E,OAAQ,8BAEZ,CACIi5E,KAAM,8BACNj5E,OAAQ,sCAEZ,CAAEA,OAAQ,kCAK1B0hG,eAAgB,CACZo2E,OAAQ,CACJjpL,IAAK,uBACLgoN,OAAQ,CACJ9I,QAAS,UACT/tM,OAAQ,gCAEZ0oC,QAAS,CAAE1oC,OAAQ,0BAG3B2uO,YAAa,CACTvxB,QAAS,aACT7V,OAAQ,CACJ0R,WAAY,CACRuE,OAAQ,CAAEzP,QAAS,mBAAoB/tM,OAAQ,aAEnD4uO,SAAU,CACNv3O,MAAO,qBACP8oK,KAAM2tE,GAAU,iBAGxBnnF,GAAI,CACAw0C,gBAAiB,sBACjByB,QAAS,cACTiyC,QAAS,cACT,0BAA2B,CACvB,CACI51J,KAAM,oCACNj5E,OAAQ,iCAEZ,CACIi5E,KAAM,mCACN80H,QAAS,mBACT/tM,OAAQ,4CAEZ,CACIi5E,KAAM,sBACN80H,QAAS,mBACT/tM,OAAQ,sCAEZ,CACIi5E,KAAM,sBACN80H,QAAS,mBACT/tM,OAAQ,iCAKxB8uO,YAAa,CACT1xB,QAAS,aACT7V,OAAQ,CACJ0R,WAAY,CACRuE,OAAQ,CAAEzP,QAAS,mBAAoB/tM,OAAQ,aAEnD4uO,SAAU,CACNv3O,MAAO,qBACP8oK,KAAM2tE,GAAU,iBAGxBnnF,GAAI,CACAi2C,QAAS,cACT,0BAA2B,CACvB,CACI3jH,KAAM,oCACNj5E,OAAQ,iCAEZ,CACIi5E,KAAM,mCACN80H,QAAS,mBACT/tM,OAAQ,4CAEZ,CACIi5E,KAAM,6BACNj5E,OAAQ,4CAEZ,CACI+tM,QAAS,mBACT/tM,OAAQ,iCAKxB+uO,oBAAqB,CACjB3xB,QAAS,aACT7V,OAAQ,CACJ0R,WAAY,CACRuE,OAAQ,CACJzP,QAAS,2BACT/tM,OAAQ,aAGhB4uO,SAAU,CACNv3O,MAAO,qBACP8oK,KAAM2tE,GAAU,yBAGxBnnF,GAAI,CACAi2C,QAAS,cACT,kCAAmC,CAC/B,CAAE58L,OAAQ,iCAItB8sO,0BAA2B,CACvB1vB,QAAS,aACT7V,OAAQ,CACJ0R,WAAY,CACRuE,OAAQ,CACJzP,QAAS,iCACT/tM,OAAQ,aAGhB4uO,SAAU,CACNv3O,MAAO,qBACP8oK,KAAM2tE,GAAU,+BAGxBnnF,GAAI,CACA,wCAAyC,CACrC,CACIonD,QAAS,mBACT/tM,OAAQ,oCAKxBk6F,cAAe,CACXkjH,QAAS,OACT7V,OAAQ,CACJgnC,KAAM,CAAE5nF,GAAI,CAAEqoF,cAAe,gBAC7BC,YAAa,CACTn3D,OAAQ,CACJjpL,IAAK,gCACLgoN,OAAQ,CAAE9I,QAAS,UAAW/tM,OAAQ,QACtC0oC,QAAS,CAAE1oC,OAAQ,6BAI/B2mJ,GAAI,CAAEsnF,SAAU,YAEpBh+H,QAAS,CACLmtG,QAAS,aACT7V,OAAQ,CACJ0R,WAAY,CACRuE,OAAQ,CAAEzP,QAAS,oBAAqB/tM,OAAQ,aAEpD4uO,SAAU,CACNv3O,MAAO,qBACP8oK,KAAM2tE,GAAU,kBAGxBnnF,GAAI,CACA,2BAA4B,CACxBonD,QAAS,YACT/tM,OAAQ,sBAKxB2mJ,GAAI,CACAuoF,sBAAuB,CAAElvO,OAAQ,iCACjC+sO,OAAQ,CAAEh/B,QAAS,kBACnBohC,KAAM,CAAEphC,QAAS,kBACjB/Q,OAAQ,CAAE+Q,QAAS,kBACnBqhC,kBAAmB,CAAErhC,QAAS,kBAC9BshC,OAAQ,CAAEthC,QAAS,kBACnBnR,QAAS,CAAEmR,QAAS,kBACpBhR,KAAM,CAAEgR,QAAS,oBAEtB,CACCA,QAAS,IACFyb,GACH8lB,eAAgBxqC,GAAO,CACnB,CAAE7rH,KAAM,WAAY80H,QAASR,IAAU5zH,IAAA,IAAC,SAAE05G,GAAU15G,EAAA,OAAK05G,CAAQ,OAErEk8C,iBAAkB53Q,GAAO,CACrByuP,cAAeA,CAAC9rP,EAASs9E,KAAU,CAC/By9I,cAAez9I,EAAM7jF,KAAKshO,cAC1BC,oBAAqB19I,EAAM7jF,KAAKuhO,oBAChCoJ,kBAAmB9mJ,EAAM7jF,KAAK2qO,kBAC9BnJ,YAAa39I,EAAM7jF,KAAKwhO,YACxB1pH,SAAUj0B,EAAM7jF,KAAK83G,SACrBvzG,KAAMs/E,EAAM7jF,KAAKuE,KACjBo9N,eAAgB99I,EAAM7jF,KAAK2hO,eAC3BC,yBAA0B/9I,EAAM7jF,KAAK4hO,6BAG7C65C,mBAAoB73Q,GAAO,CACvB0yH,MAAAA,CAAO/vH,EAAO6pI,GAAuB,IAAAsrI,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAnB97Q,KAAMmuQ,GAAW/9H,EAE/B,MAAM,gBAAEy5F,GAA2C,QAA5B6xC,EAAGvN,EAAUtkC,uBAAe,IAAA6xC,EAAAA,EAAI,IAAE,iBAAErxC,GAA6C,QAA7BsxC,EAAGxN,EAAU9jC,wBAAgB,IAAAsxC,EAAAA,EAAI,IAAE,gBAAE95C,GAA2C,QAA5B+5C,EAAGzN,EAAUtsC,uBAAe,IAAA+5C,EAAAA,EAAI,IAAE,aAAE7oE,EAAck4B,WAAY8wC,EAAW,iBAAE3kB,GAA2C,QAA3BykB,EAAG1N,EAAU7xI,sBAAc,IAAAu/I,EAAAA,EACjP,CAAC,IAAOt1Q,EAAQ+vH,OAGW,IAA3BuzG,EAAgBh/O,QAChBg/O,EAAgB/7O,KAAK,YAGzB,MAAO,CACHm9O,WAF6C,QAAjC6wC,EAuEpC,SAA2B7wC,GACnBA,GACAr7O,OAAO0+C,KAAK28L,GAAYt6O,SAAS8/H,IAC7B7gI,OAAO0+C,KAAK28L,EAAWx6G,IAAY9/H,SAASqrR,IACxC,IAAI/zL,EAAKgjJ,EAAWx6G,GAAWurJ,GAC/B/zL,EAAG73E,SAAW63E,EAAG7vB,UAAU,GAC7B,IAGV,OAAO6yK,CACX,CAjFuCgxC,CAAkBF,UAAY,IAAAD,EAAAA,EAAI,CAAC,EAGlD/oE,eACA82B,kBACAutB,mBACA/sB,mBACAxI,kBAER,IAEJq6C,iBAAkBt4Q,GAAO,CACrB07N,SAAUA,CAAC/4N,EAASjQ,KAChB,MAAM,SAAEmrP,GAAal7O,EACfm5N,EZ1P1B,SAAoB95G,GAAe,IAAd,SAAE67H,GAAU77H,EAC7B,OAAO2rI,GAAc,CACjBnwM,GAAI,cACJioM,QAAS,OACTnI,4BAA4B,EAC5B1N,OAAQ,CACJngB,KAAM,CACFo2B,OAAQ,CACJ,CACIvkI,KAAM,sBACNj5E,OAAQ,iBAEZ,CACIi5E,KAAM,kBACNj5E,OAAQ,aAEZ,CACIi5E,KAAMkrB,IAAA,IAAC,KAAE7rI,GAAM6rI,EAAA,MAAc,+CAAT7rI,CAAqD,EACzEy1O,QAAS,mBACT/tM,OAAQ,uBAEZ,CAAEA,OAAQ,YAGlBkwO,gBAAiB3E,GAAwB,UACzC57H,oBAAqB,CACjBmoE,OAAQ,CACJjpL,IAAK,yBACF48O,KAGXhH,iBAAkB,CACd3sD,OAAQ,CACJjpL,IAAK,yBACLgoN,OAAQ,CACJ9I,QAAS,yBACT/tM,OAAQ,yBAEZ0oC,QAAS,CACLqlK,QAAS,iBACT/tM,OAAQ,yBAIpBqhO,cAAe,CACXvpD,OAAQ,CACJjpL,IAAK,gBACLgoN,OAAQ,CACJ,CACI9I,QAAS,yBACT/tM,OAAQ,0BAGhB0oC,QAAS,CAAEqlK,QAAS,CAAC,iBAAkB,iBAG/C5P,OAAQ,CACJif,QAAS,OACTj9C,KAAM,eACNonC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAomF,OAAQ,CAAEh/B,QAAS,eACnBqhC,kBAAmB,CAAEpvO,OAAQ,gCAC7Bg9L,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,YAGnDgtO,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,aAAc,qBACpC8oK,KAAM,kBACN2X,OAAQ,CAAEjpL,IAAK,kBAAmB28O,OAI9ChtC,cAAe,CACX4e,QAAS,OACTj9C,KAAM,CACF,qBACA,kBACA,aACA,gBAEJonC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C48L,QAAS,sBACTmwC,OAAQ,CAAEh/B,QAAS,iBAG3Bi/B,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,mBACF28O,OAKnB2E,oBAAqB,CACjB94O,MAAO,aACPp6C,KAAM,WACNkjN,KAAM,CAAC,kBAAmB,aAAc,gBACxConC,OAAQ,CACJ6oC,WAAY,CACRhzB,QAAS,UACT7V,OAAQ,CACJ1hJ,QAAS,CACLiyH,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ72M,OAAQ,QACR+tM,QAAS,wBAEbrlK,QAAS,CACL1oC,OAAQ,UACR+tM,QAAS,oBAIrBjpI,MAAO,CAAEztE,MAAO,cAChBg5O,QAAS,CAAEh5O,MAAO,eAEtBsvJ,GAAI,CACAi2C,QAAS,CACLmR,QAAS,gBACT/tM,OAAQ,yBAEZ+sO,OAAQ,CACJh/B,QAAS,cACT/tM,OAAQ,YAEZmvO,KAAM,CACFphC,QAAS,aACT/tM,OAAQ,cAIpBgtO,OAAQ,CACJ5vB,QAAS,OACT/lN,MAAO,aACPkwM,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,cAGnD2kE,SAAU,CACNttE,MAAO,aACPygL,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ9I,QAAS,uBACT/tM,OAAQ,WAEZ0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,UAGtD6lD,QAAS,CACLkmJ,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,+BACF28O,SAO3B3sC,UAAW,CACPue,QAAS,OACTj9C,KAAM,CAAC,kBAAmB,aAAc,gBACxConC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C48L,QAAS,sBACTmwC,OAAQ,CAAEh/B,QAAS,iBAG3Bi/B,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CAAEjpL,IAAK,mBAAoB28O,OAI/Cp8B,SAAU,CACNnyP,KAAM,QACN8W,KAAOuG,IAAO,CACVg7N,oBAAqBh7N,EAAQg7N,oBAC7BC,YAAaj7N,EAAQi7N,YACrBj9N,KAAMgC,EAAQhC,KACdq9N,yBAA0Br7N,EAAQq7N,yBAClC9pH,SAAUvxG,EAAQuxG,cAI/B,CAECkiI,QAAS,IAAKyb,GAAS5c,WAAYA,MACnCzD,OAAQwgB,GACRnU,SAAU,CACN7zG,oBAAyBgO,SACdA,KAEX0xH,aAAAA,CAAah9H,GAAe,IAAd,SAAEx4B,GAAUw4B,EACtB,OAAOg9H,GAAc,CAAEx1J,YAC3B,EACAykK,sBAAAA,CAAsB/oJ,GAAe,IAAd,SAAE1b,GAAU0b,EAC/B,OAAOk9I,GAAiB,CAAE54J,YAC9B,EACAu2J,YAAAA,CAAY/7I,GAA2B,IAA1B,WAAEw/H,EAAU,SAAEh6I,GAAUwa,EACjC,MAAM,SAAEhvC,GAAawuK,EACrB,OAAOrQ,EAAS4sB,aAAa,CAAEv2J,WAAUx0B,YAC7C,EACAmnJ,aAAAA,CAAa33G,GAAiB,IAAhB,WAAEg/H,GAAYh/H,EACxB,MAAQ+vG,kBAAmB8hC,GAAsB7S,EACjD,OAAOrQ,EAAS0tB,oBAAoB,CAAExK,qBAC1C,EACA,+BAAM6X,CAAyBvoJ,GAAiB,IAKxCwoJ,GALwB,WAAE3qB,GAAY79H,GACpC3wC,SAAUqhL,EAAiB,aAAExhC,EAAY,aAAE8uB,EAAY,iBAG7DnvB,KAAqBhlG,GAAmBg0H,EAcxC,OAZI3uB,IACAs5C,EACI,GAAA52Q,OAAGosP,GAAYpsP,OAAGs9N,GAAe95O,QAAQ,eAAgB,IAC7Dy0I,EAAiB,IACVA,EACHqlG,aAAcs5C,IAOfhyC,GAJO,CACVk6B,oBACA16Q,QAAS,CAAE6zI,mBAGnB,EACA44I,kBAAAA,CAAmBpgR,EAACixJ,GAAY,IAAV,KAAEvnJ,GAAMunJ,EAC1B,OAAOmvH,GAAmB12Q,EAC9B,EACA4tI,eAAoB0rI,MAAC/yQ,GACV2wP,GAAc3wP,EAAQurP,WAAYvrP,EAAQosP,QAASpsP,EAAQ6wP,iBAAkB,CAChFwW,GAAgBqC,qBAChBrC,GAAgB2C,4BAKpC,CYRkCqK,CAAY,CAAEn5B,aAAYlD,YAAYxe,GAAgBx5N,EAAS,YAC7E,OAAOo7O,GAAMjiB,EAAO,CAAE12O,KAAM,eAAgB,IAGpD0zR,iBAAkB94Q,GAAO,CACrB07N,SAAUA,CAAC/4N,EAASjQ,KAChB,MAAM,SAAEmrP,GAAal7O,EACfm5N,EXxP1B,SAAoB95G,GAAe,IAAd,SAAE67H,GAAU77H,EAC7B,OAAO2rI,GAAc,CACjBnwM,GAAI,cACJioM,QAAS,OACTnI,4BAA4B,EAC5B1N,OAAQ,CACJngB,KAAM,CACFo2B,OAAQ,CACJ,CAAEvkI,KAAM,sBAAuBj5E,OAAQ,iBACvC,CAAEA,OAAQ,YAGlBkmN,WAAY,CACRna,KAAM,UACNj0B,OAAQ,CAAEjpL,IAAK,gBAAiB88O,KAEpCh8H,oBAAqB,CACjBmoE,OAAQ,CACJjpL,IAAK,yBACF48O,KAGXyE,gBAAiB3E,GAAwB,UACzClK,cAAe,CACXvpD,OAAQ,CAAEjpL,IAAK,mBAAoB68O,KAEvCjH,iBAAkB,CACd14B,KAAM,UACN10M,MAAO,aACP8oK,KAAM,aACN2X,OAAQ,CACJjpL,IAAK,mBACLgoN,OAAQ,CACJ9I,QAAS,CAAC,yBAA0B,cACpC/tM,OAAQ,8BAEZ0oC,QAAS,CACL,CACIuwC,KAAM,yBACNj5E,OAAQ,yBAEZ,CAAE+tM,QAAS,CAAC,iBAAkB,kBAI1Cv/F,OAAQ,CACJvxJ,KAAM,WACNkjN,KAAM,eACNxZ,GAAI,CACAyoF,kBAAmB,CAAEpvO,OAAQ,oBAEjCunM,OAAQ,CACJ6oC,WAAY,CACRhzB,QAAS,UACT7V,OAAQ,CACJ1hJ,QAAS,CACLiyH,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ9I,QAAS,uBACT/tM,OAAQ,SAEZ0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,aAGtD8kE,MAAO,CAAEztE,MAAO,cAChBg5O,QAAS,CAAEh5O,MAAO,eAEtBsvJ,GAAI,CACAwoF,KAAM,CAAEphC,QAAS,aAAc/tM,OAAQ,YACvC+sO,OAAQ,CAAEh/B,QAAS,cAAe/tM,OAAQ,cAGlD0wO,WAAY,CACRtzB,QAAS,OACT7V,OAAQ,CACJgnC,KAAM,CACFl3O,MAAO,CAAC,cACRsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,cAGnD2kE,SAAU,CACNttE,MAAO,aACPygL,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ72M,OAAQ,eACR+tM,QAAS,wBAEbrlK,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,UAGtDqiO,aAAc,CACVt2B,KAAM,UACN10M,MAAO,CAAC,oBAAqB,cAC7B8oK,KAAM,aACN2X,OAAQ,CACJjpL,IAAK,eACLgoN,OAAQ,CACJ,CACI59H,KAAM,qBACN80H,QAAS,oBACT/tM,OAAQ,yBAEZ,CACIi5E,KAAM,mBACN80H,QAAS,oBACT/tM,OAAQ,2BAEZ,CACI+tM,QAAS,CACL,yBACA,qBAEJ/tM,OAAQ,sBAGhB0oC,QAAS,CACLqlK,QAAS,CAAC,aAAc,kBACxB/tM,OAAQ,cAQpCyuG,cAAe,CACX2uG,QAAS,OACT/lN,MAAO,aACPkwM,OAAQ,CACJz1F,KAAM,CACF60C,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C+sO,OAAQ,CAAEh/B,QAAS,eACnBohC,KAAM,CAAEphC,QAAS,cACjBshC,OAAQ,kCAGhBrC,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,gBACLgoN,OAAQ,CACJ,CACI59H,KAAM,mBACN80H,QAAS,CAAC,oBAAqB,mBAC/B/tM,OAAQ,2BAEZ,CACI+tM,QAAS,oBACT/tM,OAAQ,sBAGhB0oC,QAAS,CACLqlK,QAAS,CAAC,iBAAkB,cAC5B/tM,OAAQ,YAM5BovM,SAAU,CACNnyP,KAAM,QACN8W,KAAOuG,IAAO,CACV+6N,cAAe/6N,EAAQ+6N,cACvBqJ,kBAAmBpkO,EAAQokO,kBAC3BnJ,YAAaj7N,EAAQi7N,YACrBj9N,KAAMgC,EAAQhC,KACdo9N,eAAgBp7N,EAAQo7N,eACxB7pH,SAAUvxG,EAAQuxG,SAClB8pH,yBAA0Br7N,EAAQq7N,8BAI/C,CAECoY,QAAS,IAAKyb,GAAS5c,WAAYA,MACnCzD,OAAQwgB,GACRnU,SAAU,CACN0Q,WAAUA,IACCA,KAEXvkH,oBAAyBgO,SACdA,KAEXlB,aAAAA,CAAatK,GAA2B,IAA1B,WAAE0hH,EAAU,SAAEh6I,GAAUs4B,EAClC,MAAQyyF,kBAAmBwsC,GAAqBvd,EAC1C9nQ,EAAQ,CAAE8tH,WAAUu3J,oBAC1B,OAAO5tB,EAAS2tB,oBAAoBplR,EACxC,EACA0mR,gBAAAA,CAAgBpgI,GAAe,IAAd,SAAEx4B,GAAUw4B,EACzB,OAAOogI,GAAiB,CAAE54J,YAC9B,EACA4+J,kBAAAA,CAAmBpgR,EAACk9H,GAAY,IAAV,KAAExzH,GAAMwzH,EAC1B,OAAOkjJ,GAAmB12Q,EAC9B,EACAsuQ,YAAAA,CAAa/nQ,GACT,MAAM,WAAEurP,EAAU,gBAAEjoB,EAAe,SAAE/xH,GAAavxG,EAC5CwrP,EAAiBloB,EAAgB,GACjC7/O,EAAQ6nQ,GAAe/5I,EAAUg6I,EAAYC,GACnD,OAAOtQ,EAAS6sB,aAAatkR,EACjC,EACA4jJ,eAAoBgvI,MAACr2Q,GAEV2wP,GAAc3wP,EAAQurP,WAAYvrP,EAAQosP,QAASpsP,EAAQ6wP,iBAAkB,CAEhF3V,EAASwuB,qBAETxuB,EAAS8uB,wBACT9uB,EAASgvB,0BAEThvB,EAASuuB,yBAK7B,CW6BkC+K,CAAY,CAAEt5B,aAAYlD,YAAYxe,GAAgBx5N,EAAS,YAC7E,OAAOo7O,GAAMjiB,EAAO,CAAE12O,KAAM,eAAgB,IAGpD6zR,yBAA0Bj5Q,GAAO,CAC7B07N,SAAUA,CAAC/4N,EAASjQ,KAChB,MAAM,SAAEmrP,GAAal7O,EACfm5N,EChU1B,SAA4B95G,GAAgB,IAAf,SAAE67H,GAAW77H,EACtC,OAAO2rI,GAAc,CACjBnwM,GAAI,sBACJioM,QAAS,OACTnI,4BAA4B,EAC5B1N,OAAQ,CACJngB,KAAM,CACFo2B,OAAQ,CACJ,CACIvkI,KAAM,sBACNj5E,OAAQ,wBAEZ,CACIi5E,KAAM,6BACNj5E,OAAQ,wBAEZ,CACIA,OAAQ,oBAIpB0uG,eAAgB,CACZ0uG,QAAS,OACT/lN,MAAO,aACP8oK,KAAM,CAAC,aAAc,gBACrBonC,OAAQ,CACJz1F,KAAM,CACFz6G,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,UAC3C+sO,OAAQ,CAAEh/B,QAAS,eACnBohC,KAAM,CAAEphC,QAAS,gBAGzBi/B,OAAQ,CACJjhC,KAAM,UACN10M,MAAO,CAAC,aAAc,aAAc,6BACpCygL,OAAQ,CACJjpL,IAAK,sBACLgoN,OAAQ,CACJ9I,QAAS,CACL,yBACA,4BAEJ/tM,OAAQ,6CAEZ0oC,QAAS,CACLqlK,QAAS,iBACT/tM,OAAQ,YAM5B2+L,qBAAsB,CAClB1hP,KAAM,WACNkjN,KAAM,CAAC,kBAAmB,aAAc,gBACxConC,OAAQ,CACJ6oC,WAAY,CACRhzB,QAAS,UACT7V,OAAQ,CACJ1hJ,QAAS,CACLiyH,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ72M,OAAQ,QACR+tM,QAAS,wBAEbrlK,QAAS,CACL1oC,OAAQ,UACR+tM,QAAS,oBAIrBjpI,MAAO,CAAEztE,MAAO,cAChBg5O,QAAS,CAAEh5O,MAAO,eAEtBsvJ,GAAI,CACAomF,OAAQ,CACJh/B,QAAS,cACT/tM,OAAQ,YAEZmvO,KAAM,CACFphC,QAAS,aACT/tM,OAAQ,cAIpB0wO,WAAY,CACRtzB,QAAS,OACT7V,OAAQ,CACJgnC,KAAM,CACFl3O,MAAO,aACPsvJ,GAAI,CACAq2C,OAAQ,CAAE+Q,QAAS,eAAgB/tM,OAAQ,YAC3CqvO,OAAQ,aACRtC,OAAQ,CAAEh/B,QAAS,eACnBohC,KAAM,CAAEphC,QAAS,gBAGzBppI,SAAU,CACNttE,MAAO,aACPygL,OAAQ,CACJjpL,IAAK,iBACLgoN,OAAQ,CACJ72M,OAAQ,UACR+tM,QAAS,wBAEbrlK,QAAS,CACL1oC,OAAQ,OACR+tM,QAAS,oBAIrB5Z,WAAY,CACR4X,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,sBACLgoN,OAAQ,CAAE72M,OAAQ,QAClB0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,UAGtD6lD,QAAS,CACLkmJ,KAAM,UACN10M,MAAO,CAAC,aAAc,cACtBygL,OAAQ,CACJjpL,IAAK,6BACLgoN,OAAQ,CACJ,CACI59H,KAAM,4BACN80H,QAAS,2BACT/tM,OAAQ,iCAEZ,CACI+tM,QAAS,gBACT/tM,OAAQ,kCAGhB0oC,QAAS,CAAEqlK,QAAS,iBAAkB/tM,OAAQ,cAOtEovM,SAAU,CACNnyP,KAAM,QACN8W,KAAMowI,IAAA,IAAC,KAAE7rI,GAAM6rI,EAAA,MAAM,CAAE7rI,OAAM,KAGtC,CAECy1O,QAAS,IAAKyb,GAAS5c,WAAYA,MACnCzD,OAAQwgB,GACRnU,SAAU,CACNq7B,mBAAAA,CAAmBxsI,GAAe,IAAd,SAAEx4B,GAAUw4B,EAC5B,OAAOmxG,EAASsuB,qBAAqB,CAAEj4J,YAC3C,EACAilK,0BAAAA,CAA0BvpJ,GAA2B,IAA1B,WAAEs+H,EAAU,SAAEh6I,GAAU0b,EAC/C,MAAQqvG,kBAAmBwsC,EAAkB/rL,SAAUwsL,GAAgBhe,EACvE,OAAOrQ,EAASouB,2BAA2B,CACvCR,mBACAS,cACAh4J,YAER,EACAwhK,eAAe/yQ,GACJ2wP,GAAc3wP,EAAQurP,WAAYvrP,EAAQosP,QAASpsP,EAAQ6wP,iBAAkB,CAChFwW,GAAgBqC,qBAChBrC,GAAgB2C,4BAKpC,CDiJkCyK,CAAoB,CAAEv5B,aAAYlD,YAAYxe,GAAgBx5N,EAAS,oBACrF,OAAOo7O,GAAMjiB,EAAO,CAAE12O,KAAM,uBAAwB,IAG5Dg0R,+BAAgCp5Q,GAAO,CACnC07N,SAAW/4N,GAEAo7O,GADOo3B,KAA4Bx6B,YAAYxe,GAAgBx5N,IAClD,CAAEvd,KAAM,gCAGpCi0R,kBAAmBr5Q,GAAO,CACtB07N,SAAW/4N,GAEAo7O,GADO+2B,KAAen6B,YAAY,CAAEliG,KAAa,OAAP91I,QAAO,IAAPA,OAAO,EAAPA,EAAS81I,OACtC,CAAErzJ,KAAM,mBAGpCqtI,UAAWzyH,IAAO,CAACtN,EAAGutF,KAAU,IAAAq5L,EAC5B,MAAQz7B,SAAU07B,KAAmB7mJ,GAAY2oG,GAAcq7C,GAE/C,QADY4C,EACtBr5L,EAAM7jF,YAAI,IAAAk9Q,EAAAA,EAAI,CAAC,EADf5C,EAEN,MAAO,CACH74B,SAAU,IAAKmsB,MAAoBuP,GACnC7mJ,SACH,IAEL8mJ,YAAax5Q,GAAO,CAAE22Q,UAAU,KAEpCnlC,OAAQ,IACDwgB,GACHynB,SAAU/sI,IAAA,IAAC,SAAEgvF,GAAUhvF,EAAA,QAAOgvF,CAAQ,EACtCg+C,qBAAsB9pJ,IAAA,IAAC,OAAE8C,GAAQ9C,EAAA,MAA6B,WAAxB8C,EAAOy8E,YAAyB,EACtEwqE,4BAA6BjrJ,IAAA,IAAC,OAAEgE,GAAQhE,EAAA,MAA6B,mBAAxBgE,EAAOy8E,YAAiC,EACrFyqE,YAAa1qJ,IAAA,IAAC,SAAEynJ,GAAUznJ,EAAA,OAAMynJ,CAAQ,EACxCkD,QAASxpJ,IAAc,IAAb,KAAEooB,GAAMpoB,EACd,QAASooB,CAAI,GAGrBolG,SAAU,CACNosB,iBAAkBtmH,IAAA,IAAC,SAAEk6F,GAAUl6F,EAAA,OAAKk6F,EAASosB,kBAAkB,EAC/D6P,qBAAsBj2H,IAAA,IAAC,SAAEg6F,GAAUh6F,EAAA,OAAKg6F,EAAS9zG,gBAAgB,IAG7E,CE1WA,MAAMgwI,GAAoB1zR,GAAY,CAAC+V,EAAMukI,KACzCujH,GAAsB9nP,EAAMukI,EAASt6I,EAAQ,EAEjD,SAAS2zR,GAAqBh4J,GAAgB,IAAf,SAAE72C,GAAW62C,EAKxC,MAAOu8G,EAAY07C,GAAiBv7C,EAAAA,SAAwB,eAE5DA,EAAAA,WAAyB,KACrB30F,KACK/oI,MAAK,KACNi5Q,EAAc,gBAAgB,IAE7BpiP,OAAM,KACPoiP,EAAc,kBAAkB,GAClC,GACH,IAQH,MAAMC,GAAoBlmL,EAAAA,EAAAA,YAAWyqI,IAC/B99F,EAAU+iH,GAAa8yB,IACvBlvR,GAAQ+sG,EAAAA,EAAAA,UAAQ,IAAQ6lL,GAAoB,CAAE37C,aAAY59F,YAAgC,CAAC49F,EAAY27C,EAAmBv5I,KACxHA,QAASw5I,GAAkB7yR,EAWnC,OAVA2sG,EAAAA,EAAAA,YAAU,IAOcowJ,GAAgB81B,EAAeJ,GAAiB,CAAE51B,SANrDA,KACb81B,EAAc,gBAAgB,EAK8C71B,UAH9DA,KACd61B,EAAc,kBAAkB,MAIrC,CAACE,IACIz7C,EAAAA,cAA6BD,GAAqB92H,SAAU,CAAErgH,MAAOA,GAAS6jF,EAC1F,CC/CA,MAAMs9I,GAAU,SCKV2xD,GAAwBp4J,IAA2C,IAA1C,QAAEj2D,EAASsuN,WAAYC,GAAct4J,ECItCA,KAA8B,IAA7B,WAAEq4J,EAAU,QAAEtuN,GAAUi2D,EACnDiH,EAAAA,WAAgB,KACRoxJ,GAEA1nR,QAAQC,KAAKm5D,EACjB,GACD,CAACsuN,EAAYtuN,GAAS,EDJzBwuN,CAAwB,CAAExuN,UAASsuN,WALhBC,IAGK,qBAAZhrN,SACHA,UAAWA,IAC4B,EET9CkrN,GAENvxJ,EAAAA,cAAoB,MACdwxJ,GAAsBA,KACxB,MAAM93Q,EAAUsmH,EAAAA,WAAiBuxJ,IACjC,IAAK73Q,EACD,MAAM,IAAInY,MAAM,wFAEpB,OAAOmY,CAAO,ECmCZ+3Q,GAAkB,CACpBC,OAAQ,SACRC,MAAO,QACPC,SAAU,WACVC,OAAQ,UAMNC,GAAwB,CAE1BC,oBAAqBA,IAAM3kO,GAAU2qL,GAAaG,cAClD85C,sBAAuBA,IAAM5kO,GAAU2qL,GAAaK,iBACpD65C,gBAAiBA,IAAM7kO,GAAU2qL,GAAaM,mBAC9C65C,eAAgBA,IAAM9kO,GAAU2qL,GAAamB,SAC7Ci5C,kBAAmBA,IAAM/kO,GAAU2qL,GAAaqB,YAChDg5C,YAAaA,IAAMhlO,GAAU2qL,GAAauE,gBAC1C+1C,oBAAqBA,IAAMjlO,GAAU2qL,GAAa0C,eAClD63C,eAAgBA,IAAMllO,GAAU2qL,GAAa2C,SAC7C63C,UAAWA,IAAMnlO,GAAU2qL,GAAaiD,IACxCw3C,kBAAmBA,IAAMplO,GAAU2qL,GAAaqD,aAChDq3C,gBAAiBA,IAAMrlO,GAAU2qL,GAAawD,WAC9Cm3C,eAAgBA,IAAMtlO,GAAU2qL,GAAayD,SAC7Cm3C,oBAAqBA,IAAMvlO,GAAU2qL,GAAa2D,eAClDk3C,cAAeA,IAAMxlO,GAAU2qL,GAAaqE,QAC5Cy2C,kBAAmBA,IAAMzlO,GAAU2qL,GAAasE,YAEhDy2C,iBAAkBA,IAAM1lO,GAAU2qL,GAAa6D,aAC/Cm3C,iBAAkBA,IAAM3lO,GAAU2qL,GAAasB,gBAE/C25C,sBAAwBC,GAAiB7lO,GAAU6lO,EAC7Cl7C,GAAawC,gBACbxC,GAAayC,sBACnB04C,iBAAkBA,IAAM9lO,GAAU2qL,GAAamE,mBAC/Ci3C,cAAeA,IAAM/lO,GAAU2qL,GAAa4D,gBAE5Cy3C,uBAAwBA,IAAMhmO,GAAU2qL,GAAauB,kBACrD+5C,qBAAsBA,IAAMjmO,GAAU2qL,GAAasB,gBAEnDi6C,uBAnE4B5+C,IAC5B,MAAM,eAAEkzB,EAAc,YAAEF,GAAmC,OAAnBhzB,QAAmB,IAAnBA,EAAAA,EAAuB,CAAC,EAC1D6+C,EAAoC,UAAnB3rB,EACjB4rB,EAAmC,QAAnB5rB,EAChB6rB,EAAiBrmO,GAAU2qL,GAAaQ,cAC9C,IAAMg7C,IAAkBC,EACpB,MAAO,GAAPx6Q,OAAUo0C,GAAU2qL,GAAaU,WAAU,MAAAz/N,OAAKy6Q,EAAc,KAElE,MAAMC,EACAtmO,GADqBmmO,EACXx7C,GAAaS,aACbT,GAAaW,aAC7B,MAAO,GAAP1/N,OAAU06Q,EAAkB,KAAA16Q,OAAI0uP,EAAW,MAAA1uP,OAAKy6Q,EAAc,MAyD9DE,sBAvD2Bj/C,IAC3B,MAAM,eAAEkzB,GAAsC,OAAnBlzB,QAAmB,IAAnBA,EAAAA,EAAuB,CAAC,EAC7C6+C,EAAoC,UAAnB3rB,EAEvB,OACWx6M,GADNmmO,GADoC,QAAnB3rB,EAIf2rB,EACSx7C,GAAa2E,WACb3E,GAAa6E,UAJR7E,GAAa4E,aAIK,EAgDvCi3C,iBAnFsBn/C,IACtB,OAAQA,GACJ,IAAK,UACD,OAAOrnL,GAAU2qL,GAAagB,aAClC,IAAK,qBACD,OAAO3rL,GAAU2qL,GAAakB,cAClC,QACI,OAAO7rL,GAAU2qL,GAAaiB,qBACtC,EA6EA66C,yBAA0BA,IAAMzmO,GAAU2qL,GAAauD,gBAEvDw4C,iBAAkBA,IAAM1mO,GAAU2qL,GAAa0D,YAE/Cs4C,6BAA8BA,IAAM3mO,GAAU,kHAE9C4mO,cAAeA,IAAM5mO,GAAU,UAE/B6mO,4BA/CgCA,CAACn4J,EAAO0R,IAEjCpgF,GAAU,QAADp0C,OADW,WAAV8iH,EACmB,KAAO,KAAI,UAAA9iH,OAASy4Q,GAAgBjkJ,KA+CxE0mJ,YAAaA,IAAM9mO,GAAU2qL,GAAaoE,MAC1Cg4C,cAAeA,IAAM/mO,GAAU2qL,GAAa0E,QAC5C23C,qBAAsBA,IAAMhnO,GAAU2qL,GAAawE,gBACnD83C,2BAA4BA,IAAMjnO,GAAU2qL,GAAayE,gBAGzD83C,oBAAqBA,IAAMlnO,GAAU,8BAErCmnO,qBAAsBA,IAAMnnO,GAAU,2BC1GpConO,GAAa,WACf,MAAM7qK,EAAU,GAAG,QAAAxkH,EAAAC,UAAApH,OADAyF,EAAI,IAAA1H,MAAAoJ,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJ5B,EAAI4B,GAAAD,UAAAC,GAEvB,IAAK,MAAMupB,KAAOnrB,EAEd,GAAKmrB,EAGL,GAAI01F,GAAS11F,GACT+6F,EAAQ1oH,KAAK2tB,QAGjB,GAAmB,kBAARA,GAIX,GAAI7yB,MAAMC,QAAQ4yB,GACd+6F,EAAQ1oH,KAAKuzR,MAAc5lQ,SAG/B,GAAImrC,GAASnrC,GAAM,CAEf,GAAIA,EAAIxqB,WAAarB,OAAOc,UAAUO,UACf,oBAAnBwqB,EAAIxqB,WAAkC,CACtCulH,EAAQ1oH,KAAK2tB,EAAIxqB,YACjB,QACJ,CACA,IAAK,MAAMvC,KAAO+sB,EACViyB,GAAIjyB,EAAK/sB,IAAQ+sB,EAAI/sB,IACrB8nH,EAAQ1oH,KAAKY,EAGzB,OAnBI8nH,EAAQ1oH,KAAK2tB,EAAIxqB,YAqBzB,OAAOulH,EAAQxrH,KAAK,IACxB,ECpCMs2R,GAMK,gBANLA,GAOS,sBAPTA,GAQY,yBARZA,GASS,sBATTA,GAUY,yBAVZA,GAyBM,iBAzBNA,GA2BmB,iCA3BnBA,GAuCiB,4BAvCjBA,GAwCc,yBAxCdA,GAyCO,kBAzCPA,GA4CK,gBA5CLA,GA6CgB,6BA7ChBA,GA8CiB,+BA9CjBA,GA+CU,sBA/CVA,GAgDiB,+BAhDjBA,GAiDkB,iCAjDlBA,GAkDoB,mCAlDpBA,GAmDkB,iCAnDlBA,GAoDoB,mCApDpBA,GAuDqB,qCAvDrBA,GAwDuB,uCAxDvBA,GAyDiB,+BAzDjBA,GA0DsB,qCA1DtBA,GA2DQ,mBA3DRA,GA4Dc,2BA5DdA,GA6DI,eA7DJA,GA+DO,kBA/DPA,GAkEI,eAlEJA,GAoEK,gBApELA,GAqEK,gBArELA,GAuEM,iBAvENA,GAwEW,wBAxEXA,GAqFa,wBArFbA,GAsFgB,2BAtFhBA,GAwFK,gBAxFLA,GAyFW,wBAzFXA,GA0FU,uBA1FVA,GA2FU,uBA3FVA,GA4Fe,0BA5FfA,GA6FU,qBA7FVA,GAsGM,iBAtGNA,GAuGW,sBAvGXA,GAwGa,0BAxGbA,GAyGU,uBAzGVA,GAsJI,eAtJJA,GAuJQ,qBAvJRA,GAwJQ,qBAxJRA,GAyJS,sBAzJTA,GA0JI,eA1JJA,GA6JS,oBA7JTA,GAgKc,0BCrJdC,GAA2BC,GAAc30J,EAAAA,WAAiB20J,GCT1DC,GAAkB50J,EAAAA,cAAoB,CACxC60J,oBAAoB,IAOlBC,GAAcA,IAAM90J,EAAAA,WAAiB40J,6BCJ3C,MAAMG,GAAsB,UAGtBC,GAAoB,CACtB,UACA,UACA,aACA,eACA,SAEJ,SAASC,GAAe52R,GACpB,IAAKA,EACD,MAAO,GACX,GAAIq2H,GAAcr2H,GAAQ,CACtB,MAAMqlD,EAAOrlD,EAAM7B,QAAQ,SAAU,IAAIA,QAAQ,SAAU,IAAIP,MAAM,KACrE,MAAO,SAAP+c,OAAgBk8Q,GAAiB,CAAExxO,SAAO,IAC9C,CACA,OAAOrlD,CACX,CAgBA,SAAS62R,GAAgBn8J,GAAgB,IAAf,KAAEr1E,EAAO,IAAIq1E,EACnC,MAAO,GAAP//G,OAAU0wD,GAAU,CAACqrN,MAAwBrxO,GAAMvlD,KAAK,MAC5D,CAQA,SAASg3R,GAAc92R,GACnB,OAAO07D,GAAS17D,IAAUwiD,GAAIxiD,EAAO,QACzC,CACA,SAAS+2R,GAAoB/2R,GACzB,OAAO07D,GAAS17D,IAAUwiD,GAAIxiD,EAAO,UACzC,CAMA,SAASg3R,GAAW9xI,GAAqC,IAApC,OAAE/4H,EAAM,KAAEk5B,EAAO,GAAE,WAAE4xO,GAAa/xI,EACnD,GAAI1iG,GAAIr2B,EAAQ,SACZ,OAAO8qQ,EAAW,CAAE7qQ,MAAOD,EAAQk5B,SAEvC,MAAMwmE,EAAS,CAAC,EAChB,IAAK,MAAM/tH,KAAQquB,EACf,GAAIq2B,GAAIr2B,EAAQruB,GAAO,CACnB,MAAMkC,EAAQmsB,EAAOruB,GACfo5R,EAAax7N,GAAS17D,GAASA,EAAQ,CAAEA,SAC/C6rH,EAAO/tH,GAAQk5R,GAAY,CACvB7qQ,OAAQ+qQ,EACR7xO,KAAMA,EAAK1qC,OAAO7c,GAClBm5R,cAER,CAEJ,OAAOprK,CACX,CCxEA,MAAMsrK,GAAgC,CAClCC,aAAc,eACdC,WAAY,aACZC,UAAW,YACXhwM,KAAM,WACN1C,YAAa,cACb2yM,YAAa,kBACbC,SAAU,eACVC,SAAU,eACVz6P,gBAAiB,kBACjB2E,gBAAiB,kBACjB+1P,MAAO,YACPt3O,OAAQ,SACRwnL,aAAc,eACd+vD,YAAa,cACbC,YAAa,cACbC,YAAa,cACbp+F,OAAQ,SACR/wJ,UAAW,YACXnW,MAAO,QACPulQ,OAAQ,aACRC,UAAW,gBACXC,UAAW,YACXC,WAAY,aACZC,YAAa,kBACbz0P,UAAW,gBACXC,QAAS,UACT2hD,KAAM,OACNl+C,WAAY,aACZ/C,SAAU,WACVoD,UAAW,YACXF,WAAY,aACZ6wP,IAAK,MACLC,KAAM,WACNp9Q,OAAQ,SACRq9Q,eAAgB,iBAChBx9Q,KAAM,OACNipB,cAAe,gBACfI,WAAY,aACZ+pB,OAAQ,SACRqqO,YAAa,cACbC,eAAgB,iBAChBC,iBAAkB,mBAClB7zP,aAAc,iBACd8zP,aAAc,eACdC,gBAAiB,kBACjBC,kBAAmB,oBACnB/zP,WAAY,oBACZF,YAAa,kBACbD,UAAW,mBACXm0P,UAAW,YACXxyG,SAAU,WACVyyG,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,eAAgB,iBAChBjyP,QAAS,UACTF,MAAO,QACPhC,SAAU,WACVqpB,QAAS,UACT+qO,aAAc,eACdC,gBAAiB,kBACjBC,kBAAmB,oBACnBj0P,cAAe,kBACfk0P,cAAe,gBACfC,iBAAkB,mBAClBC,mBAAoB,qBACpBn0P,YAAa,qBACbF,aAAc,mBACdD,WAAY,oBACZrE,SAAU,WACV44P,OAAQ,SACR3xK,MAAO,QACPx3C,IAAK,UACLopN,OAAQ,aACRC,OAAQ,SACRC,QAAS,UACT/+F,SAAU,eACVg/F,OAAQ,aACRC,cAAe,oBACfC,gBAAiB,sBACjBC,aAAc,mBACd10P,UAAW,YACXoE,eAAgB,iBAChB9D,cAAe,gBACf5qB,IAAK,MACLzb,UAAW,YACXinC,gBAAiB,kBACjBvrB,MAAO,QACPozC,WAAY,aACZ4rO,KAAM,YChGJC,IDqGoCt1R,OAAO0+C,KAAK+zO,ICrGjC,CACjB8C,MAAO,CAAEj6R,MAAO,OAChBk6R,OAAQ,CAAEl6R,MAAO,OACjBm6R,MAAO,CAAEn6R,MAAO,SCHd21K,GAAS,CACX/iJ,IAAK,CACD,GAAI,CAAE5yB,MAAO,oBACb,GAAI,CAAEA,MAAO,oBACb,GAAI,CAAEA,MAAO,oBACb,GAAI,CAAEA,MAAO,oBACb,GAAI,CAAEA,MAAO,oBACb,GAAI,CAAEA,MAAO,qBACb,IAAK,CAAEA,MAAO,sBAElBiyK,OAAQ,CACJ,GAAI,CAAEjyK,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,sBACb,IAAK,CAAEA,MAAO,uBAElBw0K,OAAQ,CACJ,GAAI,CAAEx0K,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,sBACb,IAAK,CAAEA,MAAO,uBAElB2yB,MAAO,CACH,GAAI,CAAE3yB,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,IAAK,CAAEA,MAAO,uBAElB+zK,KAAM,CACF,GAAI,CAAE/zK,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,uBACb,IAAK,CAAEA,MAAO,wBAElB0yB,KAAM,CACF,GAAI,CAAE1yB,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,uBACb,IAAK,CAAEA,MAAO,wBAElB8yK,OAAQ,CACJ,GAAI,CAAE9yK,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,uBACb,IAAK,CAAEA,MAAO,wBAElB2yK,KAAM,CACF,GAAI,CAAE3yK,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,uBACb,IAAK,CAAEA,MAAO,wBAElBo6R,QAAS,CACL,GAAI,CAAEp6R,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,qBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,GAAI,CAAEA,MAAO,sBACb,IAAK,CAAEA,MAAO,uBAElBq6R,QAAS,CACL,GAAI,CAAEr6R,MAAO,0BACb,GAAI,CAAEA,MAAO,0BACb,GAAI,CAAEA,MAAO,0BACb,GAAI,CAAEA,MAAO,0BACb,GAAI,CAAEA,MAAO,0BACb,GAAI,CAAEA,MAAO,0BACb,IAAK,CAAEA,MAAO,4BAElBs6R,UAAW,CACP,GAAI,CAAEt6R,MAAO,4BACb,GAAI,CAAEA,MAAO,4BACb,GAAI,CAAEA,MAAO,4BACb,GAAI,CAAEA,MAAO,4BACb,GAAI,CAAEA,MAAO,4BACb,GAAI,CAAEA,MAAO,4BACb,IAAK,CAAEA,MAAO,8BAElBswD,KAAM,CACF+pO,QAAS,CAAEr6R,MAAO,8BAClBs6R,UAAW,CAAEt6R,MAAO,6BACpBu6R,SAAU,CAAEv6R,MAAO,6BACnB0jF,SAAU,CAAE1jF,MAAO,6BACnBw6R,QAAS,CAAEx6R,MAAO,wBAClBy6R,YAAa,CAAEz6R,MAAO,6BAItB06R,MAAO,CAAE16R,MAAO,6BAEhBw7F,MAAO,CAAEx7F,MAAO,8BAChB26R,OAAQ,CAAE36R,MAAO,8BACjBy9C,KAAM,CAAEz9C,MAAO,0BACf+5H,QAAS,CAAE/5H,MAAO,4BAClBu9C,MAAO,CAAEv9C,MAAO,yBAChB46R,QAAS,CAAE56R,MAAO,4BAEtB+gC,WAAY,CACRs5P,QAAS,CAAEr6R,MAAO,wBAClBs6R,UAAW,CAAEt6R,MAAO,6BACpBu6R,SAAU,CAAEv6R,MAAO,6BACnB66R,WAAY,CAAE76R,MAAO,6BACrB0jF,SAAU,CAAE1jF,MAAO,sCACnBy9C,KAAM,CAAEz9C,MAAO,0BACf+5H,QAAS,CAAE/5H,MAAO,4BAClBu9C,MAAO,CAAEv9C,MAAO,yBAChB46R,QAAS,CAAE56R,MAAO,4BAEtBogD,OAAQ,CACJi6O,QAAS,CAAEr6R,MAAO,6BAClBs6R,UAAW,CAAEt6R,MAAO,6BACpBu6R,SAAU,CAAEv6R,MAAO,6BACnB0jF,SAAU,CAAE1jF,MAAO,kCACnB86R,QAAS,CAAE96R,MAAO,8BAElBw7F,MAAO,CAAEx7F,MAAO,8BAChBu9C,MAAO,CAAEv9C,MAAO,yBAChBy9C,KAAM,CAAEz9C,MAAO,0BACf46R,QAAS,CAAE56R,MAAO,2BAClB+5H,QAAS,CAAE/5H,MAAO,6BAEtBslC,OAAQ,CACJ+0P,QAAS,CAAEr6R,MAAO,6BAClBs6R,UAAW,CAAEt6R,MAAO,6BACpBu6R,SAAU,CAAEv6R,MAAO,8BAEvB8+L,QAAS,CACL,EAAG,CAAE9+L,MAAO,yBACZ,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,wBACb,GAAI,CAAEA,MAAO,yBAEjBssK,MAAO,CAAEtsK,MAAO,kBAChBs0K,MAAO,CAAEt0K,MAAO,oBAChB+6R,YAAa,CAAE/6R,MAAO,gBClKpBg7R,GAAY,CACdC,KAAM,CAAEj7R,MAAO,YACfk7R,IAAK,CAAEl7R,MAAO,UACdm7R,GAAI,CAAEn7R,MAAO,WACbi6R,MAAO,CAAEj6R,MAAO,YAChBk6R,OAAQ,CAAEl6R,MAAO,QACjBm6R,MAAO,CAAEn6R,MAAO,WAChBgxQ,GAAI,CAAEhxQ,MAAO,UACbo7R,IAAK,CAAEp7R,MAAO,QACdq7R,KAAM,CAAEr7R,MAAO,UACfs7R,MAAO,CAAEt7R,MAAO,SCVdu7R,GAAc,CAChBC,SAAU,CAAEx7R,MAAO,KACnBy7R,KAAM,CAAEz7R,MAAO,KACfy9E,MAAO,CAAEz9E,MAAO,KAChBy6J,OAAQ,CAAEz6J,MAAO,KACjBk6R,OAAQ,CAAEl6R,MAAO,KACjB07R,SAAU,CAAE17R,MAAO,KACnB27R,KAAM,CAAE37R,MAAO,KACf47R,UAAW,CAAE57R,MAAO,KACpBssK,MAAO,CAAEtsK,MAAO,MCTd67R,GAAY,CACd,EAAG,CAAE77R,MAAO,KACZ,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,GAAI,CAAEA,MAAO,OACb,IAAK,CAAEA,MAAO,MCXZ87R,GAAQ,CACVX,GAAI,CAAEn7R,MAAO,YACbi6R,MAAO,CAAEj6R,MAAO,WAChBk6R,OAAQ,CAAEl6R,MAAO,UACjBm6R,MAAO,CAAEn6R,MAAO,QAChBgxQ,GAAI,CAAEhxQ,MAAO,QACbo7R,IAAK,CAAEp7R,MAAO,QACdq7R,KAAM,CAAEr7R,MAAO,SCPbi0J,GAAQ,CACV8nI,KAAM,CAAE/7R,MAAO,KACfi7R,KAAM,CAAEj7R,MAAO,WACfk7R,IAAK,CAAEl7R,MAAO,YACdm7R,GAAI,CAAEn7R,MAAO,UACbi6R,MAAO,CAAEj6R,MAAO,WAChBk6R,OAAQ,CAAEl6R,MAAO,QACjBm6R,MAAO,CAAEn6R,MAAO,UAChBgxQ,GAAI,CAAEhxQ,MAAO,UACbo7R,IAAK,CAAEp7R,MAAO,UACdq7R,KAAM,CAAEr7R,MAAO,UACfujI,SAAU,CAEN03J,KAAM,CAAEj7R,MAAO,UACfk7R,IAAK,CAAEl7R,MAAO,WACdm7R,GAAI,CAAEn7R,MAAO,SACbi6R,MAAO,CAAEj6R,MAAO,UAChBk6R,OAAQ,CAAEl6R,MAAO,OACjBm6R,MAAO,CAAEn6R,MAAO,SAChBgxQ,GAAI,CAAEhxQ,MAAO,SACbo7R,IAAK,CAAEp7R,MAAO,SACdq7R,KAAM,CAAEr7R,MAAO,SACfg8R,KAAM,CAAEh8R,MAAO,UCtBjB8mC,GAAO,CACTm1P,MAAO,CAAEj8R,MAAO,SAChBk6R,OAAQ,CAAEl6R,MAAO,SACjBk8R,KAAM,CAAEl8R,MAAO,UCAbm8R,GAAe,CACjBhwQ,OCYW,CACXiwQ,WCqCe,CACfC,UCvDc,CACdr/P,gBAAiB,CAAEh9B,MAAO,qCAC1BgE,KAAM,CACF2zR,YAAa,CAAE33R,MAAO,mCACtB43R,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtB4nO,aAAc,CAAE5nO,MAAO,uBACvBs8R,QAAS,CACLjF,WAAY,CAAEr3R,MAAO,UACrBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1BuyB,MAAO,CAAEvyB,MAAO,WAChBm4R,IAAK,CAAEn4R,MAAO,uBACdq4R,eAAgB,CAAEr4R,MAAO,iBACzBi5R,aAAc,CAAEj5R,MAAO,oBACvBo5R,cAAe,CAAEp5R,MAAO,uBACxBu8R,OAAQ,CACJhqQ,MAAO,CAAEvyB,MAAO,WAChBg9B,gBAAiB,CAAEh9B,MAAO,6BAE9Bw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CACP1oC,MAAO,CACHulC,QAAS,IACTC,QAAS,IACTi3P,WAAY,IACZC,aAAc,MACdnqQ,MAAO,kCAKvBtlB,QAAS,CACLslB,MAAO,CAAEvyB,MAAO,WAChBo5R,cAAe,CAAEp5R,MAAO,uBACxBk5R,gBAAiB,CAAEl5R,MAAO,uBAC1Bm5R,kBAAmB,CAAEn5R,MAAO,uBAEhC07L,KAAM,CACFnpK,MAAO,CAAEvyB,MAAO,gCAChB28R,mBAAoB,CAAE38R,MAAO,uBAC7B48R,yBAA0B,CAAE58R,MAAO,qCDe3C4oH,MExDU,CAEVyuK,WAAY,CAAEr3R,MAAO,UACrBq4R,eAAgB,CAAEr4R,MAAO,iBACzBuyB,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,sCAC1Bi5R,aAAc,CAAEj5R,MAAO,uBACvBo5R,cAAe,CAAEp5R,MAAO,wBACxB07L,KAAM,CACF3jL,KAAM,CAAE/X,MAAO,yBAEnB60J,QAAS,CACLzwH,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,6BAGzBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,4BAChBg9B,gBAAiB,CAAEh9B,MAAO,mCAE9Bu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,oCAE9B+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,sCAE9B46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,uCF2B9B68R,cGzDkB,CAClBz2G,SAAU,CAAEpmL,MAAO,SACnB88R,MAAO,CACH/hR,MAAO,CAAE/a,MAAO,yBAChBgb,OAAQ,CAAEhb,MAAO,yBACjBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1B8a,IAAK,CAAE9a,MAAO,gBACd6a,KAAM,CAAE7a,MAAO,iBAEnBs2C,UAAW,CACPymP,SAAU,CAAE/8R,MAAO,UAEvByiI,OAAQ,CACJm1J,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,iCACtBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B0oC,UAAW,CAAE1oC,MAAO,2BAExBg9R,OAAQ,CACJ93P,cAAe,CAAEllC,MAAO,yBAE5B87G,KAAM,CACF5tD,QAAS,CAAEluD,MAAO,qBAEtByuG,MAAO,CACHwuL,SAAU,CACNjgQ,gBAAiB,CAAEh9B,MAAO,yCAGlCk9R,YAAa,CACT3qQ,MAAO,CAAEvyB,MAAO,6BAChBm9R,OAAQ,CACJngQ,gBAAiB,CAAEh9B,MAAO,wCHyBlC03O,aI1DiB,CACjB/7C,KAAM,CACF5gL,MAAO,CAAE/a,MAAO,QAChBw4R,iBAAkB,CAAEx4R,MAAO,gBAC3Bg9B,gBAAiB,CAAEh9B,MAAO,+BAC1B23R,YAAa,CAAE33R,MAAO,2BACtB43R,YAAa,CAAE53R,MAAO,wBACtB63R,YAAa,CAAE73R,MAAO,SACtB4nO,aAAc,CAAE5nO,MAAO,iBACvBjB,QAAS,CACL2kC,QAAS,CAAE1jC,MAAO,QAClBo9R,cAAe,CAAEp9R,MAAO,UACxB44R,UAAW,CAAE54R,MAAO,UAExBo1C,OAAQ,CACJpY,gBAAiB,CAAEh9B,MAAO,+BAC1BuyB,MAAO,CAAEvyB,MAAO,gBAChB6nO,OAAQ,CAAE7nO,MAAO,WACjB28R,mBAAoB,CAAE38R,MAAO,gBAC7B0+C,mBAAoB,CAAE1+C,MAAO,2BAC7B48R,yBAA0B,CAAE58R,MAAO,QACnCq9R,QAAS,CACLrgQ,gBAAiB,CAAEh9B,MAAO,uBAC1BuyB,MAAO,CAAEvyB,MAAO,oBAGxBs9R,OAAQ,CACJ55P,QAAS,CAAE1jC,MAAO,SAEtBu9R,SAAU,CACNlG,WAAY,CAAEr3R,MAAO,UACrB0jC,QAAS,CAAE1jC,MAAO,QAClBm4R,IAAK,CAAEn4R,MAAO,iBAElBw9R,YAAa,CACTvE,aAAc,CAAEj5R,MAAO,cACvBo5R,cAAe,CAAEp5R,MAAO,oBJuBhCy9R,MK3DU,CAEVlrQ,MAAO,CAAEvyB,MAAO,+BAChBkkC,WAAY,CAAElkC,MAAO,GACrBsnC,WAAY,CAAEtnC,MAAO,gCACrBokC,SAAU,CAAEpkC,MAAO,2BACnBolC,UAAW,CAAEplC,MAAO,UACpB09R,gBAAiB,CAAE19R,MAAO,oBAC1B29R,kBAAmB,CAAE39R,MAAO,uBAC5Bg9B,gBAAiB,CAAEh9B,MAAO,sCAE1B4nO,aAAc,CAAE5nO,MAAO,oBAEvBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,4BAChBg9B,gBAAiB,CAAEh9B,MAAO,mCAE9B+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,sCAE9B46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,sCAE9Bu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,oCAG9Bi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,wBACnB09R,gBAAiB,CAAE19R,MAAO,qBAC1B29R,kBAAmB,CAAE39R,MAAO,qBAGhCm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,4BACnB09R,gBAAiB,CAAE19R,MAAO,uBAC1B29R,kBAAmB,CAAE39R,MAAO,0BLqBhC49R,YM5DgB,CAChBR,cAAe,CAAEp9R,MAAO,OACxB69R,SAAU,CAAE79R,MAAO,QACnBm4R,IAAK,CAAEn4R,MAAO,KACduyB,MAAO,CAAEvyB,MAAO,0BAChBgE,KAAM,CACFo5R,cAAe,CAAEp9R,MAAO,OACxBuyB,MAAO,CAAEvyB,MAAO,WAChBokC,SAAU,CAAEpkC,MAAO,WACnBq3R,WAAY,CAAEr3R,MAAO,UACrBkkC,WAAY,CAAElkC,MAAO,MAEzB4/C,UAAW,CACPrtB,MAAO,CAAEvyB,MAAO,WAChBokC,SAAU,CAAEpkC,MAAO,WACnBo5R,cAAe,CAAEp5R,MAAO,gBAE5B2hD,KAAM,CACFpvB,MAAO,CAAEvyB,MAAO,2BAChBokC,SAAU,CAAEpkC,MAAO,WACnBsnC,WAAY,CAAEtnC,MAAO,UACrBwpC,eAAgB,CAAExpC,MAAO,QACzBo5R,cAAe,CAAEp5R,MAAO,cACxBi5R,aAAc,CAAEj5R,MAAO,eACvBkkB,QAAS,CACLqO,MAAO,CAAEvyB,MAAO,WAChBokC,SAAU,CAAEpkC,MAAO,WACnBsnC,WAAY,CAAEtnC,MAAO,UACrBwpC,eAAgB,CAAExpC,MAAO,WNiCjCqzF,OO7DW,CAEX/rD,WAAY,CAAEtnC,MAAO,4BACrB28R,mBAAoB,CAChB38R,MAAO,sDAEXokC,SAAU,CAAEpkC,MAAO,4CACnBkkC,WAAY,CAAElkC,MAAO,8CACrBm5R,kBAAmB,CACfn5R,MAAO,qDAEXk5R,gBAAiB,CACbl5R,MAAO,mDAEXs5R,mBAAoB,CAChBt5R,MAAO,sDAEXq5R,iBAAkB,CACdr5R,MAAO,oDAEXg9B,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,+CACtB43R,YAAa,CAAE53R,MAAO,+CACtB63R,YAAa,CAAE73R,MAAO,+CACtB4nO,aAAc,CAAE5nO,MAAO,gDACvBuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJhqQ,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1B23R,YAAa,CAAE33R,MAAO,8BAE1Bw8R,OAAQ,CACJjqQ,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1B23R,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CAAE1oC,MAAO,qDAExBq9R,QAAS,CACL9qQ,MAAO,CAAEvyB,MAAO,8BAChBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1B23R,YAAa,CAAE33R,MAAO,+BAE1Bu9R,SAAU,CACNhrQ,MAAO,CAAEvyB,MAAO,gCAChBg9B,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mCAE1B89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,gCAChBg9B,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mCAG1B+9R,SAAU,CACNtgP,KAAM,CACFk6O,YAAa,CAAE33R,MAAO,0BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,qBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,0BACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,4BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,2BACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,2BAChB0oC,UAAW,CACP1oC,MAAO,0DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,2BACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAGxB+5H,QAAS,CACL49J,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,uBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAGxB46R,QAAS,CACLjD,YAAa,CAAE33R,MAAO,2BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,sBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,2BACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,4BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAGxBu9C,MAAO,CACHo6O,YAAa,CAAE33R,MAAO,yBACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,oBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,yBACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,2BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,0BACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,0BAChB0oC,UAAW,CACP1oC,MAAO,4DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,0BACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,4BAGxB8+L,QAAS,CACL64F,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAI5Bq6R,QAAS,CACL1C,YAAa,CAAE33R,MAAO,eACtB43R,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,sCAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpBu9R,SAAU,CACN5F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,sCAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CAAE1oC,MAAO,qDAExBq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBy9C,KAAM,CACFk6O,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,oBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CACP1oC,MAAO,0DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAGxB+5H,QAAS,CACL49J,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,sBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAGxBu9C,MAAO,CACHo6O,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CACP1oC,MAAO,4DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAGxB46R,QAAS,CACLjD,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,qBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAGxB8+L,QAAS,CACL64F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,uBAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,kCAI5B27L,KAAM,CACFi8F,YAAa,CAAE53R,MAAO,sBACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1Bq4R,eAAgB,CAAEr4R,MAAO,SAIzBu8R,OAAQ,CACJhqQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,8BAE9Bw8R,OAAQ,CACJjqQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,8BAE9Bq9R,QAAS,CACL9qQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,8BAE9B89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,kCAGxB2hD,KAAM,CACF3kB,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,eACtB43R,YAAa,CAAE53R,MAAO,8BACtBuyB,MAAO,CAAEvyB,MAAO,mCAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChB0oC,UAAW,CAAE1oC,MAAO,qDAExBq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAEpB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpBu9R,SAAU,CACN5F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpBy9C,KAAM,CACFk6O,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,qBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,2BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,2BAChB0oC,UAAW,CACP1oC,MAAO,0DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,0BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAGxB+5H,QAAS,CACL49J,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,uBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,+BAGxB46R,QAAS,CACLjD,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,sBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,4BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,4BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,2BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAGxBu9C,MAAO,CACHo6O,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,oBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,0BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,0BAChB0oC,UAAW,CACP1oC,MAAO,4DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,yBAC1BuyB,MAAO,CAAEvyB,MAAO,4BAGxB8+L,QAAS,CACL64F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,wBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,4BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChB0oC,UAAW,CACP1oC,MAAO,6DAGfq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAI5B+5H,QAAS,CACL/8F,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mBACtB43R,YAAa,CAAE53R,MAAO,wBACtBuyB,MAAO,CAAEvyB,MAAO,mBAChBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,mBACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,wBAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,mBACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,mBAChB0oC,UAAW,CAAE1oC,MAAO,sDAExBq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,oBACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,qBAEpB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,2BAEpBu9R,SAAU,CACN5F,YAAa,CAAE33R,MAAO,4BACtBg9B,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,4BAGxBg+R,YAAa,CACTrG,YAAa,CAAE33R,MAAO,eACtB43R,YAAa,CAAE53R,MAAO,wBACtB63R,YAAa,CAAE73R,MAAO,SACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,yBAChB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,gCAC1BuyB,MAAO,CAAEvyB,MAAO,2BAEpBu9R,SAAU,CACN5F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,gCAC1BuyB,MAAO,CAAEvyB,MAAO,2BAEpBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,0BAEpBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,mBAC1BuyB,MAAO,CAAEvyB,MAAO,yBAChB0oC,UAAW,CAAE1oC,MAAO,sDAExBq9R,QAAS,CACL1F,YAAa,CAAE33R,MAAO,eACtBg9B,gBAAiB,CAAEh9B,MAAO,oBAC1BuyB,MAAO,CAAEvyB,MAAO,2BAIxBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,kDACnBm5R,kBAAmB,CACfn5R,MAAO,2DAEXk5R,gBAAiB,CACbl5R,MAAO,yDAEXs5R,mBAAoB,CAChBt5R,MAAO,4DAEXq5R,iBAAkB,CACdr5R,MAAO,2DAGfm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,kDACnBm5R,kBAAmB,CACfn5R,MAAO,2DAEXk5R,gBAAiB,CACbl5R,MAAO,yDAEXs5R,mBAAoB,CAChBt5R,MAAO,4DAEXq5R,iBAAkB,CACdr5R,MAAO,2DAGfi+R,cAAe,CACX5G,WAAY,CACRr3R,MAAO,UAEXm4R,IAAK,CACDn4R,MAAO,sBP/gBfk+R,KQ9DS,CACTlhQ,gBAAiB,CAAEh9B,MAAO,qCAC1B4nO,aAAc,CAAE5nO,MAAO,oBACvB43R,YAAa,CAAE53R,MAAO,KACtB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,eACtB0oC,UAAW,CAAE1oC,MAAO,QACpBkuD,QAAS,CAAEluD,MAAO,wBAClB+9R,SAAU,CACN/gQ,gBAAiB,CAAEh9B,MAAO,2CAC1B4nO,aAAc,CAAE5nO,MAAO,oBACvB43R,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,iCACtB0oC,UAAW,CAAE1oC,MAAO,sCAExBm+R,SAAU,CACNnhQ,gBAAiB,CAAEh9B,MAAO,2CAC1B4nO,aAAc,CAAE5nO,MAAO,oBACvB43R,YAAa,CAAE53R,MAAO,KACtB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,eACtB0oC,UAAW,CAAE1oC,MAAO,4BRyCxBi8J,SS/Da,CACb4rE,OAAQ,CAAE7nO,MAAO,WACjBq3R,WAAY,CAAEr3R,MAAO,UACrB89R,UAAW,CACPj2D,OAAQ,CACJ7nO,MAAO,gBAGfqzF,OAAQ,CACJ1yD,SAAU,CAAE3gC,MAAO,YACnBq3R,WAAY,CAAEr3R,MAAO,UACrBq4R,eAAgB,CAAEr4R,MAAO,UACzBuyB,MAAO,CAAEvyB,MAAO,+BAChBykB,OAAQ,CACJ1J,MAAO,CAAE/a,MAAO,QAChBgb,OAAQ,CAAEhb,MAAO,QACjB43R,YAAa,CAAE53R,MAAO,+BACtB4nO,aAAc,CAAE5nO,MAAO,OACvB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,kCAE1Bw8R,OAAQ,CACJ4B,aAAc,CAAEp+R,MAAO,8BACvBq+R,aAAc,CAAEr+R,MAAO,SACvBs+R,aAAc,CAAEt+R,MAAO,gCACvBu+R,cAAe,CAAEv+R,MAAO,iCACxB23R,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CAAE1oC,MAAO,qDAExB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,mCAE1Bw+R,OAAQ,CACJ7G,YAAa,CAAE33R,MAAO,+BACtBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CACP1oC,MAAO,8DAKvB07L,KAAM,CACF1+J,gBAAiB,CAAEh9B,MAAO,6BAC1B4nO,aAAc,CAAE5nO,MAAO,OACvB+mC,QAAS,CAAE/mC,MAAO,uBAClBX,UAAW,CAAEW,MAAO,YACpB0+C,mBAAoB,CAAE1+C,MAAO,OAC7B28R,mBAAoB,CAAE38R,MAAO,sBAC7B48R,yBAA0B,CAAE58R,MAAO,eACnCy+R,SAAU,CACN13P,QAAS,CAAE/mC,MAAO,yBAClBX,UAAW,CAAEW,MAAO,YACpB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,wCAGlC0+R,eAAgB,CACZ33P,QAAS,CAAE/mC,MAAO,yBAClBX,UAAW,CAAEW,MAAO,YACpB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,yCAItC+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,iCAChB89R,UAAW,CACPvrQ,MAAO,CACHvyB,MAAO,mCTLnB2+R,cUhEkB,CAClBtH,WAAY,CAAEr3R,MAAO,cACrBo3R,aAAc,CAAEp3R,MAAO,UACvBo9R,cAAe,CAAEp9R,MAAO,UACxBq4R,eAAgB,CAAEr4R,MAAO,WV6DzBgnP,WW/De,CACf43C,WAAY,CACR16Q,QAAS,CACLqO,MAAO,CAAEvyB,MAAO,yCAChBg9B,gBAAiB,CACbh9B,MAAO,oDAGfqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,wCAChBu8R,OAAQ,CACJv/P,gBAAiB,CACbh9B,MAAO,wDAEXuyB,MAAO,CAAEvyB,MAAO,+CAEpB89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,oDAI5Bq4F,OAAQ,CACJv5F,MAAO,CACHyzB,MAAO,CAAEvyB,MAAO,mCAEpBqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,yCAChBq9R,QAAS,CACLrgQ,gBAAiB,CACbh9B,MAAO,2DAEX23R,YAAa,CACT33R,MAAO,uDAEXuyB,MAAO,CAAEvyB,MAAO,kDAEpB89R,UAAW,CACP9gQ,gBAAiB,CACbh9B,MAAO,6DAEX23R,YAAa,CACT33R,MAAO,yDAEXuyB,MAAO,CACHvyB,MAAO,oDAGfw8R,OAAQ,CACJx/P,gBAAiB,CACbh9B,MAAO,0DAEX23R,YAAa,CACT33R,MAAO,sDAEXuyB,MAAO,CAAEvyB,MAAO,iDAEpBu8R,OAAQ,CACJv/P,gBAAiB,CACbh9B,MAAO,0DAEX23R,YAAa,CACT33R,MAAO,sDAEXuyB,MAAO,CAAEvyB,MAAO,oDXC5BqiE,KYlES,CACTj+B,SAAU,CAAEpkC,MAAO,kBACnBm4R,IAAK,CAAEn4R,MAAO,2BACd8I,IAAK,CACDu8C,KAAM,CACFgM,KAAM,CACFrxD,MAAO,2BAInB6+R,QAAS,CACLplG,OAAQ,CAAEz5L,MAAO,iBACjBuyB,MAAO,CAAEvyB,MAAO,qBAChBokC,SAAU,CAAEpkC,MAAO,qBZsDvB8+R,kBanEmB,CACnB9jR,OAAQ,CACJhb,MAAO,gCbkEX++R,QcpEY,CACZlH,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,iCACtB43R,YAAa,CAAE53R,MAAO,+BACtB+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,gCAChBo5R,cAAe,CAAEp5R,MAAO,wBACxBokC,SAAU,CAAEpkC,MAAO,2BACnBg9B,gBAAiB,CAAEh9B,MAAO,sCAE9Bi6R,MAAO,CACHrC,YAAa,CAAE53R,MAAO,+BAE1Bm6R,MAAO,CACHvC,YAAa,CAAE53R,MAAO,+BAE1B+mC,QAAS,CACL/mC,MAAO,yBdoDXg/R,SerEa,CACbhiQ,gBAAiB,CAAEh9B,MAAO,+BAC1B4nO,aAAc,CAAE5nO,MAAO,iBACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,UACtB43R,YAAa,CAAE53R,MAAO,wBACtBuyB,MAAO,CAAEvyB,MAAO,yBAChBm4R,IAAK,CAAEn4R,MAAO,iBACdi5R,aAAc,CAAEj5R,MAAO,cACvBo5R,cAAe,CAAEp5R,MAAO,iBACxBolC,UAAW,CAAEplC,MAAO,UACpBq9R,QAAS,CACLrgQ,gBAAiB,CAAEh9B,MAAO,uBAC1B4nO,aAAc,CAAE5nO,MAAO,sCACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,qCACtB43R,YAAa,CAAE53R,MAAO,qCACtBuyB,MAAO,CAAEvyB,MAAO,0BAEpB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,gCAC1B4nO,aAAc,CAAE5nO,MAAO,sCACvB23R,YAAa,CAAE33R,MAAO,4BACtB63R,YAAa,CAAE73R,MAAO,qCACtB43R,YAAa,CAAE53R,MAAO,qCACtBuyB,MAAO,CAAEvyB,MAAO,2BAEpBypN,SAAU,CACNzsL,gBAAiB,CAAEh9B,MAAO,+BAC1B4nO,aAAc,CAAE5nO,MAAO,sCACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,qCACtB43R,YAAa,CAAE53R,MAAO,qCACtBuyB,MAAO,CAAEvyB,MAAO,0BAEpBwZ,SAAU,CACNwjB,gBAAiB,CAAEh9B,MAAO,6BAC1B4nO,aAAc,CAAE5nO,MAAO,sCACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,qCACtB43R,YAAa,CAAE53R,MAAO,qCACtBuyB,MAAO,CAAEvyB,MAAO,yBf6BpBggI,MgBtEU,CAEVm4J,IAAK,CAAEn4R,MAAO,oBACdokC,SAAU,CAAEpkC,MAAO,4BACnBo9R,cAAe,CAAEp9R,MAAO,UAExBi6R,MAAO,CACH9B,IAAK,CAAEn4R,MAAO,sBACdokC,SAAU,CAAEpkC,MAAO,4BAEvBm6R,MAAO,CACHhC,IAAK,CAAEn4R,MAAO,uBACdokC,SAAU,CAAEpkC,MAAO,4BAEvB+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,mChBwDpBi/R,aiBvEiB,CACjBpH,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,iCACtB43R,YAAa,CAAE53R,MAAO,8BACtB4nO,aAAc,CAAE5nO,MAAO,uBACvBuyB,MAAO,CAAEvyB,MAAO,+BAChBm5R,kBAAmB,CACfn5R,MAAO,oBAEXk5R,gBAAiB,CACbl5R,MAAO,oBAEXs5R,mBAAoB,CAChBt5R,MAAO,wBAEXq5R,iBAAkB,CACdr5R,MAAO,wBAEXokC,SAAU,CAAEpkC,MAAO,qCACnBkkC,WAAY,CAAElkC,MAAO,8BACrB28R,mBAAoB,CAAE38R,MAAO,uBAC7Bo+R,aAAc,CAAEp+R,MAAO,8BACvBq+R,aAAc,CAAEr+R,MAAO,SACvBs+R,aAAc,CAAEt+R,MAAO,gCACvBu+R,cAAe,CAAEv+R,MAAO,iCACxBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,2CACnBm5R,kBAAmB,CACfn5R,MAAO,qBAEXk5R,gBAAiB,CACbl5R,MAAO,qBAEXs5R,mBAAoB,CAChBt5R,MAAO,uBAEXq5R,iBAAkB,CACdr5R,MAAO,wBAGfm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,2CACnBm5R,kBAAmB,CACfn5R,MAAO,oBAEXk5R,gBAAiB,CACbl5R,MAAO,oBAEXs5R,mBAAoB,CAChBt5R,MAAO,wBAEXq5R,iBAAkB,CACdr5R,MAAO,yBAGfk/R,MAAO,CACHrH,YAAa,CAAE73R,MAAO,QACtBm/R,kBAAmB,CAAEn/R,MAAO,QAC5Bo/R,gBAAiB,CAAEp/R,MAAO,QAC1Bq/R,iBAAkB,CAAEr/R,MAAO,QAC3B4nO,aAAc,CAAE5nO,MAAO,KACvBw8R,OAAQ,CACJ8C,oBAAqB,CAAEt/R,MAAO,eAC9B0oC,UAAW,CACP1oC,MAAO,qDAGfw+R,OAAQ,CACJc,oBAAqB,CAAEt/R,MAAO,+BAC9Bw8R,OAAQ,CACJ8C,oBAAqB,CAAEt/R,MAAO,eAC9B0oC,UAAW,CACP1oC,MAAO,8DAKvBw8R,OAAQ,CAUJ7E,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,iCAInBurQ,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,gCAChB6nO,OAAQ,CAAE7nO,MAAO,eACjB23R,YAAa,CAAE33R,MAAO,8BACtBg9B,gBAAiB,CAAEh9B,MAAO,uCAE9Bw+R,OAAQ,CACJ7G,YAAa,CAAE33R,MAAO,+BACtBuyB,MAAO,CAAEvyB,MAAO,6BAChBw8R,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,kCAKvBkrB,KAAM,CACF++O,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,8BAKvBwnG,QAAS,CACLyiK,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,gCAKvBqoQ,QAAS,CACL4B,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,+BAKvBusK,QAAS,CACL09F,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,MACdnqQ,MAAO,iCjB9FvBgtQ,WkBxEe,CACfpH,IAAK,CAAEn4R,MAAO,sBACdw/R,SAAU,CACNnI,WAAY,CAAEr3R,MAAO,WAEzB+9I,MAAO,CACHs5I,WAAY,CAAEr3R,MAAO,YlBmEzBy/R,cmBzEkB,CAClBliP,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBokC,SAAU,CAAEpkC,MAAO,4BAEvBs8M,YAAa,CACT/pL,MAAO,CAAEvyB,MAAO,iCAChBwnC,UAAW,CAAExnC,MAAO,UACpBokC,SAAU,CAAEpkC,MAAO,6BnBkEvB0/R,SoB1Ea,CACb1iQ,gBAAiB,CAAEh9B,MAAO,eAC1B4nO,aAAc,CAAE5nO,MAAO,oBACvBo9R,cAAe,CACXp9R,MAAO,UAEXm4R,IAAK,CAAEn4R,MAAO,gCACd2/R,OAAQ,CACJptQ,MAAO,CAAEvyB,MAAO,+BAChBokC,SAAU,CAAEpkC,MAAO,qCACnBsnC,WAAY,CAAEtnC,MAAO,4BACrBkkC,WAAY,CAAElkC,MAAO,8BACrBi6R,MAAO,CACH71P,SAAU,2CAEd+1P,MAAO,CACH/1P,SAAU,4CAGlB25P,SAAU,CACN7vO,QAAS,uBACTypO,YAAa,4BACbC,YAAa,6BACbC,YAAa,QACboC,MAAO,CACH/rO,QAAS,uBAEbisO,MAAO,CACHjsO,QAAS,wBAGjB+rO,MAAO,CACH9B,IAAK,sCAETgC,MAAO,CACHhC,IAAK,uCpBwCT9yM,KqB3ES,CACT8yM,IAAK,CAAEn4R,MAAO,wBACdq4R,eAAgB,CAAEr4R,MAAO,UACzBq3R,WAAY,CAAEr3R,MAAO,WACrBo3R,aAAc,CAAEp3R,MAAO,UACvB69R,SAAU,CAAE79R,MAAO,WrBuEnB60J,QsB5EY,CACZtiI,MAAO,CAAEvyB,MAAO,+BAChBkkC,WAAY,CAAElkC,MAAO,6BACrB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,2BACnBsnC,WAAY,CAAEtnC,MAAO,8BAEzB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,0BACnBsnC,WAAY,CAAEtnC,MAAO,+BAEzB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,yBACnBsnC,WAAY,CAAEtnC,MAAO,+BAEzB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,wBACnBsnC,WAAY,CAAEtnC,MAAO,iCAEzB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,2BACnBsnC,WAAY,CAAEtnC,MAAO,6BAEzB,EAAG,CACCokC,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,mCtBoDzB07L,KuB7ES,CACTx3J,WAAY,CAAElkC,MAAO,GACrBgb,OAAQ,CAAEhb,MAAO,QvB4EjB4/R,ewB9EmB,CACnBC,YAAa,CACTv4P,WAAY,CAAEtnC,MAAO,wBxB6EzBihC,MyB/EU,CACVmlJ,SAAU,CAAEpmL,MAAO,QACnBgb,OAAQ,CAAEhb,MAAO,QACjB+4R,UAAW,CAAE/4R,MAAO,WACpBg5R,eAAgB,CAAEh5R,MAAO,YzB4EzB8/R,e0BhFmB,CACnBC,OAAQ,CACJ/kR,OAAQ,CAAEhb,MAAO,UACjB+a,MAAO,CAAE/a,MAAO,WAEpBqzF,OAAQ,CACJr2D,gBAAiB,CAAEh9B,MAAO,WAC1B4nO,aAAc,CAAE5nO,MAAO,OACvBuyB,MAAO,CAAEvyB,MAAO,UAEpBggS,OAAQ,CACJhlR,OAAQ,CAAEhb,MAAO,QACjB64R,UAAW,CAAE74R,MAAO,SACpB84R,SAAU,CAAE94R,MAAO,SACnB+a,MAAO,CAAE/a,MAAO,SAEpBiwH,OAAQ,CACJ7rF,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,mC1B+DzBlB,M2BjFU,CACVyzB,MAAO,CAAEvyB,MAAO,yCAChB23R,YAAa,CAAE33R,MAAO,+CACtBokC,SAAU,CAAEpkC,MAAO,4CACnBw8R,OAAQ,CACJ7E,YAAa,CACT33R,MAAO,wD3B4Ef2hD,K4BlFS,CACTg5O,OAAQ,CAAEpoQ,MAAO,CAAEvyB,MAAO,+BAC1BuyB,MAAO,CAAEvyB,MAAO,mCAChBw7F,MAAO,CAAEjpE,MAAO,CAAEvyB,MAAO,8BACzB06R,MAAO,CAAEnoQ,MAAO,CAAEvyB,MAAO,8BACzBigS,QAAS,CAAE1tQ,MAAO,CAAEvyB,MAAO,qC5B8E3BkgS,S6BnFa,CACbC,aAAc,CACVnjQ,gBAAiB,CAAEh9B,MAAO,uC7BkF9BymI,O8BpFW,CACX1rH,MAAO,CAAE/a,MAAO,4BAChBgb,OAAQ,CAAEhb,MAAO,4BACjBokC,SAAU,CAAEpkC,MAAO,wBACnBogS,YAAa,CAAEpgS,MAAO,6BACtBqgS,aAAc,CAAErgS,MAAO,6BACvBsgS,cAAe,CAAEtgS,MAAO,SACxBmpC,kBAAmB,CAAEnpC,MAAO,MAC5Bi6R,MAAO,CACHl/Q,MAAO,CAAE/a,MAAO,2BAChBgb,OAAQ,CAAEhb,MAAO,2BACjBokC,SAAU,CAAEpkC,MAAO,0BAEvBm6R,MAAO,CACHp/Q,MAAO,CAAE/a,MAAO,2BAChBgb,OAAQ,CAAEhb,MAAO,2BACjBokC,SAAU,CAAEpkC,MAAO,4BAEvBugS,OAAQ,CACJxlR,MAAO,CAAE/a,MAAO,QAChB84R,SAAU,CAAE94R,MAAO,QACnBokC,SAAU,CAAEpkC,MAAO,yBACnBgnF,YAAa,CAAEhnF,MAAO,yBACtBqgS,aAAc,CAAErgS,MAAO,6BACvBogS,YAAa,CAAEpgS,MAAO,6BACtBsgS,cAAe,CAAEtgS,MAAO,SACxBmpC,kBAAmB,CAAEnpC,MAAO,MAC5Bi6R,MAAO,CACHjzM,YAAa,CAAEhnF,MAAO,0BACtBokC,SAAU,CAAEpkC,MAAO,2BAEvBm6R,MAAO,CACHnzM,YAAa,CAAEhnF,MAAO,wBACtBokC,SAAU,CAAEpkC,MAAO,0BAG3B4I,KAAM,CACFyoD,KAAM,CAAErxD,MAAO,iC9BgDnB27L,K+BrFS,CACT3+J,gBAAiB,CAAEh9B,MAAO,qCAC1B4nO,aAAc,CAAE5nO,MAAO,wBACvB43R,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtB23R,YAAa,CAAE33R,MAAO,iCACtB0oC,UAAW,CAAE1oC,MAAO,yBACpBo9R,cAAe,CAAEp9R,MAAO,UACxBm4R,IAAK,CAAEn4R,MAAO,sBACdomL,SAAU,CAAEpmL,MAAO,SACnB84R,SAAU,CAAE94R,MAAO,SACnBi6R,MAAO,CACHl/Q,MAAO,CAAE/a,MAAO,4BAChBgb,OAAQ,CAAEhb,MAAO,6BAErBm6R,MAAO,CACHp/Q,MAAO,CAAE/a,MAAO,0BAChBgb,OAAQ,CAAEhb,MAAO,2BAErBgE,KAAM,CACF60R,UAAW,CAAE74R,MAAO,UACpBs5R,mBAAoB,CAAEt5R,MAAO,wBAC7Bq5R,iBAAkB,CAAEr5R,MAAO,0B/BgE/BykE,QgCtFY,CAEZ4yN,WAAY,CAAEr3R,MAAO,UACrBg9B,gBAAiB,CAAEh9B,MAAO,sCAC1B23R,YAAa,CAAE33R,MAAO,eACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,8BACtB4nO,aAAc,CAAE5nO,MAAO,oBACvBuyB,MAAO,CAAEvyB,MAAO,+BAChBq4R,eAAgB,CAAEr4R,MAAO,cACzBi5R,aAAc,CAAEj5R,MAAO,uBACvBo5R,cAAe,CAAEp5R,MAAO,wBACxBkkC,WAAY,CAAElkC,MAAO,6BACrB07L,KAAM,CACF3jL,KAAM,CAAE/X,MAAO,yBAEnB60J,QAAS,CACLzwH,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,6BAEzBwgS,QAAS,CACLrI,IAAK,CAAEn4R,MAAO,sBAGlBygS,MAAO,CACHluQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,eACtBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,4BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1Bu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1B46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1B+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,iBAG9B+9R,SAAU,CACNxrQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,iCACtBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,4BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,+BAE1Bu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gCAE1B46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,kCAE1B+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,mCAG9B0gS,OAAQ,CACJnuQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,uCAC1B23R,YAAa,CAAE33R,MAAO,eACtBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,4BAChBg9B,gBAAiB,CAAEh9B,MAAO,kCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1Bu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,mCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1B46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gBAE1B+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,kBhCT9B4+R,WiCvFe,CACf16Q,QAAS,CACLmzQ,WAAY,CAAEr3R,MAAO,UACrBq4R,eAAgB,CAAEr4R,MAAO,UACzBuyB,MAAO,CAAEvyB,MAAO,+BAChBokC,SAAU,CAAEpkC,MAAO,2BACnBg9B,gBAAiB,CAAEh9B,MAAO,8BAE9BqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,+BAChBs5R,mBAAoB,CAAEt5R,MAAO,qBAC7Bq5R,iBAAkB,CAAEr5R,MAAO,qBAC3B0+C,mBAAoB,CAAE1+C,MAAO,oBAC7B28R,mBAAoB,CAAE38R,MAAO,uBAC7B06R,MAAO,CACH19P,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpB0jF,SAAU,CACNnxD,MAAO,CAAEvyB,MAAO,kCAGxBwkH,SAAU,CACN6yK,WAAY,CAAEr3R,MAAO,YACrBq4R,eAAgB,CAAEr4R,MAAO,UACzBs5R,mBAAoB,CAAEt5R,MAAO,oBAC7Bq5R,iBAAkB,CAAEr5R,MAAO,qBAE/B2gS,cAAe,CACX/7P,WAAY,CAAE5kC,MAAO,sBACrB0kC,YAAa,CAAE1kC,MAAO,uBAE1B4gS,WAAY,CACR5lR,OAAQ,CAAEhb,MAAO,yBACjB84R,SAAU,CAAE94R,MAAO,yBACnB4nO,aAAc,CAAE5nO,MAAO,8BjCqD3B6gS,ckCxFkB,CAClBtuQ,MAAO,CAAEvyB,MAAO,yCAChBqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,mCAChBq9R,QAAS,CACLrgQ,gBAAiB,CACbh9B,MAAO,qDAEX23R,YAAa,CAAE33R,MAAO,iDACtBuyB,MAAO,CAAEvyB,MAAO,4CAEpB89R,UAAW,CACP9gQ,gBAAiB,CACbh9B,MAAO,uDAEX23R,YAAa,CACT33R,MAAO,mDAEXuyB,MAAO,CAAEvyB,MAAO,8CAEpBw+R,OAAQ,CACJjsQ,MAAO,CAAEvyB,MAAO,kDAChBg9B,gBAAiB,CACbh9B,MAAO,4DAEX23R,YAAa,CACT33R,MAAO,wDAEXq9R,QAAS,CACL1F,YAAa,CACT33R,MAAO,gEAEXg9B,gBAAiB,CACbh9B,MAAO,oEAEXuyB,MAAO,CACHvyB,MAAO,2DAGfw8R,OAAQ,CACJ7E,YAAa,CACT33R,MAAO,+DAEXg9B,gBAAiB,CACbh9B,MAAO,mEAEXuyB,MAAO,CACHvyB,MAAO,yDAEX0oC,UAAW,CACP1oC,MAAO,8DAGfu8R,OAAQ,CACJ5E,YAAa,CACT33R,MAAO,+DAEXg9B,gBAAiB,CACbh9B,MAAO,mEAEXuyB,MAAO,CACHvyB,MAAO,2DAInBw8R,OAAQ,CACJx/P,gBAAiB,CACbh9B,MAAO,oDAEX23R,YAAa,CAAE33R,MAAO,gDACtBuyB,MAAO,CAAEvyB,MAAO,2CAEpBu8R,OAAQ,CACJv/P,gBAAiB,CACbh9B,MAAO,oDAEX23R,YAAa,CAAE33R,MAAO,gDACtBuyB,MAAO,CAAEvyB,MAAO,6ClCYxB8gS,iBmCzFqB,CACrBvuQ,MAAO,CAAEvyB,MAAO,mCAChB23R,YAAa,CAAE33R,MAAO,yCACtBokC,SAAU,CAAEpkC,MAAO,sCACnBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,kDnCqF1B60C,YoC1FgB,CAChB+yL,aAAc,CAAE5nO,MAAO,uBACvB28R,mBAAoB,CAAE38R,MAAO,qBAC7B+gS,WAAY,CAAE/gS,MAAO,uCACrBghS,SAAU,CAAEhhS,MAAO,sCAEnBi6R,MAAO,CACHj/Q,OAAQ,CAAEhb,MAAO,wBAErBs/G,QAAS,CACLtkG,OAAQ,CAAEhb,MAAO,yBAErBm6R,MAAO,CACHn/Q,OAAQ,CAAEhb,MAAO,yBpC8ErB8wL,MqC3FU,CACVumG,WAAY,CAAEr3R,MAAO,UACrBq4R,eAAgB,CAAEr4R,MAAO,cACzBm4R,IAAK,CAAEn4R,MAAO,WACd89R,UAAW,CAAEj2D,OAAQ,CAAE7nO,MAAO,gBAC9BqzF,OAAQ,CACJgkM,WAAY,CAAEr3R,MAAO,UACrBq4R,eAAgB,CAAEr4R,MAAO,UACzB+a,MAAO,CAAE/a,MAAO,4BAChBgb,OAAQ,CAAEhb,MAAO,4BACjBihS,UAAW,CAAEjhS,MAAO,cACpB43R,YAAa,CAAE53R,MAAO,+BACtB63R,YAAa,CAAE73R,MAAO,SACtB4nO,aAAc,CAAE5nO,MAAO,OACvB23R,YAAa,CAAE33R,MAAO,iCACtBuyB,MAAO,CAAEvyB,MAAO,qCAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B0+C,mBAAoB,CAAE1+C,MAAO,OAC7B28R,mBAAoB,CAAE38R,MAAO,uBAC7Bo+R,aAAc,CAAEp+R,MAAO,8BACvBq+R,aAAc,CAAEr+R,MAAO,SACvBs+R,aAAc,CAAEt+R,MAAO,gCACvBu+R,cAAe,CAAEv+R,MAAO,iCAExBkuD,QAAS,CAAEluD,MAAO,+BAClBi6R,MAAO,CACHl/Q,MAAO,CAAE/a,MAAO,2BAChBgb,OAAQ,CAAEhb,MAAO,4BAErBm6R,MAAO,CACHp/Q,MAAO,CAAE/a,MAAO,2BAChBgb,OAAQ,CAAEhb,MAAO,4BAErBy+R,SAAU,CACNlsQ,MAAO,CACHvyB,MAAO,6BAEX89R,UAAW,CAAEvrQ,MAAO,CAAEvyB,MAAO,wCAEjCw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CAAE1oC,MAAO,qDAExBw+R,OAAQ,CACJ7G,YAAa,CAAE33R,MAAO,+BACtBw8R,OAAQ,CACJ9zP,UAAW,CACP1oC,MAAO,6DAInB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,kCACtBg9B,gBAAiB,CAAEh9B,MAAO,uCAGlC+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,iCAChB89R,UAAW,CACPvrQ,MAAO,CACHvyB,MAAO,mCrCgCnBkhS,WsC5Fe,CACfpwG,MAAO,CACH8mG,YAAa,CAAE53R,MAAO,yCACtB23R,YAAa,CAAE33R,MAAO,yCACtBg9B,gBAAiB,CAAEh9B,MAAO,6CAC1By+R,SAAU,CACNlsQ,MAAO,CAAEvyB,MAAO,6CAEpB+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,oCAGxB2/R,OAAQ,CACJptQ,MAAO,CAAEvyB,MAAO,sCAChBsnC,WAAY,CAAEtnC,MAAO,0BtC+EzBmhS,OuC7FW,CACXhH,MAAO,CAAEpiR,KAAM,CAAE/X,MAAO,2BACxBs/G,QAAS,CAAEvnG,KAAM,CAAE/X,MAAO,yBAC1Bi6R,MAAO,CAAEliR,KAAM,CAAE/X,MAAO,4BACxB0gS,OAAQ,CAAEnuQ,MAAO,CAAEvyB,MAAO,gCAC1B6C,MAAO,CAAE0vB,MAAO,CAAEvyB,MAAO,wCvCyFzBohS,YwC9FgB,CAChB7uQ,MAAO,CAAEvyB,MAAO,yCAChBqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,mCAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1Bq9R,QAAS,CACLrgQ,gBAAiB,CACbh9B,MAAO,qDAEX23R,YAAa,CAAE33R,MAAO,iDACtBuyB,MAAO,CAAEvyB,MAAO,4CAEpB89R,UAAW,CACP9gQ,gBAAiB,CACbh9B,MAAO,uDAEX23R,YAAa,CACT33R,MAAO,mDAEXuyB,MAAO,CAAEvyB,MAAO,8CAEpBw8R,OAAQ,CACJx/P,gBAAiB,CACbh9B,MAAO,oDAEX23R,YAAa,CAAE33R,MAAO,gDACtBuyB,MAAO,CAAEvyB,MAAO,2CAEpBu8R,OAAQ,CACJv/P,gBAAiB,CACbh9B,MAAO,oDAEX23R,YAAa,CAAE33R,MAAO,gDACtBuyB,MAAO,CAAEvyB,MAAO,6CxC8DxBkiK,OyC/FW,CACX3vI,MAAO,CAAEvyB,MAAO,mCAChBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1Bq5R,iBAAkB,CAAEr5R,MAAO,qBAC3B89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,gCAChBg9B,gBAAiB,CAAEh9B,MAAO,uCAG9B0yC,QAAS,CACL2yC,KAAM,CAAErlF,MAAO,KACf0jC,QAAS,CAAE1jC,MAAO,SAClB2gC,SAAU,CAAE3gC,MAAO,YACnB6nO,OAAQ,CAAE7nO,MAAO,YAErBqhS,YAAa,CACThK,WAAY,CAAEr3R,MAAO,UACrB2gC,SAAU,CAAE3gC,MAAO,YACnB8a,IAAK,CAAE9a,MAAO,OACd4nH,MAAO,CAAE5nH,MAAO,wBAChBX,UAAW,CAAEW,MAAO,oBACpBshS,cAAe,CAAEthS,MAAO,QACxBi6R,MAAO,CACHryK,MAAO,CAAE5nH,MAAO,qBAEpBm6R,MAAO,CACHvyK,MAAO,CAAE5nH,MAAO,0BAMxBo1C,OAAQ,CACJpY,gBAAiB,CAAEh9B,MAAO,eAC1BuyB,MAAO,CAAEvyB,MAAO,+BAChB89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,gCAChBg9B,gBAAiB,CACbh9B,MAAO,iBAInBmuD,WAAY,CAAEnuD,MAAO,UACrB84R,SAAU,CAAE94R,MAAO,UACnBi6R,MAAO,CACHnB,SAAU,CAAE94R,MAAO,UACnBq5R,iBAAkB,CAAEr5R,MAAO,qBAE/Bm6R,MAAO,CACHrB,SAAU,CAAE94R,MAAO,UACnBq5R,iBAAkB,CAAEr5R,MAAO,sBAE/BuhS,SAAU,CACNtI,aAAc,CAAEj5R,MAAO,oBACvBo5R,cAAe,CAAEp5R,MAAO,uBACxBo1C,OAAQ,CACJ6jP,aAAc,CAAEj5R,MAAO,oBACvBo5R,cAAe,CAAEp5R,MAAO,0BzCuChCwhS,Y0ChGgB,CAChB7J,YAAa,CAAE33R,MAAO,yCACtBuyB,MAAO,CAAEvyB,MAAO,mCAChBo9R,cAAe,CACXp9R,MAAO,UAEXokC,SAAU,CAAEpkC,MAAO,sCACnBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,iDAE1B+Z,MAAO,CACHwY,MAAO,CAAEvyB,MAAO,oC1CsFpByhS,Y2CjGgB,CAChBxI,aAAc,CAAEj5R,MAAO,oBAEvB8nF,MAAO,CACH9qD,gBAAiB,CAAEh9B,MAAO,wCAC1B4nO,aAAc,CAAE5nO,MAAO,UACvBgb,OAAQ,CAAEhb,MAAO,YACjB84R,SAAU,CAAE94R,MAAO,UAGvBkuC,MAAO,CACHlR,gBAAiB,CAAEh9B,MAAO,6BAC1B4nO,aAAc,CAAE5nO,MAAO,UACvB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,wCAIlC0hS,MAAO,CACH3mR,MAAO,CAAE/a,MAAO,WAChBgb,OAAQ,CAAEhb,MAAO,WACjBg9B,gBAAiB,CAAEh9B,MAAO,qCAC1B0oC,UAAW,CAAE1oC,MAAO,yBACpB4nO,aAAc,CAAE5nO,MAAO,OACvB43R,YAAa,CAAE53R,MAAO,+BACtB23R,YAAa,CAAE33R,MAAO,iCACtB63R,YAAa,CAAE73R,MAAO,SACtB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,sCAC1B23R,YAAa,CAAE33R,MAAO,eACtB0oC,UAAW,CAAE1oC,MAAO,SAExBu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,gCAE1Bw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CAAE1oC,MAAO,sDAG5Bi6R,MAAO,CACHnyM,MAAO,CACH9sE,OAAQ,CAAEhb,MAAO,YAErB0hS,MAAO,CACH3mR,MAAO,CAAE/a,MAAO,QAChBgb,OAAQ,CAAEhb,MAAO,UAGzBm6R,MAAO,CACHryM,MAAO,CACH9sE,OAAQ,CAAEhb,MAAO,aAErB0hS,MAAO,CACH3mR,MAAO,CAAE/a,MAAO,UAChBgb,OAAQ,CAAEhb,MAAO,a3C0CzB2hS,a4ClGiB,CACjBhK,YAAa,CAAE33R,MAAO,yCACtBo9R,cAAe,CAAEp9R,MAAO,UACxBlB,MAAO,CACHyzB,MAAO,CAAEvyB,MAAO,mCAChBokC,SAAU,CAAEpkC,MAAO,sCACnBolC,UAAW,CAAEplC,MAAO,WAExBqzF,OAAQ,CACJ9gE,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,wBAC1Bq9R,QAAS,CACL9qQ,MAAO,CAAEvyB,MAAO,qCAChBg9B,gBAAiB,CAAEh9B,MAAO,gDAE9Bw8R,OAAQ,CACJjqQ,MAAO,CAAEvyB,MAAO,oCAChBg9B,gBAAiB,CAAEh9B,MAAO,+CAE9B89R,UAAW,CACPvrQ,MAAO,CAAEvyB,MAAO,uCAChBg9B,gBAAiB,CACbh9B,MAAO,wDAGfu8R,OAAQ,CACJhqQ,MAAO,CAAEvyB,MAAO,oCAChBg9B,gBAAiB,CAAEh9B,MAAO,iD5CwElC4hS,e6CnGmB,CACnB5C,SAAU,CACNhiQ,gBAAiB,CAAEh9B,MAAO,+BAC1B4nO,aAAc,CAAE5nO,MAAO,iBACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,UACtB43R,YAAa,CAAE53R,MAAO,wBACtBm4R,IAAK,CAAEn4R,MAAO,iBACdi5R,aAAc,CAAEj5R,MAAO,cACvBo5R,cAAe,CAAEp5R,MAAO,iBACxBolC,UAAW,CAAEplC,MAAO,UACpBq9R,QAAS,CACLrgQ,gBAAiB,CAAEh9B,MAAO,uBAC1B4nO,aAAc,CACV5nO,MAAO,qDAEX23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CACT73R,MAAO,oDAEX43R,YAAa,CAAE53R,MAAO,0BAE1B07L,KAAM,CACFnpK,MAAO,CAAEvyB,MAAO,2BAChBokC,SAAU,CAAEpkC,MAAO,oBAEvB4I,KAAM,CACF2pB,MAAO,CAAEvyB,MAAO,0BAChBokC,SAAU,CAAEpkC,MAAO,sBACnBsnC,WAAY,CAAEtnC,MAAO,wBAG7BzC,KAAM,CACFy/B,gBAAiB,CAAEh9B,MAAO,+BAC1B4nO,aAAc,CAAE5nO,MAAO,iBACvB23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,wBACtBi5R,aAAc,CAAEj5R,MAAO,cACvBo5R,cAAe,CAAEp5R,MAAO,iBACxBm4R,IAAK,CAAEn4R,MAAO,iBACdq3R,WAAY,CAAEr3R,MAAO,YACrBlC,KAAM,CACFsmC,SAAU,CAAEpkC,MAAO,sBACnBsnC,WAAY,CAAEtnC,MAAO,sBACrBuyB,MAAO,CAAEvyB,MAAO,0BAEpB+X,KAAM,CACFqsB,SAAU,CAAEpkC,MAAO,qBACnBsnC,WAAY,CAAEtnC,MAAO,wBACrBuyB,MAAO,CAAEvyB,MAAO,2BAEpBihC,MAAO,CACHlmB,MAAO,CAAE/a,MAAO,eAChBgb,OAAQ,CAAEhb,MAAO,eACjBg9B,gBAAiB,CAAEh9B,MAAO,iCAC1BuyB,MAAO,CAAEvyB,MAAO,0BAChB4nO,aAAc,CAAE5nO,MAAO,mBAG/B6hS,SAAU,CACNzE,cAAe,CAAEp9R,MAAO,UACxBm4R,IAAK,CAAEn4R,MAAO,kBAElBymI,OAAQ,CACJ65J,cAAe,CAAEtgS,MAAO,SACxBogS,YAAa,CAAEpgS,MAAO,6BACtBqgS,aAAc,CAAErgS,MAAO,oCACvBgnF,YAAa,CAAEhnF,MAAO,yBAE1B8hS,UAAW,CACP9kQ,gBAAiB,CAAEh9B,MAAO,+BAC1B23R,YAAa,CAAE33R,MAAO,2BACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,wBACtB4nO,aAAc,CAAE5nO,MAAO,iBACvBi5R,aAAc,CAAEj5R,MAAO,gBACvBo5R,cAAe,CAAEp5R,MAAO,gBACxB44R,UAAW,CAAE54R,MAAO,SACpBomL,SAAU,CAAEpmL,MAAO,QACnB4I,KAAM,CACFw7B,SAAU,CAAEpkC,MAAO,sBACnBsnC,WAAY,CAAEtnC,MAAO,sBACrBuyB,MAAO,CAAEvyB,MAAO,0BAEpByT,KAAM,CACFwlR,aAAc,CAAEj5R,MAAO,kBACvBo5R,cAAe,CAAEp5R,MAAO,kBACxBm4R,IAAK,CAAEn4R,MAAO,kBAElBg9R,OAAQ,CACJ3E,eAAgB,CAAEr4R,MAAO,e7CSjC+hS,Y8CpGgB,CAEhBjE,UAAW,CACP/2P,QAAS,CAAE/mC,MAAO,yBAEtBgiS,SAAU,CACN18P,OAAQ,CACJtlC,MAAO,qDAIfokC,SAAU,CAAEpkC,MAAO,4BACnBm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,4BAEvBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,4BAGvB+Z,MAAO,CACHm0C,QAAS,CAAEluD,MAAO,qBAEtB0hS,MAAO,CACH1kQ,gBAAiB,CAAEh9B,MAAO,qCAC1B23R,YAAa,CAAE33R,MAAO,eACtB43R,YAAa,CAAE53R,MAAO,8BACtB63R,YAAa,CAAE73R,MAAO,SACtB4nO,aAAc,CAAE5nO,MAAO,sBACvBk1C,QAAS,CACL71C,UAAW,CAAEW,MAAO,qCAExB+vF,WAAY,CACR7nD,SAAU,CAAEloC,MAAO,wBAEvB+a,MAAO,CAAE/a,MAAO,kCAEpB8nF,MAAO,CACH9qD,gBAAiB,CAAEh9B,MAAO,wCAC1B4nO,aAAc,CAAE5nO,MAAO,sBACvBk1C,QAAS,CACLlY,gBAAiB,CAAEh9B,MAAO,8BAE9Bgb,OAAQ,CAAEhb,MAAO,iCACjBkuD,QAAS,CAAEluD,MAAO,gCAClB+vF,WAAY,CACR7nD,SAAU,CAAEloC,MAAO,uBAEvB+a,MAAO,CAAE/a,MAAO,6BAChBw+R,OAAQ,CACJxhQ,gBAAiB,CAAEh9B,MAAO,sC9CoDlCyR,M+CrGU,CAIVwwR,eAAgB,CAAEjiS,MAAO,YACzB0jC,QAAS,CAAE1jC,MAAO,SAClB+a,MAAO,CAAE/a,MAAO,QAIhB84H,KAAM,CACFp1F,QAAS,CAAE1jC,MAAO,sBAClBouD,cAAe,CAAEpuD,MAAO,WAK5ByT,KAAM,CACFiwB,QAAS,CAAE1jC,MAAO,mBAClBouD,cAAe,CAAEpuD,MAAO,WAK5BkiS,KAAM,CACFx+P,QAAS,CAAE1jC,MAAO,sBAClBouD,cAAe,CAAEpuD,MAAO,WAK5BowE,IAAK,CACD1sC,QAAS,CAAE1jC,MAAO,aAClBouD,cAAe,CAAEpuD,MAAO,UACxB06R,MAAO,CACH19P,gBAAiB,CAAEh9B,MAAO,uCAE9BmiS,QAAS,CACLnlQ,gBAAiB,CAAEh9B,MAAO,yCAMlCiwH,OAAQ,CACJ0nK,YAAa,CAAE33R,MAAO,kCACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,8BACtBuyB,MAAO,CAAEvyB,MAAO,+BAChB0jC,QAAS,CAAE1jC,MAAO,cAClBokC,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,4BACrBkuD,QAAS,CAAEluD,MAAO,wBAClBouD,cAAe,CAAEpuD,MAAO,UACxBm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,2BACnBkuD,QAAS,CAAEluD,MAAO,wBAEtBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,2BACnBkuD,QAAS,CAAEluD,MAAO,sBAM1B8U,KAAM,CACF6iR,YAAa,CAAE33R,MAAO,kCACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,8BACtBuyB,MAAO,CAAEvyB,MAAO,+BAChB0jC,QAAS,CAAE1jC,MAAO,cAClBokC,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,8BACrBkuD,QAAS,CAAEluD,MAAO,wBAClBouD,cAAe,CAAEpuD,MAAO,UACxBm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,2BACnBkuD,QAAS,CAAEluD,MAAO,wBAEtBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,2BACnBkuD,QAAS,CAAEluD,MAAO,sBAM1B+wL,QAAS,CACLqxG,YAAa,CAAEpiS,MAAO,UACtBuyB,MAAO,CAAEvyB,MAAO,+BAChB0jC,QAAS,CAAE1jC,MAAO,iBAClBokC,SAAU,CAAEpkC,MAAO,4BACnBolC,UAAW,CAAEplC,MAAO,UACpB6kB,UAAW,CAAE7kB,MAAO,aACpBm6R,MAAO,CACH/1P,SAAU,CAAEpkC,MAAO,4BAEvBi6R,MAAO,CACH71P,SAAU,CAAEpkC,MAAO,8B/CG3Bi7J,KgDtGS,CACTj+H,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mCACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,+BACtBm4R,IAAK,CAAEn4R,MAAO,KACdgE,KAAM,CACFg5B,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mCACtB63R,YAAa,CAAE73R,MAAO,SACtB43R,YAAa,CAAE53R,MAAO,+BACtBuyB,MAAO,CAAEvyB,MAAO,iCAChBokC,SAAU,CAAEpkC,MAAO,4BACnBsnC,WAAY,CAAEtnC,MAAO,4BACrB09R,gBAAiB,CAAE19R,MAAO,uBAC1B29R,kBAAmB,CAAE39R,MAAO,wBAC5BolC,UAAW,CAAEplC,MAAO,UACpB28R,mBAAoB,CAAE38R,MAAO,uBAC7Bu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CAAE1oC,MAAO,QACpBuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJx/P,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,+BACtB0oC,UAAW,CACP1oC,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZC,aAAc,wBACdnqQ,MAAO,gCAGfA,MAAO,CAAEvyB,MAAO,8BAEpBq9R,QAAS,CACLrgQ,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,mCACtB0oC,UAAW,CAAE1oC,MAAO,QACpBuyB,MAAO,CAAEvyB,MAAO,oCAEpB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,eAC1B23R,YAAa,CAAE33R,MAAO,kCACtB0oC,UAAW,CAAE1oC,MAAO,QACpBuyB,MAAO,CAAEvyB,MAAO,kCAGxBqiS,MAAO,CACHrlQ,gBAAiB,CAAEh9B,MAAO,eAC1Bo5R,cAAe,CAAEp5R,MAAO,KACxBi5R,aAAc,CAAEj5R,MAAO,yBhDiD3B4I,KiDvGS,CAET2pB,MAAO,CAAEvyB,MAAO,+BAEhBq6R,QAAS,CACL9nQ,MAAO,CAAEvyB,MAAO,gCAEpBs6R,UAAW,CACP/nQ,MAAO,CAAEvyB,MAAO,kCAEpBu6R,SAAU,CACNhoQ,MAAO,CAAEvyB,MAAO,iCAEpBu9C,MAAO,CACHhrB,MAAO,CAAEvyB,MAAO,8BAEpB+5H,QAAS,CACLxnG,MAAO,CAAEvyB,MAAO,gCAEpB46R,QAAS,CACLroQ,MAAO,CAAEvyB,MAAO,gCAEpBy9C,KAAM,CACFlrB,MAAO,CAAEvyB,MAAO,8BjDiFpBsiS,ckDxGkB,CAClB/vQ,MAAO,CAAEvyB,MAAO,yCAChB23R,YAAa,CAAE33R,MAAO,+CACtBw8R,OAAQ,CACJ7E,YAAa,CACT33R,MAAO,wDlDoGfuiS,UmDzGc,CACdhwQ,MAAO,CAAEvyB,MAAO,yCAChB23R,YAAa,CAAE33R,MAAO,+CACtBokC,SAAU,CAAEpkC,MAAO,4CACnBw8R,OAAQ,CACJ7E,YAAa,CACT33R,MAAO,wDnDoGfwiS,aoD1GiB,CACjB7K,YAAa,CAAE33R,MAAO,iCACtBuyB,MAAO,CAAEvyB,MAAO,+BAChBu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,8BAE9Bw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtBuyB,MAAO,CAAEvyB,MAAO,gCAEpBq9R,QAAS,CACLrgQ,gBAAiB,CAAEh9B,MAAO,+BAE9B89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,8BAC1B23R,YAAa,CAAE33R,MAAO,kCACtBuyB,MAAO,CAAEvyB,MAAO,iCAEpByiS,SAAU,CACN9K,YAAa,CAAE33R,MAAO,iCACtBuyB,MAAO,CAAEvyB,MAAO,+BAChBg9B,gBAAiB,CAAEh9B,MAAO,6BAC1Bu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,+BAGlCq6R,QAAS,CACLr9P,gBAAiB,CAAEh9B,MAAO,8BAC1B43R,YAAa,CAAE53R,MAAO,8BACtBw8R,OAAQ,CACJ7E,YAAa,CAAE33R,MAAO,+BACtBg9B,gBAAiB,CAAEh9B,MAAO,8BAC1B0oC,UAAW,CAAE1oC,MAAO,oDACpBuyB,MAAO,CAAEvyB,MAAO,gCAEpBu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,6BAC1BuyB,MAAO,CAAEvyB,MAAO,gCAEpB89R,UAAW,CACPnG,YAAa,CAAE33R,MAAO,kCACtBg9B,gBAAiB,CAAEh9B,MAAO,sCAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpByiS,SAAU,CACNzlQ,gBAAiB,CAAEh9B,MAAO,6BAC1B23R,YAAa,CAAE33R,MAAO,6BACtBuyB,MAAO,CAAEvyB,MAAO,qCAChBw8R,OAAQ,CACJx/P,gBAAiB,CACbh9B,MAAO,+BAEX23R,YAAa,CAAE33R,MAAO,+BACtBuyB,MAAO,CAAEvyB,MAAO,sCAEpBu8R,OAAQ,CACJ5E,YAAa,CAAE33R,MAAO,6BACtBg9B,gBAAiB,CACbh9B,MAAO,6BAEX0oC,UAAW,CAAE1oC,MAAO,6BACpBuyB,MAAO,CAAEvyB,MAAO,wCAI5B2hD,KAAM,CACF3kB,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChBu8R,OAAQ,CACJv/P,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBw8R,OAAQ,CACJx/P,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpB89R,UAAW,CACP9gQ,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,iCAEpByiS,SAAU,CACNzlQ,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,6BAChBw8R,OAAQ,CACJx/P,gBAAiB,CAAEh9B,MAAO,8BAC1BuyB,MAAO,CAAEvyB,MAAO,8BAEpBu8R,OAAQ,CACJhqQ,MAAO,CAAEvyB,MAAO,6BAChBg9B,gBAAiB,CAAEh9B,MAAO,kCpDkBtC0iS,kBqD3GsB,CACtBrL,WAAY,CAAEr3R,MAAO,UACrBo3R,aAAc,CAAEp3R,MAAO,UACvBq4R,eAAgB,CAAEr4R,MAAO,gBtDezBg6R,aAAY,GACZrkH,OAAM,GACNv5H,MuDhBU,CACVkjE,QAAS,CACLqjL,SAAU,CACN3iS,MAAO,gLAIXuiI,OAAQ,CACJviI,MAAO,2IvDSfg7R,UAAS,GACTO,YAAW,GACXqH,YwDvBgB,CAChB3I,MAAO,CAAEj6R,MAAO,QAChBk6R,OAAQ,CAAEl6R,MAAO,OACjBm6R,MAAO,CAAEn6R,MAAO,MxDqBhB67R,UAAS,GACTgH,eyDzBmB,CACnB5I,MAAO,CAAEj6R,MAAO,OAChBk6R,OAAQ,CAAEl6R,MAAO,OACjBm6R,MAAO,CAAEn6R,MAAO,QzDuBhB8iS,c0D1BkB,CAClB7I,MAAO,CAAEj6R,MAAO,OAChBk6R,OAAQ,CAAEl6R,MAAO,OACjBm6R,MAAO,CAAEn6R,MAAO,Q1DwBhB87R,MAAK,GACLiH,Q2D5BY,CACZ9I,MAAO,CACHj6R,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZlqQ,MAAO,mCAGf2nQ,OAAQ,CACJl6R,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,MACZlqQ,MAAO,oCAGf4nQ,MAAO,CACHn6R,MAAO,CACHulC,QAAS,MACTC,QAAS,MACTi3P,WAAY,OACZlqQ,MAAO,mC3DOf0hI,MAAK,GACLntH,KAAI,GACJk8P,W4D/Be,CAEfC,OAAQ,CACJhJ,MAAO,CAAEj6R,MAAO,qBAChBk6R,OAAQ,CAAEl6R,MAAO,mBACjBm6R,MAAO,CAAEn6R,MAAO,sB7DApBkjS,Y8DJgB,CAChB1zQ,OAAQ,CACJ+3D,KAAM,EACN0yM,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPnpB,GAAI,KACJoqB,IAAK,MAET+H,kBAAmB,Q9DJnBrlS,KAAM,iB+DLJslS,GAAgB,CAClBC,MAAO,CACHC,mBAAoB,iBAExBC,aAAc,CACVC,UAAW,mBACXC,YAAa,sBAEjBC,WAAY,CACRC,kBAAmB,SACnBC,qBAAsB,oBAE1B/zG,OAAQ,CACJg0G,iBAAkB,eAEtBl+I,QAAS,CACLm+I,aAAc,mBAElBC,eAAgB,CACZC,iBAAkB,OAClBC,UAAW,kBACXC,UAAW,aACXC,cAAe,uBAEnBC,iBAAkB,CACdC,iBAAkB,gBAEtBC,YAAa,CACTX,kBAAmB,UAEvBhwG,cAAe,CACX4wG,iBAAkB,qBAClBC,gBAAiB,oBACjBC,aAAc,iBAElBC,aAAc,CACVC,oBAAqB,cACrBC,oBAAqB,gBAGvBC,GAAwB,CAC1B7nQ,gBAAiB,SACjB26P,YAAa,SACbC,YAAa,eACbrlQ,MAAO,SACPq1M,aAAc,QACdxjM,SAAU,YACVkD,WAAY,cACZH,WAAY,QACZjD,WAAY,cACZ6C,QAAS,YACT2B,UAAW,UACXrpC,UAAW,aACXwb,KAAM,QACN+sG,MAAO,QACP9sG,IAAK,QACL2+K,OAAQ,QACRz+K,OAAQ,QACRD,MAAO,QACP+oB,cAAe,QACfmqB,OAAQ,QACRqqO,YAAa,QACbC,eAAgB,QAChBC,iBAAkB,QAClBC,aAAc,QACdC,gBAAiB,QACjBC,kBAAmB,QACnB/zP,WAAY,QACZF,YAAa,QACbD,UAAW,QACXE,aAAc,QACdi0P,UAAW,QACXxyG,SAAU,QACVyyG,UAAW,QACXC,SAAU,QACV5qO,QAAS,QACT+qO,aAAc,QACdC,gBAAiB,QACjBC,kBAAmB,QACnBC,cAAe,QACfC,iBAAkB,QAClBC,mBAAoB,QACpBn0P,YAAa,QACbF,aAAc,QACdD,WAAY,QACZE,cAAe,QACfizP,IAAK,QACLH,UAAW,QACXyB,OAAQ,SCnFNqL,GAAiB9kS,GAA2B,kBAAVA,GAAuC,IAAjBA,EAAML,OAC9DolS,GAAuB/kS,GAAmB,MAATA,GAAiB8kS,GAAc9kS,GAchEglS,GAAcxqN,GACT91E,OAAO0+C,KAAKo3B,GAEjByqN,GAAkCA,CAACC,EAASllS,EAAOmsB,KACrD,GAAqB,kBAAVnsB,EACP,OAAOA,EAMX,GAAIA,EAAM6hF,SAAS,KACf,OAAO7hF,EACFpC,MAAM,KACNiC,KAAKizJ,GAAQmyI,GAAgCC,EAASpyI,EAAK3mI,KAC3DrsB,KAAK,KAEd,GAAwBolS,KCnCVL,GDmCoB,CAC9B,MAAMx/O,EAAOrlD,EAAMpC,MAAM,KAEzB,IAAIunS,EAAah5Q,EADA04Q,GAAsBK,IAEvC,IAAK,IAAI7vR,EAAI,EAAGA,EAAIgwC,EAAK1lD,QACjBwlS,EADyB9vR,IAGzB8vR,EAAaA,EAAW9/O,EAAKhwC,IAKrC,OAAOyhR,GAAcqO,GAAW,SAAAxqR,OACjBk8Q,GAAiB,CACxBxxO,KAAM,CAACw/O,GAAsBK,MAAa7/O,KAC5C,KACArlD,CACV,CACA,OAAOA,CAAK,EExBVolS,GAA8BlgJ,IAA0C,IAAzC,WAAEmgJ,EAAU,YAAEnC,EAAW,OAAE1zQ,GAAS01H,EACjEogJ,EAAyB,CAAC,EAC9B,MAAMC,EAAuBP,GAAW9B,GAAah/R,MAAK,CAACJ,EAAGC,IAAMm/R,EAAYp/R,GAAKo/R,EAAYn/R,KAPtEy2E,MAgB3B,OARI98E,MAAMC,QAAQ6xB,GACdA,EAAO/pB,SAAQ,CAACzF,EAAOI,KACnBklS,EAAuBC,EAAqBnlS,IAAUJ,CAAK,IAGxC,kBAAXwvB,IACZ81Q,EAbGN,GADoBxqN,EAcwBhrD,GAb5BtvB,QAAO,CAAC2gC,EAAKr9B,IAAQA,KAAO24R,GAAa+G,YAAY1zQ,OACtE,IAAKqR,EAAK,CAACr9B,GAAMg3E,EAAIh3E,IACrBq9B,GAAK,CAAC,IA3BoB65F,KAA0C,IAAzC,WAAE2qK,EAAU,YAAEnC,EAAW,OAAE1zQ,GAASkrG,EACrE,MAAM16H,EAAQwvB,EAAO61Q,GAErB,QAAc99R,IAAVvH,EACA,OAAOA,EAGX,MAAMwlS,EAAkBR,GAAW9B,GAAah/R,MAAK,CAACJ,EAAGC,IAAMm/R,EAAYn/R,GAAKm/R,EAAYp/R,KACtF2hS,EAAmBD,EAAgB5lS,MAAM4lS,EAAgBp/R,QAAQi/R,IACvE,IAAK,MAAMA,KAAcI,EAAkB,CAEvC,MAAMzlS,EAAQwvB,EAAO61Q,GACrB,QAAc99R,IAAVvH,EACA,OAAOA,CAEf,CACA,OAAO,IAAI,EAwBJ0lS,CAA4B,CAC/BL,aACAnC,cACA1zQ,OAAQ81Q,GACV,EC3CAK,GAAwC,qBAAXp7R,OAAyBo3H,EAAAA,UAAkBA,EAAAA,gBACxEikK,GAAgBlrK,IAAyC,IAAxC,YAAEwoK,EAAW,kBAAEC,GAAoBzoK,EACtD,MACMmrK,EADsC,qBAAXt7R,QAAuD,qBAAtBA,OAAOs7R,WAClCt7R,OAAOs7R,WAAa,KACrDC,EAAenkK,EAAAA,SAAc,ICLfjH,KAAqB,IAApB,YAAEwoK,GAAaxoK,EACpC,MAAMqrK,EAAoBf,GAAW9B,GAAah/R,MAAK,CAACJ,EAAGC,IAAMm/R,EAAYn/R,GAAKm/R,EAAYp/R,KAC9F,OAAOiiS,EAAkBlmS,KAAI,CAACwlS,EAAYjlS,KACtC,IAAI4lS,EAAQ,GACZ,MAAMlN,EAAWoK,EAAYmC,GACvBY,EAAiBF,EAAkB3lS,EAAQ,GAC3CgmL,EAAW6/G,EAAiB/C,EAAY+C,GAAkB,EAAI,KAUpE,OATInN,GAAY,IACZkN,EAAQ,eAAHrrR,OAAkBm+Q,EAAQ,QAElB,OAAb1yG,IACI4/G,IACAA,GAAS,SAEbA,GAAS,eAAJrrR,OAAmByrK,EAAQ,QAE7B,CACHi/G,aACAW,QACA5/G,WACA0yG,WACH,GACH,EDjBuCoN,CAAgB,CAAEhD,iBAAgB,CAACA,KACrEmC,EAAYc,GAAiBxkK,EAAAA,SAAewhK,GAC7CiD,EAAmBzkK,EAAAA,aAAkB,CAACxuH,EAASkyR,KAC7ClyR,GACAgzR,EAAcd,EAClB,GACD,CAACc,IAqBJ,OApBAR,IAAoB,KAChB,IAAKE,EACD,OACJ,MAAMQ,EAAkBP,EAAajmS,KAAIqlJ,IAA2B,IAA1B,MAAE8gJ,EAAK,WAAEX,GAAYngJ,EAC3D,MAAMohJ,EAAYT,EAAWG,GAC7BI,EAAiBE,EAAUnzR,QAASkyR,GACpC,MAAMkB,EAAqB5tM,IACnBA,EAAMxlF,SACNgzR,EAAcd,EAClB,EAGJ,OADAiB,EAAU5iP,iBAAiB,SAAU6iP,GAC9B,IAAMD,EAAU/8M,oBAAoB,SAAUg9M,EAAkB,IAE3E,MAAO,KACHF,EAAgB5gS,SAAS6vK,GAAgBA,KAAc,CAC1D,GACF,CAAC4tH,EAAaiD,EAAeN,EAAYC,IAE5CnkK,EAAAA,cAAoB0jK,GAAaA,GAAeA,IACzCA,CAAU,4BElBrB,MAAMpO,GAAav8J,IAAqB,IAApB,MAAEtuG,EAAK,KAAEi5B,GAAMq1E,EAC/B,MAAM58H,EAAO,KAAH6c,OAAQk8Q,GAAiB,CAAExxO,WAC7BrlD,MAAOqlH,GAAaj5F,EACtBpsB,E/EKV,SAAkBosB,GACd,MAAM,MAAEpsB,GAAUosB,EAClB,OAAI65F,GAASjmH,GACF42R,GAAe52R,GAEtB+2R,GAAoB/2R,GACb22R,GAAkB92R,KAAKkI,GACnB6uR,GAGPG,GAAoB3qQ,GAASA,EAAMrkB,GAAY/H,EAAM+H,MACtDjI,KAAK,KAELE,CACX,C+EnBkBwmS,CAASp6Q,GACvB,MAAO,CAAEtuB,OAAMunH,WAAUhgE,OAAMrlD,QAAO+F,SAAUA,IAAA,OAAA4U,OAAa7c,EAAI,KAAK,EAa1E,SAAS2oS,GAAkBvhJ,GAAkB,IAAjB,KAAE9hG,EAAI,MAAEpjD,GAAOklJ,EACvC,OAAO9hG,EAAKljD,QAAO,CAAC2gC,EAAKr9B,KACd,IACAq9B,EACH,CAACr9B,GAAM,CAAExD,MAAO,WAAF2a,OAAa3a,EAAK,KAAA2a,OAAInX,EAAG,eAE5C,CAAC,EACR,CAQA,SAASkjS,GAAYC,GAKjB,MAAMC,EAAczyK,GAAW,CAAC,CAAC,EALGptH,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,GAAGo1R,GAKWwK,KAC5C,aAAEE,EAAY,eAAEC,GAAmBF,EAErC3gL,GAAS4gL,KACTD,EAAYz6Q,OAAOwpJ,OAAO0kH,QAAUoM,GAAmB,CACnDrjP,KAAM1+C,OAAO0+C,KAAKwjP,EAAYz6Q,OAAOwpJ,OAAOkxH,IAC5C7mS,MAAO6mS,KAGX5gL,GAAS6gL,KACTF,EAAYz6Q,OAAOwpJ,OAAO2kH,UAAYmM,GAAmB,CACrDrjP,KAAM1+C,OAAO0+C,KAAKwjP,EAAYz6Q,OAAOwpJ,OAAOmxH,IAC5C9mS,MAAO8mS,KAOf,MAAM36Q,EAAS6qQ,GAAY,CACvB7qQ,OAAQy6Q,EAAYz6Q,OACpB8qQ,iBAEE,YAAEiM,EAAW,KAAEplS,GAAS8oS,EAG9B,IAAItpP,EAAU,wBAAA3iC,OAAwB7c,EAAI,UACtCg4H,GAAkB3pG,GACbtsB,KAAKusB,GAAK,GAAAzR,OAAQyR,EAAMtuB,KAAI,MAAA6c,OAAKyR,EAAMpsB,MAAK,OAC5CF,KAAK,MAAK,QAEfinS,EAAY,GAqDhB,OA/CIH,EAAYG,YACZA,EAAYH,EAAYG,UAAUlnS,KAAKmnS,IACnC,MAAM76Q,EAAS6qQ,GAAY,CACvB7qQ,OAAQ66Q,EAAS76Q,OACjB8qQ,gBAEEgQ,EAAmBnxK,GAAkB3pG,GACtCtsB,KAAKusB,GAAK,GAAAzR,OAAQyR,EAAMtuB,KAAI,MAAA6c,OAAKyR,EAAMpsB,MAAK,OAC5CF,KAAK,MAaV,GAVI,aAAcknS,IACd1pP,GAAW,KAAJ3iC,OAASqsR,EAASxlD,SAAQ,QAAA7mO,OAAOssR,EAAgB,UAExD,eAAgBD,IAChB1pP,GAAW,aAAJ3iC,OAAiBqsR,EAASE,WAAU,gCAAAvsR,OAClC7c,EAAI,cAAA6c,OACvBssR,EAAgB,eAIN,eAAgBD,EAAU,CAC1B,MAAM3B,EAAauB,EAAY1D,YAAY1zQ,OAAOw3Q,EAAS3B,YAC3D/nP,GAAW,wBAAJ3iC,OAA4B0qR,EAAU,kCAAA1qR,OACpC7c,EAAI,cAAA6c,OACvBssR,EAAgB,aAGV,CAaA,MAZI,cAAeD,IACf1pP,GAAW,mCAAJ3iC,OAAuCqsR,EAASG,UAAS,wCAAAxsR,OAC/C7c,EAAI,wDAAA6c,OACvBssR,EAAgB,gCAAAtsR,OACFqsR,EAASG,UAAS,+BAG9B7pP,GAAW,0BAAJ3iC,OAA8B7c,EAAI,gCAAA6c,OAA+BqsR,EAASG,UAAS,oBAAAxsR,OAC9FssR,EAAgB,8BAAAtsR,OACFqsR,EAASG,UAAS,mBAGzB,IACAH,EACH76Q,SACH,KAGF,CACHA,SACA+2Q,cACAplS,OACAw/C,UASAypP,YAER,CCtJA,MAAMK,GAAezlK,EAAAA,cAAoB,CACrCglK,MAAOD,KACPS,eAAW5/R,ICYT8/R,GAAWA,IATYhsR,IACF,qBAAZA,GAAoD,qBAAlBA,EAAQsrR,MAC1CD,KAEJrrR,EAAQsrR,MAORW,CADS3lK,EAAAA,WAAiBylK,KCJ/BG,GAAeC,GACI,SAAdA,EAAuB,OAAS,QAAH7sR,OAAW6sR,GAE7CC,GAAmBD,GARKA,IACJ,SAAdA,GACkB,kBAAdA,IAA2Bz0N,MAAMy0N,IACnB,kBAAdA,IAA2Bz0N,MAAM+tG,WAAW0mH,IAOpDE,CAAqBF,GACdD,GAAYC,GAGnB9pS,MAAMC,QAAQ6pS,GACPA,EAAU3nS,KAAKG,GAAUunS,GAAYvnS,KAGvB,kBAAdwnS,GAAuC,MAAbA,EAC1B9iS,OAAOL,QAAQmjS,GAAWtnS,QAAO,CAAC2gC,EAAG65F,KAAA,IAAGl3H,EAAKxD,GAAM06H,EAAA,MAAM,IAAK75F,EAAK,CAACr9B,GAAM+jS,GAAYvnS,GAAQ,GAAG,CAAC,GAEtG,KA8BL2nS,GAA8BziJ,IAAkE,IAAjE,MAAEziF,EAAQ,CAAC,EAAC,MAAE1/B,EAAQ,CAAC,EAAC,WAAEsiQ,EAAU,YAAEnC,EAAW,OAAE/2Q,GAAS+4H,EAC7F,MAAM0iJ,EAAgB,CAAC,EA0CvB,OAzCAljS,OAAO0+C,KAAKqf,GACP9wC,QAAQuzQ,GAA+B,OAAnBziO,EAAMyiO,KAC1Bz/R,SAASy/R,IACV,GAAyBA,KAXf/N,GAWyB,CAC/B,MAAM3nQ,EAASizC,EAAMyiO,GACrB,IAAK11Q,GAAUs1Q,GAAct1Q,GACzB,OACJ,MAAMq4Q,EAAiB1Q,GAA8B+N,GAGrD,IAAIllS,EAAQ,GACR82R,GAActnQ,GACdxvB,EAAQwvB,EAAOzpB,WAEQ,kBAAXypB,EACZxvB,EAAQilS,GAAgCC,EAAS11Q,EAAQrD,GAElC,kBAAXqD,EACZxvB,EAAQwvB,EAEe,kBAAXA,IAEZxvB,ECxEM06H,KAAiC,IAAhC,MAAE16H,EAAK,QAAEklS,EAAO,OAAE/4Q,GAASuuG,EAC9C,OAAIo8J,GAAc92R,GACPA,EAAM+F,WAEbkgH,GAASjmH,GACFimH,GAASi/K,GACVD,GAAgCC,EAASllS,EAAOmsB,GAChDnsB,EAEH,IAAI,ED+DS8nS,CAAc,CAClB5C,UACA/4Q,SACAnsB,MAAOolS,GAA4B,CAC/B51Q,SACA61Q,aACAnC,mBAIZngQ,EAAQ,IACDA,EACH,CAAC8kQ,GAAiB7nS,EAE1B,KACmC,qBAAnByiE,EAAMyiO,KAClB0C,EAAc1C,GAAWziO,EAAMyiO,GACnC,IAEG,CAAE6C,WAAYhlQ,EAAO6kQ,gBAAe,EAEzCI,GAAYA,CAACvlO,EAAO1/B,KACtB,MAAQmgQ,aAAe1zQ,OAAQ0zQ,EAAW,kBAAEC,GAAmB,OAAEh3Q,GAAYk7Q,KACvEhC,EAAaO,GAAc,CAC7B1C,cACAC,sBAEE4E,EAxEsBtlO,KAC5B,MAAM,QAAEi3N,EAAO,WAAEzB,EAAU,IAAE7nN,EAAG,OAAE0nN,KAAW55J,GAASz7D,GAChD,iBAAEwlO,EAAgB,oBAAEC,GAAwBvmK,EAAAA,SAAc,KACrD,CACHsmK,iBAAkBR,GAAgB/N,GAClCwO,oBAAqBT,GAAgBxP,MAE1C,CAACyB,EAASzB,IACb,MAAO,CACH7nN,IAAM20N,GAAoB30N,GAAa63N,EAAN73N,EACjC0nN,OAASiN,GAAoBjN,GAAmBoQ,EAATpQ,KACpC55J,EACN,EA4DkBiqK,CAAuB1lO,GAC1C,OAAOk/D,EAAAA,SAAc,IAAMgmK,GAA4B,CACnDllO,MAAOslO,EACPhlQ,QACAsiQ,aACAnC,cACA/2Q,YACA,CAAC47Q,EAAYhlQ,EAAOmgQ,EAAamC,EAAYl5Q,GAAQ,EEnGvDi8Q,GAAO/R,IAfSgS,CAAA3tK,EAAiFz2B,KAAQ,IAAxF,GAAE0pG,EAAK,MAAK,SAAE9pH,EAAQ,OAAEykN,EAAM,UAAEC,EAAS,WAAE5qL,EAAU,MAAE56E,EAAK,MAAEivN,KAAU9zH,GAAMxD,EACjG,MAAM,WAAEqtK,EAAU,cAAEH,GAAkBI,GAAU9pK,EAAMn7F,GACtD,OAAO4+F,EAAAA,cAAoBgsE,EAAI,CAC3B,aAAc46F,EACd,cAAeD,EACf5kN,SAAUi6B,EACV1Z,MACA+tJ,MAAOA,EAAQ,GAAK,KACpBjvN,MAAOglQ,KACJH,GACJ/jN,EAAS,IAMhBukN,GAAKxmN,YAAc,OCfnB,MAIM4mN,GAAOnS,IAJSoS,CAAA/tK,EAAmCz2B,KAAG,IAArC,UAAExsD,EAAS,SAAEosC,KAAaq6C,GAAMxD,EAAA,OAAWiH,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW0+O,GAAWC,GAAyB3+O,GAAYwsD,IAAKA,KAAQi6B,GAAQr6C,EAAS,IAKvL2kN,GAAK5mN,YAAc,OCLnB,MAQM8mN,GAAgB,GAAazsR,KAAKuV,GAuClCm3Q,GAAStS,IAtCSuS,CAAAluK,EAA0Iz2B,KAAQ,IAAjJ,UAAExsD,EAAS,YAAEoxP,EAAW,WAAEC,EAAU,KAAE/wR,EAAI,UAAEgxR,EAAS,cAAEC,GAAgB,EAAK,uBAAEC,GAAyB,EAAK,WAAEC,EAAa,KAAMhrK,GAAMxD,EAC5JwuK,EAAajtR,KAAKoS,IAAI66Q,EAAY,KAClCA,EAAajtR,KAAKC,IAAIgtR,EAAY,GAClC,MAAMC,EAAU,GAAHxuR,OAAMuuR,EAAU,KACvBE,EAAmBjT,GAAWC,GAA2BpiD,GAAkBoiD,GAA2Br+Q,GAAOi8N,GAAkBoiD,GAA2B2S,GAAY70D,GAAwBkiD,GAA2B,cAAe4S,GAAgBvxP,GACxP4xP,EAAgB1nK,EAAAA,cAAoB,IAAK,KAC3CA,EAAAA,cAAoB,OAAQ,CAAEzuE,GAAI,IAAKk/H,GAAI,OAAQh/H,GAAI,MAAO+pI,GAAI,MAAOp6J,MAAO,CAAE2yB,OAAQ7vD,OAAOijS,IAAe,cAfnG,iBAgBbnnK,EAAAA,cAAoB,OAAQ,CAAEzuE,GAAI,IAAKk/H,GAAI42G,EAAgBG,EAAU,OAAQ/1O,GAAI,MAAO+pI,GAAI,MAAOp6J,MAAO,CAElG2yB,OAAQszO,GAAgC,IAAfE,EACnB,OACAL,EACIhjS,OAAOgjS,QACPthS,GACX,cAtBO,kBAuBdyhS,EAAiBrnK,EAAAA,cAAoB,OAAQ,CAAE,YAAa,SAAUlqF,UAAW0+O,GAAWC,GAAgC6S,EAAyB7S,GAAoC,MAErLnxR,EAAG,GAAF0V,QAAM,EAAIuuR,EAAU,KAAKrvR,EAAG,QAAUsvR,GAAY,MAErDG,EAAkB3nK,EAAAA,cAAoB,IAAK,KAC7CA,EAAAA,cAAoB,SAAU,CAAEviG,GAAI,MAAOC,GAAI,MAAOpN,EAAG,GAAFtX,OAvBhD,GAuB2D,KAAKqsE,YAAa,GAAFrsE,OAxB5D,EAwBsF,KAAKooB,MAAO,CAAE2yB,OAAQ7vD,OAAOijS,IAAe,cA3BzI,mBA4BfnnK,EAAAA,cAAoB,SAAU,CAAEviG,GAAI,MAAOC,GAAI,MAAOpN,EAAG,GAAFtX,OAxBhD,GAwB2D,KAAKqsE,YAAa,GAAFrsE,OAzB5D,EAyBsF,KAAKooB,MAAO,CAChH2yB,OAAQ7vD,OAAOgjS,GACfjiN,gBAAiBoiN,EAAa,GAAAruR,OACrB+tR,GAAa,MAAA/tR,OAAK+tR,GAAa,UAClCnhS,EACNs/E,iBAAkBmiN,EAAa,GAAAruR,OACtB+tR,GAAiBA,GAAgBQ,EAAc,IAAG,UACrD3hS,GACP,cAnCS,oBAoChByhS,EAAiBrnK,EAAAA,cAAoB,OAAQ,CAAE,YAAa,SAAUlqF,UAAW0+O,GAAWC,GAAgC6S,EAAyB7S,GAAoC,MAErLnxR,EAAG,OAAQ4U,EAAG,OAASsvR,GAAY,MAC3C,OAAQxnK,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,MAAOl2J,UAAW2xP,EAAkBnlM,IAAKA,EAAKm+D,KAAM,SAAUlkC,GAAsB,WAAd6qK,EAAyBM,EAAeC,EAAe,IAMzKX,GAAO/mN,YAAc,SC3CrB,MAAM2nN,GAAsB,CAAC,OAAQ,eAAWhiS,GAmB1CisL,GAAS6iG,IAlBSmT,CAAA9uK,EAA+Iz2B,KAAQ,IAAAihD,EAAA,IAAtJ,UAAEztG,EAAS,SAAEosC,EAAQ,WAAE4lN,EAAU,YAAEC,GAAc,EAAK,WAAE/rL,EAAU,UAAEgsL,EAAS,YAAElG,EAAc,GAAE,KAAE1rR,EAAI,KAAE/Z,EAAO,SAAQ,UAAE+qS,KAAc7qK,GAAMxD,EAGjK,MAAMkvK,EAAqBL,GAAoB1nN,SAASknN,IAAcU,EAAU,GAAA9uR,OAC9D,OAATouR,QAAS,IAATA,EAAAA,EAAa,WAAU,MAAApuR,OAAK8uR,QAC/BliS,GACA,mBAAEivR,GAAuBC,KACzBoT,EAAmBrT,IAEI,QADLtxI,EACR,OAAVvnC,QAAU,IAAVA,EAAAA,EAAcgsL,SAAS,IAAAzkJ,EAAAA,EAAIhnB,EAAe,UAC1CkrK,EAAmBjT,GAAWC,GAA2BA,GAAsCpiD,GAAkBoiD,GAA2B2S,GAAY/0D,GAAkBoiD,GAA2BwT,GAAqB51D,GAAkBoiD,GAA2Br+Q,GAAOm8N,GAAwBkiD,GAA2B,WAAYyT,GAAmB31D,GAAwBkiD,GAA2B,UAAWuT,GAAYz1D,GAAwBkiD,GAA2B,YAAasT,GAAcjyP,GAC9f,OAAQkqF,EAAAA,cAAoBymK,GAAM,CAAEnkM,IAAKA,EAAK0pG,GAAI,SAAUl2J,UAAW2xP,EAAkBzrL,WAAYksL,EAAkB7rS,KAAMA,KAASkgI,GAAQyrK,EAAahoK,EAAAA,cAAoB6mK,GAAM,CAAE76F,GAAI,OAAQl2J,UAAW2+O,IAC1Mz0J,EAAAA,cAAoBgnK,GAAQ,CAAE5wR,KAAMA,IACpC0rR,GAA4B,MAAU5/M,EAAU,IAMxD2vG,GAAO5xG,YAAc,SCzBrB,MAAMkoN,GAAgB,CAClB,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,KACH,EAAG,MAMDC,GAAU1T,IAJS2T,CAAAtvK,EAA2Dz2B,KAAG,IAA7D,UAAExsD,EAAS,SAAEosC,EAAQ,YAAEomN,EAAW,MAAE34N,EAAQ,KAAM4sD,GAAMxD,EAAA,OAAWiH,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAIm8F,GAAcx4N,GAAQ75B,UAAW0+O,GAAWC,GAA4BpiD,GAAkBoiD,GAA4B9kN,GAAQ4iK,GAAwBkiD,GAA4B,YAAa6T,GAAcxyP,GAAYwsD,IAAKA,KAAQi6B,GAAQr6C,EAAS,IAKpXkmN,GAAQnoN,YAAc,UCbtB,MAOMsoN,GAAO7T,IAPS8T,CAAAzvK,EAAqEz2B,KAAQ,IAA5E,GAAE0pG,EAAK,IAAG,UAAEl2J,EAAS,SAAEosC,EAAQ,YAAEomN,EAAW,UAAElB,KAAc7qK,GAAMxD,EACrF,MAAM0uK,EAAmBjT,GAAWC,GAAyBpiD,GAAkBoiD,GAAyB2S,GAAY70D,GAAwBkiD,GAAyB,YAAa6T,GAAcxyP,GAChM,OAAQkqF,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAIA,EAAIl2J,UAAW2xP,EAAkBnlM,IAAKA,KAAQi6B,GAAQr6C,EAAS,IAM3GqmN,GAAKtoN,YAAc,OCbnB,MAAMwoN,GAAwBzxM,IAC1B,MAAM24H,EAAW,IAAI9C,SAAS71H,EAAM53C,QACpC,OAAOr8C,OAAO4zI,YAAYg5E,EAAS,ECEvC,SAAS+4E,KACL,MAAM,WAAEl1D,EAAU,WAAEE,EAAU,WAAED,GAAe8M,IAAkB7mO,GAAY,CACzEA,EAAQ85N,WACR95N,EAAQg6N,WACRh6N,EAAQ+5N,cAkBZ,MAAO,CAAE40B,YAhBUv9J,EAAAA,EAAAA,cAAYiuB,IAA0B,IAAvB35E,QAAQ,KAAEjjD,IAAQ48H,EAChD26G,EAAW,CAAEv3O,QAAO,GACrB,CAACu3O,IAciBi1D,cAXA79L,EAAAA,EAAAA,cAAYy4C,IAAiD,IAA9CnkG,QAAQ,QAAE7L,EAAO,KAAEp3C,EAAI,KAAEE,EAAI,MAAEgC,IAAUklJ,EAEzEkwF,EAAW,CACPt3O,OACAkC,MAHiC,aAAThC,IAAwBk3C,OAGnB3tC,EAAYvH,GAC3C,GACH,CAACo1O,IAK+B00B,cAJdr9J,EAAAA,EAAAA,cAAa9T,IAC9BA,EAAMpH,iBACN4jJ,EAAWi1D,GAAqBzxM,GAAO,GACxC,CAACw8I,IAER,CCzBA,MAAMo1D,GAAe5oK,EAAAA,cAAoB,CAAC,GCC1C,SAAS6oK,GAASjlK,GACd,MAAMlqH,EAAUsmH,EAAAA,WAAiB4oK,IACjC,GAAIhlK,GAAalqH,EACb,OAAOA,EAAQkqH,EAGvB,CCFA,MAAMklK,GAAmBhoO,IACrB,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,uPAAwPsvD,KAAM,kBAAmB,ECJxTq5O,GAAajoO,IACf,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,oIAAqIsvD,KAAM,kBAAmB,ECJrMs5O,GAAYloO,IACd,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,+NAAgOsvD,KAAM,kBAAmB,ECJhSu5O,GAAenoO,IACjB,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,4DAA6DsvD,KAAM,kBAAmB,ECG7Hw5O,GAAYnwK,IAAiD,IAAAowK,EAAAC,EAAAC,EAAAC,EAAA,IAAhD,UAAElC,EAAS,WAAEmC,EAAU,UAAE3C,EAAS,KAAEnmI,GAAO1nC,EAC1D,MAAMywK,EAAQX,GAAS,SACvB,IAAI9uG,EACJ,OAAQqtG,GACJ,IAAK,OACDrtG,EAAkB,QAAdovG,EAAQ,OAALK,QAAK,IAALA,OAAK,EAALA,EAAO1tP,YAAI,IAAAqtP,EAAAA,EAAKnpK,EAAAA,cAAoBgpK,GAAU,CAAE,cAAeO,EAAY,aAAc3C,EAAWnmI,KAAMA,IACjH,MACJ,IAAK,QACDs5B,EAAmB,QAAfqvG,EAAQ,OAALI,QAAK,IAALA,OAAK,EAALA,EAAO5tP,aAAK,IAAAwtP,EAAAA,EAAKppK,EAAAA,cAAoB+oK,GAAW,CAAE,cAAeQ,EAAY,aAAc3C,EAAWnmI,KAAMA,IACnH,MACJ,IAAK,UACDs5B,EAAqB,QAAjBsvG,EAAQ,OAALG,QAAK,IAALA,OAAK,EAALA,EAAOpxK,eAAO,IAAAixK,EAAAA,EAAKrpK,EAAAA,cAAoBipK,GAAa,CAAE,cAAeM,EAAY,aAAc3C,EAAWnmI,KAAMA,IACvH,MACJ,IAAK,UACDs5B,EAAqB,QAAjBuvG,EAAQ,OAALE,QAAK,IAALA,OAAK,EAALA,EAAOvQ,eAAO,IAAAqQ,EAAAA,EAAKtpK,EAAAA,cAAoB8oK,GAAiB,CAAE,cAAeS,EAAY,aAAc3C,EAAWnmI,KAAMA,IAGnI,OAAOs5B,EAAQ/5D,EAAAA,cAAoB,OAAQ,CAAElqF,UAAW2+O,IAAgC16F,GAAS,IAAI,EAEzGmvG,GAAUjpN,YAAc,YC1BxB,MAAMwpN,GAAa3oO,IACf,MAAM,UAAEhrB,EAAS,KAAE1/B,KAASmmH,GAASz7D,EACrC,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAW,OAAJhD,QAAI,IAAJA,EAAAA,EAAQ,MAAOiD,OAAY,OAAJjD,QAAI,IAAJA,EAAAA,EAAQ,MAAO0/B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvJyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,6BAA8BzN,MAAOhrB,EAAO,CAAEgD,MAAOhD,EAAMiD,OAAQjD,QAASxQ,GAC3Ko6H,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,gHAAiHsvD,KAAM,kBAAmB,ECqBjLgyO,GAAQhN,IAnBSgV,CAAA3wK,EAAiLz2B,KAAQ,IAAAqnM,EAAA,IAAxL,UAAEC,EAAS,SAAE1nN,EAAQ,UAAEpsC,EAAS,mBAAE6rP,EAAqBF,GAAcC,MAAMC,mBAAkB,QAAEkI,GAAU,EAAI,QAAE32I,EAAO,cAAE42I,GAAgB,EAAK,UAAEC,EAAS,UAAE3C,KAAc7qK,GAAMxD,EAClM,MAAOixK,EAAWC,GAAgBjqK,EAAAA,UAAe,GAC3CwpK,EAAQX,GAAS,SACjBqB,EAAelqK,EAAAA,aAAkB,KACnCiqK,GAAcD,GACVptO,GAAWmtO,IACXA,GACJ,GACD,CAACE,EAAcF,EAAWC,IAC7B,OAAQA,EAKmQ,KALtPhqK,EAAAA,cAAoB6mK,GAAM,CAAE/wP,UAAW0+O,GAAWC,GAA0B3+O,EAAWu8L,GAAkBoiD,GAA0B2S,IAAa9kM,IAAKA,EAAKm+D,KAAM,WAAYlkC,GAC7LstK,GAAW7pK,EAAAA,cAAoBkpK,GAAW,CAAE9B,UAAWA,EAAWmC,YAAY,IAC9EvpK,EAAAA,cAAoBymK,GAAM,CAAE/iN,KAAM,KAC9BwvE,GAAYlzB,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW2+O,IAAmCvhI,GACtFlzB,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW2+O,IAAgCvyM,IAC3E4nN,GAAkB9pK,EAAAA,cAAoB6xD,GAAQ,CAAE+0G,UAAWjF,EAAoByF,UAAW,OAAQtxP,UAAW2+O,GAAiCpiL,QAAS63L,EAAc5nM,IAAKsnM,GAAyB,QAAdD,EAAO,OAALH,QAAK,IAALA,OAAK,EAALA,EAAO7iQ,aAAK,IAAAgjQ,EAAAA,EAAI3pK,EAAAA,cAAoBypK,GAAW,CAAE,cAAe,UAAoB,IAMnR/H,GAAMzhN,YAAc,QC5BpB,MAAMkqN,GAAqBA,KACvB,MAAM,MAAEvuP,GAAU2kM,IAAkB7mO,GAAY,CAACA,EAAQkiC,SACzD,OAAQ65L,EAAAA,cAA6BA,EAAAA,SAAyB,KAAM75L,EAAS65L,EAAAA,cAA6BisD,GAAO,CAAE0F,UAAW,QAAS0C,eAAe,GAAQ18O,GAAUxR,IAAW,KAAK,ECEtLwuP,GAAiB1V,IAJS2V,CAAAtxK,EAAgDz2B,KAAG,IAAlD,GAAE0pG,EAAK,OAAM,SAAE9pH,EAAQ,UAAEpsC,KAAcymF,GAAMxD,EAAA,OAAWiH,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAIA,EAAIl2J,UAAW0+O,GAAWC,GAAmC3+O,GAAYwsD,IAAKA,KAAQi6B,GAAQr6C,EAAS,IAKhOkoN,GAAenqN,YAAc,iBCH7B,MAAMqqN,GAAqBxpO,IACvB,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,ijCAAkjCsvD,KAAM,kBAAmB,ECJlnC66O,GAAkBzpO,IACpB,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,ibAAkbsvD,KAAM,kBAAmB,GCElf,iBAAEkzO,GAAgB,gBAAEC,GAAe,aAAEC,IAAiBrB,GAAczvG,cAapEw4G,GAAqB9V,IAZS+V,CAAA1xK,EAAmKz2B,KAAQ,IAAAooM,EAAAC,EAAA,IAA1K,UAAEC,EAAS,sBAAEC,EAAwBjI,GAAgB,qBAAEkI,EAAuBjI,GAAe,wBAAEkI,EAA0BjI,GAAY,KAAE1sR,EAAI,SAAE40R,KAAazuK,GAAMxD,EACjM,MAAMywK,EAAQX,GAAS,iBACjBoC,EAA0BzW,GAAWC,GAAsCliD,GAAwBkiD,GAAsC,QAASuW,IAClJjxG,EAAqB,aAAd6wG,EACU,QADcF,EAC1B,OAALlB,QAAK,IAALA,OAAK,EAALA,EAAO3kQ,kBAAU,IAAA6lQ,EAAAA,EAAI1qK,EAAAA,cAAoBuqK,GAAgB,CAAE,cAAe,SACtD,QAD+DI,EAC9E,OAALnB,QAAK,IAALA,OAAK,EAALA,EAAO0B,qBAAa,IAAAP,EAAAA,EAAI3qK,EAAAA,cAAoBsqK,GAAmB,CAAE,cAAe,SACtF,OAAQtqK,EAAAA,cAAoB6xD,GAAQ,CAAE,eAA8B,aAAd+4G,EAA0BhE,UAAWmE,EAAyBj1P,UAAWm1P,EAAyBnD,WAAYkD,EAAW,aAAUplS,EAAW08F,IAAKA,EAAKm+D,KAAM,SAAUrqJ,KAAMA,KAASmmH,GACzOyD,EAAAA,cAAoBoqK,GAAgB,CAAE,YAAa,UAA0B,aAAdQ,EACzDC,EACAC,GACN/wG,EAAK,IAGbywG,GAAmBvqN,YAAc,qBCvBjC,MACMkrN,GAAmBpyK,IAAA,IAAC,gBAAEqyK,EAAe,YAAEC,KAAgB9uK,GAAMxD,EAAA,OAAKqyK,EAAmBprK,EAAAA,cAAoBuoK,GAAM,CAAE,cAD1F,uBAC+HzyP,UAAW0+O,GAAWC,GAAqC,CAC/M,CAACA,IAAoC4W,OAClC9uK,GAAQ6uK,GAAoB,IAAI,EAC3CD,GAAiBlrN,YAAc,mBCJ/B,MAAMqrN,GAAoBvyK,IAAyC,IAAxC,aAAEutJ,EAAY,SAAE0kB,KAAazuK,GAAMxD,EAC1D,OAAOiyK,GAAY1kB,EAAgBtmJ,EAAAA,cAAoBuoK,GAAM,CAAEzyP,UAAW2+O,MAAyCl4J,GAAQ+pJ,GAAiB,IAAI,EAEpJglB,GAAkBrrN,YAAc,oBCDhC,MAmBMsrN,GAAa7W,IAnBS8W,CAAAzyK,EAA0Jz2B,KAAQ,IAAjK,SAAEpgB,EAAQ,UAAEpsC,EAAS,kBAAE21P,EAAiB,oBAAEC,EAAmB,YAAEp3H,EAAc,aAAY,kBAAEq3H,EAAiB,oBAAEC,EAAmB,UAAExE,KAAc7qK,GAAMxD,EAEhL,MAQM0uK,EAAmBjT,GAAWC,GARkB,MAAvBiX,EAGzBjX,GACA,KAH4C,MAArBgX,EAKvBhX,GACA,KAC+HpiD,GAAkBoiD,GAA+BngH,GAAcx+H,GACpM,OAAQkqF,EAAAA,cAAoB6mK,GAAM,CAAE/wP,UAAW2xP,EAAkBnlM,IAAKA,KAAQi6B,GAC1EqvK,GAAwB5rK,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW0+O,GAAWC,GAAyCpiD,GAAkBoiD,GAAyC2S,KAAewE,GAC7L5rK,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW0+O,GAAWC,GAA2CpiD,GAAkBoiD,GAA2CngH,KACtJo3H,GAAwB1rK,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW2+O,IAA2CiX,GAC1GxpN,EACAupN,GAAsBzrK,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW2+O,IAAyCgX,IAC1GE,GAAsB3rK,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW0+O,GAAWC,GAAuCpiD,GAAkBoiD,GAAuC2S,KAAeuE,GAAoB,IAGnNJ,GAAWtrN,YAAc,aCpBzB,MAKM4rN,GAAQnX,IALSoX,CAAA/yK,EAA+Kz2B,KAAQ,IAAtL,aAAEypM,EAAY,QAAEx4P,EAAO,UAAEuC,EAAS,eAAEsrC,EAAc,aAAEnY,EAAY,GAAE1U,EAAE,WAAEynD,EAAU,WAAEgwL,EAAU,WAAEzgO,EAAU,KAAEn1D,EAAI,KAAE/Z,EAAO,OAAM,SAAE2uS,GAAW,EAAK,MAAE3sS,EAAK,UAAE+oS,KAAc7qK,GAAMxD,EAChM,MAAM0uK,EAAmBjT,GAAWC,GAA0BA,GAAsCpiD,GAAkBoiD,GAA0B2S,GAAY70D,GAAwBkiD,GAA0B,QAASuW,GAAW34D,GAAkBoiD,GAA0Br+Q,GAAO0/B,IAC/Q,mBAAE++O,GAAuBC,KAC/B,OAAQ90J,EAAAA,cAAoBymK,GAAM,CAAE,eAAgBuE,EAAUh/F,GAAI,QAAS+/F,aAAcA,EAAcx4P,QAASA,EAASuC,UAAW2xP,EAAkBrmN,eAAgBA,EAAgBnY,aAAcA,EAAc+yC,WAAY64K,GAA0C74K,EAAYznD,GAAIA,EAAI03O,SAAUD,EAAY1pM,IAAKA,EAAK/+E,SAAUgoD,EAAYlvE,KAAMA,EAAMgC,MAAOA,KAAUk+H,GAAO,IAG1XsvK,GAAM5rN,YAAc,QCPpB,MAKMisN,GAAQxX,IALSyX,CAAApzK,EAAmDz2B,KAAQ,IAA1D,SAAEpgB,EAAQ,UAAEpsC,EAAS,eAAEs2P,KAAmB7vK,GAAMxD,EACpE,OAAQiH,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,QAASl2J,UAAW0+O,GAAWC,GAA0B3+O,EAAW,CACpG,CAAC2+O,IAAoC2X,IACrC9pM,IAAKA,KAAQi6B,GAAQr6C,EAAS,IAG1CgqN,GAAMjsN,YAAc,QCTpB,MASMosN,GAAuBvrO,IACzB,MAAMwrO,EAAa,CACfC,WAAY,CAAC,EACbhwK,KAAM,CAAC,GAkBX,OAhBAx5H,OAAO0+C,KAAKqf,GAAOh9D,SAASyC,IAdZA,IACTA,KAAQivR,GAcPgX,CAAWjmS,GAGX+lS,EAAWC,WAAa,IACjBD,EAAWC,WACd,CAAChmS,GAAOu6D,EAAMv6D,IAIlB+lS,EAAW/vK,KAAO,IACX+vK,EAAW/vK,KACd,CAACh2H,GAAOu6D,EAAMv6D,GAEtB,IAEG+lS,CAAU,ECtBfnhM,GAA4B,OAAVsrB,iBAAU,IAAVA,YAAAA,WAAYluH,SAAWy3H,EAAAA,gBAAwB,OCAjEysK,GAINzsK,EAAM,QAAQ57H,aAAe,MAAgB,GAC7C,IAAI4e,GAAQ,EAOZ,MAAM0pR,GAAen4O,IACjB,MAAOo4O,EAAUC,GAAe5sK,EAAAA,SAAeysK,MAO/C,OALAthM,IAAgB,KACP52C,GACDq4O,GAAaC,GAAmB,OAAPA,QAAO,IAAPA,EAAAA,EAAW3oS,OAAO8e,OAC/C,GACD,CAACuxC,IACK,OAAFA,QAAE,IAAFA,EAAAA,EAAOo4O,EAAW,GAAH3zR,OAzBO,aAyBuB,KAAAA,OAAI2zR,GAAa,EAAE,ECArE56G,GAAY2iG,IAhBSoY,CAAChsO,EAAOwhC,KAC/B,MAAM,UAAExsD,EAAS,gBAAEs1P,EAAe,aAAE9kB,EAAY,SAAE0kB,GAAW,EAAK,GAAEz2O,EAAE,kBAAEk3O,EAAiB,oBAAEC,EAAmB,MAAEtzR,EAAK,YAAEizR,GAAc,EAAK,kBAAEM,EAAiB,oBAAEC,EAAmB,KAAEx1R,EAAI,OAAEuwR,EAAM,UAAES,EAAS,YAAE2F,KAAgBC,GAAUlsO,EACjOmsO,EAAUP,GAAYn4O,GACtB24O,EAAgBR,KAChBS,EAAkB/B,EAAkB8B,OAAgBtnS,GACpD,WAAE2mS,EAAU,KAAEhwK,GAAS8vK,GAAoBW,GACjD,OAAQhtK,EAAAA,cAAoB6mK,GAAM,CAAE/wP,UAAW0+O,GAAWC,GAA0BpiD,GAAkBoiD,GAA0Br+Q,GAAOq+Q,GAA8B3+O,GAAY6wP,OAAQA,KAAW4F,GAChMvsK,EAAAA,cAAoBksK,GAAO,CAAEpsI,QAASmtI,EAASb,eAAgBf,GAAejzR,GAC9E4nH,EAAAA,cAAoBmrK,GAAkB,CAAE52O,GAAI24O,EAAe7B,YAAaA,EAAaD,gBAAiBA,IACtGprK,EAAAA,cAAoBurK,GAAY,CAAEK,oBAAqBA,EAAqBD,kBAAmBA,EAAmBD,oBAAqBA,EAAqBD,kBAAmBA,EAAmBrE,UAAWA,GACzMpnK,EAAAA,cAAoB6rK,GAAO,CAAE,mBAAoBsB,EAAiBnC,SAAUA,EAAUz2O,GAAI04O,EAAS3qM,IAAKA,EAAKlsF,KAAMA,EAAMgxR,UAAWA,KAAc2F,KAAgBxwK,KACtKyD,EAAAA,cAAoBsrK,GAAmB,CAAEN,SAAUA,EAAU1kB,aAAcA,IAAgB,IAMnGv0F,GAAU9xG,YAAc,YCzBxB,MAeM+xG,GAAgB0iG,IAfS0Y,CAAAr0K,EAA0Mz2B,KAAQ,IAAjN,aAAEypM,EAAe,mBAAkB,MAAE3zR,EAAK,UAAE09B,EAAS,iBAAEu3P,GAAmB,EAAK,sBAAExC,EAAqB,qBAAEC,EAAoB,wBAAEC,EAAuB,sBAAEuC,EAAqB,KAAEl3R,EAAI,SAAE40R,KAAazuK,GAAMxD,EACnO,MAAO18H,EAAMkxS,GAAWvtK,EAAAA,SAAe,YACjCwtK,EAAsBxtK,EAAAA,aAAkB,KAEtCutK,EADS,aAATlxS,EACQ,OAGA,WACZ,GACD,CAACkxS,EAASlxS,IACb,OAAQ2jI,EAAAA,cAAoB+xD,GAAW,CAAEg6G,aAAcA,EAAcJ,kBAAmB0B,EAAmB,KAAQrtK,EAAAA,cAAoBwqK,GAAoB,CAAEI,UAAWvuS,EAAMg2G,QAASm7L,EAAqB3C,sBAAuBA,EAAuBC,qBAAsBA,EAAsBxoM,IAAKgrM,EAAuBl3R,KAAMA,EAAM20R,wBAAyBA,EAAyBC,SAAUA,IAAc50R,KAAMA,EAAM/Z,KAAMA,EAAM+b,MAAOA,EAAO09B,UAAW0+O,GAAWC,GAAkC3+O,GAAYwsD,IAAKA,EAAK0oM,SAAUA,KAAazuK,GAAO,IAM9iBy1D,GAAc/xG,YAAc,gBCf5B,MAAMwtN,GAAkB3sO,IACpB,MAAM,UAAEhrB,KAAcymF,GAASz7D,EAC/B,OAAQk/D,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,OAAQ5yL,MAAO,MAAOC,OAAQ,MAAOy8B,UAAW0+O,GAAWC,GAAyB3+O,MAAeymF,GACvIyD,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAaxsB,KAAM,OAAQ7gB,MAAO,8BAC/FmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,wFAAyFsvD,KAAM,kBAAmB,ECgBzJg+O,GAAShZ,IAhBSiZ,CAAA50K,EAA2Lz2B,KAAQ,IAAAihD,EAAA,IAAlM,aAAEwoJ,EAAY,UAAEj2P,EAAS,KAAE1/B,EAAI,UAAEgxR,EAAS,MAAE/oS,EAAK,aAAE4qE,EAAY,SAAE+hO,EAAQ,KAAEjxG,EAAI,UAAE6zG,EAAS,SAAE1rN,EAAQ,YAAEhvC,EAAW,WAAE8oE,EAAU,WAAEzwC,EAAU,WAAEsiO,GAAa,EAAK,WAAEC,EAAa,KAAMvxK,GAAMxD,EAC7M,MAEMg1K,OAA6CnoS,IAAVvH,QAAwCuH,IAAjBqjE,GAA8B/1B,EACxF86P,EAAaH,GAAcC,EAAa,EACxCrG,EAAmBjT,GAAWC,GAA2BA,GAAsCpiD,GAAkBoiD,GAA2Br+Q,GAAOi8N,GAAkBoiD,GAA2B2S,GAAY70D,GAAwBkiD,GAA2B,QAASuW,GAAWz4D,GAAwBkiD,GAA2B,WAAYuZ,GAAal4P,GAC/V0zP,EAAQX,GAAS,WACjB,mBAAEhU,GAAuBC,KAC/B,OAAQ90J,EAAAA,cAAoBymK,GAAM,CAAE3wP,UAAW2+O,IAC3Cz0J,EAAAA,cAAoBymK,GAAM,CAAE,eAAgBuE,EAAUh/F,GAAI,SAAU+/F,aAAcA,EAAc1tS,MAAOA,EAAO4qE,aAAc8kO,EAR9F,GAUpB9kO,EAAc+yC,WAAY64K,GAA0C74K,EAAY7J,SAAU07L,EAAYz3R,KAAM03R,EAAYvqR,SAAUgoD,EAAYz1B,UAAW2xP,EAAkBnlM,IAAKA,KAAQi6B,GAC9LrpF,GAAe8sF,EAAAA,cAAoB,SAAU,CAAE3hI,MAAO,IAAM60C,GAC5DgvC,GACJ8rN,EAAa,KAAQhuK,EAAAA,cAAoB6mK,GAAM,CAAE/wP,UAAW0+O,GAAWC,GAA+BpiD,GAAkBoiD,GAA+Br+Q,IAAQwa,MAAOg9Q,EAAW,cAAe,QAA+B,QAAvBrqJ,EAAM,OAAJw2C,QAAI,IAAJA,EAAAA,EAAa,OAALyvG,QAAK,IAALA,OAAK,EAALA,EAAOyE,cAAM,IAAA1qJ,EAAAA,EAAIvjB,EAAAA,cAAoBytK,GAAgB,OAAQ,IAGvRC,GAAOztN,YAAc,SCfrB,MAyBMiuN,GAAcxZ,IAfSyZ,CAACrtO,EAAOwhC,KACjC,MAAM,SAAEpgB,EAAQ,UAAEpsC,EAAS,gBAAEs1P,EAAe,aAAE9kB,EAAY,SAAE0kB,GAAW,EAAK,GAAEz2O,EAAE,MAAEn8C,EAAK,YAAEizR,GAAc,EAAK,QAAEjuS,EAAO,KAAEgZ,EAAI,OAAEuwR,EAAM,YAAEoG,KAAgBC,GAAUlsO,EACzJmsO,EAAUP,GAAYn4O,GACtB24O,EAAgBR,KAChBS,EAAkB/B,EAAkB8B,OAAgBtnS,GACpD,WAAE2mS,EAAU,KAAEhwK,GAAS8vK,GAAoBW,GACjD,OAAQhtK,EAAAA,cAAoB6mK,GAAM,CAAE/wP,UAAW0+O,GAAWC,GAA0BpiD,GAAkBoiD,GAA0Br+Q,GAAOq+Q,GAAgC3+O,GAAY6wP,OAAQA,KAAW4F,GAClMvsK,EAAAA,cAAoBksK,GAAO,CAAEpsI,QAASmtI,EAASb,eAAgBf,GAAejzR,GAC9E4nH,EAAAA,cAAoBmrK,GAAkB,CAAE52O,GAAI24O,EAAe7B,YAAaA,EAAaD,gBAAiBA,IACtGprK,EAAAA,cAAoB0tK,GAAQ,CAAE,mBAAoBP,EAAiBnC,SAAUA,EAAUz2O,GAAI04O,EAAS3qM,IAAKA,EAAKlsF,KAAMA,KAASmmH,KAASwwK,GAnBlHh0K,KAA4B,IAA3B,SAAE72C,EAAQ,QAAE9kF,GAAU27H,EAC/C,OAAI72C,GACW,OAAP9kF,QAAO,IAAPA,GAAAA,EAASY,QAET0L,QAAQC,KAAK,qIAEVu4E,GAEG,OAAP9kF,QAAO,IAAPA,OAAO,EAAPA,EAASc,KAAI,CAACu1C,EAAQh1C,IAAWuhI,EAAAA,cAAoB,SAAU,CAAE5nH,MAAOq7B,EAAQp1C,MAAOo1C,EAAQ5xC,IAAK,GAAFmX,OAAKy6B,EAAM,KAAAz6B,OAAIva,IAAWg1C,IAAS,EAWa26P,CAAoB,CAAElsN,WAAU9kF,aACrL4iI,EAAAA,cAAoBsrK,GAAmB,CAAEN,SAAUA,EAAU1kB,aAAcA,IAAgB,IAMnG4nB,GAAYjuN,YAAc,cClC1B,MAYMouN,GAAiB3Z,IAZS4Z,CAAAv1K,EAAoDz2B,KAAQ,IAA3D,UAAExsD,EAAS,aAAE0gM,EAAY,WAAEw1D,KAAelrO,GAAOi4D,EAC9E,MAAMw1K,EAAuB,OAAZ/3D,QAAY,IAAZA,EAAAA,EAAgBZ,GAC3B44D,EAAkBxuK,EAAAA,SAAc,IAAMuuK,EAASrwS,KAAKq4O,GAE1Dv2G,EAAAA,cAAoB,SAAU,CAAEn+H,IAAK00O,EAAUl4O,MAAOk4O,EAAUx0J,SAAUiqN,GAAcz1D,MAAa,CAACg4D,EAAUvC,IAChH,OAAQhsK,EAAAA,cAAoBkuK,GAK1B,CAAE,gBAAiBlC,EAAYD,aAAc,mBAAoBj2P,UAAW0+O,GAAWC,GAAsCA,GAAmC3+O,GAAYu1P,aAAa,EAAM/oM,IAAKA,KAAQxhC,GAAS0tO,EAAgB,IAG3OH,GAAepuN,YAAc,iBCX7B,MAMMwiN,GAAmB/N,IANS+Z,CAAA11K,EAAiQz2B,KAAQ,IAAxQ,aAAEypM,EAAe,eAAc,UAAEj2P,EAAS,gBAAE44P,EAAe,cAAEC,EAAgBlN,GAAcgB,iBAAiBC,iBAAgB,aAAElsD,EAAY,aAAEo4D,EAAY,YAAEC,EAAW,SAAE7D,EAAQ,WAAEhvL,EAAU,WAAEgwL,EAAU,iBAAE8C,EAAgB,QAAEC,EAAO,KAAE34R,EAAI,UAAEgxR,KAAc7qK,GAAMxD,EAC7R,OAAQiH,EAAAA,cAAoB+xD,GAAW,CAAE65G,oBAAqB5rK,EAAAA,cAAoBquK,GAAgB,CAAEplO,aAAcylO,EAAiBl4D,aAAcA,EAAc1gM,UAAWA,EAAWk1P,SAAUA,EAAUhvL,WAAYA,EAAYgwL,WAAYA,EAAY5zR,MAAOu2R,EAAexyS,KAAMyyS,EAAc7uI,SAAU+uI,EAAkBxsM,IAAKusM,EAAaz4R,KAAMA,EAAMgxR,UAAWA,IAAc2E,aAAcA,EAAcj2P,UAAW0+O,GAAWC,GAAqC3+O,GAAYk1P,SAAUA,EAAUhvL,WAAYA,EAAYgwL,WAAYA,EAAY+C,QAASA,EAASzsM,IAAKA,EAAKlsF,KAAMA,EAAM/Z,KAAM,MAAO+qS,UAAWA,KAAc7qK,GAAO,IAMtnBkmK,GAAiBxiN,YAAc,mBCT/B,MAAM+uN,GAAmBj2K,IAA+B,IAA9B,OAAEmK,EAAM,GAAE3uE,EAAE,SAAE06O,GAAWl2K,EAC/C,MAAY,OAANmK,QAAM,IAANA,OAAM,EAANA,EAAQllI,QAAS,GACnB,OAAO,KACX,MAAMkxS,EAAeD,EAAW,CAAE,CAACA,IAAW,GAAS,CAAC,EACxD,OAAQx5D,EAAAA,cAA6BgxD,GAAM,IAAKyI,EAAc36O,GAAIA,GAAM2uE,EAAOhlI,KAAK09C,GACxE65L,EAAAA,cAA6B8yD,GAAM,CAAE1mS,IAAK+5C,EAAO6kH,KAAM,QAAS2mI,UAAW,SAAWh6O,GAAUxR,MACzG,ECFP,SAASuzP,GAASp2K,GAAiE,IAA9Dg9G,aAAcg2D,EAAY,SAAEx1D,EAAQ,KAAEp6O,EAAI,KAAEE,KAASykE,GAAOi4D,EAC7E,MAAM,iBAAE87G,GAAqB0L,IAAiBh9F,IAAA,IAAC,iBAAEsxF,GAAkBtxF,EAAA,MAAK,CACpEsxF,EACH,IACK3xG,EAASlD,EAAAA,SAAc,IAAM82G,GAAUjC,EAAiB14O,KAAQ,CAACA,EAAM04O,IACvEm2D,GAAiB,OAAN9nK,QAAM,IAANA,OAAM,EAANA,EAAQllI,QAAS,EAC5BoxS,EAAU1C,KACVS,EAAkBnC,EAAWoE,OAAUxpS,EAC7C,MAAa,QAATvJ,EACQ2jI,EAAAA,cAAoBA,EAAAA,SAAgB,KACxCA,EAAAA,cAAoByiK,GAAkB,IAAK3hO,EAAO3kE,KAAMA,EAAMuyS,gBAAiBn4D,EAAUq4D,aAAc,eAAgB7C,aAAcA,EAAcf,SAAUA,EAAU,mBAAoBmC,IAC3LntK,EAAAA,cAAoBgvK,GAAkB,CAAEC,SAAU,8BAA+B/rK,OAAQA,EAAQ3uE,GAAI66O,KAE3F,aAAT/yS,EACG2jI,EAAAA,cAAoBA,EAAAA,SAAgB,KACxCA,EAAAA,cAAoBgyD,GAAe,IAAKlxH,EAAO3kE,KAAMA,EAAMkzS,eAAgB,MAAOtD,aAAcA,EAAcf,SAAUA,EAAU,mBAAoBmC,IACtJntK,EAAAA,cAAoBgvK,GAAkB,CAAEC,SAAU,8BAA+B/rK,OAAQA,EAAQ3uE,GAAI66O,KAGjGpvK,EAAAA,cAAoBA,EAAAA,SAAgB,KACxCA,EAAAA,cAAoB+xD,GAAW,IAAKjxH,EAAO3kE,KAAMA,EAAMkzS,eAAgB,MAAOtD,aAAcA,EAAcf,SAAUA,EAAU3uS,KAAMA,EAAM,mBAAoB8wS,IAC9JntK,EAAAA,cAAoBgvK,GAAkB,CAAEC,SAAU,8BAA+B/rK,OAAQA,EAAQ3uE,GAAI66O,IAEjH,CC5BA,SAASE,KACL,MAAM,OAAE7hH,GAAW8yD,IAAiBxnH,IAAA,IAAC,MAAE+C,GAAO/C,EAAA,MAAK,CAAC+C,EAAM,IACpDsiH,EAAap+G,EAAAA,OAAaytD,EAAOvvL,KAAI,CAACmgI,EAAO5/H,IAAWuhI,EAAAA,cAAoBmvK,GAEhF,CAEEttS,IAAKpD,KAAU4/H,OAAY97G,QAC/B,OAAOy9G,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMo+G,EACrD,CCFA,MAAMmxD,GAAWzzK,GACI,WAAVA,GAAsB,SAEjC,SAAS0zK,GAAcz2K,GAAkD,IAAjD,SAAE72C,EAAQ,UAAEpsC,EAAS,UAAEsxP,EAAY,WAAYruK,EACnE,MAAM,MAAE+C,GAAUykH,IAAiBh9F,IAAA,IAAC,MAAEznB,GAAOynB,EAAA,MAAK,CAACznB,EAAM,KAGzD2+J,YAAY,OAAEgV,EAAM,OAAEC,IAAcle,KACpC,OAAQ/7C,EAAAA,cAA6BgxD,GAAM,CAAE3wP,UAAWA,EAAW,6BAA8B,GAAI,iBAAkBsxP,GACnH3xD,EAAAA,cAA6BgxD,GAAM,CAAE,yBAA0B,IAC3DhxD,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BgxD,GAAM,CAAE,sBAAuB,GAAI,8BAA+B8I,GAAQzzK,QAASl2H,EAAY,IAAMs8E,GAClIuzJ,EAAAA,cAA6Bi6D,EAAQ,OACjD,CCVA,MAAQpc,uBAAsB,GAAEK,sBAAqB,qBAAExB,GAAiB,eAAED,GAAc,kBAAEM,IAAuBV,GACjH,SAASxwC,GAAavoH,GAA4B,IAA3B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EAC5C,MAAM,UAAEo8G,EAAS,WAAE5B,EAAU,oBAAEmB,GAAwB6L,IAAkB7mO,GAAY,CACjFA,EAAQy7N,UACRz7N,EAAQ65N,WACR75N,EAAQg7N,wBAEN,aAAEi0D,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERn5C,eAAe,OAAEmuD,EAASnuD,GAAcmuD,OAAM,OAAEC,EAASpuD,GAAcouD,UAAkBle,KACzF,OAEA/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GAC5E3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,2CAA4C,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAC9J1yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B8yD,GAAM,CAAEzyP,UAAW,mCAAqCw9O,GAAuB5+C,IAC5Ge,EAAAA,cAA6B65D,GAAY,MACzC75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6B5jD,GAAQ,CAAEu1G,UAAW,UAAWprL,WAAYm5H,EAAW94O,KAAM,SAAUylS,YAAa3P,KAAqB6V,UAAW7yD,GAAa+8C,MAC9Jz8C,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAASkhI,EAAYl3O,KAAM,UAAYm2R,OAClF/8C,EAAAA,cAA6Bi6D,EAAQ,QACrD,CAOApuD,GAAcmuD,OANQE,KAClB,MAAM,oBAAEj7D,GAAwB6L,IAAkB7mO,GAAY,CAC1DA,EAAQg7N,uBAEZ,OAAQe,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAKgkN,GAAsBj/C,GAAqB,EAG3G4M,GAAcouD,OAAS,WAEnB,OAAO,IACX,ECpCA,MAAM,sBAAE1d,GAAqB,gBAAEC,GAAe,oBAAEF,IAAwBD,GAClE8d,GAAmB72K,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EAC/C,MAAM,UAAEo8G,EAAS,SAAEtB,GAAa0M,IAAkB7mO,GAAY,CAC1DA,EAAQy7N,UACRz7N,EAAQm6N,aAEN,WAAEw0B,EAAU,aAAEsgC,EAAY,aAAExgC,GAAiBugC,MAC3CjO,YAERmV,kBAAkB,WAAEN,EAAaM,GAAiBN,WAAU,OAAEG,EAASG,GAAiBH,OAAM,OAAEC,EAASE,GAAiBF,UAAkBle,KAC5I,OAAQ/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,8CAA+C,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,EAAc9mG,OAAQgnG,GACvL5yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6B65D,EAAY,MACzC75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6B5jD,GAAQ,CAAE71E,WAAYm5H,EAAW94O,KAAM,SAAU+qS,UAAW,UAAWY,UAAW7yD,EAAW2sD,YAAa7P,MAAqBD,MAC5Jv8C,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAASwhI,EAAUx3O,KAAM,SAAU+qS,UAAW,OAAQhxR,KAAM,SAAW27Q,MAC9Gt8C,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAE7DE,GAAiBN,WAAa,WAC1B,OAAO75D,EAAAA,cAA6B65D,GAAY,KACpD,EACAM,GAAiBH,OAAS,WACtB,OAAOh6D,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAKqiN,KAC/D,EACA4d,GAAiBF,OAAS,WACtB,OAAO,IACX,iBClCA,MAAQxd,eAAc,GAAEC,kBAAiB,GAAEJ,oBAAmBA,IAAKD,GAC7D+d,GAAsBA,KACxB,MAAM,UAAE16D,EAAS,SAAEtB,GAAa0M,IAAkB7mO,GAAY,CAC1DA,EAAQy7N,UACRz7N,EAAQm6N,YAEZ,OAAQ4B,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UACpD2zM,EAAAA,cAA6B5jD,GAAQ,CAAE71E,WAAYm5H,EAAW94O,KAAM,SAAU+qS,UAAW,UAAWY,UAAW7yD,EAAW2sD,YAAa3P,MAAuBD,MAC9Jz8C,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAASwhI,EAAUx3O,KAAM,SAAU+qS,UAAW,OAAQhxR,KAAM,SAAW27Q,MAAuB,ECAvIz3O,GAAS,IAAI0uF,GAAc,qBAC3B,iBAAE8qJ,GAAgB,cAAEE,GAAa,eAAE1B,IAAmBR,GACtDge,GAAY/2K,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EACxC,MAAM,eAAE+7G,EAAc,UAAEK,EAAS,SAAElqH,EAAQ,SAAE81H,GAAaR,IAAkB7mO,GAAY,CAACA,EAAQy7N,UAAWz7N,EAAQo7N,eAAgBp7N,EAAQuxG,aACtI,aAAE09K,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERqV,WAAW,OAAEL,EAASK,GAAUL,OAAM,OAAEC,EAASI,GAAUJ,UAAiBle,MACrEwW,EAAW+H,GAAgB/vK,EAAAA,UAAe,IAC1CgwK,EAAQC,GAAajwK,EAAAA,YACrBkwK,EAAeC,GAAoBnwK,EAAAA,SAAe,SACnD,WAAEowK,EAAa,aAAY,aAAEC,EAAeplL,GAAqB,OAAR81H,QAAQ,IAARA,EAAAA,EAAY,CAAC,EACtEuvD,EAAiBtwK,EAAAA,aAAkB+gB,UACrC,IACI,MAAMwvJ,E3NQKC,EAACjhE,EAAQtkH,EAAU7/C,IAAWmmF,UAAU,kBAADv4I,OAAmBu2N,EAAM,KAAAv2N,OAAIiyG,EAAQ,YAAAjyG,OAAWoyD,EAAM,YAAApyD,OAAWu2N,I2NRlGihE,CAAeJ,EAAYC,EAAcv7D,GACpD27D,QAA0BpkO,GAAAA,UAAiBkkO,GACjDN,EAAUQ,EACd,CACA,MAAO70P,GACHtB,GAAOsB,MAAMA,EACjB,CAAC,QAEGm0P,GAAa,EACjB,IACD,CAACK,EAAYC,EAAcv7D,IAC9B90G,EAAAA,WAAgB,KACPgwK,GACDM,GACJ,GACD,CAACA,EAAgBN,IAKpB,OAAQhwK,EAAAA,cAAoBwvK,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GAC3EpnK,EAAAA,cAAoB,OAAQ,CAAE,oBAAqB,GAAI,wCAAyC,GAAIomB,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAClJnoI,EAAAA,cAAoB6mK,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GACzEn1G,EAAAA,cAAoByvK,EAAQ,MAC5BzvK,EAAAA,cAAoB6mK,GAAM,CAAE/kQ,UAAW,UACnCkmQ,EAAahoK,EAAAA,cAAoB,IAAK,KAClCsyJ,KACA,UAActyJ,EAAAA,cAAoB,MAAO,CAAE,uBAAuB,EAAM/xF,IAAK+hQ,EAAQpgJ,IAAK,UAAWx2I,MAAO,MAAOC,OAAQ,QAC/H2mH,EAAAA,cAAoB6mK,GAAM,CAAE,qBAAqB,GAC7C7mK,EAAAA,cAAoB,MAAO,KAAM80G,GACjC90G,EAAAA,cAAoB6mK,GAAM,CAAE,yBAAyB,EAAMx0L,QAd9Dq+L,KACbt2P,UAAUu2P,UAAUC,UAAU97D,GAC9Bq7D,EAAiBnc,KAAgB,GAabh0J,EAAAA,cAAoB,MAAO,CAAE,6BAA6B,GAAQkwK,GAClElwK,EAAAA,cAAoB,MAAO,CAAE5mH,MAAO,KAAMC,OAAQ,KAAM6iE,QAAS,YAAartC,MAAO,8BACjFmxF,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAG,6JAC7C4/H,EAAAA,cAAoBsvK,GAAY,MAChCtvK,EAAAA,cAAoBmqK,GAAoB,OAC5CnqK,EAAAA,cAAoB6vK,GAAqB,MACzC7vK,EAAAA,cAAoB0vK,EAAQ,QAAQ,EAEpDI,GAAUL,OAAS,WACf,OAAOzvK,EAAAA,cAAoBooK,GAAS,CAAEz4N,MAAO,GAAKmkN,KACtD,EACAgc,GAAUJ,OAAS,WAEf,OAAO,IACX,ECvEA,MAAMmB,GAAc7wK,EAAAA,cAAoB,CACpC8wK,UAAW,GACXC,aAAcA,SCgBZC,GAAWtc,IAdSuc,CAAAl4K,EAAgFz2B,KAAQ,IAAvF,UAAExsD,EAAS,MAAEz3C,EAAK,SAAE6jF,EAAQ,QAAEmwB,EAAO,GAAE25F,EAAK,SAAQ,KAAEvrC,EAAO,SAAUlkC,GAAMxD,EACpG,MAAM,UAAE+3K,EAAS,aAAEC,GAAiB/wK,EAAAA,WAAiB6wK,IAC/CK,EAAWJ,IAAczyS,EAO/B,OAAQ2hI,EAAAA,cAAoBymK,GAAM,IAAKlqK,EAAMkkC,KAAMA,EAAMurC,GAAIA,EAAIz3I,GAAI,GAAFv7C,OAAK3a,EAAK,QAAQ,gBAAiB6yS,EAAU,gBAAiB,GAAFl4R,OAAK3a,EAAK,UAAUgsN,SAAW6mF,OAAgBtrS,GAAJ,EAAekwC,UAAW0+O,GAAWC,GAA6BliD,GAAwBkiD,GAA6B,SAAUqc,IAAczyS,GAAQy3C,GAAYwsD,IAAKA,EAAK+P,QANhUz6F,KrR4K3B,SAAyBvZ,GACrB,OAAOu+D,GAAWv+D,EACtB,EqR7KY8yS,CAAgB9+L,KACT,OAAPA,QAAO,IAAPA,GAAAA,EAAUz6F,IAEdm5R,EAAa1yS,EAAM,GAE0V6jF,EAAS,IAM9X8uN,GAAS/wN,YAAc,YCfvB,MA2EMmxN,GAAU1c,IA1ES2c,CAAAt4K,EAAiFz2B,KAAQ,IAAxF,UAAExsD,EAAS,SAAEosC,EAAQ,kBAAEovN,EAAiB,QAAEC,EAAO,KAAE9wI,EAAO,aAAclkC,GAAMxD,EACpG,MAAMy4K,EAAcxxK,EAAAA,OAAa,OAC3B,UAAE8wK,EAAS,aAAEC,GAAiB/wK,EAAAA,WAAiB6wK,IACrD7wK,EAAAA,oBAA0B19B,GAAK,IAAMkvM,EAAYjvR,UACjD,MAAMsL,EAASmyG,EAAAA,SAAc,IAAMA,EAAAA,SAAeniB,QAAQ37B,GACrDhkF,KAAKw+C,IACN,GAAIA,GAPQA,IAAUsjF,EAAAA,eAAqBtjF,GAO9B+0P,CAAW/0P,GACpB,OAAOA,EAAMokB,MAAMziE,KACvB,IAEC2xB,QAAQ0sB,KAAYA,KAAQ,CAACwlC,IAC5B7/D,EAAewL,EAAOppB,QAAQqsS,GAC9BY,EAAU1xK,EAAAA,aAAkB,KAAM,IAAA2xK,EAAAC,EACpC,IAAIluR,EAAYrB,IAAiBwL,EAAO7vB,OAAS,EAAI,EAAIqkB,EAAe,EACxE,MAAMwvR,EAAuD,QAAlDF,EAAsB,QAAtBC,EAAGJ,EAAYjvR,eAAO,IAAAqvR,OAAA,EAAnBA,EAAqB53L,iBAAiB,iBAAS,IAAA23L,EAAAA,EAAI,GACjE,KAAOE,EAAMnuR,GAAWq+D,UAChBr+D,IAAcmK,EAAO7vB,OAAS,EAC9B0lB,EAAY,EAGZA,IAGR,MAAMrlB,EAAQwvB,EAAOnK,GACrB,GAAIrlB,EAAO,CACP0yS,EAAa1yS,GACb,MAAMyzS,EAAOD,EAAMnuR,GACf,OAAJouR,QAAI,IAAJA,GAAAA,EAAMj4M,QACF,OAAJi4M,QAAI,IAAJA,GAAAA,EAAMzoF,OACV,IACD,CAAChnM,EAAc0uR,EAAcljR,IAC1BkkR,EAAU/xK,EAAAA,aAAkB,KAAM,IAAAgyK,EAAAC,EACpC,IAAIlvR,EAA6B,IAAjBV,EAAqBwL,EAAO7vB,OAAS,EAAIqkB,EAAe,EACxE,MAAMwvR,EAAuD,QAAlDG,EAAsB,QAAtBC,EAAGT,EAAYjvR,eAAO,IAAA0vR,OAAA,EAAnBA,EAAqBj4L,iBAAiB,iBAAS,IAAAg4L,EAAAA,EAAI,GACjE,KAAOH,EAAM9uR,GAAWg/D,UACF,IAAdh/D,EACAA,EAAY8K,EAAO7vB,OAAS,EAG5B+kB,IAGR,MAAM1kB,EAAQwvB,EAAO9K,GACrB,GAAI1kB,EAAO,CACP0yS,EAAa1yS,GACb,MAAMyzS,EAAOD,EAAM9uR,GACf,OAAJ+uR,QAAI,IAAJA,GAAAA,EAAMj4M,QACF,OAAJi4M,QAAI,IAAJA,GAAAA,EAAMzoF,OACV,IACD,CAAChnM,EAAc0uR,EAAcljR,IAC1Bu8L,EAAYpqF,EAAAA,aAAmBhpC,IACjC,OAAQA,EAAMn1F,KACV,IAAK,YACDm1F,EAAMpH,iBACNoH,EAAMvI,kBACNsjN,IACA,MACJ,IAAK,UACL,IAAK,aACD/6M,EAAMpH,iBACNoH,EAAMvI,kBACNijN,IAER,GACD,CAACK,EAASL,IACb,OAAQ1xK,EAAAA,cAAoBymK,GAAM,IAAKlqK,EAAMkkC,KAAMA,EAAM2pD,UAAWA,EAAWt0K,UAAW0+O,GAAWC,GAA6B6c,EACxHj/D,GAAkBoiD,GAA6B6c,GAC/C,KAAMC,EACNl/D,GAAkBoiD,GAA6B8c,GAC/C,KAAMz7P,GAAYwsD,IAAKkvM,GAAetvN,EAAS,IAM7DkvN,GAAQnxN,YAAc,YC5EtB,MASMiyN,GAAWxd,IATSyd,CAAAp5K,EAA6Dz2B,KAAQ,IAApE,UAAExsD,EAAS,MAAEz3C,EAAK,SAAE6jF,EAAQ,KAAEu+E,EAAO,cAAelkC,GAAMxD,EACjF,MAAM,UAAE+3K,EAAS,OAAEsB,GAAWpyK,EAAAA,WAAiB6wK,IAC/C,OAAIuB,GAAUtB,IAAczyS,EACjB,KACH2hI,EAAAA,cAAoBymK,GAAM,IAAKlqK,EAAMkkC,KAAMA,EAAMlsG,GAAI,GAAFv7C,OAAK3a,EAAK,UAAU,kBAAmB,GAAF2a,OAAK3a,EAAK,QAAQy3C,UAAW0+O,GAAWC,GAA8BliD,GAAwBkiD,GAA8B,SAAUqc,IAAczyS,GAAQy3C,GAAYwsD,IAAKA,GAAOpgB,EAAS,IAMjSgwN,GAASjyN,YAAc,aCVvB,MAyBMoyN,GAAgB3d,IAzBS4d,CAAAv5K,EAAgGz2B,KAAQ,IAAvG,SAAEpgB,EAAQ,aAAEjZ,EAAY,UAAEnzB,EAAWz3C,MAAOk0S,EAAe,cAAEC,EAAa,OAAEJ,KAAW71K,GAAMxD,EACzH,MAAM05K,OAAmC7sS,IAApB2sS,GACdG,EAAYC,GAAiB3yK,EAAAA,UAAe,IAAMyyK,EAAeF,EAAkBtpO,IACpF6nO,EAAY2B,EAAeF,EAA4B,OAAVG,QAAU,IAAVA,EAAAA,EAAc,GAC3D3B,EAAe/wK,EAAAA,aAAmBxhE,IAChC5B,GAAW41O,IACXA,EAAch0O,GAEbi0O,GACDE,EAAcn0O,EAClB,GACD,CAACg0O,EAAeC,IACbroR,EAAS41G,EAAAA,SAAc,KAClB,CACH8wK,YACAsB,SACArB,kBAEL,CAACD,EAAWC,EAAcqB,IAC7B,OAAQpyK,EAAAA,cAAoB6wK,GAAYnyL,SAAU,CAAErgH,MAAO+rB,GACvD41G,EAAAA,cAAoBymK,GAAM,IAAKlqK,EAAMj6B,IAAKA,EAAKxsD,UAAW0+O,GAAW1+O,EAAW2+O,KAA4BvyM,GAAU,IAM9HmwN,GAAcpyN,YAAc,iBCzB5B,MAQM2yN,GAAO7vS,OAAOgU,OAAO29Q,IARLme,CAAA95K,EAAiEz2B,KAAQ,IAAxE,MAAE6xD,EAAK,kBAAEm9I,EAAiB,eAAE5a,EAAc,QAAE6a,KAAYh1K,GAAMxD,EACjF,OAAQiH,EAAAA,cAAoBqyK,GAAe,IAAK91K,EAAMj6B,IAAKA,GACvD09B,EAAAA,cAAoBoxK,GAAS,CAAEE,kBAAmBA,EAAmB5a,eAAgBA,EAAgB6a,QAASA,GAAgB,OAALp9I,QAAK,IAALA,OAAK,EAALA,EAAOj2J,KAAIqlJ,IAAA,IAAC,MAAEllJ,EAAK,MAAE+Z,EAAK,QAAE9M,KAAYixH,GAAMgnB,EAAA,OAAMvjB,EAAAA,cAAoBgxK,GAAU,IAAKz0K,EAAM16H,IAAKxD,EAAOA,MAAOA,GAAS+Z,EAAM,KACnP,OAAL+7I,QAAK,IAALA,OAAK,EAALA,EAAOj2J,KAAIulJ,IAAA,IAAC,MAAEplJ,EAAK,QAAEiN,EAAO,WAAE0wG,GAAYynC,EAAA,OAAMzjB,EAAAA,cAAoBkyK,GAAU,CAAErwS,IAAKxD,EAAOA,MAAOA,EAAO29G,WAAYA,GAAc1wG,EAAQ,IAAG,IAKpF,CAC/DwnS,KAAM9B,GACN+B,KAAM3B,GACN4B,MAAOd,GACPe,UAAWZ,KClBf,IAAIa,GAUAC,GDUJP,GAAK3yN,YAAc,OCnBnB,SAAWizN,GACPA,EAAkC,MAAI,QACtCA,EAAmC,OAAI,SACvCA,EAAqC,SAAI,WACzCA,EAAmC,OAAI,QAC1C,CALD,CAKGA,KAA+BA,GAA6B,CAAC,IAKhE,SAAWC,GACPA,EAAmC,MAAI,QACvCA,EAAyC,YAAI,cAChD,CAHD,CAGGA,KAAgCA,GAA8B,CAAC,ICVlE,MAOMC,GAAU1e,IAPS2e,CAAAt6K,EAAkEz2B,KAAQ,IAAzE,UAAExsD,EAAS,YAAEw+H,EAAc,aAAY,KAAEl+J,EAAI,MAAEgC,KAAUmkH,GAAMxD,EACrF,MAAM0uK,EAAmBjT,GAAWC,GAA4BpiD,GAAkBoiD,GAA4BngH,GAAc+9D,GAAkBoiD,GAA4Br+Q,GAAO0/B,GACjL,OAAQkqF,EAAAA,cAAoBymK,GAAM,CAAE,mBAAoBnyH,EAAa03B,GAAI,KAAMl2J,UAAW2xP,EAAkB,aAAcrvR,EAAOkqF,IAAKA,KAAQi6B,GAAO,IAMzJ62K,GAAQnzN,YAAc,UCRtB,MAAMqzN,GAAiB,CAAEC,KAAM,EAAGC,KAAM,EAAGp6R,MAAO,GAAIC,OAAQ,IA2BxDo6R,GAAO/e,IA1BSgf,CAAA36K,EAE6Ez2B,KAAQ,IAFpF,UAAExsD,EAAS,GAElCk2J,EAAK,MAAK,KAAEt8I,EAAO,eAAc,SAAEikP,EAAQ,QAAEz3N,EAAUo3N,GAAc,SAAEpxN,EAAQ,MAAExxB,KAAU6rE,GAAMxD,EAC7F,MAAMw6K,EAAOr3N,EAAQq3N,KAAOr3N,EAAQq3N,KAAOD,GAAeC,KACpDC,EAAOt3N,EAAQs3N,KAAOt3N,EAAQs3N,KAAOF,GAAeE,KACpDp6R,EAAQ8iE,EAAQ9iE,MAAQ8iE,EAAQ9iE,MAAQk6R,GAAel6R,MACvDC,EAAS6iE,EAAQ7iE,OAAS6iE,EAAQ7iE,OAASi6R,GAAej6R,OAKhE,IAAIu6R,EAUJ,OATI1xN,IACA0xN,EAAY1xN,GAEZxxB,IACAkjP,EAAYljP,EAAMxyD,KAAI,CAACwlD,EAAMjlD,IAAUuhI,EAAAA,cAAoB,OAAQ,IAAKt8E,EAAM7hD,IAAKpD,OAEnFk1S,IACAC,EAAY5zK,EAAAA,cAAoB,OAAQ,CAAE5/H,EAAGuzS,EAAUjkP,KAAMA,KAEzDswE,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAIA,EAAIl2J,UAAW0+O,GAAWC,GAAyB3+O,GAAYwsD,IAAKA,EAAKpmB,QAAS,GAAFljE,OAAKu6R,EAAI,KAAAv6R,OAAIw6R,EAAI,KAAAx6R,OAAII,EAAK,KAAAJ,OAAIK,MAAakjH,GAAQq3K,EAAU,IAMzLH,GAAKxzN,YAAc,OCxBnB,MAAM4zN,GAAYA,IACNp+D,EAAAA,cAA6B,MAAO,CAAE,aAAc,aAAc3/L,UAAW,sCAAuC4Z,KAAM,OAAQokP,oBAAqB,WAAY//O,OAAQ,OAAQsxB,YAAa,IAAKnJ,QAAS,gBAAiBrtC,MAAO,8BAC1O4mM,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,oeAE5C2zS,GAAaA,IACPt+D,EAAAA,cAA6B,MAAO,CAAE,aAAc,cAAe3/L,UAAW,sCAAuComC,QAAS,cAAertC,MAAO,6BAA8BilQ,oBAAqB,YAC3Mr+D,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,6LAA8LsvD,KAAM,YAC9O+lL,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,4NAA6NsvD,KAAM,YAC7Q+lL,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,oMAAqMsvD,KAAM,YACrP+lL,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,+LAAgMsvD,KAAM,aAElPskP,GAAeA,IACTv+D,EAAAA,cAA6Bg+D,GAAM,CAAE39P,UAAW,yBAA0B8wP,UAAW,gBAAiB1qN,QAAS,CAAEq3N,KAAM,EAAGC,KAAM,EAAGp6R,MAAO,IAAKC,OAAQ,KAAOs6R,SAAU,wbAAybjkP,KAAM,YAE7mBukP,GAAaA,IACPx+D,EAAAA,cAA6B,MAAO,CAAE,aAAc,cAAe3/L,UAAW,sCAAuComC,QAAS,cAAertC,MAAO,6BAA8BilQ,oBAAqB,YAC3Mr+D,EAAAA,cAA6B,OAAQ,CAAEr1O,EAAG,irBAAkrBsvD,KAAM,YACluB+lL,EAAAA,cAA6B,OAAQ,CAAEy+D,SAAU,UAAWC,SAAU,UAAW/zS,EAAG,s/BAAu/BsvD,KAAM,aAEnlC0kP,GAAyBtzO,IAC3B,MAAM,KAAEi5H,EAAI,SAAEvsD,EAAQ,KAAEvmI,GAAS65D,GAC3B,kBAAE6yK,GAAsB4M,KAK9B,IAAI8zD,EAaJ,MAZa,aAATt6G,EACAs6G,EAAgB5+D,EAAAA,cAA6Bu+D,GAAc,MAE7C,WAATj6G,EACLs6G,EAAgB5+D,EAAAA,cAA6Bs+D,GAAY,MAE3C,WAATh6G,EACLs6G,EAAgB5+D,EAAAA,cAA6Bw+D,GAAY,MAE3C,UAATl6G,IACLs6G,EAAgB5+D,EAAAA,cAA6Bo+D,GAAW,OAEpDp+D,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAjB1Brb,IACjBA,EAAMpH,iBACN+jJ,EAAkB,CAAEnmG,YAAW,EAekC13F,UAAW,2BAA4B0gP,IAAK,QAC7G6d,EACA5+D,EAAAA,cAA6B8yD,GAAM,CAAEv8F,GAAI,QAAU/kM,GAAM,GC3CzDgtR,4BAA2B,aAAE1B,IAAcT,GACnD,SAASwiB,KACL,MAAM,MAAEx4K,EAAK,gBAAEk5G,GAAoBuL,IAAiBxnH,IAAA,IAAC,MAAE+C,EAAK,gBAAEk5G,GAAiBj8G,EAAA,MAAK,CAAC+C,EAAOk5G,EAAgB,IAC5G,OAA+B,IAA3BA,EAAgBh3O,OAET,KAEHy3O,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,SAAUyqB,QAAS,aAAczW,UAAW,+BAChGk/L,EAAgB92O,KAAKsvI,IACjB,OAAQA,GACJ,IAAK,SACD,OAAQioG,EAAAA,cAA6B2+D,GAAuB,CAAEr6G,KAAM,SAAUl4L,IAAK2rI,EAAUA,SAAU0lK,GAA2BnqB,OAAQ9hR,KAAMgtR,GAA4Bn4J,EAAO0R,KACvL,IAAK,QACD,OAAQioG,EAAAA,cAA6B2+D,GAAuB,CAAEr6G,KAAM,QAASl4L,IAAK2rI,EAAUA,SAAU0lK,GAA2BlqB,MAAO/hR,KAAMgtR,GAA4Bn4J,EAAO0R,KACrL,IAAK,WACD,OAAQioG,EAAAA,cAA6B2+D,GAAuB,CAAEr6G,KAAM,WAAYl4L,IAAK2rI,EAAUA,SAAU0lK,GAA2BpqB,SAAU7hR,KAAMgtR,GAA4Bn4J,EAAO0R,KAC3L,IAAK,SACD,OAAQioG,EAAAA,cAA6B2+D,GAAuB,CAAEr6G,KAAM,SAAUl4L,IAAK2rI,EAAUA,SAAU0lK,GAA2BrqB,OAAQ5hR,KAAMgtR,GAA4Bn4J,EAAO0R,KACvL,QAEI9jI,QAAQkyC,MAAM,kCAAD5iC,OAAmCw0H,EAAQ,oFAChE,IAEJioG,EAAAA,cAA6B29D,GAAS,CAAEh9R,KAAM,QAASgC,MAAOm6Q,OACtE,CClBA,MAAM,cAAEY,GAAa,iBAAED,GAAgB,sBAAEF,IAA0BlB,GACnE,SAAStwC,KACL,MAAM,UAAErM,GAAcoL,IAAkB7mO,GAAY,CAACA,EAAQy7N,cACvD,aAAEwzD,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERj5C,QAAQ,OAAEiuD,EAASjuD,GAAOiuD,OAAM,OAAEC,EAASluD,GAAOkuD,UAAiBle,KACnE,OAAQ/7C,EAAAA,cAA6BgxD,GAAM,KACvChxD,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,oCAAqC,GAAIrvF,OAAQ,OAAQuZ,SAAUwoG,EAAcpoG,SAAU4oI,GACvJlzD,EAAAA,cAA6B6+D,GAAiB,MAC9C7+D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6B20D,GAAgB,KACzC30D,EAAAA,cAA6B,SAAU,KAAM09C,OACjD19C,EAAAA,cAA6B65D,GAAY,OAC7C75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6B5jD,GAAQ,CAAE71E,WAAYm5H,EAAW94O,KAAM,SAAU+qS,UAAW,UAAWY,UAAW7yD,EAAW2sD,YAAa5O,MAAsBC,MAC7J19C,EAAAA,cAA6Bi6D,EAAQ,QACrD,CAQAluD,GAAOkuD,OAPe6E,KAClB,MAAM,iBAAE3gE,GAAqB2M,IAAkB7mO,GAAY,CACvDA,EAAQk6N,oBAEZ,OAAQ6B,EAAAA,cAA6BgxD,GAAM,CAAE,sBAAuB,IAChEhxD,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAASuhI,EAAkBx9N,KAAM,QAASgxR,UAAW,QAAUpU,MAAyB,EAGvIxxC,GAAOiuD,OAAS,WAEZ,OAAO,IACX,EChCA,MAAM,qBAAEpc,GAAoB,uBAAED,IAA2BtB,GACzD,SAASzwC,KACL,MAAM,oBAAEpM,EAAmB,UAAEE,GAAcoL,IAAkB7mO,GAAY,CACrEA,EAAQu7N,oBACRv7N,EAAQy7N,cAEN,aAAEwzD,EAAY,WAAEtgC,EAAU,aAAEF,GAAiBugC,MAC3CjO,YAERp5C,QAAQ,OAAEouD,EAASpuD,GAAOouD,OAAM,WAAEH,EAAajuD,GAAOiuD,WAAU,OAAEI,EAASruD,GAAOquD,UAAkBle,KACpG,OAAQ/7C,EAAAA,cAA6BgxD,GAAM,KACvChxD,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,oCAAqC,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,EAAc9mG,OAAQgnG,GAC7K5yB,EAAAA,cAA6B6+D,GAAiB,MAC9C7+D,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B65D,EAAY,MACzC75D,EAAAA,cAA6B00D,GAAoB,OACrD10D,EAAAA,cAA6B5jD,GAAQ,CAAE71E,WAAYi5H,GAAuBE,EAAW4yD,aAAa,EAAM1rS,KAAM,SAAU+qS,UAAW,UAAWY,UAAW7yD,EAAW2sD,YAAa1O,MAA4BC,MAC7M59C,EAAAA,cAA6Bi6D,EAAQ,QACrD,CACAruD,GAAOouD,OAAS,WAEZ,OAAO,IACX,EACApuD,GAAOiuD,WAAa,WAChB,OAAO75D,EAAAA,cAA6B65D,GAAY,KACpD,EACAjuD,GAAOquD,OAAS,WAEZ,OAAO,IACX,EClCA,MAAM,iBAAE5c,GAAgB,iBAAEC,IAAqBjB,GACzC0iB,GAAmBz7K,IAA2C,IAA1C,UAAEjjF,EAAS,WAAE2+P,EAAU,UAAErN,GAAYruK,EAC3D,MAAM,MAAE+C,EAAK,SAAE+3G,EAAQ,SAAEC,GAAayM,IAAkB7mO,GAAY,CAChEA,EAAQoiH,MACRpiH,EAAQm6N,SACRn6N,EAAQo6N,YAEZ,OAAQ2B,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GAAaqN,EAAch/D,EAAAA,cAA6BgxD,GAAM,CAAE,8BAA+B,IAAgB,WAAV3qK,GAAsB25G,EAAAA,cAA6B+L,GAAQ,OAAW/L,EAAAA,cAA6Bm9D,GAAKK,UAAW,CAAE50S,MAAOy9H,EAAOs2K,QAAQ,EAAMI,cAAeA,IAAiB,WAAV12K,EAAqBg4G,IAAaD,KAClY4B,EAAAA,cAA6Bm9D,GAAKG,KAAM,CAAExB,QAAS,QAASD,kBAAmB,OAC3E77D,EAAAA,cAA6Bm9D,GAAKE,KAAM,CAAEz0S,MAAO,UAAYy0R,MAC7Dr9C,EAAAA,cAA6Bm9D,GAAKE,KAAM,CAAEz0S,MAAO,UAAY00R,OACjEt9C,EAAAA,cAA6Bm9D,GAAKI,MAAO,CAAE30S,MAAO,SAAU,8BAA+B,IACvFo3O,EAAAA,cAA6B+L,GAAQ,OACzC/L,EAAAA,cAA6Bm9D,GAAKI,MAAO,CAAE30S,MAAO,SAAU,8BAA+B,IACvFo3O,EAAAA,cAA6B4L,GAAQ,QAAS,GCjBpD,cAAEuxC,GAAa,kBAAEC,IAAsBf,GACvC4iB,GAAyB5zO,IAC3B,MAAM,qBAAE6zO,EAAoB,iBAAEC,EAAgB,iBAAEC,GAAqB/zO,GAC/D,UAAEq0K,EAAS,WAAE5B,EAAU,iBAAEQ,EAAgB,SAAEF,GAAa0M,IAAkB7mO,GAAY,CAACA,EAAQy7N,aAgB/F2/D,EAAoB3/D,EAAaM,EAAAA,cAA6BA,EAAAA,SAAyB,KACzFo9C,KACA,UAAcp9C,EAAAA,cAA6BA,EAAAA,SAAyB,KAAMm9C,MACxEmiB,EAA6B,OAAhBF,QAAgB,IAAhBA,EAAAA,EAAoBC,EACvC,OAAQr/D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UACpD2zM,EAAAA,cAA6B5jD,GAAQ,CAAEu1G,UAAW,UAAWprL,WAAYm5H,EAAW94O,KAAM,UAAY04S,GACtGt/D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,SAAU4zP,WAAY,UAClEjgD,EAAAA,cAA6B5jD,GAAQ,CAAEx/E,QAtB/BA,KACZ,OAAQsiM,GACJ,IAAK,OACD5gE,IACA,MACJ,IAAK,SACDR,IACA,MACJ,IAAK,UACDM,IACA,MACJ,QACI,OACR,EAS6Dx3O,KAAM,SAAU+qS,UAAW,OAAQhxR,KAAM,SAAWw+R,IAAmB,GCpBtI,2BAAEvgB,GAA0B,YAAEH,IAAgBpC,GAC9CkjB,GAAoBj8K,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EAChD,MAAM,UAAEo8G,GAAcoL,IAAkB7mO,GAAY,CAACA,EAAQy7N,cACvD,aAAEwzD,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERua,mBAAmB,OAAEvF,EAASuF,GAAkBvF,OAAM,OAAEC,EAASsF,GAAkBtF,UAAkBle,KACrG,OAAQ/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,+CAAgD,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAClK1yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B65D,GAAY,OAC7C75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6Bi/D,GAAuB,CAAEE,iBAAkB1gB,KAAeygB,qBAAsB,SAC7Gl/D,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAE7DsF,GAAkBvF,OAAS,WACvB,OAAOh6D,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAK0kN,KAC/D,EACA2gB,GAAkBtF,OAAS,WACvB,OAAO,IACX,EChCA,MACMuF,GAAoBx/D,EAAAA,cADL,CAAEt5O,KAAM,YCyBvB+4S,GAAQxgB,IAlBSygB,CAAAp8K,EAA6Gz2B,KAAQ,IAApH,SAAEpgB,EAAQ,UAAEpsC,EAAS,GAAEye,EAAE,WAAEynD,GAAa,EAAK,OAAE2qL,EAAM,MAAEtoS,EAAO+2S,cAAeC,KAAuB94K,GAAMxD,EAC9H,MAAM,aAAEu8K,EAAY,aAAErsO,EAAY,KAAE9sE,EAAI,SAAE6uS,EAAQ,gBAAEuK,GAAkB,EAAK,WAAEhqO,EAAU,WAAEygO,EAAU,SAAEjsI,EAAQ,KAAE3pJ,EAAMg/R,cAAeI,IDL7HzqM,EAAAA,EAAAA,YAAWkqM,KCMZ,mBAAEpgB,GAAuBC,KACzBoT,EAAmBrT,IAEnB0gB,GAAmBv5L,GAAegwL,GAAc/iO,IAAiB5qE,GAEjEk1C,OAA2B3tC,IAAjB0vS,EAA6Bj3S,IAAUi3S,OAAe1vS,EAEhEw7E,OAAkCx7E,IAAjBqjE,EAA6B5qE,IAAU4qE,OAAerjE,EACvEwvS,EAAgBC,GAEhBG,EACN,OAAQx1K,EAAAA,cAAoB6mK,GAAM,CAAE76F,GAAI,QAASl2J,UAAW0+O,GAAWC,GAA0BliD,GAAwBkiD,GAA0B,WAAYyT,GAAmBkN,EAAgB,iBAAHp8R,OAAoBo8R,GAAkB,KAAMt/P,IACvOosC,GAAa89C,EAAAA,cAAoBuoK,GAAM,CAAEv8F,GAAI,OAAQl2J,UAAW0+O,GAAWC,GAA+BliD,GAAwBkiD,GAA+B,WAAYyT,KAAsBhmN,GACnM89C,EAAAA,cAAoB6rK,GAAO,CAAEt4P,QAASA,EAASuC,UAAW0+O,GAAWC,GAAmCA,IAAgCrzM,eAAgBA,EAAgB4pN,SAAUA,EAAUz2O,GAAIA,EAAIynD,WAAYksL,EAAkB8D,WAAYA,EAAYzgO,WAAYA,EAAYw0F,SAAUA,EAAUz9D,IAAKA,EAAKjmG,KAAM,QAASF,KAAMA,EAAMkC,MAAOA,KAAUk+H,IAC5VyD,EAAAA,cAAoB6mK,GAAM,CAAE,cAAe,OAAQ76F,GAAI,OAAQl2J,UAAW0+O,GAAWC,GAAgCpiD,GAAkBoiD,GAAgCr+Q,IAAQuwR,OAAQA,IAAU,IAGzMuO,GAAMj1N,YAAc,QCpBpB,MAqBMw1N,GAAW/gB,IArBSghB,CAAA38K,EAAwGz2B,KAAQ,IAA/G,SAAEpgB,EAAQ,UAAEpsC,EAAS,WAAEkmE,EAAU,OAAEgiL,EAAM,aAAE2X,EAAY,KAAEv/R,EAAI,OAAEuwR,EAAM,UAAES,EAAY,WAAY7qK,GAAMxD,EAC5H,MAAM,mBAAE87J,GAAuBC,KAGzBoT,EAAmBrT,GAA0C74K,EAC7D39G,EAAQ2hI,EAAAA,SAAc,KAAM,CAC9B60J,mBAAoBqT,KACpB,CAACA,IACC0N,EAAkBphB,GAAWC,GAA6BpiD,GAAkBoiD,GAA6B2S,GAAY/0D,GAAkBoiD,GAA6Br+Q,GAAO0/B,GAC3K+/P,EAAgBrhB,GAAWC,GAAmCpiD,GAAkBoiD,GAAmCr+Q,GAAO,CAC5H,CAACq+Q,IAAoCkhB,IAEzC,OAAQ31K,EAAAA,cAAoB40J,GAAgBl2K,SAAU,CAAErgH,MAAOA,GAC3D2hI,EAAAA,cAAoB6mK,GAAM,CAAE76F,GAAI,WAAYl2J,UAAW8/P,EAAiBtzM,IAAKA,EAAKvgB,SAAUmmN,EAAkBvB,OAAQA,KAAWpqK,GAC7HyD,EAAAA,cAAoBoqK,GAAgB,CAAEp+F,GAAI,UAAYgyF,GACtDh+J,EAAAA,cAAoBymK,GAAM,CAAEz6F,GAAI,MAAO,cAAe,OAAQl2J,UAAW+/P,GAAiB7X,GAC1F97M,GAAU,IAMtBuzN,GAASx1N,YAAc,WC9BvB,MCmDM61N,GAAkBphB,IArCSqhB,CAAAh9K,EAAuOz2B,KAAQ,IAA9O,SAAEpgB,EAAQ,UAAEpsC,EAAS,aAAEmzB,EAAY,gBAAEmiO,EAAe,aAAE9kB,EAAY,SAAE0kB,GAAW,EAAK,GAAEz2O,EAAE,WAAEynD,EAAU,WAAEzwC,EAAU,WAAEygO,EAAU,OAAEhO,EAAM,aAAE2X,GAAe,EAAK,cAAEP,EAAa,SAAEr1I,EAAQ,KAAE5jK,EAAI,KAAEia,EAAI,OAAEuwR,EAAM,MAAEtoS,EAAK,UAAE+oS,KAAc7qK,GAAMxD,EAClQ,MAAMk0K,EAAUP,GAAYn4O,GACtB24O,EAAgBR,KAChBS,EAAkB/B,EAAkB8B,OAAgBtnS,EACpDowS,EDlBQC,EAACtP,EAAQ/iK,IAAc+iK,GAAU/iK,EAAY,GAAH5qH,OAAM2tR,EAAM,KAAA3tR,OAAI4qH,QAAch+H,ECkB7DqwS,CAAUtP,EAAQlS,IACrCyhB,EAAyBl2K,EAAAA,SAAc,KAAM,CAC/Cs1K,aAAcj3S,EACd4qE,eACA+hO,WACAz/N,aACAygO,aACAuJ,gBAAiBv5L,EACjB+jD,WACA3pJ,OACAja,OACAi5S,mBACA,CACAnsO,EACA+hO,EACAhvL,EACAzwC,EACAygO,EACAjsI,EACA3pJ,EACAja,EACAkC,EACA+2S,IAEJ,OAAQp1K,EAAAA,cAAoBy1K,GAAU,CAAE3/P,UAAW0+O,GAAWC,GAA0BpiD,GAAkBoiD,GAA0Br+Q,GAAOq+Q,GAAoC3+O,GAAYkmE,WAAYA,EAAYgiL,OAAQA,EAAQ2X,aAAcA,EAAcrzM,IAAKA,EAAKm+D,KAAM,aAAcrqJ,KAAMA,EAAMuwR,OAAQA,EAAQS,UAAWA,KAAc7qK,GAC9UyD,EAAAA,cAAoBmrK,GAAkB,CAAE52O,GAAI24O,EAAe7B,YAAasK,EAAcvK,gBAAiBA,IACvGprK,EAAAA,cAAoB6mK,GAAM,CAAE,mBAAoBsG,EAAiBr3P,UAAW2+O,GAA+BlgO,GAAI04O,EAAStG,OAAQqP,GAC5Hh2K,EAAAA,cAAoBi1K,GAAkBv2L,SAAU,CAAErgH,MAAO63S,GAA0Bh0N,IACvF89C,EAAAA,cAAoBsrK,GAAmB,CAAEN,SAAUA,EAAU1kB,aAAcA,IAAgB,IAMnGwvB,GAAgB71N,YAAc,kBCvC9B,MAAQi0M,YAAW,iBAAEC,GAAa,qBAAEC,GAAsBC,2BAA0BA,IAAMvC,GAWpFqkB,GAAa5yJ,IAA+B,IAA9B,UAAEztG,EAAS,UAAEsxP,GAAY7jJ,EACzC,MAAQk3I,YAER0b,YAAY,OAAE1G,EAAS0G,GAAW1G,OAAM,OAAEC,EAASyG,GAAWzG,UAAiBle,MACzE,UAAEr8C,EAAS,yBAAEJ,GAA6BwL,IAAiB98F,IAAA,IAAC,UAAE0xF,EAAS,yBAAEJ,GAA0BtxF,EAAA,MAAK,CAC1G0xF,EACAJ,EACH,KACK,aAAE4zD,EAAY,aAAExgC,GAAiBugC,KACjC0N,EAAmBjhE,EAAaM,EAAAA,cAA6BA,EAAAA,SAAyB,KAAM,mBAAuBA,EAAAA,cAA6BA,EAAAA,SAAyB,KAAM0+C,MAC/KkiB,EAA0B5gE,EAAAA,cAA6BqgE,GAAiB,CAAE9X,OAAQ5J,KAAwBj4R,KAAM,iBAAkB6/G,WAAYm5H,EAAWwgE,cAAc,IApBrJ9iS,EAoBgLkiO,EAnBjMhyO,OAAOL,QAAQmQ,GAAY3U,KAAI,CAAA66H,EAAet6H,KAAU,IAAvBoD,EAAKxD,GAAM06H,EAC/C,MAAMu9K,EAAmBzgE,GAAwBh0O,GAAKuW,MACtD,OAAQq9N,EAAAA,cAA6By/D,GAAO,CAAE/4S,KAAM,iBAAkBkC,MAAOwD,EAAKA,IAAKA,EAAKu/E,eAA0B,IAAV3iF,GACxG2uD,GAAUkpP,GACV,IACA,IjPUgBC,EAACl6S,EAAMgC,IACf,iBAAThC,EAlBgB80J,KACvB,GAAIA,EAAInzJ,OAAS,EACb,OAAOmzJ,EAEX,MAAMl1J,EAAQk1J,EAAIl1J,MAAM,IACxB,IAAK,IAAIyX,EAAI,EAAGA,EAAIzX,EAAM+B,OAAS,EAAG0V,IAClCzX,EAAMyX,GAAK,IAEf,OAAOzX,EAAMkC,KAAK,GAAG,EAWfq4S,CAAkBn4S,GARP8yJ,KACjB,MAAMslJ,EAAatlJ,EAAIl1J,MAAM,KACvBy6S,EAvBwBr4S,KAC9B,MAAMpC,EAAQoC,EAAM1B,OAAOV,MAAM,IACjC,IAAK,IAAIyX,EAAI,EAAGA,EAAIzX,EAAM+B,OAAQ0V,IAC1BA,EAAI,GAAKA,EAAIzX,EAAM+B,OAAS,IAC5B/B,EAAMyX,GAAK,KAGnB,OAAOzX,EAAMkC,KAAK,GAAG,EAgBAw4S,CAAyBF,EAAW,IACzD,MAAO,GAAPz9R,OAAU09R,EAAY,KAAA19R,OAAIy9R,EAAW,GAAE,EAMjCG,CAAYv4S,GiPZVk4S,CAAoBD,EAAkBj4S,GAAO,MAP7BwU,MAqBxB,OAAQ4iO,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,wCAAyC,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAC3J1yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrC4G,EACA5gE,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6Bi/D,GAAuB,CAAEE,iBAAkB1gB,KAAeygB,qBAAsB,OAAQE,iBAAkBuB,IACvI3gE,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAE7DyG,GAAW1G,OAAS,WAChB,OAAOh6D,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAK0kN,KAC/D,EACA8hB,GAAWzG,OAAS,WAEhB,OAAO,IACX,ECtCA,MAAQ9b,iBAAgBA,IAAK9B,GACvBrwC,GAAgB1oH,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EAC5C,MAAM,UAAEo8G,GAAcoL,IAAkB7mO,GAAY,CAACA,EAAQy7N,cACvD,aAAEwzD,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERh5C,eAAe,OAAEguD,EAAShuD,GAAcguD,OAAM,OAAEC,EAASjuD,GAAciuD,UAAkBle,KACzF,OAAQ/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,2CAA4C,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAC9J1yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B65D,GAAY,MACzC75D,EAAAA,cAA6B00D,GAAoB,OACrD10D,EAAAA,cAA6Bo6D,GAAqB,MAClDp6D,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAQ7DjuD,GAAcguD,OANd,WACI,MAAM,cAAEh7D,GAAkB8L,IAAiBh9F,IAAA,IAAC,cAAEkxF,GAAelxF,EAAA,MAAK,CAC9DkxF,EACH,IACD,OAAOgB,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAKikN,GAAiBn/C,GAChF,EAEAgN,GAAciuD,OAAS,WAEnB,OAAO,IACX,EC3BA,MAAQld,kBAAiB,4BAAEqB,IAA6B/B,GAClDlwC,GAAuB7oH,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EACnD,MAAM,UAAEo8G,GAAcoL,IAAkB7mO,GAAY,CAACA,EAAQy7N,cACvD,WAAEkzB,EAAU,aAAEsgC,EAAY,aAAExgC,GAAiBugC,MAC3CjO,YAER74C,sBAAsB,OAAE6tD,EAAS7tD,GAAqB6tD,OAAM,OAAEC,EAAS9tD,GAAqB8tD,UAAkBle,KAC9G,OAAQ/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,kDAAmD,GAAIrvF,OAAQ,OAAQuZ,SAAUwoG,EAAcpoG,SAAU4oI,EAActnI,OAAQgnG,GAC3L5yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B65D,GAAY,OAC7C75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6Bi/D,GAAuB,CAAEC,qBAAsB,SAAUC,iBAAkBpiB,OACxG/8C,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAE7D9tD,GAAqB6tD,OAAS,WAC1B,MAAMoH,EAAahjB,KACnB,OAAOp+C,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAKknO,EAC/D,EACAj1D,GAAqB8tD,OAAS,WAE1B,OAAO,IACX,ECxBA,MAAQ3d,oBAAmB,kBAAEW,GAAc,gBAAED,GAAiBoB,yBAAwBA,IAAM/B,GACtFglB,GAAiB/9K,IAA+B,IAA9B,UAAEjjF,EAAS,UAAEsxP,GAAYruK,EAC7C,MAAM,UAAEo8G,GAAcoL,IAAkB7mO,GAAY,CAACA,EAAQy7N,cACvD,aAAEwzD,EAAY,aAAExgC,GAAiBugC,MAC/BjO,YAERqc,gBAAgB,OAAErH,EAASqH,GAAerH,OAAM,OAAEC,EAASoH,GAAepH,UAAkBle,KAC5F,OAAQ/7C,EAAAA,cAA6B+5D,GAAgB,CAAE15P,UAAWA,EAAWsxP,UAAWA,GACpF3xD,EAAAA,cAA6B,OAAQ,CAAE,oBAAqB,GAAI,4CAA6C,GAAIrvF,OAAQ,OAAQ2Z,SAAU4oI,EAAchpI,SAAUwoG,GAC/J1yB,EAAAA,cAA6BoxD,GAAM,CAAE76F,GAAI,WAAYlqK,UAAW,SAAUk6E,WAAYm5H,GAClFM,EAAAA,cAA6Bg6D,EAAQ,MACrCh6D,EAAAA,cAA6BoxD,GAAM,CAAE/kQ,UAAW,UAC5C2zM,EAAAA,cAA6B65D,GAAY,OAC7C75D,EAAAA,cAA6B00D,GAAoB,MACjD10D,EAAAA,cAA6Bi/D,GAAuB,CAAEE,iBAAkB7iB,KAAuB4iB,qBAAsB,UAAWE,iBAAkB1/D,EAAaM,EAAAA,cAA6BA,EAAAA,SAAyB,KAC7Mi9C,KACA,UAAcj9C,EAAAA,cAA6BA,EAAAA,SAAyB,KAAMg9C,QAClFh9C,EAAAA,cAA6Bi6D,EAAQ,QAAQ,EAE7DoH,GAAerH,OAAS,WACpB,OAAOh6D,EAAAA,cAA6B2yD,GAAS,CAAEz4N,MAAO,GAAKkkN,KAC/D,EACAijB,GAAepH,OAAS,WAEpB,OAAO,IACX,ECrCA,MAAMqH,GAAyBj7K,GAAoB,WAAVA,GAAgC,WAAVA,ECkB/D,SAASk7K,KAEL,OAAO,IACX,CACA,MAAMC,GAAqBn7K,IACvB,OAAQA,GACJ,IAAK,gBACL,IAAK,OACL,IAAK,QACL,IAAK,aACD,OAAOk7K,GACX,IAAK,gBACD,OAAO11D,GACX,IAAK,gBACD,OAAOG,GACX,IAAK,YACD,OAAOquD,GACX,IAAK,SACL,IAAK,SACD,OAAO0E,GACX,IAAK,mBACD,OAAO5E,GACX,IAAK,iBACD,OAAOkH,GACX,IAAK,uBACD,OAAOl1D,GACX,IAAK,aACD,OAAOu0D,GACX,IAAK,oBACD,OAAOnB,GACX,QAGI,OADAtrS,QAAQC,KAAK,yDAADqP,OAA0D8iH,IAC/Dk7K,GACf,EAEJ,SAASxxK,GAAMzM,GAAwC,IAAvC,UAAEjjF,EAAS,WAAE2+P,EAAU,UAAErN,GAAYruK,EACjD,MAAM,MAAE+C,GAAUykH,IAAiBh9F,IAAA,IAAC,MAAEznB,GAAOynB,EAAA,MAAK,CAACznB,EAAM,IACnDo7K,GAAiB9rM,EAAAA,EAAAA,UAAQ,IAAM6rM,GAAkBn7K,IAAQ,CAACA,IAChE,OAAQ25G,EAAAA,cAA6ByhE,EAAgB,CAAEphQ,UAAWA,EAE9D2+P,WAAYsC,GAAsBj7K,GAAS24K,OAAa7uS,EAAWwhS,UAAWA,GACtF,CCjDA,MAAM+P,GAAoB,CAEtB1H,OAAQA,IAAM,KACdjuD,OAAQ,CACJiuD,OAAQjuD,GAAOiuD,OACfC,OAAQluD,GAAOkuD,QAEnBruD,OAAQ,CACJouD,OAAQpuD,GAAOouD,OACfH,WAAYjuD,GAAOiuD,WACnBI,OAAQruD,GAAOquD,QAEnBpuD,cAAe,CACXmuD,OAAQnuD,GAAcmuD,OACtBC,OAAQpuD,GAAcouD,QAE1BI,UAAW,CACPL,OAAQK,GAAUL,OAClBC,OAAQI,GAAUJ,QAEtB9tD,qBAAsB,CAClB6tD,OAAQ7tD,GAAqB6tD,OAC7BC,OAAQ9tD,GAAqB8tD,QAEjCjuD,cAAe,CACXguD,OAAQhuD,GAAcguD,OACtBC,OAAQjuD,GAAciuD,QAE1ByG,WAAY,CACR1G,OAAQ0G,GAAW1G,OACnBC,OAAQyG,GAAWzG,QAEvBsF,kBAAmB,CACfvF,OAAQuF,GAAkBvF,OAE1BC,OAAQsF,GAAkBtF,QAE9BE,iBAAkB,CACdH,OAAQG,GAAiBH,OACzBC,OAAQE,GAAiBF,OACzBJ,WAAYM,GAAiBN,YAEjCwH,eAAgB,CACZrH,OAAQqH,GAAerH,OACvBC,OAAQoH,GAAepH,QAG3BA,OAAQA,IAAM,MCtClB,SAAS0H,GAAqBr+K,GAA0L,IAAzL,SAAE72C,EAAQ,UAAEpsC,EAAW2kP,WAAY4c,EAAgB,WAAEj5D,EAAU,WAAEq2D,EAAU,aAAEvuF,EAAY,gBAAE82B,EAAe,iBAAEutB,EAAgB,iBAAE/sB,EAAgB,SAAEoX,EAAQ,gBAAE5f,EAAe,UAAEoyD,GAAYruK,EAClNo4J,GAAsB,CAClBruN,QAAS,+GAKTsuN,YAAY,IAEhB,MAAM,MAAEt1J,EAAK,QAAEuzB,EAAO,KAAEG,GAAS+wF,IAAiBh9F,IAAA,IAAC,MAAEznB,EAAK,QAAEuzB,EAAO,KAAEG,GAAMjM,EAAA,MAAK,CAACznB,EAAOuzB,EAASG,EAAK,KpRxB1G,SAAqCr8I,GACjC,MAAM,MAAE2oH,EAAK,kBAAEw3G,GAAsBiN,GAAiBS,IAChDs2D,EAAiB7hE,EAAAA,QAAsB,GAC7CA,EAAAA,WAAyB,KAChB6hE,EAAe/0R,SAAqB,UAAVu5G,IAC3Bw3G,EAAkBngO,GAClBmkS,EAAe/0R,SAAU,EAC7B,GACD,CAAC+wN,EAAmBx3G,EAAO3oH,GAClC,CoRgBIokS,CAA4B,CACxBrxF,eACA82B,kBACAutB,mBACA3V,WACApX,mBACAxI,kBACAoJ,eAEJ,MAAM//O,EAAQ2hI,EAAAA,SAAc,KAAM,CAAGy6J,WAAY,IAAK0c,MAAsBE,MAAuB,CAACA,IAEpG,MADuC,kBAAVv7K,GAAuC,YAAVA,EAGjD55C,EAIG89C,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMpjE,GAAWslB,GACvDA,EAAS,CAAEmtE,UAASG,SACpBttE,GAJK,KAMP89C,EAAAA,cAAoBuxJ,GAAwB7yK,SAAU,CAAErgH,MAAOA,GACnE2hI,EAAAA,cAAoBwF,GAAQ,CAAE1vF,UAAWA,EAAW2+P,WAAYA,EAAYrN,UAAWA,IAC/F,CAIA,SAASoQ,GAAc12O,GAMnB,OC5DJ,SAAwBi4D,GAA2C,IAA1C,cAAE7tD,EAAa,YAAEs3K,EAAW,QAAEz4O,GAAUgvH,GAC7D/tB,EAAAA,EAAAA,YAAU,IACiBu3I,GAAa,CAChCr3K,gBACAs3K,cACAz4O,aAGL,CAACmhE,EAAes3K,EAAaz4O,GACpC,CD8CI0tS,CAAgB,CACZvsO,cAAe,gBACfs3K,YAAa,QACbz4O,QAASy1N,KAELx/F,EAAAA,cAAoB+wJ,GAAuB,KAC/C/wJ,EAAAA,cAAoBo3K,GAAuB,IAAKt2O,IACxD,CACA02O,GAAc94L,SAAWqyK,GACzBymB,GAAcV,eAAiBA,GAC/BU,GAAc1H,UAAYA,GAC1B0H,GAAch2D,OAASA,GACvBg2D,GAAcn2D,OAASA,GACvBm2D,GAAc5H,iBAAmBA,GEpEjC,MA4BA,GA5BkB,CACd,mBAAsB,aACtB,6BAAgC,kDAChC,mBAAsB,aACtB,kBAAqB,uBACrB,6BAAgC,4BAChC,MAAS,CAAC,EACV,gCAAmC,CAC/B,SAEJ,6BAAgC,GAChC,8BAAiC,CAC7B,SAEJ,8BAAiC,MACjC,sBAAyB,CACrB,OAEJ,yCAA4C,CACxC,wBAA2B,EAC3B,yBAA4B,IAEhC,oCAAuC,CACnC,UCTRjzJ,GAAQnT,UAAUkuK,IAmClB,MAAMC,GAAcp0J,IAAA,IAAC,SAAErhE,EAAQ,QAAEmtE,GAAS9L,EAAA,OACxCmM,EAAAA,GAAAA,MAAA,OAAK55G,UAAU,eAAcosC,SAAA,EAC3BytE,EAAAA,GAAAA,KAACioJ,GAAO,CAACvoJ,QAASA,KAClBM,EAAAA,GAAAA,KAAA,OAAK75G,UAAU,eAAcosC,SAAEA,MAC3B,EAGR,GCrDA,SAA2B67B,GAAyB,IAAd3gH,EAAOgI,UAAApH,OAAA,QAAA4H,IAAAR,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7C,MAAM,UAAEgiS,EAAY,SAAYhqS,EAChC,OAAO,SAAkC0jE,GACrC,OAAQ20K,EAAAA,cAA6B+hE,GAAe,CAAEpQ,UAAWA,KAAchqS,IAAYy6S,GAA4BpiE,EAAAA,cAA6B13H,EAAW,IAAKj9C,KAAU+2O,KAClL,CACJ,CDgDA,EAxCA,WACE,OACEloJ,EAAAA,GAAAA,KAACnqB,GAAM,CAAAtjD,UACLytE,EAAAA,GAAAA,KAAA,OAAK75G,UAAU,MAAKosC,UAClBytE,EAAAA,GAAAA,KAAC6nJ,GAAa,CAAAt1N,SACX62C,IAAA,IAAC,QAAEs2B,GAASt2B,EAAA,OACX22B,EAAAA,GAAAA,MAAC1pB,GAAM,CAAA9jD,SAAA,EACLytE,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,IAAI59C,SAAS6pJ,EAAAA,GAAAA,KAAC2O,GAAI,OAC9B3O,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,QAAQ59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAAC6O,GAAI,SACjE7O,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,gBAAgB59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAACkR,GAAY,SACjFlR,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,YAAY59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAACmR,GAAQ,SACzEnR,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,aAAa59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAACwtD,GAAS,SAC3ExtD,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,UAAU59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAAC8uD,GAAM,SACrE9uD,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,oBAAoB59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAACw2E,GAAe,SACxFx2E,EAAAA,GAAAA,KAACrqB,GAAK,CAAC5hF,KAAK,SAAS59C,SAAS6pJ,EAAAA,GAAAA,KAACgoJ,GAAW,CAACtoJ,QAASA,EAAQntE,UAACytE,EAAAA,GAAAA,KAACmoJ,GAAK,UAW5D,OAMrB,IE7CArxK,EAAAA,QACEkpB,EAAAA,GAAAA,KAAC3vB,EAAAA,WAAgB,CAAA99C,UACfytE,EAAAA,GAAAA,KAACooJ,GAAG,MAENxvS,SAAS63J,eAAe","sources":["../node_modules/attr-accept/dist/es/index.js","../node_modules/lower-case/src/index.ts","../node_modules/no-case/src/index.ts","../node_modules/pascal-case/src/index.ts","../node_modules/camel-case/src/index.ts","../node_modules/upper-case-first/src/index.ts","../node_modules/capital-case/src/index.ts","../node_modules/upper-case/src/index.ts","../node_modules/constant-case/src/index.ts","../node_modules/dot-case/src/index.ts","../node_modules/header-case/src/index.ts","../node_modules/param-case/src/index.ts","../node_modules/path-case/src/index.ts","../node_modules/sentence-case/src/index.ts","../node_modules/snake-case/src/index.ts","../node_modules/dijkstrajs/dijkstra.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/encode-utf8/index.js","../node_modules/html2canvas/node_modules/tslib/tslib.es6.js","../node_modules/html2canvas/node_modules/src/Util.ts","../node_modules/src/css/layout/bounds.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Util.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/css-line-break/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/linebreak-trie.ts","../node_modules/html2canvas/node_modules/src/LineBreak.ts","../node_modules/src/css/syntax/tokenizer.ts","../node_modules/src/css/syntax/parser.ts","../node_modules/src/css/types/length.ts","../node_modules/src/css/types/length-percentage.ts","../node_modules/src/css/types/angle.ts","../node_modules/src/css/types/color.ts","../node_modules/src/css/property-descriptors/background-clip.ts","../node_modules/src/css/property-descriptors/background-color.ts","../node_modules/src/css/types/functions/gradient.ts","../node_modules/src/css/types/functions/-prefix-linear-gradient.ts","../node_modules/src/css/types/functions/radial-gradient.ts","../node_modules/src/css/types/functions/-prefix-radial-gradient.ts","../node_modules/src/css/types/image.ts","../node_modules/src/css/property-descriptors/background-size.ts","../node_modules/src/css/types/functions/linear-gradient.ts","../node_modules/src/css/types/functions/-webkit-gradient.ts","../node_modules/src/css/property-descriptors/background-image.ts","../node_modules/src/css/property-descriptors/background-origin.ts","../node_modules/src/css/property-descriptors/background-position.ts","../node_modules/src/css/property-descriptors/background-repeat.ts","../node_modules/src/css/property-descriptors/line-break.ts","../node_modules/src/css/property-descriptors/border-color.ts","../node_modules/src/css/property-descriptors/border-radius.ts","../node_modules/src/css/property-descriptors/border-style.ts","../node_modules/src/css/property-descriptors/border-width.ts","../node_modules/src/css/property-descriptors/color.ts","../node_modules/src/css/property-descriptors/direction.ts","../node_modules/src/css/property-descriptors/display.ts","../node_modules/src/css/property-descriptors/float.ts","../node_modules/src/css/property-descriptors/letter-spacing.ts","../node_modules/src/css/property-descriptors/word-break.ts","../node_modules/src/css/property-descriptors/line-height.ts","../node_modules/src/css/property-descriptors/list-style-image.ts","../node_modules/src/css/property-descriptors/list-style-position.ts","../node_modules/src/css/property-descriptors/list-style-type.ts","../node_modules/src/css/property-descriptors/margin.ts","../node_modules/src/css/property-descriptors/overflow.ts","../node_modules/src/css/property-descriptors/overflow-wrap.ts","../node_modules/src/css/property-descriptors/padding.ts","../node_modules/src/css/property-descriptors/text-align.ts","../node_modules/src/css/property-descriptors/position.ts","../node_modules/src/css/property-descriptors/text-shadow.ts","../node_modules/src/css/property-descriptors/text-transform.ts","../node_modules/src/css/property-descriptors/transform.ts","../node_modules/src/css/property-descriptors/transform-origin.ts","../node_modules/src/css/property-descriptors/visibility.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Util.ts","../node_modules/src/css/property-descriptors/z-index.ts","../node_modules/src/css/types/time.ts","../node_modules/src/css/property-descriptors/opacity.ts","../node_modules/src/css/property-descriptors/text-decoration-color.ts","../node_modules/src/css/property-descriptors/text-decoration-line.ts","../node_modules/src/css/property-descriptors/font-family.ts","../node_modules/src/css/property-descriptors/font-size.ts","../node_modules/src/css/property-descriptors/font-weight.ts","../node_modules/src/css/property-descriptors/font-variant.ts","../node_modules/src/css/property-descriptors/font-style.ts","../node_modules/src/core/bitwise.ts","../node_modules/src/css/property-descriptors/content.ts","../node_modules/src/css/property-descriptors/counter-increment.ts","../node_modules/src/css/property-descriptors/counter-reset.ts","../node_modules/src/css/property-descriptors/duration.ts","../node_modules/src/css/property-descriptors/quotes.ts","../node_modules/src/css/property-descriptors/box-shadow.ts","../node_modules/src/css/property-descriptors/paint-order.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-color.ts","../node_modules/src/css/property-descriptors/webkit-text-stroke-width.ts","../node_modules/src/css/index.ts","../node_modules/src/core/debugger.ts","../node_modules/src/dom/element-container.ts","../node_modules/html2canvas/node_modules/src/grapheme-break-trie.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","../node_modules/html2canvas/node_modules/text-segmentation/node_modules/src/Trie.ts","../node_modules/html2canvas/node_modules/src/GraphemeBreak.ts","../node_modules/src/dom/document-cloner.ts","../node_modules/src/core/features.ts","../node_modules/src/css/layout/text.ts","../node_modules/src/dom/text-container.ts","../node_modules/src/dom/replaced-elements/image-element-container.ts","../node_modules/src/dom/replaced-elements/canvas-element-container.ts","../node_modules/src/dom/replaced-elements/svg-element-container.ts","../node_modules/src/dom/elements/li-element-container.ts","../node_modules/src/dom/elements/ol-element-container.ts","../node_modules/src/dom/replaced-elements/input-element-container.ts","../node_modules/src/dom/elements/select-element-container.ts","../node_modules/src/dom/elements/textarea-element-container.ts","../node_modules/src/dom/replaced-elements/iframe-element-container.ts","../node_modules/src/dom/node-parser.ts","../node_modules/src/css/types/functions/counter.ts","../node_modules/src/render/bound-curves.ts","../node_modules/src/core/cache-storage.ts","../node_modules/src/render/vector.ts","../node_modules/src/render/bezier-curve.ts","../node_modules/src/render/effects.ts","../node_modules/src/render/path.ts","../node_modules/src/render/stacking-context.ts","../node_modules/src/render/border.ts","../node_modules/src/render/box-sizing.ts","../node_modules/src/render/background.ts","../node_modules/src/core/util.ts","../node_modules/src/render/font-metrics.ts","../node_modules/src/render/renderer.ts","../node_modules/src/render/canvas/canvas-renderer.ts","../node_modules/src/render/canvas/foreignobject-renderer.ts","../node_modules/src/core/logger.ts","../node_modules/src/core/context.ts","../node_modules/src/index.ts","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_basePickBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSet.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/constant.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/kebabCase.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/memoize.js","../node_modules/lodash/merge.js","../node_modules/lodash/pickBy.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/toString.js","../node_modules/lodash/words.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/showdown/src/options.js","../node_modules/showdown/src/showdown.js","../node_modules/showdown/src/helpers.js","../node_modules/showdown/src/converter.js","../node_modules/showdown/src/subParsers/anchors.js","../node_modules/showdown/src/subParsers/autoLinks.js","../node_modules/showdown/src/subParsers/blockGamut.js","../node_modules/showdown/src/subParsers/blockQuotes.js","../node_modules/showdown/src/subParsers/codeBlocks.js","../node_modules/showdown/src/subParsers/codeSpans.js","../node_modules/showdown/src/subParsers/completeHTMLDocument.js","../node_modules/showdown/src/subParsers/detab.js","../node_modules/showdown/src/subParsers/ellipsis.js","../node_modules/showdown/src/subParsers/emoji.js","../node_modules/showdown/src/subParsers/encodeAmpsAndAngles.js","../node_modules/showdown/src/subParsers/encodeBackslashEscapes.js","../node_modules/showdown/src/subParsers/encodeCode.js","../node_modules/showdown/src/subParsers/escapeSpecialCharsWithinTagAttributes.js","../node_modules/showdown/src/subParsers/githubCodeBlocks.js","../node_modules/showdown/src/subParsers/hashBlock.js","../node_modules/showdown/src/subParsers/hashCodeTags.js","../node_modules/showdown/src/subParsers/hashElement.js","../node_modules/showdown/src/subParsers/hashHTMLBlocks.js","../node_modules/showdown/src/subParsers/hashHTMLSpans.js","../node_modules/showdown/src/subParsers/hashPreCodeTags.js","../node_modules/showdown/src/subParsers/headers.js","../node_modules/showdown/src/subParsers/horizontalRule.js","../node_modules/showdown/src/subParsers/images.js","../node_modules/showdown/src/subParsers/italicsAndBold.js","../node_modules/showdown/src/subParsers/lists.js","../node_modules/showdown/src/subParsers/metadata.js","../node_modules/showdown/src/subParsers/outdent.js","../node_modules/showdown/src/subParsers/paragraphs.js","../node_modules/showdown/src/subParsers/runExtension.js","../node_modules/showdown/src/subParsers/spanGamut.js","../node_modules/showdown/src/subParsers/strikethrough.js","../node_modules/showdown/src/subParsers/stripLinkDefinitions.js","../node_modules/showdown/src/subParsers/tables.js","../node_modules/showdown/src/subParsers/underline.js","../node_modules/showdown/src/subParsers/unescapeSpecialChars.js","../node_modules/showdown/src/subParsers/makeMarkdown/blockquote.js","../node_modules/showdown/src/subParsers/makeMarkdown/codeBlock.js","../node_modules/showdown/src/subParsers/makeMarkdown/codeSpan.js","../node_modules/showdown/src/subParsers/makeMarkdown/emphasis.js","../node_modules/showdown/src/subParsers/makeMarkdown/header.js","../node_modules/showdown/src/subParsers/makeMarkdown/hr.js","../node_modules/showdown/src/subParsers/makeMarkdown/image.js","../node_modules/showdown/src/subParsers/makeMarkdown/links.js","../node_modules/showdown/src/subParsers/makeMarkdown/list.js","../node_modules/showdown/src/subParsers/makeMarkdown/listItem.js","../node_modules/showdown/src/subParsers/makeMarkdown/node.js","../node_modules/showdown/src/subParsers/makeMarkdown/paragraph.js","../node_modules/showdown/src/subParsers/makeMarkdown/pre.js","../node_modules/showdown/src/subParsers/makeMarkdown/strikethrough.js","../node_modules/showdown/src/subParsers/makeMarkdown/strong.js","../node_modules/showdown/src/subParsers/makeMarkdown/table.js","../node_modules/showdown/src/subParsers/makeMarkdown/tableCell.js","../node_modules/showdown/src/subParsers/makeMarkdown/txt.js","../node_modules/showdown/src/loader.js","../node_modules/style-dictionary/lib/utils/deepExtend.js","../node_modules/style-dictionary/lib/utils/es6_.js","../node_modules/style-dictionary/lib/utils/flattenProperties.js","../node_modules/style-dictionary/lib/utils/references/createReferenceRegex.js","../node_modules/style-dictionary/lib/utils/references/defaults.js","../node_modules/style-dictionary/lib/utils/references/usesReference.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@aws-amplify/core/src/constants.ts","../node_modules/@aws-amplify/core/src/Logger/types.ts","../node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts","../node_modules/@aws-amplify/core/src/errors/AmplifyError.ts","../node_modules/@aws-amplify/core/src/Hub/index.ts","../node_modules/@aws-amplify/core/src/utils/deepFreeze.ts","../node_modules/@aws-amplify/core/src/singleton/constants.ts","../node_modules/@aws-amplify/core/src/parseAWSExports.ts","../node_modules/@aws-amplify/core/src/parseAmplifyOutputs.ts","../node_modules/@aws-amplify/core/src/utils/parseAmplifyConfig.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/index.ts","../node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../node_modules/@aws-amplify/core/src/singleton/Amplify.ts","../node_modules/@aws-amplify/core/src/utils/globalHelpers/index.ts","../node_modules/@aws-amplify/core/src/utils/convert/base64/base64Decoder.ts","../node_modules/@aws-amplify/core/src/errors/createAssertionFunction.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/utils/errorHelpers.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/utils/index.ts","../node_modules/@aws-amplify/auth/src/errors/AuthError.ts","../node_modules/@aws-amplify/auth/src/errors/constants.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/getCurrentUser.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/internal/getCurrentUser.ts","../node_modules/@aws-amplify/core/src/singleton/apis/internal/fetchAuthSession.ts","../node_modules/@aws-amplify/core/src/Platform/types.ts","../node_modules/@aws-amplify/core/src/clients/internal/composeServiceApi.ts","../node_modules/@aws-amplify/core/src/clients/serde/responseInfo.ts","../node_modules/@aws-amplify/core/src/clients/serde/json.ts","../node_modules/@aws-amplify/core/src/types/errors.ts","../node_modules/@aws-amplify/auth/src/errors/utils/assertServiceError.ts","../node_modules/@aws-amplify/core/src/clients/endpoints/partitions.ts","../node_modules/@aws-amplify/core/src/clients/endpoints/getDnsSuffix.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/middleware.ts","../node_modules/@aws-amplify/core/src/clients/internal/composeTransferHandler.ts","../node_modules/@aws-amplify/core/src/clients/utils/memoization.ts","../node_modules/@aws-amplify/core/src/clients/handlers/fetch.ts","../node_modules/@aws-amplify/core/src/clients/handlers/unauthenticated.ts","../node_modules/@aws-amplify/core/src/clients/middleware/userAgent/middleware.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/isClockSkewError.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/defaultRetryDecider.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/jitteredBackoff.ts","../node_modules/@aws-amplify/core/src/utils/retry/jitteredBackoff.ts","../node_modules/@aws-amplify/core/src/utils/retry/constants.ts","../node_modules/@aws-amplify/core/src/utils/amplifyUrl/index.ts","../node_modules/@aws-amplify/core/src/Platform/version.ts","../node_modules/@aws-amplify/core/src/Platform/detection/helpers.ts","../node_modules/@aws-amplify/core/src/Platform/detection/index.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Expo.ts","../node_modules/@aws-amplify/core/src/Platform/detection/ReactNative.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Next.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Nuxt.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Angular.ts","../node_modules/@aws-amplify/core/src/Platform/detection/React.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Vue.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Svelte.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Web.ts","../node_modules/@aws-amplify/core/src/Platform/detectFramework.ts","../node_modules/@aws-amplify/core/src/Platform/customUserAgent.ts","../node_modules/@aws-amplify/core/src/Platform/index.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/apiHelpers.ts","../node_modules/@aws-amplify/auth/src/utils/getAuthUserAgentValue.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/fetchUserAttributes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts","pages/Sidebar.js","../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","../node_modules/marked/src/defaults.ts","../node_modules/marked/src/helpers.ts","../node_modules/marked/src/Tokenizer.ts","../node_modules/marked/src/rules.ts","../node_modules/marked/src/Lexer.ts","../node_modules/marked/src/Renderer.ts","../node_modules/marked/src/TextRenderer.ts","../node_modules/marked/src/Parser.ts","../node_modules/marked/src/Hooks.ts","../node_modules/marked/src/Instance.ts","../node_modules/marked/src/marked.ts","pages/Home.js","pages/Root.js","pages/Consequences.js","pages/Research.js","pages/About.js","../node_modules/fflate/esm/browser.js","../node_modules/jspdf/src/libs/globalObject.js","../node_modules/jspdf/src/libs/console.js","../node_modules/jspdf/src/libs/FileSaver.js","../node_modules/jspdf/src/libs/AtobBtoa.js","../node_modules/jspdf/src/libs/rgbcolor.js","../node_modules/jspdf/src/libs/md5.js","../node_modules/jspdf/src/libs/rc4.js","../node_modules/jspdf/src/libs/pdfsecurity.js","../node_modules/jspdf/src/libs/pdfname.js","../node_modules/jspdf/src/jspdf.js","../node_modules/jspdf/src/modules/acroform.js","../node_modules/jspdf/src/libs/fontFace.js","../node_modules/jspdf/src/modules/addimage.js","../node_modules/jspdf/src/modules/annotations.js","../node_modules/jspdf/src/modules/arabic.js","../node_modules/jspdf/src/modules/autoprint.js","../node_modules/jspdf/src/modules/canvas.js","../node_modules/jspdf/src/modules/cell.js","../node_modules/jspdf/src/modules/javascript.js","../node_modules/jspdf/src/modules/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.js","../node_modules/jspdf/src/modules/html.js","../node_modules/jspdf/src/modules/outline.js","../node_modules/jspdf/src/modules/jpeg_support.js","../node_modules/jspdf/src/libs/png.js","../node_modules/jspdf/src/modules/split_text_to_size.js","../node_modules/jspdf/src/libs/omggif.js","../node_modules/jspdf/src/libs/JPEGEncoder.js","../node_modules/jspdf/src/libs/BMPDecoder.js","../node_modules/jspdf/src/libs/WebPDecoder.js","../node_modules/jspdf/src/modules/png_support.js","../node_modules/jspdf/src/modules/gif_support.js","../node_modules/jspdf/src/modules/bmp_support.js","../node_modules/jspdf/src/modules/webp_support.js","../node_modules/jspdf/src/modules/rgba_support.js","../node_modules/jspdf/src/modules/setlanguage.js","../node_modules/jspdf/src/modules/standard_fonts_metrics.js","../node_modules/jspdf/src/modules/ttfsupport.js","../node_modules/jspdf/src/modules/svg.js","../node_modules/jspdf/src/modules/total_pages.js","../node_modules/jspdf/src/modules/viewerpreferences.js","../node_modules/jspdf/src/modules/xmp_metadata.js","../node_modules/jspdf/src/modules/utf8.js","../node_modules/jspdf/src/modules/vfs.js","../node_modules/jspdf/src/libs/bidiEngine.js","../node_modules/jspdf/src/libs/ttffont.js","pages/Interview.js","pages/Survey.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","pages/UploadDocuments.js","../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/@aws-amplify/core/src/storage/CookieStorage.ts","../node_modules/@aws-amplify/core/src/errors/PlatformNotSupportedError.ts","../node_modules/@aws-amplify/core/src/storage/KeyValueStorage.ts","../node_modules/@aws-amplify/core/src/storage/InMemoryStorage.ts","../node_modules/@aws-amplify/core/src/storage/index.ts","../node_modules/@aws-amplify/core/src/storage/DefaultStorage.ts","../node_modules/@aws-amplify/core/src/storage/utils.ts","../node_modules/@aws-amplify/core/src/storage/SessionStorage.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/userContextData.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/refreshAuthTokens.ts","../node_modules/@aws-amplify/core/src/utils/deDupeAsyncFunction.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/errorHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/TokenStore.ts","../node_modules/@aws-amplify/core/src/utils/isBrowser.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInWithRedirectStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/oAuthStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/inflightPromise.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/tokenProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/CognitoUserPoolsTokenProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/base.ts","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/getCredentialsForIdentity.ts","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/getId.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/utils.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/index.ts","../node_modules/aws-amplify/src/initSingleton.ts","../node_modules/@aws-amplify/ui/dist/esm/utils/utils.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/@xstate/react/es/useActor.js","../node_modules/@xstate/react/es/useSelector.js","../node_modules/@xstate/react/es/utils.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/actor.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/facade.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/getRoute.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/context/AuthenticatorContext.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/useAuthenticator/constants.mjs","../node_modules/@aws-amplify/ui/dist/esm/types/authenticator/attributes.mjs","../node_modules/@aws-amplify/ui/dist/esm/i18n/country-dial-codes.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/constants.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/form.mjs","../node_modules/@aws-amplify/core/src/I18n/I18n.ts","../node_modules/@aws-amplify/core/src/I18n/errorHelpers.ts","../node_modules/@aws-amplify/core/src/I18n/index.ts","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/de.mjs","../node_modules/@aws-amplify/ui/dist/esm/i18n/translations.mjs","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/index.mjs","../node_modules/@aws-amplify/ui/dist/esm/i18n/dictionaries/authenticator/defaultTexts.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/utils.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/defaults.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/formFields/formFields.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/constants.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/useAuthenticator/utils.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/utils.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/useAuthenticator/useAuthenticator.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/hooks/useAuthenticatorInitMachine/useAuthenticatorInitMachine.mjs","../node_modules/@aws-amplify/ui/dist/esm/utils/setUserAgent/constants.mjs","../node_modules/@aws-amplify/ui/dist/esm/utils/setUserAgent/setUserAgent.mjs","../node_modules/xstate/es/_virtual/_tslib.js","../node_modules/xstate/es/types.js","../node_modules/xstate/es/constants.js","../node_modules/xstate/es/utils.js","../node_modules/xstate/es/actionTypes.js","../node_modules/xstate/es/environment.js","../node_modules/xstate/es/stateUtils.js","../node_modules/xstate/es/actions.js","../node_modules/xstate/es/State.js","../node_modules/xstate/es/scheduler.js","../node_modules/xstate/es/serviceScope.js","../node_modules/xstate/es/Actor.js","../node_modules/xstate/es/registry.js","../node_modules/xstate/es/devTools.js","../node_modules/xstate/es/behaviors.js","../node_modules/xstate/es/interpreter.js","../node_modules/@xstate/react/es/useConstant.js","../node_modules/@xstate/react/es/useInterpret.js","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/defaultAuthHubHandler.mjs","../node_modules/xstate/es/invokeUtils.js","../node_modules/xstate/es/StateNode.js","../node_modules/xstate/es/Machine.js","../node_modules/xstate/es/index.js","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/utils.mjs","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actions.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/utils.mjs","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/guards.mjs","../node_modules/@aws-amplify/ui/dist/esm/validators/index.mjs","../node_modules/@aws-amplify/core/src/utils/convert/base64/base64Encoder.ts","../node_modules/@aws-amplify/core/src/utils/convert/base64/bytesToString.ts","../node_modules/@aws-amplify/core/src/utils/deviceName/getDeviceName.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/types/errors.ts","../node_modules/@aws-amplify/auth/src/errors/types/validation.ts","../node_modules/@aws-amplify/auth/src/common/AuthErrorStrings.ts","../node_modules/@aws-amplify/auth/src/errors/utils/assertValidationError.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/textEncoder/index.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/BigInteger/BigInteger.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateS.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/constants.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getBytesFromHex.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHexFromBytes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHashFromData.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHashFromHex.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getPaddedHex.ts","../node_modules/@aws-amplify/core/src/utils/WordArray.ts","../node_modules/@aws-amplify/core/src/utils/cryptoSecureRandomInt.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getRandomBytes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/AuthenticationHelper/AuthenticationHelper.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getRandomString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateU.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHkdfKey.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateA.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getAuthenticationHelper.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getNowString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getSignatureString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/cacheTokens.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/dispatchSignedInHubEvent.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithSRP.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signIn.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithUserPassword.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithCustomAuth.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/autoSignIn.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signUpHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmSignIn.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/resetPassword.ts","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/defaultServices.mjs","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signUp.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmSignUp.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmResetPassword.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/resendSignUpCode.ts","../node_modules/@aws-amplify/auth/src/Errors.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/createOAuthError.ts","../node_modules/@aws-amplify/auth/src/types/Auth.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/validateState.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/completeOAuthFlow.ts","../node_modules/@aws-amplify/core/src/utils/urlSafeDecode.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/handleFailure.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/attemptCompleteOAuthFlow.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/enableOAuthListener.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/types/models.ts","../node_modules/@aws-amplify/auth/src/utils/openAuthSession.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/generateCodeVerifier.ts","../node_modules/@aws-amplify/core/src/utils/generateRandomString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/generateState.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithRedirect.ts","../node_modules/@aws-amplify/core/src/utils/urlSafeEncode.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/cancelOAuthFlow.ts","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/utils.mjs","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/signIn.mjs","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/signUp.mjs","../node_modules/@aws-amplify/core/src/singleton/apis/clearCredentials.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/completeOAuthSignOut.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signOut.ts","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/signOut.mjs","../node_modules/@aws-amplify/core/src/singleton/apis/fetchAuthSession.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/verifyUserAttributes.mjs","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmUserAttribute.ts","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/index.mjs","../node_modules/@aws-amplify/ui/dist/esm/machines/authenticator/actors/forgotPassword.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/Authenticator/context/AuthenticatorProvider.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/version.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/hooks/useDeprecationWarning.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/hooks/useDeprecationWarning.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useCustomComponents/useCustomComponents.mjs","../node_modules/@aws-amplify/ui/dist/esm/helpers/authenticator/textUtil.mjs","../node_modules/@aws-amplify/ui/dist/esm/utils/classNames.mjs","../node_modules/@aws-amplify/ui/dist/esm/types/primitives/componentClassName.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/primitiveWithForwardRef.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Fieldset/useFieldset.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/utils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/types/style.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/borderWidths.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/colors.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fontSizes.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fontWeights.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/opacities.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/radii.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/space.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/time.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/defaultTheme.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/index.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/index.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/accordion.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/alert.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/authenticator.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/autocomplete.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/badge.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/breadcrumbs.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/button.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/card.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/checkbox.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/checkboxField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/collection.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/copy.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/dialCodeSelect.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/divider.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/dropZone.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/field.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldControl.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldGroup.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldMessages.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/fieldset.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/flex.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/heading.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/icon.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/highlightMatch.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/image.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/inAppMessaging.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/input.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/link.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/liveness.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/loader.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/menu.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/message.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/pagination.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/passwordField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/phoneNumberField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/placeholder.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/radio.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/radioGroup.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/rating.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/searchField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/select.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/selectField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/sliderField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/stepperField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/storagemanager.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/switchField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/table.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/tabs.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/text.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/textAreaField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/textField.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/toggleButton.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/components/toggleButtonGroup.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/fonts.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/lineHeights.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/outlineOffsets.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/outlineWidths.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/shadows.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/tokens/transforms.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/breakpoints.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/constants.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/utils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/types/theme.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/utils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/useBreakpoint.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/responsive/getMediaQueries.mjs","../node_modules/@aws-amplify/ui/dist/esm/theme/createTheme.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/ThemeProvider/ThemeContext.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/hooks/useTheme.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/styleUtils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/shared/getStyleValue.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/View/View.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Flex/Flex.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Loader/Loader.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Button/Button.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Heading/Heading.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Text/Text.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/helpers/utils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useFormHandlers/useFormHandlers.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/context/IconsContext.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/context/useIcons.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconCheckCircle.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconError.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconInfo.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconWarning.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Alert/AlertIcon.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconClose.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Alert/Alert.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/RemoteErrorMessage.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/VisuallyHidden/VisuallyHidden.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconVisibilityOff.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconVisibility.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PasswordField/ShowPasswordButton.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Field/FieldDescription.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Field/FieldErrorMessage.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/FieldGroup/FieldGroup.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Input/Input.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Label/Label.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/splitPrimitiveProps.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/useLayoutEffect.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/useStableId.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/TextField/TextField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PasswordField/PasswordField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/icons/IconExpandMore.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Select/Select.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/SelectField/SelectField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PhoneNumberField/DialCodeSelect.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/PhoneNumberField/PhoneNumberField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/shared/ValidationErrors.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/FormField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/FormFields.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/RouteContainer/RouteContainer.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ConfirmSignUp/ConfirmSignUp.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ForceNewPassword/ForceNewPassword.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/ConfirmSignInFooter.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SetupTotp/SetupTotp.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/TabsContext.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/TabsItem.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/TabsList.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/TabsPanel.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/TabsContainer.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Tabs/Tabs.mjs","../node_modules/@aws-amplify/ui/dist/esm/types/authenticator/user.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Divider/Divider.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Icon/Icon.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignInButtons/FederatedSignInButton.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/FederatedSignIn/FederatedSignIn.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SignIn/SignIn.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/SignUp/SignUp.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/SignInSignUpTabs.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/shared/TwoButtonSubmitFooter.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/VerifyUser/ConfirmVerifyUser.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/RadioGroupField/context.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Radio/Radio.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/Fieldset/Fieldset.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/utils/getTestId.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/primitives/RadioGroupField/RadioGroupField.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/VerifyUser/VerifyUser.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ConfirmSignIn/ConfirmSignIn.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ForgotPassword/ConfirmResetPassword.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/ForgotPassword/ForgotPassword.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/utils.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/Router/Router.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/hooks/useCustomComponents/defaultComponents.mjs","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/Authenticator.mjs","../node_modules/@aws-amplify/ui-react-core/dist/esm/hooks/useSetUserAgent.mjs","aws-exports.js","App.js","../node_modules/@aws-amplify/ui-react/dist/esm/components/Authenticator/withAuthenticator.mjs","index.js"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return lowerCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return lowerCase(str);\n}\n\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str: string) {\n return str.toLowerCase();\n}\n","import { lowerCase } from \"lower-case\";\n\nexport interface Options {\n splitRegexp?: RegExp | RegExp[];\n stripRegexp?: RegExp | RegExp[];\n delimiter?: string;\n transform?: (part: string, index: number, parts: string[]) => string;\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nconst DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n\n// Remove all non-word characters.\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input: string, options: Options = {}) {\n const {\n splitRegexp = DEFAULT_SPLIT_REGEXP,\n stripRegexp = DEFAULT_STRIP_REGEXP,\n transform = lowerCase,\n delimiter = \" \",\n } = options;\n\n let result = replace(\n replace(input, splitRegexp, \"$1\\0$2\"),\n stripRegexp,\n \"\\0\"\n );\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input: string, re: RegExp | RegExp[], value: string) {\n if (re instanceof RegExp) return input.replace(re, value);\n return re.reduce((input, re) => input.replace(re, value), input);\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function pascalCaseTransform(input: string, index: number) {\n const firstChar = input.charAt(0);\n const lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return `_${firstChar}${lowerChars}`;\n }\n return `${firstChar.toUpperCase()}${lowerChars}`;\n}\n\nexport function pascalCaseTransformMerge(input: string) {\n return input.charAt(0).toUpperCase() + input.slice(1).toLowerCase();\n}\n\nexport function pascalCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \"\",\n transform: pascalCaseTransform,\n ...options,\n });\n}\n","import {\n pascalCase,\n pascalCaseTransform,\n pascalCaseTransformMerge,\n Options,\n} from \"pascal-case\";\n\nexport { Options };\n\nexport function camelCaseTransform(input: string, index: number) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\n\nexport function camelCaseTransformMerge(input: string, index: number) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransformMerge(input);\n}\n\nexport function camelCase(input: string, options: Options = {}) {\n return pascalCase(input, {\n transform: camelCaseTransform,\n ...options,\n });\n}\n","/**\n * Upper case the first character of an input string.\n */\nexport function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.substr(1);\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function capitalCaseTransform(input: string) {\n return upperCaseFirst(input.toLowerCase());\n}\n\nexport function capitalCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \" \",\n transform: capitalCaseTransform,\n ...options,\n });\n}\n","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record = {\n tr: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n az: {\n regexp: /[\\u0069]/g,\n map: {\n i: \"\\u0130\",\n },\n },\n lt: {\n regexp: /[\\u0069\\u006A\\u012F]\\u0307|\\u0069\\u0307[\\u0300\\u0301\\u0303]/g,\n map: {\n i̇: \"\\u0049\",\n j̇: \"\\u004A\",\n į̇: \"\\u012E\",\n i̇̀: \"\\u00CC\",\n i̇́: \"\\u00CD\",\n i̇̃: \"\\u0128\",\n },\n },\n};\n\n/**\n * Localized upper case.\n */\nexport function localeUpperCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return upperCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return upperCase(str);\n}\n\n/**\n * Upper case as a function.\n */\nexport function upperCase(str: string) {\n return str.toUpperCase();\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCase } from \"upper-case\";\n\nexport { Options };\n\nexport function constantCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \"_\",\n transform: upperCase,\n ...options,\n });\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function dotCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \".\",\n ...options,\n });\n}\n","import { capitalCase, Options } from \"capital-case\";\n\nexport { Options };\n\nexport function headerCase(input: string, options: Options = {}) {\n return capitalCase(input, {\n delimiter: \"-\",\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function paramCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"-\",\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function pathCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"/\",\n ...options,\n });\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function sentenceCaseTransform(input: string, index: number) {\n const result = input.toLowerCase();\n if (index === 0) return upperCaseFirst(result);\n return result;\n}\n\nexport function sentenceCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \" \",\n transform: sentenceCaseTransform,\n ...options,\n });\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function snakeCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"_\",\n ...options,\n });\n}\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\nfunction addToSet(set, array, transformCaseFunc = stringToLowerCase) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue() {\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'popover',\n 'popovertarget',\n 'popovertargetaction',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'wrap',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\nexport const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n} from './utils.js';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5, // Deprecated\n entityNode: 6, // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12, // Deprecated\n};\n\nconst getGlobal = function () {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (\n !window ||\n !window.document ||\n window.document.nodeType !== NODE_TYPE.document\n ) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg = {}) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS')\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR')\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES')\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR')\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS')\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS')\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS')\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR')\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES\n : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION |\n NodeFilter.SHOW_CDATA_SECTION,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (\n SAFE_FOR_XML &&\n currentNode.nodeType === NODE_TYPE.comment &&\n regExpTest(/<[/\\w]/g, currentNode.data)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (\n importedNode.nodeType === NODE_TYPE.element &&\n importedNode.nodeName === 'BODY'\n ) {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline \";\r\n var nW = globalObject.open();\r\n\r\n if (nW !== null) {\r\n nW.document.write(htmlForNewWindow);\r\n }\r\n return nW;\r\n } else {\r\n throw new Error(\r\n \"The option pdfobjectnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n case \"pdfjsnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfJsUrl = options.pdfJsUrl || \"examples/PDF.js/web/viewer.html\";\r\n var htmlForPDFjsNewWindow =\r\n \"\" +\r\n \"\" +\r\n '' +\r\n \"\";\r\n var dataURLNewWindow = globalObject.open();\r\n if (dataURLNewWindow !== null) {\r\n dataURLNewWindow.document.write(htmlForDataURLNewWindow);\r\n dataURLNewWindow.document.title = options.filename;\r\n }\r\n if (dataURLNewWindow || typeof safari === \"undefined\")\r\n return dataURLNewWindow;\r\n } else {\r\n throw new Error(\r\n \"The option dataurlnewwindow just works in a browser-environment.\"\r\n );\r\n }\r\n break;\r\n case \"datauri\":\r\n case \"dataurl\":\r\n return (globalObject.document.location.href = this.output(\r\n \"datauristring\",\r\n options\r\n ));\r\n default:\r\n return null;\r\n }\r\n }));\r\n\r\n /**\r\n * Used to see if a supplied hotfix was requested when the pdf instance was created.\r\n * @param {string} hotfixName - The name of the hotfix to check.\r\n * @returns {boolean}\r\n */\r\n var hasHotfix = function(hotfixName) {\r\n return (\r\n Array.isArray(hotfixes) === true && hotfixes.indexOf(hotfixName) > -1\r\n );\r\n };\r\n\r\n switch (unit) {\r\n case \"pt\":\r\n scaleFactor = 1;\r\n break;\r\n case \"mm\":\r\n scaleFactor = 72 / 25.4;\r\n break;\r\n case \"cm\":\r\n scaleFactor = 72 / 2.54;\r\n break;\r\n case \"in\":\r\n scaleFactor = 72;\r\n break;\r\n case \"px\":\r\n if (hasHotfix(\"px_scaling\") == true) {\r\n scaleFactor = 72 / 96;\r\n } else {\r\n scaleFactor = 96 / 72;\r\n }\r\n break;\r\n case \"pc\":\r\n scaleFactor = 12;\r\n break;\r\n case \"em\":\r\n scaleFactor = 12;\r\n break;\r\n case \"ex\":\r\n scaleFactor = 6;\r\n break;\r\n default:\r\n if (typeof unit === \"number\") {\r\n scaleFactor = unit;\r\n } else {\r\n throw new Error(\"Invalid unit: \" + unit);\r\n }\r\n }\r\n\r\n var encryption = null;\r\n setCreationDate();\r\n setFileId();\r\n\r\n var getEncryptor = function(objectId) {\r\n if (encryptionOptions !== null) {\r\n return encryption.encryptor(objectId, 0);\r\n }\r\n return function(data) {\r\n return data;\r\n };\r\n };\r\n\r\n //---------------------------------------\r\n // Public API\r\n\r\n var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(\r\n pageNumberOneBased\r\n ) {\r\n if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");\r\n }\r\n var objId = pagesContext[pageNumberOneBased].objId;\r\n return {\r\n objId: objId,\r\n pageNumber: pageNumberOneBased,\r\n pageContext: pagesContext[pageNumberOneBased]\r\n };\r\n });\r\n\r\n var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(\r\n objId\r\n ) {\r\n if (isNaN(objId) || objId % 1 !== 0) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");\r\n }\r\n for (var pageNumber in pagesContext) {\r\n if (pagesContext[pageNumber].objId === objId) {\r\n break;\r\n }\r\n }\r\n return getPageInfo(pageNumber);\r\n });\r\n\r\n var getCurrentPageInfo = (API.__private__.getCurrentPageInfo = API.getCurrentPageInfo = function() {\r\n return {\r\n objId: pagesContext[currentPage].objId,\r\n pageNumber: currentPage,\r\n pageContext: pagesContext[currentPage]\r\n };\r\n });\r\n\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @param format {String/Array} The format of the new page. Can be:
  • a0 - a10
  • b0 - b10
  • c0 - c10
  • dl
  • letter
  • government-letter
  • legal
  • junior-legal
  • ledger
  • tabloid
  • credit-card

\r\n * Default is \"a4\". If you want to use your own format just pass instead of one of the above predefined formats the size as an number-array, e.g. [595.28, 841.89]\r\n * @param orientation {string} Orientation of the new page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" (Default), \"l\").\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addPage\r\n */\r\n API.addPage = function() {\r\n _addPage.apply(this, arguments);\r\n return this;\r\n };\r\n /**\r\n * Adds (and transfers the focus to) new page to the PDF document.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name setPage\r\n * @param {number} page Switch the active page to the page number specified (indexed starting at 1).\r\n * @example\r\n * doc = jsPDF()\r\n * doc.addPage()\r\n * doc.addPage()\r\n * doc.text('I am on page 3', 10, 10)\r\n * doc.setPage(1)\r\n * doc.text('I am on page 1', 10, 10)\r\n */\r\n API.setPage = function() {\r\n _setPage.apply(this, arguments);\r\n setOutputDestination.call(this, pages[currentPage]);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name insertPage\r\n * @memberof jsPDF#\r\n *\r\n * @function\r\n * @instance\r\n * @param {Object} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.insertPage = function(beforePage) {\r\n this.addPage();\r\n this.movePage(currentPage, beforePage);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name movePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {number} targetPage\r\n * @param {number} beforePage\r\n * @returns {jsPDF}\r\n */\r\n API.movePage = function(targetPage, beforePage) {\r\n var tmpPages, tmpPagesContext;\r\n if (targetPage > beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var i = targetPage; i > beforePage; i--) {\r\n pages[i] = pages[i - 1];\r\n pagesContext[i] = pagesContext[i - 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n } else if (targetPage < beforePage) {\r\n tmpPages = pages[targetPage];\r\n tmpPagesContext = pagesContext[targetPage];\r\n for (var j = targetPage; j < beforePage; j++) {\r\n pages[j] = pages[j + 1];\r\n pagesContext[j] = pagesContext[j + 1];\r\n }\r\n pages[beforePage] = tmpPages;\r\n pagesContext[beforePage] = tmpPagesContext;\r\n this.setPage(beforePage);\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Deletes a page from the PDF.\r\n * @name deletePage\r\n * @memberof jsPDF#\r\n * @function\r\n * @param {number} targetPage\r\n * @instance\r\n * @returns {jsPDF}\r\n */\r\n API.deletePage = function() {\r\n _deletePage.apply(this, arguments);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds text to page. Supports adding multiline text when 'text' argument is an Array of Strings.\r\n *\r\n * @function\r\n * @instance\r\n * @param {String|Array} text String or array of strings to be added to the page. Each line is shifted one line down per font, spacing settings declared before this call.\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page.\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page.\r\n * @param {Object} [options] - Collection of settings signaling how the text must be encoded.\r\n * @param {string} [options.align=left] - The alignment of the text, possible values: left, center, right, justify.\r\n * @param {string} [options.baseline=alphabetic] - Sets text baseline used when drawing the text, possible values: alphabetic, ideographic, bottom, top, middle, hanging\r\n * @param {number|Matrix} [options.angle=0] - Rotate the text clockwise or counterclockwise. Expects the angle in degree.\r\n * @param {number} [options.rotationDirection=1] - Direction of the rotation. 0 = clockwise, 1 = counterclockwise.\r\n * @param {number} [options.charSpace=0] - The space between each letter.\r\n * @param {number} [options.horizontalScale=1] - Horizontal scale of the text as a factor of the regular size.\r\n * @param {number} [options.lineHeightFactor=1.15] - The lineheight of each line.\r\n * @param {Object} [options.flags] - Flags for to8bitStream.\r\n * @param {boolean} [options.flags.noBOM=true] - Don't add BOM to Unicode-text.\r\n * @param {boolean} [options.flags.autoencode=true] - Autoencode the Text.\r\n * @param {number} [options.maxWidth=0] - Split the text by given width, 0 = no split.\r\n * @param {string} [options.renderingMode=fill] - Set how the text should be rendered, possible values: fill, stroke, fillThenStroke, invisible, fillAndAddForClipping, strokeAndAddPathForClipping, fillThenStrokeAndAddToPathForClipping, addToPathForClipping.\r\n * @param {boolean} [options.isInputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputVisual] - Option for the BidiEngine\r\n * @param {boolean} [options.isInputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isOutputRtl] - Option for the BidiEngine\r\n * @param {boolean} [options.isSymmetricSwapping] - Option for the BidiEngine\r\n * @param {number|Matrix} transform If transform is a number the text will be rotated by this value around the anchor set by x and y.\r\n *\r\n * If it is a Matrix, this matrix gets directly applied to the text, which allows shearing\r\n * effects etc.; the x and y offsets are then applied AFTER the coordinate system has been established by this\r\n * matrix. This means passing a rotation matrix that is equivalent to some rotation angle will in general yield a\r\n * DIFFERENT result. A matrix is only allowed in \"advanced\" API mode.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name text\r\n */\r\n API.__private__.text = API.text = function(text, x, y, options, transform) {\r\n /*\r\n * Inserts something like this into PDF\r\n * BT\r\n * /F1 16 Tf % Font name + size\r\n * 16 TL % How many units down for next line in multiline text\r\n * 0 g % color\r\n * 28.35 813.54 Td % position\r\n * (line one) Tj\r\n * T* (line two) Tj\r\n * T* (line three) Tj\r\n * ET\r\n */\r\n options = options || {};\r\n var scope = options.scope || this;\r\n var payload, da, angle, align, charSpace, maxWidth, flags, horizontalScale;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, text, flags)\r\n // in effort to make all calls have similar signature like\r\n // function(data, coordinates... , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (\r\n typeof text === \"number\" &&\r\n typeof x === \"number\" &&\r\n (typeof y === \"string\" || Array.isArray(y))\r\n ) {\r\n var tmp = y;\r\n y = x;\r\n x = text;\r\n text = tmp;\r\n }\r\n\r\n var transformationMatrix;\r\n\r\n if (arguments[3] instanceof Matrix === false) {\r\n flags = arguments[3];\r\n angle = arguments[4];\r\n align = arguments[5];\r\n\r\n if (typeof flags !== \"object\" || flags === null) {\r\n if (typeof angle === \"string\") {\r\n align = angle;\r\n angle = null;\r\n }\r\n if (typeof flags === \"string\") {\r\n align = flags;\r\n flags = null;\r\n }\r\n if (typeof flags === \"number\") {\r\n angle = flags;\r\n flags = null;\r\n }\r\n options = {\r\n flags: flags,\r\n angle: angle,\r\n align: align\r\n };\r\n }\r\n } else {\r\n advancedApiModeTrap(\r\n \"The transform parameter of text() with a Matrix value\"\r\n );\r\n transformationMatrix = transform;\r\n }\r\n\r\n if (isNaN(x) || isNaN(y) || typeof text === \"undefined\" || text === null) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.text\");\r\n }\r\n\r\n if (text.length === 0) {\r\n return scope;\r\n }\r\n\r\n var xtra = \"\";\r\n var isHex = false;\r\n var lineHeight =\r\n typeof options.lineHeightFactor === \"number\"\r\n ? options.lineHeightFactor\r\n : lineHeightFactor;\r\n var scaleFactor = scope.internal.scaleFactor;\r\n\r\n function ESC(s) {\r\n s = s.split(\"\\t\").join(Array(options.TabLen || 9).join(\" \"));\r\n return pdfEscape(s, flags);\r\n }\r\n\r\n function transformTextToSpecialArray(text) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(curDa);\r\n } else {\r\n if (\r\n Array.isArray(text) &&\r\n (curDa.length === 1 ||\r\n (curDa[1] === undefined && curDa[2] === undefined))\r\n ) {\r\n da.push(curDa[0]);\r\n } else {\r\n da.push([curDa[0], curDa[1], curDa[2]]);\r\n }\r\n }\r\n }\r\n return da;\r\n }\r\n\r\n function processTextByFunction(text, processingFunction) {\r\n var result;\r\n if (typeof text === \"string\") {\r\n result = processingFunction(text)[0];\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n var da = [];\r\n var len = sa.length;\r\n var curDa;\r\n var tmpResult;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (typeof curDa === \"string\") {\r\n da.push(processingFunction(curDa)[0]);\r\n } else if (Array.isArray(curDa) && typeof curDa[0] === \"string\") {\r\n tmpResult = processingFunction(curDa[0], curDa[1], curDa[2]);\r\n da.push([tmpResult[0], tmpResult[1], tmpResult[2]]);\r\n }\r\n }\r\n result = da;\r\n }\r\n return result;\r\n }\r\n\r\n //Check if text is of type String\r\n var textIsOfTypeString = false;\r\n var tmpTextIsOfTypeString = true;\r\n\r\n if (typeof text === \"string\") {\r\n textIsOfTypeString = true;\r\n } else if (Array.isArray(text)) {\r\n //we don't want to destroy original text array, so cloning it\r\n var sa = text.concat();\r\n da = [];\r\n var len = sa.length;\r\n var curDa;\r\n //we do array.join('text that must not be PDFescaped\")\r\n //thus, pdfEscape each component separately\r\n while (len--) {\r\n curDa = sa.shift();\r\n if (\r\n typeof curDa !== \"string\" ||\r\n (Array.isArray(curDa) && typeof curDa[0] !== \"string\")\r\n ) {\r\n tmpTextIsOfTypeString = false;\r\n }\r\n }\r\n textIsOfTypeString = tmpTextIsOfTypeString;\r\n }\r\n if (textIsOfTypeString === false) {\r\n throw new Error(\r\n 'Type of text must be string or Array. \"' +\r\n text +\r\n '\" is not recognized.'\r\n );\r\n }\r\n\r\n //If there are any newlines in text, we assume\r\n //the user wanted to print multiple lines, so break the\r\n //text up into an array. If the text is already an array,\r\n //we assume the user knows what they are doing.\r\n //Convert text into an array anyway to simplify\r\n //later code.\r\n\r\n if (typeof text === \"string\") {\r\n if (text.match(/[\\r?\\n]/)) {\r\n text = text.split(/\\r\\n|\\r|\\n/g);\r\n } else {\r\n text = [text];\r\n }\r\n }\r\n\r\n //baseline\r\n var height = activeFontSize / scope.internal.scaleFactor;\r\n var descent = height * (lineHeight - 1);\r\n\r\n switch (options.baseline) {\r\n case \"bottom\":\r\n y -= descent;\r\n break;\r\n case \"top\":\r\n y += height - descent;\r\n break;\r\n case \"hanging\":\r\n y += height - 2 * descent;\r\n break;\r\n case \"middle\":\r\n y += height / 2 - descent;\r\n break;\r\n case \"ideographic\":\r\n case \"alphabetic\":\r\n default:\r\n // do nothing, everything is fine\r\n break;\r\n }\r\n\r\n //multiline\r\n maxWidth = options.maxWidth || 0;\r\n\r\n if (maxWidth > 0) {\r\n if (typeof text === \"string\") {\r\n text = scope.splitTextToSize(text, maxWidth);\r\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n text = text.reduce(function(acc, textLine) {\r\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\r\n }, []);\r\n }\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"preProcessText\", payload);\r\n\r\n text = payload.text;\r\n options = payload.options;\r\n\r\n //angle\r\n angle = options.angle;\r\n\r\n if (\r\n transformationMatrix instanceof Matrix === false &&\r\n angle &&\r\n typeof angle === \"number\"\r\n ) {\r\n angle *= Math.PI / 180;\r\n\r\n if (options.rotationDirection === 0) {\r\n angle = -angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n angle = -angle;\r\n }\r\n\r\n var c = Math.cos(angle);\r\n var s = Math.sin(angle);\r\n transformationMatrix = new Matrix(c, s, -s, c, 0, 0);\r\n } else if (angle && angle instanceof Matrix) {\r\n transformationMatrix = angle;\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED && !transformationMatrix) {\r\n transformationMatrix = identityMatrix;\r\n }\r\n\r\n //charSpace\r\n\r\n charSpace = options.charSpace || activeCharSpace;\r\n\r\n if (typeof charSpace !== \"undefined\") {\r\n xtra += hpf(scale(charSpace)) + \" Tc\\n\";\r\n this.setCharSpace(this.getCharSpace() || 0);\r\n }\r\n\r\n horizontalScale = options.horizontalScale;\r\n if (typeof horizontalScale !== \"undefined\") {\r\n xtra += hpf(horizontalScale * 100) + \" Tz\\n\";\r\n }\r\n\r\n //lang\r\n\r\n var lang = options.lang;\r\n\r\n if (lang) {\r\n // xtra += \"/Lang (\" + lang +\")\\n\";\r\n }\r\n\r\n //renderingMode\r\n var renderingMode = -1;\r\n var parmRenderingMode =\r\n typeof options.renderingMode !== \"undefined\"\r\n ? options.renderingMode\r\n : options.stroke;\r\n var pageContext = scope.internal.getCurrentPageInfo().pageContext;\r\n\r\n switch (parmRenderingMode) {\r\n case 0:\r\n case false:\r\n case \"fill\":\r\n renderingMode = 0;\r\n break;\r\n case 1:\r\n case true:\r\n case \"stroke\":\r\n renderingMode = 1;\r\n break;\r\n case 2:\r\n case \"fillThenStroke\":\r\n renderingMode = 2;\r\n break;\r\n case 3:\r\n case \"invisible\":\r\n renderingMode = 3;\r\n break;\r\n case 4:\r\n case \"fillAndAddForClipping\":\r\n renderingMode = 4;\r\n break;\r\n case 5:\r\n case \"strokeAndAddPathForClipping\":\r\n renderingMode = 5;\r\n break;\r\n case 6:\r\n case \"fillThenStrokeAndAddToPathForClipping\":\r\n renderingMode = 6;\r\n break;\r\n case 7:\r\n case \"addToPathForClipping\":\r\n renderingMode = 7;\r\n break;\r\n }\r\n\r\n var usedRenderingMode =\r\n typeof pageContext.usedRenderingMode !== \"undefined\"\r\n ? pageContext.usedRenderingMode\r\n : -1;\r\n\r\n //if the coder wrote it explicitly to use a specific\r\n //renderingMode, then use it\r\n if (renderingMode !== -1) {\r\n xtra += renderingMode + \" Tr\\n\";\r\n //otherwise check if we used the rendering Mode already\r\n //if so then set the rendering Mode...\r\n } else if (usedRenderingMode !== -1) {\r\n xtra += \"0 Tr\\n\";\r\n }\r\n\r\n if (renderingMode !== -1) {\r\n pageContext.usedRenderingMode = renderingMode;\r\n }\r\n\r\n //align\r\n align = options.align || \"left\";\r\n var leading = activeFontSize * lineHeight;\r\n var pageWidth = scope.internal.pageSize.getWidth();\r\n var activeFont = fonts[activeFontKey];\r\n charSpace = options.charSpace || activeCharSpace;\r\n maxWidth = options.maxWidth || 0;\r\n\r\n var lineWidths;\r\n flags = Object.assign({ autoencode: true, noBOM: true }, options.flags);\r\n\r\n var wordSpacingPerLine = [];\r\n\r\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\r\n da = transformTextToSpecialArray(text);\r\n var newY;\r\n if (align !== \"left\") {\r\n lineWidths = da.map(function(v) {\r\n return (\r\n (scope.getStringUnitWidth(v, {\r\n font: activeFont,\r\n charSpace: charSpace,\r\n fontSize: activeFontSize,\r\n doKerning: false\r\n }) *\r\n activeFontSize) /\r\n scaleFactor\r\n );\r\n });\r\n }\r\n //The first line uses the \"main\" Td setting,\r\n //and the subsequent lines are offset by the\r\n //previous line's x coordinate.\r\n var prevWidth = 0;\r\n var newX;\r\n if (align === \"right\") {\r\n //The passed in x coordinate defines the\r\n //rightmost point of the text.\r\n x -= lineWidths[0];\r\n text = [];\r\n len = da.length;\r\n for (var i = 0; i < len; i++) {\r\n if (i === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale(prevWidth - lineWidths[i]);\r\n newY = -leading;\r\n }\r\n text.push([da[i], newX, newY]);\r\n prevWidth = lineWidths[i];\r\n }\r\n } else if (align === \"center\") {\r\n //The passed in x coordinate defines\r\n //the center point.\r\n x -= lineWidths[0] / 2;\r\n text = [];\r\n len = da.length;\r\n for (var j = 0; j < len; j++) {\r\n if (j === 0) {\r\n newX = getHorizontalCoordinate(x);\r\n newY = getVerticalCoordinate(y);\r\n } else {\r\n newX = scale((prevWidth - lineWidths[j]) / 2);\r\n newY = -leading;\r\n }\r\n text.push([da[j], newX, newY]);\r\n prevWidth = lineWidths[j];\r\n }\r\n } else if (align === \"left\") {\r\n text = [];\r\n len = da.length;\r\n for (var h = 0; h < len; h++) {\r\n text.push(da[h]);\r\n }\r\n } else if (align === \"justify\") {\r\n text = [];\r\n len = da.length;\r\n maxWidth = maxWidth !== 0 ? maxWidth : pageWidth;\r\n\r\n for (var l = 0; l < len; l++) {\r\n newY = l === 0 ? getVerticalCoordinate(y) : -leading;\r\n newX = l === 0 ? getHorizontalCoordinate(x) : 0;\r\n if (l < len - 1) {\r\n wordSpacingPerLine.push(\r\n hpf(\r\n scale(\r\n (maxWidth - lineWidths[l]) / (da[l].split(\" \").length - 1)\r\n )\r\n )\r\n );\r\n } else {\r\n wordSpacingPerLine.push(0);\r\n }\r\n text.push([da[l], newX, newY]);\r\n }\r\n } else {\r\n throw new Error(\r\n 'Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".'\r\n );\r\n }\r\n }\r\n\r\n //R2L\r\n var doReversing = typeof options.R2L === \"boolean\" ? options.R2L : R2L;\r\n if (doReversing === true) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [\r\n text\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\"),\r\n posX,\r\n posY\r\n ];\r\n });\r\n }\r\n\r\n //creating Payload-Object to make text byRef\r\n payload = {\r\n text: text,\r\n x: x,\r\n y: y,\r\n options: options,\r\n mutex: {\r\n pdfEscape: pdfEscape,\r\n activeFontKey: activeFontKey,\r\n fonts: fonts,\r\n activeFontSize: activeFontSize\r\n }\r\n };\r\n events.publish(\"postProcessText\", payload);\r\n\r\n text = payload.text;\r\n isHex = payload.mutex.isHex || false;\r\n\r\n //Escaping\r\n var activeFontEncoding = fonts[activeFontKey].encoding;\r\n\r\n if (\r\n activeFontEncoding === \"WinAnsiEncoding\" ||\r\n activeFontEncoding === \"StandardEncoding\"\r\n ) {\r\n text = processTextByFunction(text, function(text, posX, posY) {\r\n return [ESC(text), posX, posY];\r\n });\r\n }\r\n\r\n da = transformTextToSpecialArray(text);\r\n\r\n text = [];\r\n var STRING = 0;\r\n var ARRAY = 1;\r\n var variant = Array.isArray(da[0]) ? ARRAY : STRING;\r\n var posX;\r\n var posY;\r\n var content;\r\n var wordSpacing = \"\";\r\n\r\n var generatePosition = function(\r\n parmPosX,\r\n parmPosY,\r\n parmTransformationMatrix\r\n ) {\r\n var position = \"\";\r\n if (parmTransformationMatrix instanceof Matrix) {\r\n // It is kind of more intuitive to apply a plain rotation around the text anchor set by x and y\r\n // but when the user supplies an arbitrary transformation matrix, the x and y offsets should be applied\r\n // in the coordinate system established by this matrix\r\n if (typeof options.angle === \"number\") {\r\n parmTransformationMatrix = matrixMult(\r\n parmTransformationMatrix,\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY)\r\n );\r\n } else {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, 1, parmPosX, parmPosY),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n parmTransformationMatrix = matrixMult(\r\n new Matrix(1, 0, 0, -1, 0, 0),\r\n parmTransformationMatrix\r\n );\r\n }\r\n\r\n position = parmTransformationMatrix.join(\" \") + \" Tm\\n\";\r\n } else {\r\n position = hpf(parmPosX) + \" \" + hpf(parmPosY) + \" Td\\n\";\r\n }\r\n return position;\r\n };\r\n\r\n for (var lineIndex = 0; lineIndex < da.length; lineIndex++) {\r\n wordSpacing = \"\";\r\n\r\n switch (variant) {\r\n case ARRAY:\r\n content =\r\n (isHex ? \"<\" : \"(\") + da[lineIndex][0] + (isHex ? \">\" : \")\");\r\n posX = parseFloat(da[lineIndex][1]);\r\n posY = parseFloat(da[lineIndex][2]);\r\n break;\r\n case STRING:\r\n content = (isHex ? \"<\" : \"(\") + da[lineIndex] + (isHex ? \">\" : \")\");\r\n posX = getHorizontalCoordinate(x);\r\n posY = getVerticalCoordinate(y);\r\n break;\r\n }\r\n\r\n if (\r\n typeof wordSpacingPerLine !== \"undefined\" &&\r\n typeof wordSpacingPerLine[lineIndex] !== \"undefined\"\r\n ) {\r\n wordSpacing = wordSpacingPerLine[lineIndex] + \" Tw\\n\";\r\n }\r\n\r\n if (lineIndex === 0) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n } else if (variant === STRING) {\r\n text.push(wordSpacing + content);\r\n } else if (variant === ARRAY) {\r\n text.push(\r\n wordSpacing +\r\n generatePosition(posX, posY, transformationMatrix) +\r\n content\r\n );\r\n }\r\n }\r\n\r\n text = variant === STRING ? text.join(\" Tj\\nT* \") : text.join(\" Tj\\n\");\r\n text += \" Tj\\n\";\r\n\r\n var result = \"BT\\n/\";\r\n result += activeFontKey + \" \" + activeFontSize + \" Tf\\n\"; // font face, style, size\r\n result += hpf(activeFontSize * lineHeight) + \" TL\\n\"; // line spacing\r\n result += textColor + \"\\n\";\r\n result += xtra;\r\n result += text;\r\n result += \"ET\";\r\n\r\n out(result);\r\n usedFonts[activeFontKey] = true;\r\n return scope;\r\n };\r\n\r\n // PDF supports these path painting and clip path operators:\r\n //\r\n // S - stroke\r\n // s - close/stroke\r\n // f (F) - fill non-zero\r\n // f* - fill evenodd\r\n // B - fill stroke nonzero\r\n // B* - fill stroke evenodd\r\n // b - close fill stroke nonzero\r\n // b* - close fill stroke evenodd\r\n // n - nothing (consume path)\r\n // W - clip nonzero\r\n // W* - clip evenodd\r\n //\r\n // In order to keep the API small, we omit the close-and-fill/stroke operators and provide a separate close()\r\n // method.\r\n /**\r\n *\r\n * @name clip\r\n * @function\r\n * @instance\r\n * @param {string} rule Only possible value is 'evenodd'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description All .clip() after calling drawing ops with a style argument of null.\r\n */\r\n var clip = (API.__private__.clip = API.clip = function(rule) {\r\n // Call .clip() after calling drawing ops with a style argument of null\r\n // W is the PDF clipping op\r\n if (\"evenodd\" === rule) {\r\n out(\"W*\");\r\n } else {\r\n out(\"W\");\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * @name clipEvenOdd\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @description Modify the current clip path by intersecting it with the current path using the even-odd rule. Note\r\n * that this will NOT consume the current path. In order to only use this path for clipping call\r\n * {@link API.discardPath} afterwards.\r\n */\r\n API.clipEvenOdd = function() {\r\n return clip(\"evenodd\");\r\n };\r\n\r\n /**\r\n * Consumes the current path without any effect. Mainly used in combination with {@link clip} or\r\n * {@link clipEvenOdd}. The PDF \"n\" operator.\r\n * @name discardPath\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.discardPath = API.discardPath = function() {\r\n out(\"n\");\r\n return this;\r\n };\r\n\r\n var isValidStyle = (API.__private__.isValidStyle = function(style) {\r\n var validStyleVariants = [\r\n undefined,\r\n null,\r\n \"S\",\r\n \"D\",\r\n \"F\",\r\n \"DF\",\r\n \"FD\",\r\n \"f\",\r\n \"f*\",\r\n \"B\",\r\n \"B*\",\r\n \"n\"\r\n ];\r\n var result = false;\r\n if (validStyleVariants.indexOf(style) !== -1) {\r\n result = true;\r\n }\r\n return result;\r\n });\r\n\r\n API.__private__.setDefaultPathOperation = API.setDefaultPathOperation = function(\r\n operator\r\n ) {\r\n if (isValidStyle(operator)) {\r\n defaultPathOperation = operator;\r\n }\r\n return this;\r\n };\r\n\r\n var getStyle = (API.__private__.getStyle = API.getStyle = function(style) {\r\n // see path-painting operators in PDF spec\r\n var op = defaultPathOperation; // stroke\r\n\r\n switch (style) {\r\n case \"D\":\r\n case \"S\":\r\n op = \"S\"; // stroke\r\n break;\r\n case \"F\":\r\n op = \"f\"; // fill\r\n break;\r\n case \"FD\":\r\n case \"DF\":\r\n op = \"B\";\r\n break;\r\n case \"f\":\r\n case \"f*\":\r\n case \"B\":\r\n case \"B*\":\r\n /*\r\n Allow direct use of these PDF path-painting operators:\r\n - f fill using nonzero winding number rule\r\n - f* fill using even-odd rule\r\n - B fill then stroke with fill using non-zero winding number rule\r\n - B* fill then stroke with fill using even-odd rule\r\n */\r\n op = style;\r\n break;\r\n }\r\n return op;\r\n });\r\n\r\n /**\r\n * Close the current path. The PDF \"h\" operator.\r\n * @name close\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n var close = (API.close = function() {\r\n out(\"h\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Stroke the path. The PDF \"S\" operator.\r\n * @name stroke\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.stroke = function() {\r\n out(\"S\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the nonzero winding number rule. If a pattern is provided, the path will be filled\r\n * with this pattern, otherwise with the current fill color. Equivalent to the PDF \"f\" operator.\r\n * @name fill\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fill = function(pattern) {\r\n fillWithOptionalPattern(\"f\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill the current path using the even-odd rule. The PDF f* operator.\r\n * @see API.fill\r\n * @name fillEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be filled with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"f*\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the nonzero winding number rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStroke\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStroke = function(pattern) {\r\n fillWithOptionalPattern(\"B\", pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Fill using the even-odd rule and then stroke the current Path. The PDF \"B\" operator.\r\n * @see API.fill\r\n * @name fillStrokeEvenOdd\r\n * @function\r\n * @instance\r\n * @param {PatternData=} pattern If provided the path will be fill-stroked with this pattern\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.fillStrokeEvenOdd = function(pattern) {\r\n fillWithOptionalPattern(\"B*\", pattern);\r\n return this;\r\n };\r\n\r\n var fillWithOptionalPattern = function(style, pattern) {\r\n if (typeof pattern === \"object\") {\r\n fillWithPattern(pattern, style);\r\n } else {\r\n out(style);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n if (\r\n style === null ||\r\n (apiMode === ApiMode.ADVANCED && style === undefined)\r\n ) {\r\n return;\r\n }\r\n\r\n style = getStyle(style);\r\n\r\n // stroking / filling / both the path\r\n out(style);\r\n };\r\n\r\n function cloneTilingPattern(patternKey, boundingBox, xStep, yStep, matrix) {\r\n var clone = new TilingPattern(\r\n boundingBox || this.boundingBox,\r\n xStep || this.xStep,\r\n yStep || this.yStep,\r\n this.gState,\r\n matrix || this.matrix\r\n );\r\n clone.stream = this.stream;\r\n var key = patternKey + \"$$\" + this.cloneIndex++ + \"$$\";\r\n addPattern(key, clone);\r\n return clone;\r\n }\r\n\r\n var fillWithPattern = function(patternData, style) {\r\n var patternId = patternMap[patternData.key];\r\n var pattern = patterns[patternId];\r\n\r\n if (pattern instanceof ShadingPattern) {\r\n out(\"q\");\r\n\r\n out(clipRuleFromStyle(style));\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n out(patternData.matrix.toString() + \" cm\");\r\n out(\"/\" + patternId + \" sh\");\r\n out(\"Q\");\r\n } else if (pattern instanceof TilingPattern) {\r\n // pdf draws patterns starting at the bottom left corner and they are not affected by the global transformation,\r\n // so we must flip them\r\n var matrix = new Matrix(1, 0, 0, -1, 0, getPageHeight());\r\n\r\n if (patternData.matrix) {\r\n matrix = matrix.multiply(patternData.matrix || identityMatrix);\r\n // we cannot apply a matrix to the pattern on use so we must abuse the pattern matrix and create new instances\r\n // for each use\r\n patternId = cloneTilingPattern.call(\r\n pattern,\r\n patternData.key,\r\n patternData.boundingBox,\r\n patternData.xStep,\r\n patternData.yStep,\r\n matrix\r\n ).id;\r\n }\r\n\r\n out(\"q\");\r\n out(\"/Pattern cs\");\r\n out(\"/\" + patternId + \" scn\");\r\n\r\n if (pattern.gState) {\r\n API.setGState(pattern.gState);\r\n }\r\n\r\n out(style);\r\n out(\"Q\");\r\n }\r\n };\r\n\r\n var clipRuleFromStyle = function(style) {\r\n switch (style) {\r\n case \"f\":\r\n case \"F\":\r\n return \"W n\";\r\n case \"f*\":\r\n return \"W* n\";\r\n case \"B\":\r\n return \"W S\";\r\n case \"B*\":\r\n return \"W* S\";\r\n\r\n // these two are for compatibility reasons (in the past, calling any primitive method with a shading pattern\r\n // and \"n\"/\"S\" as style would still fill/fill and stroke the path)\r\n case \"S\":\r\n return \"W S\";\r\n case \"n\":\r\n return \"W n\";\r\n }\r\n };\r\n\r\n /**\r\n * Begin a new subpath by moving the current point to coordinates (x, y). The PDF \"m\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @name moveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var moveTo = (API.moveTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" m\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a straight line segment from the current point to the point (x, y). The PDF \"l\" operator.\r\n * @param {number} x\r\n * @param {number} y\r\n * @memberof jsPDF#\r\n * @name lineTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var lineTo = (API.lineTo = function(x, y) {\r\n out(hpf(scale(x)) + \" \" + hpf(transformScaleY(y)) + \" l\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point\r\n * (x3, y3), using (x1, y1) and (x2, y2) as Bézier control points. The new current point shall be (x3, x3).\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {number} x3\r\n * @param {number} y3\r\n * @memberof jsPDF#\r\n * @name curveTo\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @returns {jsPDF}\r\n */\r\n var curveTo = (API.curveTo = function(x1, y1, x2, y2, x3, y3) {\r\n out(\r\n [\r\n hpf(scale(x1)),\r\n hpf(transformScaleY(y1)),\r\n hpf(scale(x2)),\r\n hpf(transformScaleY(y2)),\r\n hpf(scale(x3)),\r\n hpf(transformScaleY(y3)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n return this;\r\n });\r\n\r\n /**\r\n * Draw a line on the current page.\r\n *\r\n * @name line\r\n * @function\r\n * @instance\r\n * @param {number} x1\r\n * @param {number} y1\r\n * @param {number} x2\r\n * @param {number} y2\r\n * @param {string} style A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke. A null value postpones setting the style so that a shape may be composed using multiple method calls. The last drawing method call used to define the shape should not have a null style argument. default: 'S'\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n */\r\n API.__private__.line = API.line = function(x1, y1, x2, y2, style) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.line\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1], style || \"S\");\r\n } else {\r\n return this.lines([[x2 - x1, y2 - y1]], x1, y1, [1, 1]).stroke();\r\n }\r\n };\r\n\r\n /**\r\n * @typedef {Object} PatternData\r\n * {Matrix|undefined} matrix\r\n * {Number|undefined} xStep\r\n * {Number|undefined} yStep\r\n * {Array.|undefined} boundingBox\r\n */\r\n\r\n /**\r\n * Adds series of curves (straight lines or cubic bezier curves) to canvas, starting at `x`, `y` coordinates.\r\n * All data points in `lines` are relative to last line origin.\r\n * `x`, `y` become x1,y1 for first line / curve in the set.\r\n * For lines you only need to specify [x2, y2] - (ending point) vector against x1, y1 starting point.\r\n * For bezier curves you need to specify [x2,y2,x3,y3,x4,y4] - vectors to control points 1, 2, ending point. All vectors are against the start of the curve - x1,y1.\r\n *\r\n * @example .lines([[2,2],[-2,2],[1,1,2,2,3,3],[2,1]], 212,110, [1,1], 'F', false) // line, line, bezier curve, line\r\n * @param {Array} lines Array of *vector* shifts as pairs (lines) or sextets (cubic bezier curves).\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} scale (Defaults to [1.0,1.0]) x,y Scaling factor for all vectors. Elements can be any floating number Sub-one makes drawing smaller. Over-one grows the drawing. Negative flips the direction.\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @param {Boolean=} closed If true, the path is closed with a straight line from the end of the last curve to the starting point.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name lines\r\n */\r\n API.__private__.lines = API.lines = function(\r\n lines,\r\n x,\r\n y,\r\n scale,\r\n style,\r\n closed\r\n ) {\r\n var scalex, scaley, i, l, leg, x2, y2, x3, y3, x4, y4, tmp;\r\n\r\n // Pre-August-2012 the order of arguments was function(x, y, lines, scale, style)\r\n // in effort to make all calls have similar signature like\r\n // function(content, coordinateX, coordinateY , miscellaneous)\r\n // this method had its args flipped.\r\n // code below allows backward compatibility with old arg order.\r\n if (typeof lines === \"number\") {\r\n tmp = y;\r\n y = x;\r\n x = lines;\r\n lines = tmp;\r\n }\r\n\r\n scale = scale || [1, 1];\r\n closed = closed || false;\r\n\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n !Array.isArray(lines) ||\r\n !Array.isArray(scale) ||\r\n !isValidStyle(style) ||\r\n typeof closed !== \"boolean\"\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.lines\");\r\n }\r\n\r\n // starting point\r\n moveTo(x, y);\r\n\r\n scalex = scale[0];\r\n scaley = scale[1];\r\n l = lines.length;\r\n //, x2, y2 // bezier only. In page default measurement \"units\", *after* scaling\r\n //, x3, y3 // bezier only. In page default measurement \"units\", *after* scaling\r\n // ending point for all, lines and bezier. . In page default measurement \"units\", *after* scaling\r\n x4 = x; // last / ending point = starting point for first item.\r\n y4 = y; // last / ending point = starting point for first item.\r\n\r\n for (i = 0; i < l; i++) {\r\n leg = lines[i];\r\n if (leg.length === 2) {\r\n // simple line\r\n x4 = leg[0] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[1] * scaley + y4; // here last y4 was prior ending point\r\n lineTo(x4, y4);\r\n } else {\r\n // bezier curve\r\n x2 = leg[0] * scalex + x4; // here last x4 is prior ending point\r\n y2 = leg[1] * scaley + y4; // here last y4 is prior ending point\r\n x3 = leg[2] * scalex + x4; // here last x4 is prior ending point\r\n y3 = leg[3] * scaley + y4; // here last y4 is prior ending point\r\n x4 = leg[4] * scalex + x4; // here last x4 was prior ending point\r\n y4 = leg[5] * scaley + y4; // here last y4 was prior ending point\r\n curveTo(x2, y2, x3, y3, x4, y4);\r\n }\r\n }\r\n\r\n if (closed) {\r\n close();\r\n }\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Similar to {@link API.lines} but all coordinates are interpreted as absolute coordinates instead of relative.\r\n * @param {Array} lines An array of {op: operator, c: coordinates} object, where op is one of \"m\" (move to), \"l\" (line to)\r\n * \"c\" (cubic bezier curve) and \"h\" (close (sub)path)). c is an array of coordinates. \"m\" and \"l\" expect two, \"c\"\r\n * six and \"h\" an empty array (or undefined).\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name path\r\n */\r\n API.path = function(lines) {\r\n for (var i = 0; i < lines.length; i++) {\r\n var leg = lines[i];\r\n var coords = leg.c;\r\n switch (leg.op) {\r\n case \"m\":\r\n moveTo(coords[0], coords[1]);\r\n break;\r\n case \"l\":\r\n lineTo(coords[0], coords[1]);\r\n break;\r\n case \"c\":\r\n curveTo.apply(this, coords);\r\n break;\r\n case \"h\":\r\n close();\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name rect\r\n */\r\n API.__private__.rect = API.rect = function(x, y, w, h, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.rect\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n h = -h;\r\n }\r\n\r\n out(\r\n [\r\n hpf(scale(x)),\r\n hpf(transformScaleY(y)),\r\n hpf(scale(w)),\r\n hpf(scale(h)),\r\n \"re\"\r\n ].join(\" \")\r\n );\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a triangle to PDF.\r\n *\r\n * @param {number} x1 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y1 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x2 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y2 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} x3 Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y3 Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name triangle\r\n */\r\n API.__private__.triangle = API.triangle = function(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n x3,\r\n y3,\r\n style\r\n ) {\r\n if (\r\n isNaN(x1) ||\r\n isNaN(y1) ||\r\n isNaN(x2) ||\r\n isNaN(y2) ||\r\n isNaN(x3) ||\r\n isNaN(y3) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.triangle\");\r\n }\r\n this.lines(\r\n [\r\n [x2 - x1, y2 - y1], // vector to point 2\r\n [x3 - x2, y3 - y2], // vector to point 3\r\n [x1 - x3, y1 - y3] // closing vector back to point 1\r\n ],\r\n x1,\r\n y1, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds a rectangle with rounded corners to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} w Width (in units declared at inception of PDF document)\r\n * @param {number} h Height (in units declared at inception of PDF document)\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name roundedRect\r\n */\r\n API.__private__.roundedRect = API.roundedRect = function(\r\n x,\r\n y,\r\n w,\r\n h,\r\n rx,\r\n ry,\r\n style\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(w) ||\r\n isNaN(h) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");\r\n }\r\n var MyArc = (4 / 3) * (Math.SQRT2 - 1);\r\n\r\n rx = Math.min(rx, w * 0.5);\r\n ry = Math.min(ry, h * 0.5);\r\n\r\n this.lines(\r\n [\r\n [w - 2 * rx, 0],\r\n [rx * MyArc, 0, rx, ry - ry * MyArc, rx, ry],\r\n [0, h - 2 * ry],\r\n [0, ry * MyArc, -(rx * MyArc), ry, -rx, ry],\r\n [-w + 2 * rx, 0],\r\n [-(rx * MyArc), 0, -rx, -(ry * MyArc), -rx, -ry],\r\n [0, -h + 2 * ry],\r\n [0, -(ry * MyArc), rx * MyArc, -ry, rx, -ry]\r\n ],\r\n x + rx,\r\n y, // start of path\r\n [1, 1],\r\n style,\r\n true\r\n );\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an ellipse to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} rx Radius along x axis (in units declared at inception of PDF document)\r\n * @param {number} ry Radius along y axis (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name ellipse\r\n */\r\n API.__private__.ellipse = API.ellipse = function(x, y, rx, ry, style) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(rx) ||\r\n isNaN(ry) ||\r\n !isValidStyle(style)\r\n ) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");\r\n }\r\n var lx = (4 / 3) * (Math.SQRT2 - 1) * rx,\r\n ly = (4 / 3) * (Math.SQRT2 - 1) * ry;\r\n\r\n moveTo(x + rx, y);\r\n curveTo(x + rx, y - ly, x + lx, y - ry, x, y - ry);\r\n curveTo(x - lx, y - ry, x - rx, y - ly, x - rx, y);\r\n curveTo(x - rx, y + ly, x - lx, y + ry, x, y + ry);\r\n curveTo(x + lx, y + ry, x + rx, y + ly, x + rx, y);\r\n\r\n putStyle(style);\r\n return this;\r\n };\r\n\r\n /**\r\n * Adds an circle to PDF.\r\n *\r\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\r\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\r\n * @param {number} r Radius (in units declared at inception of PDF document)\r\n * @param {string=} style A string specifying the painting style or null. Valid styles include:\r\n * 'S' [default] - stroke,\r\n * 'F' - fill,\r\n * and 'DF' (or 'FD') - fill then stroke.\r\n * In \"compat\" API mode, a null value postpones setting the style so that a shape may be composed using multiple\r\n * method calls. The last drawing method call used to define the shape should not have a null style argument.\r\n *\r\n * In \"advanced\" API mode this parameter is deprecated.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name circle\r\n */\r\n API.__private__.circle = API.circle = function(x, y, r, style) {\r\n if (isNaN(x) || isNaN(y) || isNaN(r) || !isValidStyle(style)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.circle\");\r\n }\r\n return this.ellipse(x, y, r, r, style);\r\n };\r\n\r\n /**\r\n * Sets text font face, variant for upcoming text elements.\r\n * See output of jsPDF.getFontList() for possible font names, styles.\r\n *\r\n * @param {string} fontName Font name or family. Example: \"times\".\r\n * @param {string} fontStyle Font style or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFont\r\n */\r\n API.setFont = function(fontName, fontStyle, fontWeight) {\r\n if (fontWeight) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n activeFontKey = getFont(fontName, fontStyle, {\r\n disableWarning: false\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets text font face, variant for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {Object}\r\n * @memberof jsPDF#\r\n * @name getFont\r\n */\r\n var getFontEntry = (API.__private__.getFont = API.getFont = function() {\r\n return fonts[getFont.apply(API, arguments)];\r\n });\r\n\r\n /**\r\n * Returns an object - a tree of fontName to fontStyle relationships available to\r\n * active PDF document.\r\n *\r\n * @public\r\n * @function\r\n * @instance\r\n * @returns {Object} Like {'times':['normal', 'italic', ... ], 'arial':['normal', 'bold', ... ], ... }\r\n * @memberof jsPDF#\r\n * @name getFontList\r\n */\r\n API.__private__.getFontList = API.getFontList = function() {\r\n var list = {},\r\n fontName,\r\n fontStyle;\r\n\r\n for (fontName in fontmap) {\r\n if (fontmap.hasOwnProperty(fontName)) {\r\n list[fontName] = [];\r\n for (fontStyle in fontmap[fontName]) {\r\n if (fontmap[fontName].hasOwnProperty(fontStyle)) {\r\n list[fontName].push(fontStyle);\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n\r\n /**\r\n * Add a custom font to the current instance.\r\n *\r\n * @param {string} postScriptName PDF specification full name for the font.\r\n * @param {string} id PDF-document-instance-specific label assinged to the font.\r\n * @param {string} fontStyle Style of the Font.\r\n * @param {number | string} fontWeight Weight of the Font.\r\n * @param {Object} encoding Encoding_name-to-Font_metrics_object mapping.\r\n * @function\r\n * @instance\r\n * @memberof jsPDF#\r\n * @name addFont\r\n * @returns {string} fontId\r\n */\r\n API.addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n fontWeight,\r\n encoding\r\n ) {\r\n var encodingOptions = [\r\n \"StandardEncoding\",\r\n \"MacRomanEncoding\",\r\n \"Identity-H\",\r\n \"WinAnsiEncoding\"\r\n ];\r\n if (arguments[3] && encodingOptions.indexOf(arguments[3]) !== -1) {\r\n //IE 11 fix\r\n encoding = arguments[3];\r\n } else if (arguments[3] && encodingOptions.indexOf(arguments[3]) == -1) {\r\n fontStyle = combineFontStyleAndFontWeight(fontStyle, fontWeight);\r\n }\r\n encoding = encoding || \"Identity-H\";\r\n return addFont.call(this, postScriptName, fontName, fontStyle, encoding);\r\n };\r\n\r\n var lineWidth = options.lineWidth || 0.200025; // 2mm\r\n /**\r\n * Gets the line width, default: 0.200025.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineWidth\r\n * @memberof jsPDF#\r\n * @name getLineWidth\r\n */\r\n var getLineWidth = (API.__private__.getLineWidth = API.getLineWidth = function() {\r\n return lineWidth;\r\n });\r\n\r\n /**\r\n * Sets line width for upcoming lines.\r\n *\r\n * @param {number} width Line width (in units declared at inception of PDF document).\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineWidth\r\n */\r\n var setLineWidth = (API.__private__.setLineWidth = API.setLineWidth = function(\r\n width\r\n ) {\r\n lineWidth = width;\r\n out(hpf(scale(width)) + \" w\");\r\n return this;\r\n });\r\n\r\n /**\r\n * Sets the dash pattern for upcoming lines.\r\n *\r\n * To reset the settings simply call the method without any parameters.\r\n * @param {Array} dashArray An array containing 0-2 numbers. The first number sets the length of the\r\n * dashes, the second number the length of the gaps. If the second number is missing, the gaps are considered\r\n * to be as long as the dashes. An empty array means solid, unbroken lines.\r\n * @param {number} dashPhase The phase lines start with.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineDashPattern\r\n */\r\n API.__private__.setLineDash = jsPDF.API.setLineDash = jsPDF.API.setLineDashPattern = function(\r\n dashArray,\r\n dashPhase\r\n ) {\r\n dashArray = dashArray || [];\r\n dashPhase = dashPhase || 0;\r\n\r\n if (isNaN(dashPhase) || !Array.isArray(dashArray)) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");\r\n }\r\n\r\n dashArray = dashArray\r\n .map(function(x) {\r\n return hpf(scale(x));\r\n })\r\n .join(\" \");\r\n dashPhase = hpf(scale(dashPhase));\r\n\r\n out(\"[\" + dashArray + \"] \" + dashPhase + \" d\");\r\n return this;\r\n };\r\n\r\n var lineHeightFactor;\r\n\r\n var getLineHeight = (API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n });\r\n\r\n API.__private__.getLineHeight = API.getLineHeight = function() {\r\n return activeFontSize * lineHeightFactor;\r\n };\r\n\r\n /**\r\n * Sets the LineHeightFactor of proportion.\r\n *\r\n * @param {number} value LineHeightFactor value. Default: 1.15.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineHeightFactor\r\n */\r\n var setLineHeightFactor = (API.__private__.setLineHeightFactor = API.setLineHeightFactor = function(\r\n value\r\n ) {\r\n value = value || 1.15;\r\n if (typeof value === \"number\") {\r\n lineHeightFactor = value;\r\n }\r\n return this;\r\n });\r\n\r\n /**\r\n * Gets the LineHeightFactor, default: 1.15.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} lineHeightFactor\r\n * @memberof jsPDF#\r\n * @name getLineHeightFactor\r\n */\r\n var getLineHeightFactor = (API.__private__.getLineHeightFactor = API.getLineHeightFactor = function() {\r\n return lineHeightFactor;\r\n });\r\n\r\n setLineHeightFactor(options.lineHeight);\r\n\r\n var getHorizontalCoordinate = (API.__private__.getHorizontalCoordinate = function(\r\n value\r\n ) {\r\n return scale(value);\r\n });\r\n\r\n var getVerticalCoordinate = (API.__private__.getVerticalCoordinate = function(\r\n value\r\n ) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n return value;\r\n } else {\r\n var pageHeight =\r\n pagesContext[currentPage].mediaBox.topRightY -\r\n pagesContext[currentPage].mediaBox.bottomLeftY;\r\n return pageHeight - scale(value);\r\n }\r\n });\r\n\r\n var getHorizontalCoordinateString = (API.__private__.getHorizontalCoordinateString = API.getHorizontalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getHorizontalCoordinate(value));\r\n });\r\n\r\n var getVerticalCoordinateString = (API.__private__.getVerticalCoordinateString = API.getVerticalCoordinateString = function(\r\n value\r\n ) {\r\n return hpf(getVerticalCoordinate(value));\r\n });\r\n\r\n var strokeColor = options.strokeColor || \"0 G\";\r\n\r\n /**\r\n * Gets the stroke color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getDrawColor\r\n */\r\n API.__private__.getStrokeColor = API.getDrawColor = function() {\r\n return decodeColorString(strokeColor);\r\n };\r\n\r\n /**\r\n * Sets the stroke color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDrawColor\r\n */\r\n API.__private__.setStrokeColor = API.setDrawColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"draw\",\r\n precision: 2\r\n };\r\n\r\n strokeColor = encodeColorString(options);\r\n out(strokeColor);\r\n return this;\r\n };\r\n\r\n var fillColor = options.fillColor || \"0 g\";\r\n\r\n /**\r\n * Gets the fill color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getFillColor\r\n */\r\n API.__private__.getFillColor = API.getFillColor = function() {\r\n return decodeColorString(fillColor);\r\n };\r\n\r\n /**\r\n * Sets the fill color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFillColor\r\n */\r\n API.__private__.setFillColor = API.setFillColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"fill\",\r\n precision: 2\r\n };\r\n\r\n fillColor = encodeColorString(options);\r\n out(fillColor);\r\n return this;\r\n };\r\n\r\n var textColor = options.textColor || \"0 g\";\r\n /**\r\n * Gets the text color for upcoming elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {string} colorAsHex\r\n * @memberof jsPDF#\r\n * @name getTextColor\r\n */\r\n var getTextColor = (API.__private__.getTextColor = API.getTextColor = function() {\r\n return decodeColorString(textColor);\r\n });\r\n /**\r\n * Sets the text color for upcoming elements.\r\n *\r\n * Depending on the number of arguments given, Gray, RGB, or CMYK\r\n * color space is implied.\r\n *\r\n * When only ch1 is given, \"Gray\" color space is implied and it\r\n * must be a value in the range from 0.00 (solid black) to to 1.00 (white)\r\n * if values are communicated as String types, or in range from 0 (black)\r\n * to 255 (white) if communicated as Number type.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When only ch1,ch2,ch3 are given, \"RGB\" color space is implied and each\r\n * value must be in the range from 0.00 (minimum intensity) to to 1.00\r\n * (max intensity) if values are communicated as String types, or\r\n * from 0 (min intensity) to to 255 (max intensity) if values are communicated\r\n * as Number types.\r\n * The RGB-like 0-255 range is provided for backward compatibility.\r\n *\r\n * When ch1,ch2,ch3,ch4 are given, \"CMYK\" color space is implied and each\r\n * value must be a in the range from 0.00 (0% concentration) to to\r\n * 1.00 (100% concentration)\r\n *\r\n * Because JavaScript treats fixed point numbers badly (rounds to\r\n * floating point nearest to binary representation) it is highly advised to\r\n * communicate the fractional numbers as String types, not JavaScript Number type.\r\n *\r\n * @param {Number|String} ch1 Color channel value or {string} ch1 color value in hexadecimal, example: '#FFFFFF'.\r\n * @param {Number} ch2 Color channel value.\r\n * @param {Number} ch3 Color channel value.\r\n * @param {Number} ch4 Color channel value.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setTextColor\r\n */\r\n API.__private__.setTextColor = API.setTextColor = function(\r\n ch1,\r\n ch2,\r\n ch3,\r\n ch4\r\n ) {\r\n var options = {\r\n ch1: ch1,\r\n ch2: ch2,\r\n ch3: ch3,\r\n ch4: ch4,\r\n pdfColorType: \"text\",\r\n precision: 3\r\n };\r\n textColor = encodeColorString(options);\r\n\r\n return this;\r\n };\r\n\r\n var activeCharSpace = options.charSpace;\r\n\r\n /**\r\n * Get global value of CharSpace.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number} charSpace\r\n * @memberof jsPDF#\r\n * @name getCharSpace\r\n */\r\n var getCharSpace = (API.__private__.getCharSpace = API.getCharSpace = function() {\r\n return parseFloat(activeCharSpace || 0);\r\n });\r\n\r\n /**\r\n * Set global value of CharSpace.\r\n *\r\n * @param {number} charSpace\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setCharSpace\r\n */\r\n API.__private__.setCharSpace = API.setCharSpace = function(charSpace) {\r\n if (isNaN(charSpace)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");\r\n }\r\n activeCharSpace = charSpace;\r\n return this;\r\n };\r\n\r\n var lineCapID = 0;\r\n /**\r\n * Is an Object providing a mapping from human-readable to\r\n * integer flag values designating the varieties of line cap\r\n * and join styles.\r\n *\r\n * @memberof jsPDF#\r\n * @name CapJoinStyles\r\n */\r\n API.CapJoinStyles = {\r\n 0: 0,\r\n butt: 0,\r\n but: 0,\r\n miter: 0,\r\n 1: 1,\r\n round: 1,\r\n rounded: 1,\r\n circle: 1,\r\n 2: 2,\r\n projecting: 2,\r\n project: 2,\r\n square: 2,\r\n bevel: 2\r\n };\r\n\r\n /**\r\n * Sets the line cap styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line cap.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineCap\r\n */\r\n API.__private__.setLineCap = API.setLineCap = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line cap style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineCapID = id;\r\n out(id + \" J\");\r\n\r\n return this;\r\n };\r\n\r\n var lineJoinID = 0;\r\n /**\r\n * Sets the line join styles.\r\n * See {jsPDF.CapJoinStyles} for variants.\r\n *\r\n * @param {String|Number} style A string or number identifying the type of line join.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineJoin\r\n */\r\n API.__private__.setLineJoin = API.setLineJoin = function(style) {\r\n var id = API.CapJoinStyles[style];\r\n if (id === undefined) {\r\n throw new Error(\r\n \"Line join style of '\" +\r\n style +\r\n \"' is not recognized. See or extend .CapJoinStyles property for valid styles\"\r\n );\r\n }\r\n lineJoinID = id;\r\n out(id + \" j\");\r\n\r\n return this;\r\n };\r\n\r\n var miterLimit;\r\n /**\r\n * Sets the miterLimit property, which effects the maximum miter length.\r\n *\r\n * @param {number} length The length of the miter\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setLineMiterLimit\r\n */\r\n API.__private__.setLineMiterLimit = API.__private__.setMiterLimit = API.setLineMiterLimit = API.setMiterLimit = function(\r\n length\r\n ) {\r\n length = length || 0;\r\n if (isNaN(length)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");\r\n }\r\n out(hpf(scale(length)) + \" M\");\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * An object representing a pdf graphics state.\r\n * @class GState\r\n */\r\n\r\n /**\r\n *\r\n * @param parameters A parameter object that contains all properties this graphics state wants to set.\r\n * Supported are: opacity, stroke-opacity\r\n * @constructor\r\n */\r\n API.GState = GState;\r\n\r\n /**\r\n * Sets a either previously added {@link GState} (via {@link addGState}) or a new {@link GState}.\r\n * @param {String|GState} gState If type is string, a previously added GState is used, if type is GState\r\n * it will be added before use.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setGState\r\n */\r\n API.setGState = function(gState) {\r\n if (typeof gState === \"string\") {\r\n gState = gStates[gStatesMap[gState]];\r\n } else {\r\n gState = addGState(null, gState);\r\n }\r\n\r\n if (!gState.equals(activeGState)) {\r\n out(\"/\" + gState.id + \" gs\");\r\n activeGState = gState;\r\n }\r\n };\r\n\r\n /**\r\n * Adds a new Graphics State. Duplicates are automatically eliminated.\r\n * @param {String} key Might also be null, if no later reference to this gState is needed\r\n * @param {Object} gState The gState object\r\n */\r\n var addGState = function(key, gState) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (key && gStatesMap[key]) return;\r\n var duplicate = false;\r\n for (var s in gStates) {\r\n if (gStates.hasOwnProperty(s)) {\r\n if (gStates[s].equals(gState)) {\r\n duplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (duplicate) {\r\n gState = gStates[s];\r\n } else {\r\n var gStateKey = \"GS\" + (Object.keys(gStates).length + 1).toString(10);\r\n gStates[gStateKey] = gState;\r\n gState.id = gStateKey;\r\n }\r\n\r\n // several user keys may point to the same GState object\r\n key && (gStatesMap[key] = gState.id);\r\n\r\n events.publish(\"addGState\", gState);\r\n\r\n return gState;\r\n };\r\n\r\n /**\r\n * Adds a new {@link GState} for later use. See {@link setGState}.\r\n * @param {String} key\r\n * @param {GState} gState\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n *\r\n * @memberof jsPDF#\r\n * @name addGState\r\n */\r\n API.addGState = function(key, gState) {\r\n addGState(key, gState);\r\n return this;\r\n };\r\n\r\n /**\r\n * Saves the current graphics state (\"pushes it on the stack\"). It can be restored by {@link restoreGraphicsState}\r\n * later. Here, the general pdf graphics state is meant, also including the current transformation matrix,\r\n * fill and stroke colors etc.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name saveGraphicsState\r\n */\r\n API.saveGraphicsState = function() {\r\n out(\"q\");\r\n // as we cannot set font key and size independently we must keep track of both\r\n fontStateStack.push({\r\n key: activeFontKey,\r\n size: activeFontSize,\r\n color: textColor\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Restores a previously saved graphics state saved by {@link saveGraphicsState} (\"pops the stack\").\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name restoreGraphicsState\r\n */\r\n API.restoreGraphicsState = function() {\r\n out(\"Q\");\r\n\r\n // restore previous font state\r\n var fontState = fontStateStack.pop();\r\n activeFontKey = fontState.key;\r\n activeFontSize = fontState.size;\r\n textColor = fontState.color;\r\n\r\n activeGState = null;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Appends this matrix to the left of all previously applied matrices.\r\n *\r\n * @param {Matrix} matrix\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setCurrentTransformationMatrix\r\n */\r\n API.setCurrentTransformationMatrix = function(matrix) {\r\n out(matrix.toString() + \" cm\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Inserts a debug comment into the generated pdf.\r\n * @function\r\n * @instance\r\n * @param {String} text\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name comment\r\n */\r\n API.comment = function(text) {\r\n out(\"#\" + text);\r\n return this;\r\n };\r\n\r\n /**\r\n * Point\r\n */\r\n var Point = function(x, y) {\r\n var _x = x || 0;\r\n Object.defineProperty(this, \"x\", {\r\n enumerable: true,\r\n get: function() {\r\n return _x;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _x = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _y = y || 0;\r\n Object.defineProperty(this, \"y\", {\r\n enumerable: true,\r\n get: function() {\r\n return _y;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _y = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _type = \"pt\";\r\n Object.defineProperty(this, \"type\", {\r\n enumerable: true,\r\n get: function() {\r\n return _type;\r\n },\r\n set: function(value) {\r\n _type = value.toString();\r\n }\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Rectangle\r\n */\r\n var Rectangle = function(x, y, w, h) {\r\n Point.call(this, x, y);\r\n this.type = \"rect\";\r\n\r\n var _w = w || 0;\r\n Object.defineProperty(this, \"w\", {\r\n enumerable: true,\r\n get: function() {\r\n return _w;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _w = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n var _h = h || 0;\r\n Object.defineProperty(this, \"h\", {\r\n enumerable: true,\r\n get: function() {\r\n return _h;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _h = parseFloat(value);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * FormObject/RenderTarget\r\n */\r\n\r\n var RenderTarget = function() {\r\n this.page = page;\r\n this.currentPage = currentPage;\r\n this.pages = pages.slice(0);\r\n this.pagesContext = pagesContext.slice(0);\r\n this.x = pageX;\r\n this.y = pageY;\r\n this.matrix = pageMatrix;\r\n this.width = getPageWidth(currentPage);\r\n this.height = getPageHeight(currentPage);\r\n this.outputDestination = outputDestination;\r\n\r\n this.id = \"\"; // set by endFormObject()\r\n this.objectNumber = -1; // will be set by putXObject()\r\n };\r\n\r\n RenderTarget.prototype.restore = function() {\r\n page = this.page;\r\n currentPage = this.currentPage;\r\n pagesContext = this.pagesContext;\r\n pages = this.pages;\r\n pageX = this.x;\r\n pageY = this.y;\r\n pageMatrix = this.matrix;\r\n setPageWidth(currentPage, this.width);\r\n setPageHeight(currentPage, this.height);\r\n outputDestination = this.outputDestination;\r\n };\r\n\r\n var beginNewRenderTarget = function(x, y, width, height, matrix) {\r\n // save current state\r\n renderTargetStack.push(new RenderTarget());\r\n\r\n // clear pages\r\n page = currentPage = 0;\r\n pages = [];\r\n pageX = x;\r\n pageY = y;\r\n\r\n pageMatrix = matrix;\r\n\r\n beginPage([width, height]);\r\n };\r\n\r\n var endFormObject = function(key) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (renderTargetMap[key]) {\r\n renderTargetStack.pop().restore();\r\n return;\r\n }\r\n\r\n // save the created xObject\r\n var newXObject = new RenderTarget();\r\n\r\n var xObjectId = \"Xo\" + (Object.keys(renderTargets).length + 1).toString(10);\r\n newXObject.id = xObjectId;\r\n\r\n renderTargetMap[key] = xObjectId;\r\n renderTargets[xObjectId] = newXObject;\r\n\r\n events.publish(\"addFormObject\", newXObject);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n /**\r\n * Starts a new pdf form object, which means that all consequent draw calls target a new independent object\r\n * until {@link endFormObject} is called. The created object can be referenced and drawn later using\r\n * {@link doFormObject}. Nested form objects are possible.\r\n * x, y, width, height set the bounding box that is used to clip the content.\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} width\r\n * @param {number} height\r\n * @param {Matrix} matrix The matrix that will be applied to convert the form objects coordinate system to\r\n * the parent's.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name beginFormObject\r\n */\r\n API.beginFormObject = function(x, y, width, height, matrix) {\r\n // The user can set the output target to a new form object. Nested form objects are possible.\r\n // Currently, they use the resource dictionary of the surrounding stream. This should be changed, as\r\n // the PDF-Spec states:\r\n // \"In PDF 1.2 and later versions, form XObjects may be independent of the content streams in which\r\n // they appear, and this is strongly recommended although not requiredIn PDF 1.2 and later versions,\r\n // form XObjects may be independent of the content streams in which they appear, and this is strongly\r\n // recommended although not required\"\r\n beginNewRenderTarget(x, y, width, height, matrix);\r\n return this;\r\n };\r\n\r\n /**\r\n * Completes and saves the form object.\r\n * @param {String} key The key by which this form object can be referenced.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name endFormObject\r\n */\r\n API.endFormObject = function(key) {\r\n endFormObject(key);\r\n return this;\r\n };\r\n\r\n /**\r\n * Draws the specified form object by referencing to the respective pdf XObject created with\r\n * {@link API.beginFormObject} and {@link endFormObject}.\r\n * The location is determined by matrix.\r\n *\r\n * @param {String} key The key to the form object.\r\n * @param {Matrix} matrix The matrix applied before drawing the form object.\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name doFormObject\r\n */\r\n API.doFormObject = function(key, matrix) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n out(\"q\");\r\n out(matrix.toString() + \" cm\");\r\n out(\"/\" + xObject.id + \" Do\");\r\n out(\"Q\");\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the form object specified by key.\r\n * @param key {String}\r\n * @returns {{x: number, y: number, width: number, height: number, matrix: Matrix}}\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name getFormObject\r\n */\r\n API.getFormObject = function(key) {\r\n var xObject = renderTargets[renderTargetMap[key]];\r\n return {\r\n x: xObject.x,\r\n y: xObject.y,\r\n width: xObject.width,\r\n height: xObject.height,\r\n matrix: xObject.matrix\r\n };\r\n };\r\n\r\n /**\r\n * Saves as PDF document. An alias of jsPDF.output('save', 'filename.pdf').\r\n * Uses FileSaver.js-method saveAs.\r\n *\r\n * @memberof jsPDF#\r\n * @name save\r\n * @function\r\n * @instance\r\n * @param {string} filename The filename including extension.\r\n * @param {Object} options An Object with additional options, possible options: 'returnPromise'.\r\n * @returns {jsPDF|Promise} jsPDF-instance */\r\n API.save = function(filename, options) {\r\n filename = filename || \"generated.pdf\";\r\n\r\n options = options || {};\r\n options.returnPromise = options.returnPromise || false;\r\n\r\n if (options.returnPromise === false) {\r\n saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n return this;\r\n } else {\r\n return new Promise(function(resolve, reject) {\r\n try {\r\n var result = saveAs(getBlob(buildDocument()), filename);\r\n if (typeof saveAs.unload === \"function\") {\r\n if (globalObject.setTimeout) {\r\n setTimeout(saveAs.unload, 911);\r\n }\r\n }\r\n resolve(result);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n // applying plugins (more methods) ON TOP of built-in API.\r\n // this is intentional as we allow plugins to override\r\n // built-ins\r\n for (var plugin in jsPDF.API) {\r\n if (jsPDF.API.hasOwnProperty(plugin)) {\r\n if (plugin === \"events\" && jsPDF.API.events.length) {\r\n (function(events, newEvents) {\r\n // jsPDF.API.events is a JS Array of Arrays\r\n // where each Array is a pair of event name, handler\r\n // Events were added by plugins to the jsPDF instantiator.\r\n // These are always added to the new instance and some ran\r\n // during instantiation.\r\n var eventname, handler_and_args, i;\r\n\r\n for (i = newEvents.length - 1; i !== -1; i--) {\r\n // subscribe takes 3 args: 'topic', function, runonce_flag\r\n // if undefined, runonce is false.\r\n // users can attach callback directly,\r\n // or they can attach an array with [callback, runonce_flag]\r\n // that's what the \"apply\" magic is for below.\r\n eventname = newEvents[i][0];\r\n handler_and_args = newEvents[i][1];\r\n events.subscribe.apply(\r\n events,\r\n [eventname].concat(\r\n typeof handler_and_args === \"function\"\r\n ? [handler_and_args]\r\n : handler_and_args\r\n )\r\n );\r\n }\r\n })(events, jsPDF.API.events);\r\n } else {\r\n API[plugin] = jsPDF.API[plugin];\r\n }\r\n }\r\n }\r\n\r\n var getPageWidth = (API.getPageWidth = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightX -\r\n pagesContext[pageNumber].mediaBox.bottomLeftX) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageWidth = (API.setPageWidth = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightX =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftX;\r\n });\r\n\r\n var getPageHeight = (API.getPageHeight = function(pageNumber) {\r\n pageNumber = pageNumber || currentPage;\r\n return (\r\n (pagesContext[pageNumber].mediaBox.topRightY -\r\n pagesContext[pageNumber].mediaBox.bottomLeftY) /\r\n scaleFactor\r\n );\r\n });\r\n\r\n var setPageHeight = (API.setPageHeight = function(pageNumber, value) {\r\n pagesContext[pageNumber].mediaBox.topRightY =\r\n value * scaleFactor + pagesContext[pageNumber].mediaBox.bottomLeftY;\r\n });\r\n\r\n /**\r\n * Object exposing internal API to plugins\r\n * @public\r\n * @ignore\r\n */\r\n API.internal = {\r\n pdfEscape: pdfEscape,\r\n getStyle: getStyle,\r\n getFont: getFontEntry,\r\n getFontSize: getFontSize,\r\n getCharSpace: getCharSpace,\r\n getTextColor: getTextColor,\r\n getLineHeight: getLineHeight,\r\n getLineHeightFactor: getLineHeightFactor,\r\n getLineWidth: getLineWidth,\r\n write: write,\r\n getHorizontalCoordinate: getHorizontalCoordinate,\r\n getVerticalCoordinate: getVerticalCoordinate,\r\n getCoordinateString: getHorizontalCoordinateString,\r\n getVerticalCoordinateString: getVerticalCoordinateString,\r\n collections: {},\r\n newObject: newObject,\r\n newAdditionalObject: newAdditionalObject,\r\n newObjectDeferred: newObjectDeferred,\r\n newObjectDeferredBegin: newObjectDeferredBegin,\r\n getFilters: getFilters,\r\n putStream: putStream,\r\n events: events,\r\n scaleFactor: scaleFactor,\r\n pageSize: {\r\n getWidth: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n setWidth: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n getHeight: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n setHeight: function(value) {\r\n setPageHeight(currentPage, value);\r\n }\r\n },\r\n encryptionOptions: encryptionOptions,\r\n encryption: encryption,\r\n getEncryptor: getEncryptor,\r\n output: output,\r\n getNumberOfPages: getNumberOfPages,\r\n pages: pages,\r\n out: out,\r\n f2: f2,\r\n f3: f3,\r\n getPageInfo: getPageInfo,\r\n getPageInfoByObjId: getPageInfoByObjId,\r\n getCurrentPageInfo: getCurrentPageInfo,\r\n getPDFVersion: getPdfVersion,\r\n Point: Point,\r\n Rectangle: Rectangle,\r\n Matrix: Matrix,\r\n hasHotfix: hasHotfix //Expose the hasHotfix check so plugins can also check them.\r\n };\r\n\r\n Object.defineProperty(API.internal.pageSize, \"width\", {\r\n get: function() {\r\n return getPageWidth(currentPage);\r\n },\r\n set: function(value) {\r\n setPageWidth(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(API.internal.pageSize, \"height\", {\r\n get: function() {\r\n return getPageHeight(currentPage);\r\n },\r\n set: function(value) {\r\n setPageHeight(currentPage, value);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n\r\n //////////////////////////////////////////////////////\r\n // continuing initialization of jsPDF Document object\r\n //////////////////////////////////////////////////////\r\n // Add the first page automatically\r\n addFonts.call(API, standardFonts);\r\n activeFontKey = \"F1\";\r\n _addPage(format, orientation);\r\n\r\n events.publish(\"initialized\");\r\n return API;\r\n}\r\n\r\n/**\r\n * jsPDF.API is a STATIC property of jsPDF class.\r\n * jsPDF.API is an object you can add methods and properties to.\r\n * The methods / properties you add will show up in new jsPDF objects.\r\n *\r\n * One property is prepopulated. It is the 'events' Object. Plugin authors can add topics,\r\n * callbacks to this object. These will be reassigned to all new instances of jsPDF.\r\n *\r\n * @static\r\n * @public\r\n * @memberof jsPDF#\r\n * @name API\r\n *\r\n * @example\r\n * jsPDF.API.mymethod = function(){\r\n * // 'this' will be ref to internal API object. see jsPDF source\r\n * // , so you can refer to built-in methods like so:\r\n * // this.line(....)\r\n * // this.text(....)\r\n * }\r\n * var pdfdoc = new jsPDF()\r\n * pdfdoc.mymethod() // <- !!!!!!\r\n */\r\njsPDF.API = {\r\n events: []\r\n};\r\n/**\r\n * The version of jsPDF.\r\n * @name version\r\n * @type {string}\r\n * @memberof jsPDF#\r\n */\r\njsPDF.version = \"0.0.0\";\r\n\r\nexport { jsPDF, ShadingPattern, TilingPattern, GState };\r\nexport default jsPDF;\r\n","/* global jsPDF */\n/**\n * @license\n * Copyright (c) 2016 Alexander Weidt,\n * https://github.com/BiggA94\n *\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF AcroForm Plugin\n * @module AcroForm\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\nvar jsPDFAPI = jsPDF.API;\nvar scaleFactor = 1;\n\nvar pdfEscape = function(value) {\n return value\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\(/g, \"\\\\(\")\n .replace(/\\)/g, \"\\\\)\");\n};\nvar pdfUnescape = function(value) {\n return value\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\(/g, \"(\")\n .replace(/\\\\\\)/g, \")\");\n};\n\nvar f2 = function(number) {\n return number.toFixed(2); // Ie, %.2f\n};\n\nvar f5 = function(number) {\n return number.toFixed(5); // Ie, %.2f\n};\n\njsPDFAPI.__acroform__ = {};\nvar inherit = function(child, parent) {\n child.prototype = Object.create(parent.prototype);\n child.prototype.constructor = child;\n};\n\nvar scale = function(x) {\n return x * scaleFactor;\n};\n\nvar createFormXObject = function(formObject) {\n var xobj = new AcroFormXObject();\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n xobj.BBox = [0, 0, Number(f2(width)), Number(f2(height))];\n return xobj;\n};\n\n/**\n * Bit-Operations\n */\nvar setBit = (jsPDFAPI.__acroform__.setBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number |= bitMask;\n\n return number;\n});\n\nvar clearBit = (jsPDFAPI.__acroform__.clearBit = function(number, bitPosition) {\n number = number || 0;\n bitPosition = bitPosition || 0;\n\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\"\n );\n }\n var bitMask = 1 << bitPosition;\n\n number &= ~bitMask;\n\n return number;\n});\n\nvar getBit = (jsPDFAPI.__acroform__.getBit = function(number, bitPosition) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBit\"\n );\n }\n return (number & (1 << bitPosition)) === 0 ? 0 : 1;\n});\n\n/*\n * Ff starts counting the bit position at 1 and not like javascript at 0\n */\nvar getBitForPdf = (jsPDFAPI.__acroform__.getBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\"\n );\n }\n return getBit(number, bitPosition - 1);\n});\n\nvar setBitForPdf = (jsPDFAPI.__acroform__.setBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\"\n );\n }\n return setBit(number, bitPosition - 1);\n});\n\nvar clearBitForPdf = (jsPDFAPI.__acroform__.clearBitForPdf = function(\n number,\n bitPosition\n) {\n if (isNaN(number) || isNaN(bitPosition)) {\n throw new Error(\n \"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\"\n );\n }\n return clearBit(number, bitPosition - 1);\n});\n\nvar calculateCoordinates = (jsPDFAPI.__acroform__.calculateCoordinates = function(\n args,\n scope\n) {\n var getHorizontalCoordinate = scope.internal.getHorizontalCoordinate;\n var getVerticalCoordinate = scope.internal.getVerticalCoordinate;\n var x = args[0];\n var y = args[1];\n var w = args[2];\n var h = args[3];\n\n var coordinates = {};\n\n coordinates.lowerLeft_X = getHorizontalCoordinate(x) || 0;\n coordinates.lowerLeft_Y = getVerticalCoordinate(y + h) || 0;\n coordinates.upperRight_X = getHorizontalCoordinate(x + w) || 0;\n coordinates.upperRight_Y = getVerticalCoordinate(y) || 0;\n\n return [\n Number(f2(coordinates.lowerLeft_X)),\n Number(f2(coordinates.lowerLeft_Y)),\n Number(f2(coordinates.upperRight_X)),\n Number(f2(coordinates.upperRight_Y))\n ];\n});\n\nvar calculateAppearanceStream = function(formObject) {\n if (formObject.appearanceStreamContent) {\n return formObject.appearanceStreamContent;\n }\n\n if (!formObject.V && !formObject.DV) {\n return;\n }\n\n // else calculate it\n\n var stream = [];\n var text = formObject._V || formObject.DV;\n var calcRes = calculateX(formObject, text);\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n\n //PDF 32000-1:2008, page 444\n stream.push(\"/Tx BMC\");\n stream.push(\"q\");\n stream.push(\"BT\"); // Begin Text\n stream.push(formObject.scope.__private__.encodeColorString(formObject.color));\n stream.push(\"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf\");\n stream.push(\"1 0 0 1 0 0 Tm\"); // Transformation Matrix\n stream.push(calcRes.text);\n stream.push(\"ET\"); // End Text\n stream.push(\"Q\");\n stream.push(\"EMC\");\n\n var appearanceStreamContent = createFormXObject(formObject);\n appearanceStreamContent.scope = formObject.scope;\n appearanceStreamContent.stream = stream.join(\"\\n\");\n return appearanceStreamContent;\n};\n\nvar calculateX = function(formObject, text) {\n var maxFontSize =\n formObject.fontSize === 0 ? formObject.maxFontSize : formObject.fontSize;\n var returnValue = {\n text: \"\",\n fontSize: \"\"\n };\n // Remove Brackets\n text = text.substr(0, 1) == \"(\" ? text.substr(1) : text;\n text =\n text.substr(text.length - 1) == \")\"\n ? text.substr(0, text.length - 1)\n : text;\n // split into array of words\n var textSplit = text.split(\" \");\n if (formObject.multiline) {\n textSplit = textSplit.map(word => word.split(\"\\n\"));\n } else {\n textSplit = textSplit.map(word => [word]);\n }\n\n var fontSize = maxFontSize; // The Starting fontSize (The Maximum)\n var lineSpacing = 2;\n var borderPadding = 2;\n\n var height = AcroFormAppearance.internal.getHeight(formObject) || 0;\n height = height < 0 ? -height : height;\n var width = AcroFormAppearance.internal.getWidth(formObject) || 0;\n width = width < 0 ? -width : width;\n\n var isSmallerThanWidth = function(i, lastLine, fontSize) {\n if (i + 1 < textSplit.length) {\n var tmp = lastLine + \" \" + textSplit[i + 1][0];\n var TextWidth = calculateFontSpace(tmp, formObject, fontSize).width;\n var FieldWidth = width - 2 * borderPadding;\n return TextWidth <= FieldWidth;\n } else {\n return false;\n }\n };\n\n fontSize++;\n FontSize: while (fontSize > 0) {\n text = \"\";\n fontSize--;\n var textHeight = calculateFontSpace(\"3\", formObject, fontSize).height;\n var startY = formObject.multiline\n ? height - fontSize\n : (height - textHeight) / 2;\n startY += lineSpacing;\n var startX;\n\n var lastY = startY;\n var firstWordInLine = 0,\n lastWordInLine = 0;\n var lastLength;\n var currWord = 0;\n\n if (fontSize <= 0) {\n // In case, the Text doesn't fit at all\n fontSize = 12;\n text = \"(...) Tj\\n\";\n text +=\n \"% Width of Text: \" +\n calculateFontSpace(text, formObject, fontSize).width +\n \", FieldWidth:\" +\n width +\n \"\\n\";\n break;\n }\n\n var lastLine = \"\";\n var lineCount = 0;\n Line: for (var i = 0; i < textSplit.length; i++) {\n if (textSplit.hasOwnProperty(i)) {\n let isWithNewLine = false;\n if (textSplit[i].length !== 1 && currWord !== textSplit[i].length - 1) {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n continue FontSize;\n }\n\n lastLine += textSplit[i][currWord];\n isWithNewLine = true;\n lastWordInLine = i;\n i--;\n } else {\n lastLine += textSplit[i][currWord] + \" \";\n lastLine =\n lastLine.substr(lastLine.length - 1) == \" \"\n ? lastLine.substr(0, lastLine.length - 1)\n : lastLine;\n var key = parseInt(i);\n var nextLineIsSmaller = isSmallerThanWidth(key, lastLine, fontSize);\n var isLastWord = i >= textSplit.length - 1;\n\n if (nextLineIsSmaller && !isLastWord) {\n lastLine += \" \";\n currWord = 0;\n continue; // Line\n } else if (!nextLineIsSmaller && !isLastWord) {\n if (!formObject.multiline) {\n continue FontSize;\n } else {\n if (\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the\n // FieldObject\n continue FontSize;\n }\n lastWordInLine = key;\n // go on\n }\n } else if (isLastWord) {\n lastWordInLine = key;\n } else {\n if (\n formObject.multiline &&\n (textHeight + lineSpacing) * (lineCount + 2) + lineSpacing >\n height\n ) {\n // If the Text is higher than the FieldObject\n continue FontSize;\n }\n }\n }\n // Remove last blank\n\n var line = \"\";\n\n for (var x = firstWordInLine; x <= lastWordInLine; x++) {\n var currLine = textSplit[x];\n if (formObject.multiline) {\n if (x === lastWordInLine) {\n line += currLine[currWord] + \" \";\n currWord = (currWord + 1) % currLine.length;\n continue;\n }\n if (x === firstWordInLine) {\n line += currLine[currLine.length - 1] + \" \";\n continue;\n }\n }\n line += currLine[0] + \" \";\n }\n\n // Remove last blank\n line =\n line.substr(line.length - 1) == \" \"\n ? line.substr(0, line.length - 1)\n : line;\n // lastLength -= blankSpace.width;\n lastLength = calculateFontSpace(line, formObject, fontSize).width;\n\n // Calculate startX\n switch (formObject.textAlign) {\n case \"right\":\n startX = width - lastLength - borderPadding;\n break;\n case \"center\":\n startX = (width - lastLength) / 2;\n break;\n case \"left\":\n default:\n startX = borderPadding;\n break;\n }\n text += f2(startX) + \" \" + f2(lastY) + \" Td\\n\";\n text += \"(\" + pdfEscape(line) + \") Tj\\n\";\n // reset X in PDF\n text += -f2(startX) + \" 0 Td\\n\";\n\n // After a Line, adjust y position\n lastY = -(fontSize + lineSpacing);\n\n // Reset for next iteration step\n lastLength = 0;\n firstWordInLine = isWithNewLine ? lastWordInLine : lastWordInLine + 1;\n lineCount++;\n\n lastLine = \"\";\n continue Line;\n }\n }\n break;\n }\n\n returnValue.text = text;\n returnValue.fontSize = fontSize;\n\n return returnValue;\n};\n\n/**\n * Small workaround for calculating the TextMetric approximately.\n *\n * @param text\n * @param fontsize\n * @returns {TextMetrics} (Has Height and Width)\n */\nvar calculateFontSpace = function(text, formObject, fontSize) {\n var font = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n );\n var width =\n formObject.scope.getStringUnitWidth(text, {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) * parseFloat(fontSize);\n var height =\n formObject.scope.getStringUnitWidth(\"3\", {\n font: font,\n fontSize: parseFloat(fontSize),\n charSpace: 0\n }) *\n parseFloat(fontSize) *\n 1.5;\n return { height: height, width: width };\n};\n\nvar acroformPluginTemplate = {\n fields: [],\n xForms: [],\n /**\n * acroFormDictionaryRoot contains information about the AcroForm\n * Dictionary 0: The Event-Token, the AcroFormDictionaryCallback has\n * 1: The Object ID of the Root\n */\n acroFormDictionaryRoot: null,\n /**\n * After the PDF gets evaluated, the reference to the root has to be\n * reset, this indicates, whether the root has already been printed\n * out\n */\n printedOut: false,\n internal: null,\n isInitialized: false\n};\n\nvar annotReferenceCallback = function(scope) {\n //set objId to undefined and force it to get a new objId on buildDocument\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId = undefined;\n var fields = scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields;\n for (var i in fields) {\n if (fields.hasOwnProperty(i)) {\n var formObject = fields[i];\n //set objId to undefined and force it to get a new objId on buildDocument\n formObject.objId = undefined;\n // add Annot Reference!\n if (formObject.hasAnnotation) {\n // If theres an Annotation Widget in the Form Object, put the\n // Reference in the /Annot array\n createAnnotationReference(formObject, scope);\n }\n }\n }\n};\n\nvar putForm = function(formObject) {\n if (formObject.scope.internal.acroformPlugin.printedOut) {\n formObject.scope.internal.acroformPlugin.printedOut = false;\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot = null;\n }\n formObject.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(\n formObject\n );\n};\n/**\n * Create the Reference to the widgetAnnotation, so that it gets referenced\n * in the Annot[] int the+ (Requires the Annotation Plugin)\n */\nvar createAnnotationReference = function(object, scope) {\n var options = {\n type: \"reference\",\n object: object\n };\n var findEntry = function(entry) {\n return entry.type === options.type && entry.object === options.object;\n };\n if (\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.find(findEntry) === undefined\n ) {\n scope.internal\n .getPageInfo(object.page)\n .pageContext.annotations.push(options);\n }\n};\n\n// Callbacks\n\nvar putCatalogCallback = function(scope) {\n // Put reference to AcroForm to DocumentCatalog\n if (\n typeof scope.internal.acroformPlugin.acroFormDictionaryRoot !== \"undefined\"\n ) {\n // for safety, shouldn't normally be the case\n scope.internal.write(\n \"/AcroForm \" +\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId +\n \" \" +\n 0 +\n \" R\"\n );\n } else {\n throw new Error(\"putCatalogCallback: Root missing.\");\n }\n};\n\n/**\n * Adds /Acroform X 0 R to Document Catalog, and creates the AcroForm\n * Dictionary\n */\nvar AcroFormDictionaryCallback = function(scope) {\n // Remove event\n scope.internal.events.unsubscribe(\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID\n );\n delete scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID;\n scope.internal.acroformPlugin.printedOut = true;\n};\n\n/**\n * Creates the single Fields and writes them into the Document\n *\n * If fieldArray is set, use the fields that are inside it instead of the\n * fields from the AcroRoot (for the FormXObjects...)\n */\nvar createFieldCallback = function(fieldArray, scope) {\n var standardFields = !fieldArray;\n\n if (!fieldArray) {\n // in case there is no fieldArray specified, we want to print out\n // the Fields of the AcroForm\n // Print out Root\n scope.internal.newObjectDeferredBegin(\n scope.internal.acroformPlugin.acroFormDictionaryRoot.objId,\n true\n );\n scope.internal.acroformPlugin.acroFormDictionaryRoot.putStream();\n }\n\n fieldArray =\n fieldArray || scope.internal.acroformPlugin.acroFormDictionaryRoot.Kids;\n\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var fieldObject = fieldArray[i];\n var keyValueList = [];\n var oldRect = fieldObject.Rect;\n\n if (fieldObject.Rect) {\n fieldObject.Rect = calculateCoordinates(fieldObject.Rect, scope);\n }\n\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n fieldObject.DA = AcroFormAppearance.createDefaultAppearanceStream(\n fieldObject\n );\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.getKeyValueListForStream === \"function\"\n ) {\n keyValueList = fieldObject.getKeyValueListForStream();\n }\n\n fieldObject.Rect = oldRect;\n\n if (\n fieldObject.hasAppearanceStream &&\n !fieldObject.appearanceStreamContent\n ) {\n // Calculate Appearance\n var appearance = calculateAppearanceStream(fieldObject);\n keyValueList.push({ key: \"AP\", value: \"<>\" });\n\n scope.internal.acroformPlugin.xForms.push(appearance);\n }\n\n // Assume AppearanceStreamContent is a Array with N,R,D (at least\n // one of them!)\n if (fieldObject.appearanceStreamContent) {\n var appearanceStreamString = \"\";\n // Iterate over N,R and D\n for (var k in fieldObject.appearanceStreamContent) {\n if (fieldObject.appearanceStreamContent.hasOwnProperty(k)) {\n var value = fieldObject.appearanceStreamContent[k];\n appearanceStreamString += \"/\" + k + \" \";\n appearanceStreamString += \"<<\";\n if (Object.keys(value).length >= 1 || Array.isArray(value)) {\n // appearanceStream is an Array or Object!\n for (var i in value) {\n if (value.hasOwnProperty(i)) {\n var obj = value[i];\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order\n // to get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj + \" \";\n\n // In case the XForm is already used, e.g. OffState\n // of CheckBoxes, don't add it\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n }\n } else {\n obj = value;\n if (typeof obj === \"function\") {\n // if Function is referenced, call it in order to\n // get the FormXObject\n obj = obj.call(scope, fieldObject);\n }\n appearanceStreamString += \"/\" + i + \" \" + obj;\n if (!(scope.internal.acroformPlugin.xForms.indexOf(obj) >= 0))\n scope.internal.acroformPlugin.xForms.push(obj);\n }\n appearanceStreamString += \">>\";\n }\n }\n\n // appearance stream is a normal Object..\n keyValueList.push({\n key: \"AP\",\n value: \"<<\\n\" + appearanceStreamString + \">>\"\n });\n }\n\n scope.internal.putStream({\n additionalKeyValues: keyValueList,\n objectId: fieldObject.objId\n });\n\n scope.internal.out(\"endobj\");\n }\n }\n if (standardFields) {\n createXFormObjectCallback(scope.internal.acroformPlugin.xForms, scope);\n }\n};\n\nvar createXFormObjectCallback = function(fieldArray, scope) {\n for (var i in fieldArray) {\n if (fieldArray.hasOwnProperty(i)) {\n var key = i;\n var fieldObject = fieldArray[i];\n // Start Writing the Object\n scope.internal.newObjectDeferredBegin(fieldObject.objId, true);\n\n if (\n typeof fieldObject === \"object\" &&\n typeof fieldObject.putStream === \"function\"\n ) {\n fieldObject.putStream();\n }\n delete fieldArray[key];\n }\n }\n};\n\nvar initializeAcroForm = function(scope, formObject) {\n formObject.scope = scope;\n if (\n scope.internal !== undefined &&\n (scope.internal.acroformPlugin === undefined ||\n scope.internal.acroformPlugin.isInitialized === false)\n ) {\n AcroFormField.FieldNum = 0;\n scope.internal.acroformPlugin = JSON.parse(\n JSON.stringify(acroformPluginTemplate)\n );\n if (scope.internal.acroformPlugin.acroFormDictionaryRoot) {\n throw new Error(\"Exception while creating AcroformDictionary\");\n }\n scaleFactor = scope.internal.scaleFactor;\n // The Object Number of the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot = new AcroFormDictionary();\n scope.internal.acroformPlugin.acroFormDictionaryRoot.scope = scope;\n\n // add Callback for creating the AcroForm Dictionary\n scope.internal.acroformPlugin.acroFormDictionaryRoot._eventID = scope.internal.events.subscribe(\n \"postPutResources\",\n function() {\n AcroFormDictionaryCallback(scope);\n }\n );\n\n scope.internal.events.subscribe(\"buildDocument\", function() {\n annotReferenceCallback(scope);\n }); // buildDocument\n\n // Register event, that is triggered when the DocumentCatalog is\n // written, in order to add /AcroForm\n\n scope.internal.events.subscribe(\"putCatalog\", function() {\n putCatalogCallback(scope);\n });\n\n // Register event, that creates all Fields\n scope.internal.events.subscribe(\"postPutPages\", function(fieldArray) {\n createFieldCallback(fieldArray, scope);\n });\n\n scope.internal.acroformPlugin.isInitialized = true;\n }\n};\n\n//PDF 32000-1:2008, page 26, 7.3.6\nvar arrayToPdfArray = (jsPDFAPI.__acroform__.arrayToPdfArray = function(\n array,\n objId,\n scope\n) {\n var encryptor = function(data) {\n return data;\n };\n if (Array.isArray(array)) {\n var content = \"[\";\n for (var i = 0; i < array.length; i++) {\n if (i !== 0) {\n content += \" \";\n }\n switch (typeof array[i]) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n content += array[i].toString();\n break;\n case \"string\":\n if (array[i].substr(0, 1) !== \"/\") {\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n content += \"(\" + pdfEscape(encryptor(array[i].toString())) + \")\";\n } else {\n content += array[i].toString();\n }\n break;\n }\n }\n content += \"]\";\n return content;\n }\n throw new Error(\n \"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\"\n );\n});\nfunction getMatches(string, regex, index) {\n index || (index = 1); // default to the first capturing group\n var matches = [];\n var match;\n while ((match = regex.exec(string))) {\n matches.push(match[index]);\n }\n return matches;\n}\nvar pdfArrayToStringArray = function(array) {\n var result = [];\n if (typeof array === \"string\") {\n result = getMatches(array, /\\((.*?)\\)/g);\n }\n return result;\n};\n\nvar toPdfString = function(string, objId, scope) {\n var encryptor = function(data) {\n return data;\n };\n if (typeof objId !== \"undefined\" && scope)\n encryptor = scope.internal.getEncryptor(objId);\n string = string || \"\";\n string.toString();\n string = \"(\" + pdfEscape(encryptor(string)) + \")\";\n return string;\n};\n\n// ##########################\n// Classes\n// ##########################\n\n/**\n * @class AcroFormPDFObject\n * @classdesc A AcroFormPDFObject\n */\nvar AcroFormPDFObject = function() {\n this._objId = undefined;\n this._scope = undefined;\n\n /**\n * @name AcroFormPDFObject#objId\n * @type {any}\n */\n Object.defineProperty(this, \"objId\", {\n get: function() {\n if (typeof this._objId === \"undefined\") {\n if (typeof this.scope === \"undefined\") {\n return undefined;\n }\n this._objId = this.scope.internal.newObjectDeferred();\n }\n return this._objId;\n },\n set: function(value) {\n this._objId = value;\n }\n });\n Object.defineProperty(this, \"scope\", {\n value: this._scope,\n writable: true\n });\n};\n\n/**\n * @function AcroFormPDFObject.toString\n */\nAcroFormPDFObject.prototype.toString = function() {\n return this.objId + \" 0 R\";\n};\n\nAcroFormPDFObject.prototype.putStream = function() {\n var keyValueList = this.getKeyValueListForStream();\n this.scope.internal.putStream({\n data: this.stream,\n additionalKeyValues: keyValueList,\n objectId: this.objId\n });\n this.scope.internal.out(\"endobj\");\n};\n\n/**\n * Returns an key-value-List of all non-configurable Variables from the Object\n *\n * @name getKeyValueListForStream\n * @returns {string}\n */\nAcroFormPDFObject.prototype.getKeyValueListForStream = function() {\n var keyValueList = [];\n var keys = Object.getOwnPropertyNames(this).filter(function(key) {\n return (\n key != \"content\" &&\n key != \"appearanceStreamContent\" &&\n key != \"scope\" &&\n key != \"objId\" &&\n key.substring(0, 1) != \"_\"\n );\n });\n\n for (var i in keys) {\n if (Object.getOwnPropertyDescriptor(this, keys[i]).configurable === false) {\n var key = keys[i];\n var value = this[key];\n\n if (value) {\n if (Array.isArray(value)) {\n keyValueList.push({\n key: key,\n value: arrayToPdfArray(value, this.objId, this.scope)\n });\n } else if (value instanceof AcroFormPDFObject) {\n // In case it is a reference to another PDFObject,\n // take the reference number\n value.scope = this.scope;\n keyValueList.push({ key: key, value: value.objId + \" 0 R\" });\n } else if (typeof value !== \"function\") {\n keyValueList.push({ key: key, value: value });\n }\n }\n }\n }\n return keyValueList;\n};\n\nvar AcroFormXObject = function() {\n AcroFormPDFObject.call(this);\n\n Object.defineProperty(this, \"Type\", {\n value: \"/XObject\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"Subtype\", {\n value: \"/Form\",\n configurable: false,\n writable: true\n });\n\n Object.defineProperty(this, \"FormType\", {\n value: 1,\n configurable: false,\n writable: true\n });\n\n var _BBox = [];\n Object.defineProperty(this, \"BBox\", {\n configurable: false,\n get: function() {\n return _BBox;\n },\n set: function(value) {\n _BBox = value;\n }\n });\n\n Object.defineProperty(this, \"Resources\", {\n value: \"2 0 R\",\n configurable: false,\n writable: true\n });\n\n var _stream;\n Object.defineProperty(this, \"stream\", {\n enumerable: false,\n configurable: true,\n set: function(value) {\n _stream = value.trim();\n },\n get: function() {\n if (_stream) {\n return _stream;\n } else {\n return null;\n }\n }\n });\n};\n\ninherit(AcroFormXObject, AcroFormPDFObject);\n\nvar AcroFormDictionary = function() {\n AcroFormPDFObject.call(this);\n\n var _Kids = [];\n\n Object.defineProperty(this, \"Kids\", {\n enumerable: false,\n configurable: true,\n get: function() {\n if (_Kids.length > 0) {\n return _Kids;\n } else {\n return undefined;\n }\n }\n });\n Object.defineProperty(this, \"Fields\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Kids;\n }\n });\n\n // Default Appearance\n var _DA;\n Object.defineProperty(this, \"DA\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DA) {\n return undefined;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_DA)) + \")\";\n },\n set: function(value) {\n _DA = value;\n }\n });\n};\n\ninherit(AcroFormDictionary, AcroFormPDFObject);\n\n/**\n * The Field Object contains the Variables, that every Field needs\n *\n * @class AcroFormField\n * @classdesc An AcroForm FieldObject\n */\nvar AcroFormField = function() {\n AcroFormPDFObject.call(this);\n\n //Annotation-Flag See Table 165\n var _F = 4;\n Object.defineProperty(this, \"F\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _F;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _F = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute F supplied.'\n );\n }\n }\n });\n\n /**\n * (PDF 1.2) If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of wether is is displayed on the screen.\n * NOTE 2 This can be useful for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.\n *\n * @name AcroFormField#showWhenPrinted\n * @default true\n * @type {boolean}\n */\n Object.defineProperty(this, \"showWhenPrinted\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(_F, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.F = setBitForPdf(_F, 3);\n } else {\n this.F = clearBitForPdf(_F, 3);\n }\n }\n });\n\n var _Ff = 0;\n Object.defineProperty(this, \"Ff\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _Ff;\n },\n set: function(value) {\n if (!isNaN(value)) {\n _Ff = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Ff supplied.'\n );\n }\n }\n });\n\n var _Rect = [];\n Object.defineProperty(this, \"Rect\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (_Rect.length === 0) {\n return undefined;\n }\n return _Rect;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Rect = value;\n } else {\n _Rect = [];\n }\n }\n });\n\n /**\n * The x-position of the field.\n *\n * @name AcroFormField#x\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[0])) {\n return 0;\n }\n return _Rect[0];\n },\n set: function(value) {\n _Rect[0] = value;\n }\n });\n\n /**\n * The y-position of the field.\n *\n * @name AcroFormField#y\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[1])) {\n return 0;\n }\n return _Rect[1];\n },\n set: function(value) {\n _Rect[1] = value;\n }\n });\n\n /**\n * The width of the field.\n *\n * @name AcroFormField#width\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[2])) {\n return 0;\n }\n return _Rect[2];\n },\n set: function(value) {\n _Rect[2] = value;\n }\n });\n\n /**\n * The height of the field.\n *\n * @name AcroFormField#height\n * @default null\n * @type {number}\n */\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_Rect || isNaN(_Rect[3])) {\n return 0;\n }\n return _Rect[3];\n },\n set: function(value) {\n _Rect[3] = value;\n }\n });\n\n var _FT = \"\";\n Object.defineProperty(this, \"FT\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _FT;\n },\n set: function(value) {\n switch (value) {\n case \"/Btn\":\n case \"/Tx\":\n case \"/Ch\":\n case \"/Sig\":\n _FT = value;\n break;\n default:\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute FT supplied.'\n );\n }\n }\n });\n\n var _T = null;\n\n Object.defineProperty(this, \"T\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (!_T || _T.length < 1) {\n // In case of a Child from a Radio´Group, you don't need a FieldName\n if (this instanceof AcroFormChildClass) {\n return undefined;\n }\n _T = \"FieldObject\" + AcroFormField.FieldNum++;\n }\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n return \"(\" + pdfEscape(encryptor(_T)) + \")\";\n },\n set: function(value) {\n _T = value.toString();\n }\n });\n\n /**\n * (Optional) The partial field name (see 12.7.3.2, “Field Names”).\n *\n * @name AcroFormField#fieldName\n * @default null\n * @type {string}\n */\n Object.defineProperty(this, \"fieldName\", {\n configurable: true,\n enumerable: true,\n get: function() {\n return _T;\n },\n set: function(value) {\n _T = value;\n }\n });\n\n var _fontName = \"helvetica\";\n /**\n * The fontName of the font to be used.\n *\n * @name AcroFormField#fontName\n * @default 'helvetica'\n * @type {string}\n */\n Object.defineProperty(this, \"fontName\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontName;\n },\n set: function(value) {\n _fontName = value;\n }\n });\n\n var _fontStyle = \"normal\";\n /**\n * The fontStyle of the font to be used.\n *\n * @name AcroFormField#fontStyle\n * @default 'normal'\n * @type {string}\n */\n Object.defineProperty(this, \"fontStyle\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontStyle;\n },\n set: function(value) {\n _fontStyle = value;\n }\n });\n\n var _fontSize = 0;\n /**\n * The fontSize of the font to be used.\n *\n * @name AcroFormField#fontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"fontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _fontSize;\n },\n set: function(value) {\n _fontSize = value;\n }\n });\n\n var _maxFontSize = undefined;\n /**\n * The maximum fontSize of the font to be used.\n *\n * @name AcroFormField#maxFontSize\n * @default 0 (for auto)\n * @type {number}\n */\n Object.defineProperty(this, \"maxFontSize\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (_maxFontSize === undefined) {\n // use the old default value here - the value is some kind of random as it depends on the scaleFactor (user unit)\n // (\"50\" is transformed to the \"user space\" but then used in \"pdf space\")\n return 50 / scaleFactor;\n } else {\n return _maxFontSize;\n }\n },\n set: function(value) {\n _maxFontSize = value;\n }\n });\n\n var _color = \"black\";\n /**\n * The color of the text\n *\n * @name AcroFormField#color\n * @default 'black'\n * @type {string|rgba}\n */\n Object.defineProperty(this, \"color\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _color;\n },\n set: function(value) {\n _color = value;\n }\n });\n\n var _DA = \"/F1 0 Tf 0 g\";\n // Defines the default appearance (Needed for variable Text)\n Object.defineProperty(this, \"DA\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (\n !_DA ||\n this instanceof AcroFormChildClass ||\n this instanceof AcroFormTextField\n ) {\n return undefined;\n }\n return toPdfString(_DA, this.objId, this.scope);\n },\n set: function(value) {\n value = value.toString();\n _DA = value;\n }\n });\n\n var _DV = null;\n Object.defineProperty(this, \"DV\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_DV) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_DV, this.objId, this.scope);\n }\n return _DV;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _DV = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _DV = pdfUnescape(value);\n }\n } else {\n _DV = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The default value to which the field reverts when a reset-form action is executed (see 12.7.5.3, “Reset-Form Action”). The format of this value is the same as that of value.\n *\n * @name AcroFormField#defaultValue\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"defaultValue\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_DV.substr(1, _DV.length - 1));\n } else {\n return _DV;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _DV = \"/\" + value;\n } else {\n _DV = value;\n }\n }\n });\n\n var _V = null;\n Object.defineProperty(this, \"_V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n return _V;\n },\n set: function(value) {\n this.V = value;\n }\n });\n Object.defineProperty(this, \"V\", {\n enumerable: false,\n configurable: false,\n get: function() {\n if (!_V) {\n return undefined;\n }\n if (this instanceof AcroFormButton === false) {\n return toPdfString(_V, this.objId, this.scope);\n }\n return _V;\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === false) {\n if (value.substr(0, 1) === \"(\") {\n _V = pdfUnescape(value.substr(1, value.length - 2));\n } else {\n _V = pdfUnescape(value);\n }\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * (Optional; inheritable) The field’s value, whose format varies depending on the field type. See the descriptions of individual field types for further information.\n *\n * @name AcroFormField#value\n * @default null\n * @type {any}\n */\n Object.defineProperty(this, \"value\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (this instanceof AcroFormButton === true) {\n return pdfUnescape(_V.substr(1, _V.length - 1));\n } else {\n return _V;\n }\n },\n set: function(value) {\n value = value.toString();\n if (this instanceof AcroFormButton === true) {\n _V = \"/\" + value;\n } else {\n _V = value;\n }\n }\n });\n\n /**\n * Check if field has annotations\n *\n * @name AcroFormField#hasAnnotation\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAnnotation\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.Rect;\n }\n });\n\n Object.defineProperty(this, \"Type\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Annot\" : null;\n }\n });\n\n Object.defineProperty(this, \"Subtype\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return this.hasAnnotation ? \"/Widget\" : null;\n }\n });\n\n var _hasAppearanceStream = false;\n /**\n * true if field has an appearanceStream\n *\n * @name AcroFormField#hasAppearanceStream\n * @readonly\n * @type {boolean}\n */\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _hasAppearanceStream;\n },\n set: function(value) {\n value = Boolean(value);\n _hasAppearanceStream = value;\n }\n });\n\n /**\n * The page on which the AcroFormField is placed\n *\n * @name AcroFormField#page\n * @type {number}\n */\n var _page;\n Object.defineProperty(this, \"page\", {\n enumerable: true,\n configurable: true,\n get: function() {\n if (!_page) {\n return undefined;\n }\n return _page;\n },\n set: function(value) {\n _page = value;\n }\n });\n\n /**\n * If set, the user may not change the value of the field. Any associated widget annotations will not interact with the user; that is, they will not respond to mouse clicks or change their appearance in response to mouse motions. This flag is useful for fields whose values are computed or imported from a database.\n *\n * @name AcroFormField#readOnly\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"readOnly\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 1));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 1);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 1);\n }\n }\n });\n\n /**\n * If set, the field shall have a value at the time it is exported by a submitform action (see 12.7.5.2, “Submit-Form Action”).\n *\n * @name AcroFormField#required\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"required\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 2));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 2);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 2);\n }\n }\n });\n\n /**\n * If set, the field shall not be exported by a submit-form action (see 12.7.5.2, “Submit-Form Action”)\n *\n * @name AcroFormField#noExport\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"noExport\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 3));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 3);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 3);\n }\n }\n });\n\n var _Q = null;\n Object.defineProperty(this, \"Q\", {\n enumerable: true,\n configurable: false,\n get: function() {\n if (_Q === null) {\n return undefined;\n }\n return _Q;\n },\n set: function(value) {\n if ([0, 1, 2].indexOf(value) !== -1) {\n _Q = value;\n } else {\n throw new Error(\n 'Invalid value \"' + value + '\" for attribute Q supplied.'\n );\n }\n }\n });\n\n /**\n * (Optional; inheritable) A code specifying the form of quadding (justification) that shall be used in displaying the text:\n * 'left', 'center', 'right'\n *\n * @name AcroFormField#textAlign\n * @default 'left'\n * @type {string}\n */\n Object.defineProperty(this, \"textAlign\", {\n get: function() {\n var result;\n switch (_Q) {\n case 0:\n default:\n result = \"left\";\n break;\n case 1:\n result = \"center\";\n break;\n case 2:\n result = \"right\";\n break;\n }\n return result;\n },\n configurable: true,\n enumerable: true,\n set: function(value) {\n switch (value) {\n case \"right\":\n case 2:\n _Q = 2;\n break;\n case \"center\":\n case 1:\n _Q = 1;\n break;\n case \"left\":\n case 0:\n default:\n _Q = 0;\n }\n }\n });\n};\n\ninherit(AcroFormField, AcroFormPDFObject);\n\n/**\n * @class AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormChoiceField = function() {\n AcroFormField.call(this);\n // Field Type = Choice Field\n this.FT = \"/Ch\";\n // options\n this.V = \"()\";\n\n this.fontName = \"zapfdingbats\";\n // Top Index\n var _TI = 0;\n\n Object.defineProperty(this, \"TI\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n /**\n * (Optional) For scrollable list boxes, the top index (the index in the Opt array of the first option visible in the list). Default value: 0.\n *\n * @name AcroFormChoiceField#topIndex\n * @default 0\n * @type {number}\n */\n Object.defineProperty(this, \"topIndex\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _TI;\n },\n set: function(value) {\n _TI = value;\n }\n });\n\n var _Opt = [];\n Object.defineProperty(this, \"Opt\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return arrayToPdfArray(_Opt, this.objId, this.scope);\n },\n set: function(value) {\n _Opt = pdfArrayToStringArray(value);\n }\n });\n\n /**\n * @memberof AcroFormChoiceField\n * @name getOptions\n * @function\n * @instance\n * @returns {array} array of Options\n */\n this.getOptions = function() {\n return _Opt;\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name setOptions\n * @function\n * @instance\n * @param {array} value\n */\n this.setOptions = function(value) {\n _Opt = value;\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name addOption\n * @function\n * @instance\n * @param {string} value\n */\n this.addOption = function(value) {\n value = value || \"\";\n value = value.toString();\n _Opt.push(value);\n if (this.sort) {\n _Opt.sort();\n }\n };\n\n /**\n * @memberof AcroFormChoiceField\n * @name removeOption\n * @function\n * @instance\n * @param {string} value\n * @param {boolean} allEntries (default: false)\n */\n this.removeOption = function(value, allEntries) {\n allEntries = allEntries || false;\n value = value || \"\";\n value = value.toString();\n\n while (_Opt.indexOf(value) !== -1) {\n _Opt.splice(_Opt.indexOf(value), 1);\n if (allEntries === false) {\n break;\n }\n }\n };\n\n /**\n * If set, the field is a combo box; if clear, the field is a list box.\n *\n * @name AcroFormChoiceField#combo\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"combo\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 18));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 18);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 18);\n }\n }\n });\n\n /**\n * If set, the combo box shall include an editable text box as well as a drop-down list; if clear, it shall include only a drop-down list. This flag shall be used only if the Combo flag is set.\n *\n * @name AcroFormChoiceField#edit\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"edit\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 19));\n },\n set: function(value) {\n //PDF 32000-1:2008, page 444\n if (this.combo === true) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 19);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 19);\n }\n }\n }\n });\n\n /**\n * If set, the field’s option items shall be sorted alphabetically. This flag is intended for use by writers, not by readers. Conforming readers shall display the options in the order in which they occur in the Opt array (see Table 231).\n *\n * @name AcroFormChoiceField#sort\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"sort\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 20));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 20);\n _Opt.sort();\n } else {\n this.Ff = clearBitForPdf(this.Ff, 20);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, more than one of the field’s option items may be selected simultaneously; if clear, at most one item shall be selected\n *\n * @name AcroFormChoiceField#multiSelect\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 22));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 22);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 22);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spellchecked. This flag shall not be used unless the Combo and Edit flags are both set.\n *\n * @name AcroFormChoiceField#doNotSpellCheck\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the new value shall be committed as soon as a selection is made (commonly with the pointing device). In this case, supplying a value for a field involves three actions: selecting the field for fill-in, selecting a choice for the fill-in value, and leaving that field, which finalizes or “commits” the data choice and triggers any actions associated with the entry or changing of this data. If this flag is on, then processing does not wait for leaving the field action to occur, but immediately proceeds to the third step.\n * This option enables applications to perform an action once a selection is made, without requiring the user to exit the field. If clear, the new value is not committed until the user exits the field.\n *\n * @name AcroFormChoiceField#commitOnSelChange\n * @default false\n * @type {boolean}\n */\n Object.defineProperty(this, \"commitOnSelChange\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 27));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 27);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 27);\n }\n }\n });\n\n this.hasAppearanceStream = false;\n};\ninherit(AcroFormChoiceField, AcroFormField);\n\n/**\n * @class AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormListBox = function() {\n AcroFormChoiceField.call(this);\n this.fontName = \"helvetica\";\n\n //PDF 32000-1:2008, page 444\n this.combo = false;\n};\ninherit(AcroFormListBox, AcroFormChoiceField);\n\n/**\n * @class AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormComboBox = function() {\n AcroFormListBox.call(this);\n this.combo = true;\n};\ninherit(AcroFormComboBox, AcroFormListBox);\n\n/**\n * @class AcroFormEditBox\n * @extends AcroFormComboBox\n * @extends AcroFormListBox\n * @extends AcroFormChoiceField\n * @extends AcroFormField\n */\nvar AcroFormEditBox = function() {\n AcroFormComboBox.call(this);\n this.edit = true;\n};\ninherit(AcroFormEditBox, AcroFormComboBox);\n\n/**\n * @class AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormButton = function() {\n AcroFormField.call(this);\n this.FT = \"/Btn\";\n\n /**\n * (Radio buttons only) If set, exactly one radio button shall be selected at all times; selecting the currently selected button has no effect. If clear, clicking the selected button deselects it, leaving no button selected.\n *\n * @name AcroFormButton#noToggleToOff\n * @type {boolean}\n */\n Object.defineProperty(this, \"noToggleToOff\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 15));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 15);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 15);\n }\n }\n });\n\n /**\n * If set, the field is a set of radio buttons; if clear, the field is a checkbox. This flag may be set only if the Pushbutton flag is clear.\n *\n * @name AcroFormButton#radio\n * @type {boolean}\n */\n Object.defineProperty(this, \"radio\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 16));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 16);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 16);\n }\n }\n });\n\n /**\n * If set, the field is a pushbutton that does not retain a permanent value.\n *\n * @name AcroFormButton#pushButton\n * @type {boolean}\n */\n Object.defineProperty(this, \"pushButton\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 17));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 17);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 17);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unison; that is if one is checked, they are all checked. If clear, the buttons are mutually exclusive (the same behavior as HTML radio buttons).\n *\n * @name AcroFormButton#radioIsUnison\n * @type {boolean}\n */\n Object.defineProperty(this, \"radioIsUnison\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n if (Object.keys(_MK).length !== 0) {\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n }\n return undefined;\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n};\ninherit(AcroFormButton, AcroFormField);\n\n/**\n * @class AcroFormPushButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormPushButton = function() {\n AcroFormButton.call(this);\n this.pushButton = true;\n};\ninherit(AcroFormPushButton, AcroFormButton);\n\n/**\n * @class AcroFormRadioButton\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormRadioButton = function() {\n AcroFormButton.call(this);\n this.radio = true;\n this.pushButton = false;\n\n var _Kids = [];\n Object.defineProperty(this, \"Kids\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _Kids;\n },\n set: function(value) {\n if (typeof value !== \"undefined\") {\n _Kids = value;\n } else {\n _Kids = [];\n }\n }\n });\n};\ninherit(AcroFormRadioButton, AcroFormButton);\n\n/**\n * The Child class of a RadioButton (the radioGroup) -> The single Buttons\n *\n * @class AcroFormChildClass\n * @extends AcroFormField\n * @ignore\n */\nvar AcroFormChildClass = function() {\n AcroFormField.call(this);\n\n var _parent;\n Object.defineProperty(this, \"Parent\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _parent;\n },\n set: function(value) {\n _parent = value;\n }\n });\n\n var _optionName;\n Object.defineProperty(this, \"optionName\", {\n enumerable: false,\n configurable: true,\n get: function() {\n return _optionName;\n },\n set: function(value) {\n _optionName = value;\n }\n });\n\n var _MK = {};\n Object.defineProperty(this, \"MK\", {\n enumerable: false,\n configurable: false,\n get: function() {\n var encryptor = function(data) {\n return data;\n };\n if (this.scope) encryptor = this.scope.internal.getEncryptor(this.objId);\n var result = [];\n result.push(\"<<\");\n var key;\n for (key in _MK) {\n result.push(\"/\" + key + \" (\" + pdfEscape(encryptor(_MK[key])) + \")\");\n }\n result.push(\">>\");\n return result.join(\"\\n\");\n },\n set: function(value) {\n if (typeof value === \"object\") {\n _MK = value;\n }\n }\n });\n\n /**\n * From the PDF reference:\n * (Optional, button fields only) The widget annotation's normal caption which shall be displayed when it is not interacting with the user.\n * Unlike the remaining entries listed in this Table which apply only to widget annotations associated with pushbutton fields (see Pushbuttons in 12.7.4.2, \"Button Fields\"), the CA entry may be used with any type of button field, including check boxes (see Check Boxes in 12.7.4.2, \"Button Fields\") and radio buttons (Radio Buttons in 12.7.4.2, \"Button Fields\").\n *\n * - '8' = Cross,\n * - 'l' = Circle,\n * - '' = nothing\n * @name AcroFormButton#caption\n * @type {string}\n */\n Object.defineProperty(this, \"caption\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MK.CA || \"\";\n },\n set: function(value) {\n if (typeof value === \"string\") {\n _MK.CA = value;\n }\n }\n });\n\n var _AS;\n Object.defineProperty(this, \"AS\", {\n enumerable: false,\n configurable: false,\n get: function() {\n return _AS;\n },\n set: function(value) {\n _AS = value;\n }\n });\n\n /**\n * (Required if the appearance dictionary AP contains one or more subdictionaries; PDF 1.2) The annotation's appearance state, which selects the applicable appearance stream from an appearance subdictionary (see Section 12.5.5, \"Appearance Streams\")\n *\n * @name AcroFormButton#appearanceState\n * @type {any}\n */\n Object.defineProperty(this, \"appearanceState\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _AS.substr(1, _AS.length - 1);\n },\n set: function(value) {\n _AS = \"/\" + value;\n }\n });\n this.caption = \"l\";\n this.appearanceState = \"Off\";\n // todo: set AppearanceType as variable that can be set from the\n // outside...\n this._AppearanceType = AcroFormAppearance.RadioButton.Circle;\n // The Default appearanceType is the Circle\n this.appearanceStreamContent = this._AppearanceType.createAppearanceStream(\n this.optionName\n );\n};\ninherit(AcroFormChildClass, AcroFormField);\n\nAcroFormRadioButton.prototype.setAppearance = function(appearance) {\n if (!(\"createAppearanceStream\" in appearance && \"getCA\" in appearance)) {\n throw new Error(\n \"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\"\n );\n }\n for (var objId in this.Kids) {\n if (this.Kids.hasOwnProperty(objId)) {\n var child = this.Kids[objId];\n child.appearanceStreamContent = appearance.createAppearanceStream(\n child.optionName\n );\n child.caption = appearance.getCA();\n }\n }\n};\n\nAcroFormRadioButton.prototype.createOption = function(name) {\n // Create new Child for RadioGroup\n var child = new AcroFormChildClass();\n child.Parent = this;\n child.optionName = name;\n // Add to Parent\n this.Kids.push(child);\n\n addField.call(this.scope, child);\n\n return child;\n};\n\n/**\n * @class AcroFormCheckBox\n * @extends AcroFormButton\n * @extends AcroFormField\n */\nvar AcroFormCheckBox = function() {\n AcroFormButton.call(this);\n\n this.fontName = \"zapfdingbats\";\n this.caption = \"3\";\n this.appearanceState = \"On\";\n this.value = \"On\";\n this.textAlign = \"center\";\n this.appearanceStreamContent = AcroFormAppearance.CheckBox.createAppearanceStream();\n};\ninherit(AcroFormCheckBox, AcroFormButton);\n\n/**\n * @class AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormTextField = function() {\n AcroFormField.call(this);\n this.FT = \"/Tx\";\n\n /**\n * If set, the field may contain multiple lines of text; if clear, the field’s text shall be restricted to a single line.\n *\n * @name AcroFormTextField#multiline\n * @type {boolean}\n */\n Object.defineProperty(this, \"multiline\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 13));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 13);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 13);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the text entered in the field represents the pathname of a file whose contents shall be submitted as the value of the field.\n *\n * @name AcroFormTextField#fileSelect\n * @type {boolean}\n */\n Object.defineProperty(this, \"fileSelect\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 21));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 21);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 21);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, text entered in the field shall not be spell-checked.\n *\n * @name AcroFormTextField#doNotSpellCheck\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotSpellCheck\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 23));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 23);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 23);\n }\n }\n });\n\n /**\n * (PDF 1.4) If set, the field shall not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than fits within its annotation rectangle. Once the field is full, no further text shall be accepted for interactive form filling; for noninteractive form filling, the filler should take care not to add more character than will visibly fit in the defined area.\n *\n * @name AcroFormTextField#doNotScroll\n * @type {boolean}\n */\n Object.defineProperty(this, \"doNotScroll\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 24));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 24);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 24);\n }\n }\n });\n\n /**\n * (PDF 1.5) May be set only if the MaxLen entry is present in the text field dictionary (see Table 229) and if the Multiline, Password, and FileSelect flags are clear. If set, the field shall be automatically divided into as many equally spaced positions, or combs, as the value of MaxLen, and the text is laid out into those combs.\n *\n * @name AcroFormTextField#comb\n * @type {boolean}\n */\n Object.defineProperty(this, \"comb\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 25));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 25);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 25);\n }\n }\n });\n\n /**\n * (PDF 1.5) If set, the value of this field shall be a rich text string (see 12.7.3.4, “Rich Text Strings”). If the field has a value, the RV entry of the field dictionary (Table 222) shall specify the rich text string.\n *\n * @name AcroFormTextField#richText\n * @type {boolean}\n */\n Object.defineProperty(this, \"richText\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 26));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 26);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 26);\n }\n }\n });\n\n var _MaxLen = null;\n Object.defineProperty(this, \"MaxLen\", {\n enumerable: true,\n configurable: false,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n _MaxLen = value;\n }\n });\n\n /**\n * (Optional; inheritable) The maximum length of the field’s text, in characters.\n *\n * @name AcroFormTextField#maxLength\n * @type {number}\n */\n Object.defineProperty(this, \"maxLength\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return _MaxLen;\n },\n set: function(value) {\n if (Number.isInteger(value)) {\n _MaxLen = value;\n }\n }\n });\n\n Object.defineProperty(this, \"hasAppearanceStream\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return this.V || this.DV;\n }\n });\n};\ninherit(AcroFormTextField, AcroFormField);\n\n/**\n * @class AcroFormPasswordField\n * @extends AcroFormTextField\n * @extends AcroFormField\n */\nvar AcroFormPasswordField = function() {\n AcroFormTextField.call(this);\n\n /**\n * If set, the field is intended for entering a secure password that should not be echoed visibly to the screen. Characters typed from the keyboard shall instead be echoed in some unreadable form, such as asterisks or bullet characters.\n * NOTE To protect password confidentiality, readers should never store the value of the text field in the PDF file if this flag is set.\n *\n * @name AcroFormTextField#password\n * @type {boolean}\n */\n Object.defineProperty(this, \"password\", {\n enumerable: true,\n configurable: true,\n get: function() {\n return Boolean(getBitForPdf(this.Ff, 14));\n },\n set: function(value) {\n if (Boolean(value) === true) {\n this.Ff = setBitForPdf(this.Ff, 14);\n } else {\n this.Ff = clearBitForPdf(this.Ff, 14);\n }\n }\n });\n this.password = true;\n};\ninherit(AcroFormPasswordField, AcroFormTextField);\n\n// Contains Methods for creating standard appearances\nvar AcroFormAppearance = {\n CheckBox: {\n createAppearanceStream: function() {\n var appearance = {\n N: {\n On: AcroFormAppearance.CheckBox.YesNormal\n },\n D: {\n On: AcroFormAppearance.CheckBox.YesPushDown,\n Off: AcroFormAppearance.CheckBox.OffPushDown\n }\n };\n\n return appearance;\n },\n /**\n * Returns the standard On Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"BMC\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(\"BT\");\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n stream.push(\"EMC\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var stream = [];\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var calcRes = calculateX(formObject, formObject.caption);\n stream.push(\"1 g\");\n stream.push(\"0 0 \" + f2(width) + \" \" + f2(height) + \" re\");\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\"0 0 1 rg\");\n stream.push(\"0 0 \" + f2(width - 1) + \" \" + f2(height - 1) + \" re\");\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(\"0 g\");\n stream.push(\"BT\");\n stream.push(\n \"/\" + fontKey + \" \" + f2(calcRes.fontSize) + \" Tf \" + encodedColor\n );\n stream.push(calcRes.text);\n stream.push(\"ET\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n\n /**\n * Returns the standard Off Appearance for a CheckBox\n *\n * @returns {AcroFormXObject}\n */\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n RadioButton: {\n Circle: {\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Circle.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Circle.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Circle.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"l\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n // Make the Radius of the Circle relative to min(height, width) of formObject\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n var c = AcroFormAppearance.internal.Bezier_C;\n var DotRadiusBezier = Number((DotRadius * c).toFixed(5));\n /*\n * The Following is a Circle created with Bezier-Curves.\n */\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n DotRadiusBezier +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadiusBezier +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n var dc = Number(\n (DotRadius * AcroFormAppearance.internal.Bezier_C).toFixed(5)\n );\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n stream.push(\"0 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(DotRadius + \" 0 m\");\n stream.push(\n \"\" +\n DotRadius +\n \" \" +\n dc +\n \" \" +\n dc +\n \" \" +\n DotRadius +\n \" 0 \" +\n DotRadius +\n \" c\"\n );\n stream.push(\n \"-\" +\n dc +\n \" \" +\n DotRadius +\n \" -\" +\n DotRadius +\n \" \" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\n \"-\" +\n DotRadius +\n \" -\" +\n dc +\n \" -\" +\n dc +\n \" -\" +\n DotRadius +\n \" 0 -\" +\n DotRadius +\n \" c\"\n );\n stream.push(\n dc +\n \" -\" +\n DotRadius +\n \" \" +\n DotRadius +\n \" -\" +\n dc +\n \" \" +\n DotRadius +\n \" 0 c\"\n );\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var DotRadius =\n AcroFormAppearance.internal.getWidth(formObject) <=\n AcroFormAppearance.internal.getHeight(formObject)\n ? AcroFormAppearance.internal.getWidth(formObject) / 4\n : AcroFormAppearance.internal.getHeight(formObject) / 4;\n // The Borderpadding...\n DotRadius = Number((DotRadius * 0.9).toFixed(5));\n // Save results for later use; no need to waste\n // processor ticks on doing math\n var k = Number((DotRadius * 2).toFixed(5));\n var kc = Number((k * AcroFormAppearance.internal.Bezier_C).toFixed(5));\n\n stream.push(\"0.749023 g\");\n stream.push(\"q\");\n stream.push(\n \"1 0 0 1 \" +\n f5(AcroFormAppearance.internal.getWidth(formObject) / 2) +\n \" \" +\n f5(AcroFormAppearance.internal.getHeight(formObject) / 2) +\n \" cm\"\n );\n stream.push(k + \" 0 m\");\n stream.push(k + \" \" + kc + \" \" + kc + \" \" + k + \" 0 \" + k + \" c\");\n stream.push(\n \"-\" + kc + \" \" + k + \" -\" + k + \" \" + kc + \" -\" + k + \" 0 c\"\n );\n stream.push(\n \"-\" + k + \" -\" + kc + \" -\" + kc + \" -\" + k + \" 0 -\" + k + \" c\"\n );\n stream.push(kc + \" -\" + k + \" \" + k + \" -\" + kc + \" \" + k + \" 0 c\");\n stream.push(\"f\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n },\n\n Cross: {\n /**\n * Creates the Actual AppearanceDictionary-References\n *\n * @param {string} name\n * @returns {Object}\n * @ignore\n */\n createAppearanceStream: function(name) {\n var appearanceStreamContent = {\n D: {\n Off: AcroFormAppearance.RadioButton.Cross.OffPushDown\n },\n N: {}\n };\n appearanceStreamContent.N[name] =\n AcroFormAppearance.RadioButton.Cross.YesNormal;\n appearanceStreamContent.D[name] =\n AcroFormAppearance.RadioButton.Cross.YesPushDown;\n return appearanceStreamContent;\n },\n getCA: function() {\n return \"8\";\n },\n\n YesNormal: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n YesPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var cross = AcroFormAppearance.internal.calculateCross(formObject);\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n stream.push(\"q\");\n stream.push(\n \"1 1 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject) - 2) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject) - 2) +\n \" re\"\n );\n stream.push(\"W\");\n stream.push(\"n\");\n stream.push(f2(cross.x1.x) + \" \" + f2(cross.x1.y) + \" m\");\n stream.push(f2(cross.x2.x) + \" \" + f2(cross.x2.y) + \" l\");\n stream.push(f2(cross.x4.x) + \" \" + f2(cross.x4.y) + \" m\");\n stream.push(f2(cross.x3.x) + \" \" + f2(cross.x3.y) + \" l\");\n stream.push(\"s\");\n stream.push(\"Q\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n },\n OffPushDown: function(formObject) {\n var xobj = createFormXObject(formObject);\n xobj.scope = formObject.scope;\n var stream = [];\n stream.push(\"0.749023 g\");\n stream.push(\n \"0 0 \" +\n f2(AcroFormAppearance.internal.getWidth(formObject)) +\n \" \" +\n f2(AcroFormAppearance.internal.getHeight(formObject)) +\n \" re\"\n );\n stream.push(\"f\");\n xobj.stream = stream.join(\"\\n\");\n return xobj;\n }\n }\n },\n\n /**\n * Returns the standard Appearance\n *\n * @returns {AcroFormXObject}\n */\n createDefaultAppearanceStream: function(formObject) {\n // Set Helvetica to Standard Font (size: auto)\n // Color: Black\n var fontKey = formObject.scope.internal.getFont(\n formObject.fontName,\n formObject.fontStyle\n ).id;\n var encodedColor = formObject.scope.__private__.encodeColorString(\n formObject.color\n );\n var fontSize = formObject.fontSize;\n var result = \"/\" + fontKey + \" \" + fontSize + \" Tf \" + encodedColor;\n return result;\n }\n};\n\nAcroFormAppearance.internal = {\n Bezier_C: 0.551915024494,\n\n calculateCross: function(formObject) {\n var width = AcroFormAppearance.internal.getWidth(formObject);\n var height = AcroFormAppearance.internal.getHeight(formObject);\n var a = Math.min(width, height);\n\n var cross = {\n x1: {\n // upperLeft\n x: (width - a) / 2,\n y: (height - a) / 2 + a // height - borderPadding\n },\n x2: {\n // lowerRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 // borderPadding\n },\n x3: {\n // lowerLeft\n x: (width - a) / 2,\n y: (height - a) / 2 // borderPadding\n },\n x4: {\n // upperRight\n x: (width - a) / 2 + a,\n y: (height - a) / 2 + a // height - borderPadding\n }\n };\n\n return cross;\n }\n};\nAcroFormAppearance.internal.getWidth = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[2]);\n }\n return result;\n};\nAcroFormAppearance.internal.getHeight = function(formObject) {\n var result = 0;\n if (typeof formObject === \"object\") {\n result = scale(formObject.Rect[3]);\n }\n return result;\n};\n\n// Public:\n\n/**\n * Add an AcroForm-Field to the jsPDF-instance\n *\n * @name addField\n * @function\n * @instance\n * @param {Object} fieldObject\n * @returns {jsPDF}\n */\nvar addField = (jsPDFAPI.addField = function(fieldObject) {\n initializeAcroForm(this, fieldObject);\n\n if (fieldObject instanceof AcroFormField) {\n putForm(fieldObject);\n } else {\n throw new Error(\"Invalid argument passed to jsPDF.addField.\");\n }\n fieldObject.page = fieldObject.scope.internal.getCurrentPageInfo().pageNumber;\n return this;\n});\n\njsPDFAPI.AcroFormChoiceField = AcroFormChoiceField;\njsPDFAPI.AcroFormListBox = AcroFormListBox;\njsPDFAPI.AcroFormComboBox = AcroFormComboBox;\njsPDFAPI.AcroFormEditBox = AcroFormEditBox;\njsPDFAPI.AcroFormButton = AcroFormButton;\njsPDFAPI.AcroFormPushButton = AcroFormPushButton;\njsPDFAPI.AcroFormRadioButton = AcroFormRadioButton;\njsPDFAPI.AcroFormCheckBox = AcroFormCheckBox;\njsPDFAPI.AcroFormTextField = AcroFormTextField;\njsPDFAPI.AcroFormPasswordField = AcroFormPasswordField;\njsPDFAPI.AcroFormAppearance = AcroFormAppearance;\n\njsPDFAPI.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\njsPDF.AcroForm = {\n ChoiceField: AcroFormChoiceField,\n ListBox: AcroFormListBox,\n ComboBox: AcroFormComboBox,\n EditBox: AcroFormEditBox,\n Button: AcroFormButton,\n PushButton: AcroFormPushButton,\n RadioButton: AcroFormRadioButton,\n CheckBox: AcroFormCheckBox,\n TextField: AcroFormTextField,\n PasswordField: AcroFormPasswordField,\n Appearance: AcroFormAppearance\n};\n\nvar AcroForm = jsPDF.AcroForm;\n\nexport {\n AcroForm,\n AcroFormChoiceField,\n AcroFormListBox,\n AcroFormComboBox,\n AcroFormEditBox,\n AcroFormButton,\n AcroFormPushButton,\n AcroFormRadioButton,\n AcroFormCheckBox,\n AcroFormTextField,\n AcroFormPasswordField,\n AcroFormAppearance\n};\n","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

    \n * \tThe destination magnification factor can also be specified when goto is a page number or a named destination. (see documentation below)\n * (set magFactor in options). XYZ is the default.\n *

    \n *

    \n * Links, Text, Popup, and FreeText are supported.\n *

    \n *

    \n * Options In PDF spec Not Implemented Yet\n *

  • link border\n *
  • named target\n *
  • page coordinates\n *
  • destination page scaling and layout\n *
  • actions other than URL and GotoPage\n *
  • background / hover actions\n *

    \n * @name annotations\n * @module\n */\n\n/*\n Destination Magnification Factors\n See PDF 1.3 Page 386 for meanings and options\n\n [supported]\n\tXYZ (options; left top zoom)\n\tFit (no options)\n\tFitH (options: top)\n\tFitV (options: left)\n\n\t[not supported]\n\tFitR\n\tFitB\n\tFitBH\n\tFitBV\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var notEmpty = function(obj) {\n if (typeof obj != \"undefined\") {\n if (obj != \"\") {\n return true;\n }\n }\n };\n\n jsPDF.API.events.push([\n \"addPage\",\n function(addPageData) {\n var pageInfo = this.internal.getPageInfo(addPageData.pageNumber);\n pageInfo.pageContext.annotations = [];\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putPage\",\n function(putPageData) {\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal\n .getVerticalCoordinateString;\n var pageInfo = this.internal.getPageInfoByObjId(putPageData.objId);\n var pageAnnos = putPageData.pageContext.annotations;\n\n var anno, rect, line;\n var found = false;\n for (var a = 0; a < pageAnnos.length && !found; a++) {\n anno = pageAnnos[a];\n switch (anno.type) {\n case \"link\":\n if (\n notEmpty(anno.options.url) ||\n notEmpty(anno.options.pageNumber)\n ) {\n found = true;\n }\n break;\n case \"reference\":\n case \"text\":\n case \"freetext\":\n found = true;\n break;\n }\n }\n if (found == false) {\n return;\n }\n\n this.internal.write(\"/Annots [\");\n for (var i = 0; i < pageAnnos.length; i++) {\n anno = pageAnnos[i];\n var escape = this.internal.pdfEscape;\n var encryptor = this.internal.getEncryptor(putPageData.objId);\n\n switch (anno.type) {\n case \"reference\":\n // References to Widget Annotations (for AcroForm Fields)\n this.internal.write(\" \" + anno.object.objId + \" 0 R \");\n break;\n case \"text\":\n // Create a an object for both the text and the popup\n var objText = this.internal.newAdditionalObject();\n var objPopup = this.internal.newAdditionalObject();\n var encryptorText = this.internal.getEncryptor(objText.objId);\n\n var title = anno.title || \"Note\";\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n\n line =\n \"<>\";\n objText.content = line;\n\n var parent = objText.objId + \" 0 R\";\n var popoff = 30;\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x + popoff) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \" \" +\n getHorizontalCoordinateString(\n anno.bounds.x + anno.bounds.w + popoff\n ) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \"] \";\n line =\n \"<>\";\n objPopup.content = line;\n\n this.internal.write(objText.objId, \"0 R\", objPopup.objId, \"0 R\");\n\n break;\n case \"freetext\":\n rect =\n \"/Rect [\" +\n getHorizontalCoordinateString(anno.bounds.x) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y) +\n \" \" +\n getHorizontalCoordinateString(anno.bounds.x + anno.bounds.w) +\n \" \" +\n getVerticalCoordinateString(anno.bounds.y + anno.bounds.h) +\n \"] \";\n var color = anno.color || \"#000000\";\n line =\n \"<>\";\n this.internal.write(line);\n break;\n case \"link\":\n if (anno.options.name) {\n var loc = this.annotations._nameMap[anno.options.name];\n anno.options.pageNumber = loc.page;\n anno.options.top = loc.y;\n } else {\n if (!anno.options.top) {\n anno.options.top = 0;\n }\n }\n\n rect =\n \"/Rect [\" +\n anno.finalBounds.x +\n \" \" +\n anno.finalBounds.y +\n \" \" +\n anno.finalBounds.w +\n \" \" +\n anno.finalBounds.h +\n \"] \";\n\n line = \"\";\n if (anno.options.url) {\n line =\n \"<>\";\n } else if (anno.options.pageNumber) {\n // first page is 0\n var info = this.internal.getPageInfo(anno.options.pageNumber);\n line =\n \"<>\";\n this.internal.write(line);\n }\n break;\n }\n }\n this.internal.write(\"]\");\n }\n ]);\n\n /**\n * @name createAnnotation\n * @function\n * @param {Object} options\n */\n jsPDFAPI.createAnnotation = function(options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n switch (options.type) {\n case \"link\":\n this.link(\n options.bounds.x,\n options.bounds.y,\n options.bounds.w,\n options.bounds.h,\n options\n );\n break;\n case \"text\":\n case \"freetext\":\n pageInfo.pageContext.annotations.push(options);\n break;\n }\n };\n\n /**\n * Create a link\n *\n * valid options\n *
  • pageNumber or url [required]\n *

    If pageNumber is specified, top and zoom may also be specified

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name fileloading\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name loadFile\n * @function\n * @param {string} url\n * @param {boolean} sync\n * @param {function} callback\n * @returns {string|undefined} result\n */\n jsPDFAPI.loadFile = function(url, sync, callback) {\n return browserRequest(url, sync, callback);\n\n };\n\n /**\n * @name loadImageFile\n * @function\n * @param {string} path\n * @param {boolean} sync\n * @param {function} callback\n */\n jsPDFAPI.loadImageFile = jsPDFAPI.loadFile;\n\n function browserRequest(url, sync, callback) {\n sync = sync === false ? false : true;\n callback = typeof callback === \"function\" ? callback : function() {};\n var result = undefined;\n\n var xhr = function(url, sync, callback) {\n var request = new XMLHttpRequest();\n var i = 0;\n\n var sanitizeUnicode = function(data) {\n var dataLength = data.length;\n var charArray = [];\n var StringFromCharCode = String.fromCharCode;\n\n //Transform Unicode to ASCII\n for (i = 0; i < dataLength; i += 1) {\n charArray.push(StringFromCharCode(data.charCodeAt(i) & 0xff));\n }\n return charArray.join(\"\");\n };\n\n request.open(\"GET\", url, !sync);\n // XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]\n request.overrideMimeType(\"text/plain; charset=x-user-defined\");\n\n if (sync === false) {\n request.onload = function() {\n if (request.status === 200) {\n callback(sanitizeUnicode(this.responseText));\n } else {\n callback(undefined);\n }\n };\n }\n request.send(null);\n\n if (sync && request.status === 200) {\n return sanitizeUnicode(request.responseText);\n }\n };\n try {\n result = xhr(url, sync, callback);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n return result;\n }\n\n function nodeReadFile(url, sync, callback) {\n sync = sync === false ? false : true;\n var result = undefined;\n\n var fs = require(\"fs\");\n var path = require(\"path\");\n\n url = path.resolve(url);\n if (sync) {\n try {\n result = fs.readFileSync(url, { encoding: \"latin1\" });\n } catch (e) {\n return undefined;\n }\n } else {\n fs.readFile(url, { encoding: \"latin1\" }, function(err, data) {\n if (!callback) {\n return;\n }\n if (err) {\n callback(undefined);\n }\n callback(data);\n });\n }\n\n return result;\n }\n})(jsPDF.API);\n","/* eslint-disable no-fallthrough */\r\n/* eslint-disable no-console */\r\n/**\r\n * @license\r\n * jsPDF Context2D PlugIn Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\r\n *\r\n * Licensed under the MIT License. http://opensource.org/licenses/mit-license\r\n */\r\n\r\nimport { jsPDF } from \"../jspdf.js\";\r\nimport { RGBColor } from \"../libs/rgbcolor.js\";\r\nimport { console } from \"../libs/console.js\";\r\nimport {\r\n buildFontFaceMap,\r\n parseFontFamily,\r\n resolveFontFace\r\n} from \"../libs/fontFace.js\";\r\n\r\n/**\r\n * This plugin mimics the HTML5 CanvasRenderingContext2D.\r\n *\r\n * The goal is to provide a way for current canvas implementations to print directly to a PDF.\r\n *\r\n * @name context2d\r\n * @module\r\n */\r\n(function(jsPDFAPI) {\r\n \"use strict\";\r\n var ContextLayer = function(ctx) {\r\n ctx = ctx || {};\r\n this.isStrokeTransparent = ctx.isStrokeTransparent || false;\r\n this.strokeOpacity = ctx.strokeOpacity || 1;\r\n this.strokeStyle = ctx.strokeStyle || \"#000000\";\r\n this.fillStyle = ctx.fillStyle || \"#000000\";\r\n this.isFillTransparent = ctx.isFillTransparent || false;\r\n this.fillOpacity = ctx.fillOpacity || 1;\r\n this.font = ctx.font || \"10px sans-serif\";\r\n this.textBaseline = ctx.textBaseline || \"alphabetic\";\r\n this.textAlign = ctx.textAlign || \"left\";\r\n this.lineWidth = ctx.lineWidth || 1;\r\n this.lineJoin = ctx.lineJoin || \"miter\";\r\n this.lineCap = ctx.lineCap || \"butt\";\r\n this.path = ctx.path || [];\r\n this.transform =\r\n typeof ctx.transform !== \"undefined\"\r\n ? ctx.transform.clone()\r\n : new Matrix();\r\n this.globalCompositeOperation = ctx.globalCompositeOperation || \"normal\";\r\n this.globalAlpha = ctx.globalAlpha || 1.0;\r\n this.clip_path = ctx.clip_path || [];\r\n this.currentPoint = ctx.currentPoint || new Point();\r\n this.miterLimit = ctx.miterLimit || 10.0;\r\n this.lastPoint = ctx.lastPoint || new Point();\r\n this.lineDashOffset = ctx.lineDashOffset || 0.0;\r\n this.lineDash = ctx.lineDash || [];\r\n this.margin = ctx.margin || [0, 0, 0, 0];\r\n this.prevPageLastElemOffset = ctx.prevPageLastElemOffset || 0;\r\n\r\n this.ignoreClearRect =\r\n typeof ctx.ignoreClearRect === \"boolean\" ? ctx.ignoreClearRect : true;\r\n return this;\r\n };\r\n\r\n //stub\r\n var f2,\r\n getHorizontalCoordinateString,\r\n getVerticalCoordinateString,\r\n getHorizontalCoordinate,\r\n getVerticalCoordinate,\r\n Point,\r\n Rectangle,\r\n Matrix,\r\n _ctx;\r\n jsPDFAPI.events.push([\r\n \"initialized\",\r\n function() {\r\n this.context2d = new Context2D(this);\r\n\r\n f2 = this.internal.f2;\r\n getHorizontalCoordinateString = this.internal.getCoordinateString;\r\n getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\r\n getHorizontalCoordinate = this.internal.getHorizontalCoordinate;\r\n getVerticalCoordinate = this.internal.getVerticalCoordinate;\r\n Point = this.internal.Point;\r\n Rectangle = this.internal.Rectangle;\r\n Matrix = this.internal.Matrix;\r\n _ctx = new ContextLayer();\r\n }\r\n ]);\r\n\r\n var Context2D = function(pdf) {\r\n Object.defineProperty(this, \"canvas\", {\r\n get: function() {\r\n return { parentNode: false, style: false };\r\n }\r\n });\r\n\r\n var _pdf = pdf;\r\n Object.defineProperty(this, \"pdf\", {\r\n get: function() {\r\n return _pdf;\r\n }\r\n });\r\n\r\n var _pageWrapXEnabled = false;\r\n /**\r\n * @name pageWrapXEnabled\r\n * @type {boolean}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"pageWrapXEnabled\", {\r\n get: function() {\r\n return _pageWrapXEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapXEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _pageWrapYEnabled = false;\r\n /**\r\n * @name pageWrapYEnabled\r\n * @type {boolean}\r\n * @default true\r\n */\r\n Object.defineProperty(this, \"pageWrapYEnabled\", {\r\n get: function() {\r\n return _pageWrapYEnabled;\r\n },\r\n set: function(value) {\r\n _pageWrapYEnabled = Boolean(value);\r\n }\r\n });\r\n\r\n var _posX = 0;\r\n /**\r\n * @name posX\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posX\", {\r\n get: function() {\r\n return _posX;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posX = value;\r\n }\r\n }\r\n });\r\n\r\n var _posY = 0;\r\n /**\r\n * @name posY\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"posY\", {\r\n get: function() {\r\n return _posY;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n _posY = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Gets or sets the page margin when using auto paging. Has no effect when {@link autoPaging} is off.\r\n * @name margin\r\n * @type {number|number[]}\r\n * @default [0, 0, 0, 0]\r\n */\r\n Object.defineProperty(this, \"margin\", {\r\n get: function() {\r\n return _ctx.margin;\r\n },\r\n set: function(value) {\r\n var margin;\r\n if (typeof value === \"number\") {\r\n margin = [value, value, value, value];\r\n } else {\r\n margin = new Array(4);\r\n margin[0] = value[0];\r\n margin[1] = value.length >= 2 ? value[1] : margin[0];\r\n margin[2] = value.length >= 3 ? value[2] : margin[0];\r\n margin[3] = value.length >= 4 ? value[3] : margin[1];\r\n }\r\n _ctx.margin = margin;\r\n }\r\n });\r\n\r\n var _autoPaging = false;\r\n /**\r\n * Gets or sets the auto paging mode. When auto paging is enabled, the context2d will automatically draw on the\r\n * next page if a shape or text chunk doesn't fit entirely on the current page. The context2d will create new\r\n * pages if required.\r\n *\r\n * Context2d supports different modes:\r\n *
      \r\n *
    • \r\n * false: Auto paging is disabled.\r\n *
    • \r\n *
    • \r\n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\r\n * slice text in half, making it difficult to read.\r\n *
    • \r\n *
    • \r\n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\r\n * mostly of a single column of text.\r\n *
    • \r\n *
    \r\n * @name Context2D#autoPaging\r\n * @type {boolean|\"slice\"|\"text\"}\r\n * @default false\r\n */\r\n Object.defineProperty(this, \"autoPaging\", {\r\n get: function() {\r\n return _autoPaging;\r\n },\r\n set: function(value) {\r\n _autoPaging = value;\r\n }\r\n });\r\n\r\n var lastBreak = 0;\r\n /**\r\n * @name lastBreak\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"lastBreak\", {\r\n get: function() {\r\n return lastBreak;\r\n },\r\n set: function(value) {\r\n lastBreak = value;\r\n }\r\n });\r\n\r\n var pageBreaks = [];\r\n /**\r\n * Y Position of page breaks.\r\n * @name pageBreaks\r\n * @type {number}\r\n * @default 0\r\n */\r\n Object.defineProperty(this, \"pageBreaks\", {\r\n get: function() {\r\n return pageBreaks;\r\n },\r\n set: function(value) {\r\n pageBreaks = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctx\r\n * @type {object}\r\n * @default {}\r\n */\r\n Object.defineProperty(this, \"ctx\", {\r\n get: function() {\r\n return _ctx;\r\n },\r\n set: function(value) {\r\n if (value instanceof ContextLayer) {\r\n _ctx = value;\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * @name path\r\n * @type {array}\r\n * @default []\r\n */\r\n Object.defineProperty(this, \"path\", {\r\n get: function() {\r\n return _ctx.path;\r\n },\r\n set: function(value) {\r\n _ctx.path = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ctxStack\r\n * @type {array}\r\n * @default []\r\n */\r\n var _ctxStack = [];\r\n Object.defineProperty(this, \"ctxStack\", {\r\n get: function() {\r\n return _ctxStack;\r\n },\r\n set: function(value) {\r\n _ctxStack = value;\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used to fill the drawing\r\n *\r\n * @name fillStyle\r\n * @default #000000\r\n * @property {(color|gradient|pattern)} value The color of the drawing. Default value is #000000
    \r\n * A gradient object (linear or radial) used to fill the drawing (not supported by context2d)
    \r\n * A pattern object to use to fill the drawing (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"fillStyle\", {\r\n get: function() {\r\n return this.ctx.fillStyle;\r\n },\r\n set: function(value) {\r\n var rgba;\r\n rgba = getRGBA(value);\r\n\r\n this.ctx.fillStyle = rgba.style;\r\n this.ctx.isFillTransparent = rgba.a === 0;\r\n this.ctx.fillOpacity = rgba.a;\r\n\r\n this.pdf.setFillColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n this.pdf.setTextColor(rgba.r, rgba.g, rgba.b, { a: rgba.a });\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the color, gradient, or pattern used for strokes\r\n *\r\n * @name strokeStyle\r\n * @default #000000\r\n * @property {color} color A CSS color value that indicates the stroke color of the drawing. Default value is #000000 (not supported by context2d)\r\n * @property {gradient} gradient A gradient object (linear or radial) used to create a gradient stroke (not supported by context2d)\r\n * @property {pattern} pattern A pattern object used to create a pattern stroke (not supported by context2d)\r\n */\r\n Object.defineProperty(this, \"strokeStyle\", {\r\n get: function() {\r\n return this.ctx.strokeStyle;\r\n },\r\n set: function(value) {\r\n var rgba = getRGBA(value);\r\n\r\n this.ctx.strokeStyle = rgba.style;\r\n this.ctx.isStrokeTransparent = rgba.a === 0;\r\n this.ctx.strokeOpacity = rgba.a;\r\n\r\n if (rgba.a === 0) {\r\n this.pdf.setDrawColor(255, 255, 255);\r\n } else if (rgba.a === 1) {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n } else {\r\n this.pdf.setDrawColor(rgba.r, rgba.g, rgba.b);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the style of the end caps for a line\r\n *\r\n * @name lineCap\r\n * @default butt\r\n * @property {(butt|round|square)} lineCap butt A flat edge is added to each end of the line
    \r\n * round A rounded end cap is added to each end of the line
    \r\n * square A square end cap is added to each end of the line
    \r\n */\r\n Object.defineProperty(this, \"lineCap\", {\r\n get: function() {\r\n return this.ctx.lineCap;\r\n },\r\n set: function(value) {\r\n if ([\"butt\", \"round\", \"square\"].indexOf(value) !== -1) {\r\n this.ctx.lineCap = value;\r\n this.pdf.setLineCap(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the current line width\r\n *\r\n * @name lineWidth\r\n * @default 1\r\n * @property {number} lineWidth The current line width, in pixels\r\n */\r\n Object.defineProperty(this, \"lineWidth\", {\r\n get: function() {\r\n return this.ctx.lineWidth;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.lineWidth = value;\r\n this.pdf.setLineWidth(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Sets or returns the type of corner created, when two lines meet\r\n */\r\n Object.defineProperty(this, \"lineJoin\", {\r\n get: function() {\r\n return this.ctx.lineJoin;\r\n },\r\n set: function(value) {\r\n if ([\"bevel\", \"round\", \"miter\"].indexOf(value) !== -1) {\r\n this.ctx.lineJoin = value;\r\n this.pdf.setLineJoin(value);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * A number specifying the miter limit ratio in coordinate space units. Zero, negative, Infinity, and NaN values are ignored. The default value is 10.0.\r\n *\r\n * @name miterLimit\r\n * @default 10\r\n */\r\n Object.defineProperty(this, \"miterLimit\", {\r\n get: function() {\r\n return this.ctx.miterLimit;\r\n },\r\n set: function(value) {\r\n if (!isNaN(value)) {\r\n this.ctx.miterLimit = value;\r\n this.pdf.setMiterLimit(value);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textBaseline\", {\r\n get: function() {\r\n return this.ctx.textBaseline;\r\n },\r\n set: function(value) {\r\n this.ctx.textBaseline = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"textAlign\", {\r\n get: function() {\r\n return this.ctx.textAlign;\r\n },\r\n set: function(value) {\r\n if ([\"right\", \"end\", \"center\", \"left\", \"start\"].indexOf(value) !== -1) {\r\n this.ctx.textAlign = value;\r\n }\r\n }\r\n });\r\n\r\n var _fontFaceMap = null;\r\n\r\n function getFontFaceMap(pdf, fontFaces) {\r\n if (_fontFaceMap === null) {\r\n var fontMap = pdf.getFontList();\r\n\r\n var convertedFontFaces = convertToFontFaces(fontMap);\r\n\r\n _fontFaceMap = buildFontFaceMap(convertedFontFaces.concat(fontFaces));\r\n }\r\n\r\n return _fontFaceMap;\r\n }\r\n\r\n function convertToFontFaces(fontMap) {\r\n var fontFaces = [];\r\n\r\n Object.keys(fontMap).forEach(function(family) {\r\n var styles = fontMap[family];\r\n\r\n styles.forEach(function(style) {\r\n var fontFace = null;\r\n\r\n switch (style) {\r\n case \"bold\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\"\r\n };\r\n break;\r\n\r\n case \"italic\":\r\n fontFace = {\r\n family: family,\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"bolditalic\":\r\n fontFace = {\r\n family: family,\r\n weight: \"bold\",\r\n style: \"italic\"\r\n };\r\n break;\r\n\r\n case \"\":\r\n case \"normal\":\r\n fontFace = {\r\n family: family\r\n };\r\n break;\r\n }\r\n\r\n // If font-face is still null here, it is a font with some styling we don't recognize and\r\n // cannot map or it is a font added via the fontFaces option of .html().\r\n if (fontFace !== null) {\r\n fontFace.ref = {\r\n name: family,\r\n style: style\r\n };\r\n\r\n fontFaces.push(fontFace);\r\n }\r\n });\r\n });\r\n\r\n return fontFaces;\r\n }\r\n\r\n var _fontFaces = null;\r\n /**\r\n * A map of available font-faces, as passed in the options of\r\n * .html(). If set a limited implementation of the font style matching\r\n * algorithm defined by https://www.w3.org/TR/css-fonts-3/#font-matching-algorithm\r\n * will be used. If not set it will fallback to previous behavior.\r\n */\r\n\r\n Object.defineProperty(this, \"fontFaces\", {\r\n get: function() {\r\n return _fontFaces;\r\n },\r\n set: function(value) {\r\n _fontFaceMap = null;\r\n _fontFaces = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"font\", {\r\n get: function() {\r\n return this.ctx.font;\r\n },\r\n set: function(value) {\r\n this.ctx.font = value;\r\n var rx, matches;\r\n\r\n //source: https://stackoverflow.com/a/10136041\r\n // eslint-disable-next-line no-useless-escape\r\n rx = /^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i;\r\n matches = rx.exec(value);\r\n if (matches !== null) {\r\n var fontStyle = matches[1];\r\n var fontVariant = matches[2];\r\n var fontWeight = matches[3];\r\n var fontSize = matches[4];\r\n var lineHeight = matches[5];\r\n var fontFamily = matches[6];\r\n } else {\r\n return;\r\n }\r\n var rxFontSize = /^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i;\r\n var fontSizeUnit = rxFontSize.exec(fontSize)[2];\r\n\r\n if (\"px\" === fontSizeUnit) {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n } else if (\"em\" === fontSizeUnit) {\r\n fontSize = Math.floor(parseFloat(fontSize) * this.pdf.getFontSize());\r\n } else {\r\n fontSize = Math.floor(\r\n parseFloat(fontSize) * this.pdf.internal.scaleFactor\r\n );\r\n }\r\n\r\n this.pdf.setFontSize(fontSize);\r\n var parts = parseFontFamily(fontFamily);\r\n\r\n if (this.fontFaces) {\r\n var fontFaceMap = getFontFaceMap(this.pdf, this.fontFaces);\r\n\r\n var rules = parts.map(function(ff) {\r\n return {\r\n family: ff,\r\n stretch: \"normal\", // TODO: Extract font-stretch from font rule (perhaps write proper parser for it?)\r\n weight: fontWeight,\r\n style: fontStyle\r\n };\r\n });\r\n\r\n var font = resolveFontFace(fontFaceMap, rules);\r\n this.pdf.setFont(font.ref.name, font.ref.style);\r\n return;\r\n }\r\n\r\n var style = \"\";\r\n if (\r\n fontWeight === \"bold\" ||\r\n parseInt(fontWeight, 10) >= 700 ||\r\n fontStyle === \"bold\"\r\n ) {\r\n style = \"bold\";\r\n }\r\n\r\n if (fontStyle === \"italic\") {\r\n style += \"italic\";\r\n }\r\n\r\n if (style.length === 0) {\r\n style = \"normal\";\r\n }\r\n var jsPdfFontName = \"\";\r\n\r\n var fallbackFonts = {\r\n arial: \"Helvetica\",\r\n Arial: \"Helvetica\",\r\n verdana: \"Helvetica\",\r\n Verdana: \"Helvetica\",\r\n helvetica: \"Helvetica\",\r\n Helvetica: \"Helvetica\",\r\n \"sans-serif\": \"Helvetica\",\r\n fixed: \"Courier\",\r\n monospace: \"Courier\",\r\n terminal: \"Courier\",\r\n cursive: \"Times\",\r\n fantasy: \"Times\",\r\n serif: \"Times\"\r\n };\r\n\r\n for (var i = 0; i < parts.length; i++) {\r\n if (\r\n this.pdf.internal.getFont(parts[i], style, {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n break;\r\n } else if (\r\n style === \"bolditalic\" &&\r\n this.pdf.internal.getFont(parts[i], \"bold\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"bold\";\r\n } else if (\r\n this.pdf.internal.getFont(parts[i], \"normal\", {\r\n noFallback: true,\r\n disableWarning: true\r\n }) !== undefined\r\n ) {\r\n jsPdfFontName = parts[i];\r\n style = \"normal\";\r\n break;\r\n }\r\n }\r\n if (jsPdfFontName === \"\") {\r\n for (var j = 0; j < parts.length; j++) {\r\n if (fallbackFonts[parts[j]]) {\r\n jsPdfFontName = fallbackFonts[parts[j]];\r\n break;\r\n }\r\n }\r\n }\r\n jsPdfFontName = jsPdfFontName === \"\" ? \"Times\" : jsPdfFontName;\r\n this.pdf.setFont(jsPdfFontName, style);\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalCompositeOperation\", {\r\n get: function() {\r\n return this.ctx.globalCompositeOperation;\r\n },\r\n set: function(value) {\r\n this.ctx.globalCompositeOperation = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(this, \"globalAlpha\", {\r\n get: function() {\r\n return this.ctx.globalAlpha;\r\n },\r\n set: function(value) {\r\n this.ctx.globalAlpha = value;\r\n }\r\n });\r\n\r\n /**\r\n * A float specifying the amount of the line dash offset. The default value is 0.0.\r\n *\r\n * @name lineDashOffset\r\n * @default 0.0\r\n */\r\n Object.defineProperty(this, \"lineDashOffset\", {\r\n get: function() {\r\n return this.ctx.lineDashOffset;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDashOffset = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"lineDash\", {\r\n get: function() {\r\n return this.ctx.lineDash;\r\n },\r\n set: function(value) {\r\n this.ctx.lineDash = value;\r\n setLineDash.call(this);\r\n }\r\n });\r\n\r\n // Not HTML API\r\n Object.defineProperty(this, \"ignoreClearRect\", {\r\n get: function() {\r\n return this.ctx.ignoreClearRect;\r\n },\r\n set: function(value) {\r\n this.ctx.ignoreClearRect = Boolean(value);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Sets the line dash pattern used when stroking lines.\r\n * @name setLineDash\r\n * @function\r\n * @description It uses an array of values that specify alternating lengths of lines and gaps which describe the pattern.\r\n */\r\n Context2D.prototype.setLineDash = function(dashArray) {\r\n this.lineDash = dashArray;\r\n };\r\n\r\n /**\r\n * gets the current line dash pattern.\r\n * @name getLineDash\r\n * @function\r\n * @returns {Array} An Array of numbers that specify distances to alternately draw a line and a gap (in coordinate space units). If the number, when setting the elements, is odd, the elements of the array get copied and concatenated. For example, setting the line dash to [5, 15, 25] will result in getting back [5, 15, 25, 5, 15, 25].\r\n */\r\n Context2D.prototype.getLineDash = function() {\r\n if (this.lineDash.length % 2) {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getLineDash#return_value\r\n return this.lineDash.concat(this.lineDash);\r\n } else {\r\n // The copied value is returned to prevent contamination from outside.\r\n return this.lineDash.slice();\r\n }\r\n };\r\n\r\n Context2D.prototype.fill = function() {\r\n pathPreProcess.call(this, \"fill\", false);\r\n };\r\n\r\n /**\r\n * Actually draws the path you have defined\r\n *\r\n * @name stroke\r\n * @function\r\n * @description The stroke() method actually draws the path you have defined with all those moveTo() and lineTo() methods. The default color is black.\r\n */\r\n Context2D.prototype.stroke = function() {\r\n pathPreProcess.call(this, \"stroke\", false);\r\n };\r\n\r\n /**\r\n * Begins a path, or resets the current\r\n *\r\n * @name beginPath\r\n * @function\r\n * @description The beginPath() method begins a path, or resets the current path.\r\n */\r\n Context2D.prototype.beginPath = function() {\r\n this.path = [\r\n {\r\n type: \"begin\"\r\n }\r\n ];\r\n };\r\n\r\n /**\r\n * Moves the path to the specified point in the canvas, without creating a line\r\n *\r\n * @name moveTo\r\n * @function\r\n * @param x {Number} The x-coordinate of where to move the path to\r\n * @param y {Number} The y-coordinate of where to move the path to\r\n */\r\n Context2D.prototype.moveTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.moveTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"mt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(x, y);\r\n };\r\n\r\n /**\r\n * Creates a path from the current point back to the starting point\r\n *\r\n * @name closePath\r\n * @function\r\n * @description The closePath() method creates a path from the current point back to the starting point.\r\n */\r\n Context2D.prototype.closePath = function() {\r\n var pathBegin = new Point(0, 0);\r\n var i = 0;\r\n for (i = this.path.length - 1; i !== -1; i--) {\r\n if (this.path[i].type === \"begin\") {\r\n if (\r\n typeof this.path[i + 1] === \"object\" &&\r\n typeof this.path[i + 1].x === \"number\"\r\n ) {\r\n pathBegin = new Point(this.path[i + 1].x, this.path[i + 1].y);\r\n break;\r\n }\r\n }\r\n }\r\n this.path.push({\r\n type: \"close\"\r\n });\r\n this.ctx.lastPoint = new Point(pathBegin.x, pathBegin.y);\r\n };\r\n\r\n /**\r\n * Adds a new point and creates a line to that point from the last specified point in the canvas\r\n *\r\n * @name lineTo\r\n * @function\r\n * @param x The x-coordinate of where to create the line to\r\n * @param y The y-coordinate of where to create the line to\r\n * @description The lineTo() method adds a new point and creates a line TO that point FROM the last specified point in the canvas (this method does not draw the line).\r\n */\r\n Context2D.prototype.lineTo = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.lineTo: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");\r\n }\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n\r\n this.path.push({\r\n type: \"lt\",\r\n x: pt.x,\r\n y: pt.y\r\n });\r\n this.ctx.lastPoint = new Point(pt.x, pt.y);\r\n };\r\n\r\n /**\r\n * Clips a region of any shape and size from the original canvas\r\n *\r\n * @name clip\r\n * @function\r\n * @description The clip() method clips a region of any shape and size from the original canvas.\r\n */\r\n Context2D.prototype.clip = function() {\r\n this.ctx.clip_path = JSON.parse(JSON.stringify(this.path));\r\n pathPreProcess.call(this, null, true);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name quadraticCurveTo\r\n * @function\r\n * @param cpx {Number} The x-coordinate of the Bézier control point\r\n * @param cpy {Number} The y-coordinate of the Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The quadraticCurveTo() method adds a point to the current path by using the specified control points that represent a quadratic Bézier curve.

    A quadratic Bézier curve requires two points. The first point is a control point that is used in the quadratic Bézier calculation and the second point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.quadraticCurveTo = function(cpx, cpy, x, y) {\r\n if (isNaN(x) || isNaN(y) || isNaN(cpx) || isNaN(cpy)) {\r\n console.error(\r\n \"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\"\r\n );\r\n }\r\n\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cpx, cpy));\r\n\r\n this.path.push({\r\n type: \"qct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates a cubic Bézier curve\r\n *\r\n * @name bezierCurveTo\r\n * @function\r\n * @param cp1x {Number} The x-coordinate of the first Bézier control point\r\n * @param cp1y {Number} The y-coordinate of the first Bézier control point\r\n * @param cp2x {Number} The x-coordinate of the second Bézier control point\r\n * @param cp2y {Number} The y-coordinate of the second Bézier control point\r\n * @param x {Number} The x-coordinate of the ending point\r\n * @param y {Number} The y-coordinate of the ending point\r\n * @description The bezierCurveTo() method adds a point to the current path by using the specified control points that represent a cubic Bézier curve.

    A cubic bezier curve requires three points. The first two points are control points that are used in the cubic Bézier calculation and the last point is the ending point for the curve. The starting point for the curve is the last point in the current path. If a path does not exist, use the beginPath() and moveTo() methods to define a starting point.\r\n */\r\n Context2D.prototype.bezierCurveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(cp1x) ||\r\n isNaN(cp1y) ||\r\n isNaN(cp2x) ||\r\n isNaN(cp2y)\r\n ) {\r\n console.error(\r\n \"jsPDF.context2d.bezierCurveTo: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\"\r\n );\r\n }\r\n var pt0 = this.ctx.transform.applyToPoint(new Point(x, y));\r\n var pt1 = this.ctx.transform.applyToPoint(new Point(cp1x, cp1y));\r\n var pt2 = this.ctx.transform.applyToPoint(new Point(cp2x, cp2y));\r\n\r\n this.path.push({\r\n type: \"bct\",\r\n x1: pt1.x,\r\n y1: pt1.y,\r\n x2: pt2.x,\r\n y2: pt2.y,\r\n x: pt0.x,\r\n y: pt0.y\r\n });\r\n this.ctx.lastPoint = new Point(pt0.x, pt0.y);\r\n };\r\n\r\n /**\r\n * Creates an arc/curve (used to create circles, or parts of circles)\r\n *\r\n * @name arc\r\n * @function\r\n * @param x {Number} The x-coordinate of the center of the circle\r\n * @param y {Number} The y-coordinate of the center of the circle\r\n * @param radius {Number} The radius of the circle\r\n * @param startAngle {Number} The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)\r\n * @param endAngle {Number} The ending angle, in radians\r\n * @param counterclockwise {Boolean} Optional. Specifies whether the drawing should be counterclockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.\r\n * @description The arc() method creates an arc/curve (used to create circles, or parts of circles).\r\n */\r\n Context2D.prototype.arc = function(\r\n x,\r\n y,\r\n radius,\r\n startAngle,\r\n endAngle,\r\n counterclockwise\r\n ) {\r\n if (\r\n isNaN(x) ||\r\n isNaN(y) ||\r\n isNaN(radius) ||\r\n isNaN(startAngle) ||\r\n isNaN(endAngle)\r\n ) {\r\n console.error(\"jsPDF.context2d.arc: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");\r\n }\r\n counterclockwise = Boolean(counterclockwise);\r\n\r\n if (!this.ctx.transform.isIdentity) {\r\n var xpt = this.ctx.transform.applyToPoint(new Point(x, y));\r\n x = xpt.x;\r\n y = xpt.y;\r\n\r\n var x_radPt = this.ctx.transform.applyToPoint(new Point(0, radius));\r\n var x_radPt0 = this.ctx.transform.applyToPoint(new Point(0, 0));\r\n radius = Math.sqrt(\r\n Math.pow(x_radPt.x - x_radPt0.x, 2) +\r\n Math.pow(x_radPt.y - x_radPt0.y, 2)\r\n );\r\n }\r\n if (Math.abs(endAngle - startAngle) >= 2 * Math.PI) {\r\n startAngle = 0;\r\n endAngle = 2 * Math.PI;\r\n }\r\n\r\n this.path.push({\r\n type: \"arc\",\r\n x: x,\r\n y: y,\r\n radius: radius,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n counterclockwise: counterclockwise\r\n });\r\n // this.ctx.lastPoint(new Point(pt.x,pt.y));\r\n };\r\n\r\n /**\r\n * Creates an arc/curve between two tangents\r\n *\r\n * @name arcTo\r\n * @function\r\n * @param x1 {Number} The x-coordinate of the first tangent\r\n * @param y1 {Number} The y-coordinate of the first tangent\r\n * @param x2 {Number} The x-coordinate of the second tangent\r\n * @param y2 {Number} The y-coordinate of the second tangent\r\n * @param radius The radius of the arc\r\n * @description The arcTo() method creates an arc/curve between two tangents on the canvas.\r\n */\r\n // eslint-disable-next-line no-unused-vars\r\n Context2D.prototype.arcTo = function(x1, y1, x2, y2, radius) {\r\n throw new Error(\"arcTo not implemented.\");\r\n };\r\n\r\n /**\r\n * Creates a rectangle\r\n *\r\n * @name rect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The rect() method creates a rectangle.\r\n */\r\n Context2D.prototype.rect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.rect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");\r\n }\r\n this.moveTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x + w, y + h);\r\n this.lineTo(x, y + h);\r\n this.lineTo(x, y);\r\n this.lineTo(x + w, y);\r\n this.lineTo(x, y);\r\n };\r\n\r\n /**\r\n * Draws a \"filled\" rectangle\r\n *\r\n * @name fillRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The fillRect() method draws a \"filled\" rectangle. The default color of the fill is black.\r\n */\r\n Context2D.prototype.fillRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.fillRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");\r\n }\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n var tmp = {};\r\n if (this.lineCap !== \"butt\") {\r\n tmp.lineCap = this.lineCap;\r\n this.lineCap = \"butt\";\r\n }\r\n if (this.lineJoin !== \"miter\") {\r\n tmp.lineJoin = this.lineJoin;\r\n this.lineJoin = \"miter\";\r\n }\r\n\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.fill();\r\n\r\n if (tmp.hasOwnProperty(\"lineCap\")) {\r\n this.lineCap = tmp.lineCap;\r\n }\r\n if (tmp.hasOwnProperty(\"lineJoin\")) {\r\n this.lineJoin = tmp.lineJoin;\r\n }\r\n };\r\n\r\n /**\r\n * Draws a rectangle (no fill)\r\n *\r\n * @name strokeRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle, in pixels\r\n * @param h {Number} The height of the rectangle, in pixels\r\n * @description The strokeRect() method draws a rectangle (no fill). The default color of the stroke is black.\r\n */\r\n Context2D.prototype.strokeRect = function strokeRect(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.strokeRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n this.beginPath();\r\n this.rect(x, y, w, h);\r\n this.stroke();\r\n };\r\n\r\n /**\r\n * Clears the specified pixels within a given rectangle\r\n *\r\n * @name clearRect\r\n * @function\r\n * @param x {Number} The x-coordinate of the upper-left corner of the rectangle\r\n * @param y {Number} The y-coordinate of the upper-left corner of the rectangle\r\n * @param w {Number} The width of the rectangle to clear, in pixels\r\n * @param h {Number} The height of the rectangle to clear, in pixels\r\n * @description We cannot clear PDF commands that were already written to PDF, so we use white instead.
    \r\n * As a special case, read a special flag (ignoreClearRect) and do nothing if it is set.\r\n * This results in all calls to clearRect() to do nothing, and keep the canvas transparent.\r\n * This flag is stored in the save/restore context and is managed the same way as other drawing states.\r\n *\r\n */\r\n Context2D.prototype.clearRect = function(x, y, w, h) {\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n console.error(\"jsPDF.context2d.clearRect: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");\r\n }\r\n if (this.ignoreClearRect) {\r\n return;\r\n }\r\n\r\n this.fillStyle = \"#ffffff\";\r\n this.fillRect(x, y, w, h);\r\n };\r\n\r\n /**\r\n * Saves the state of the current context\r\n *\r\n * @name save\r\n * @function\r\n */\r\n Context2D.prototype.save = function(doStackPush) {\r\n doStackPush = typeof doStackPush === \"boolean\" ? doStackPush : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPush) {\r\n this.ctx.fontSize = this.pdf.internal.getFontSize();\r\n var ctx = new ContextLayer(this.ctx);\r\n this.ctxStack.push(this.ctx);\r\n this.ctx = ctx;\r\n }\r\n };\r\n\r\n /**\r\n * Returns previously saved path state and attributes\r\n *\r\n * @name restore\r\n * @function\r\n */\r\n Context2D.prototype.restore = function(doStackPop) {\r\n doStackPop = typeof doStackPop === \"boolean\" ? doStackPop : true;\r\n var tmpPageNumber = this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n for (var i = 0; i < this.pdf.internal.getNumberOfPages(); i++) {\r\n this.pdf.setPage(i + 1);\r\n this.pdf.internal.out(\"Q\");\r\n }\r\n this.pdf.setPage(tmpPageNumber);\r\n\r\n if (doStackPop && this.ctxStack.length !== 0) {\r\n this.ctx = this.ctxStack.pop();\r\n this.fillStyle = this.ctx.fillStyle;\r\n this.strokeStyle = this.ctx.strokeStyle;\r\n this.font = this.ctx.font;\r\n this.lineCap = this.ctx.lineCap;\r\n this.lineWidth = this.ctx.lineWidth;\r\n this.lineJoin = this.ctx.lineJoin;\r\n this.lineDash = this.ctx.lineDash;\r\n this.lineDashOffset = this.ctx.lineDashOffset;\r\n }\r\n };\r\n\r\n /**\r\n * @name toDataURL\r\n * @function\r\n */\r\n Context2D.prototype.toDataURL = function() {\r\n throw new Error(\"toDataUrl not implemented.\");\r\n };\r\n\r\n //helper functions\r\n\r\n /**\r\n * Get the decimal values of r, g, b and a\r\n *\r\n * @name getRGBA\r\n * @function\r\n * @private\r\n * @ignore\r\n */\r\n var getRGBA = function(style) {\r\n var rxRgb = /rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/;\r\n var rxRgba = /rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\r\n var rxTransparent = /transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/;\r\n\r\n var r, g, b, a;\r\n\r\n if (style.isCanvasGradient === true) {\r\n style = style.getColor();\r\n }\r\n\r\n if (!style) {\r\n return { r: 0, g: 0, b: 0, a: 0, style: style };\r\n }\r\n\r\n if (rxTransparent.test(style)) {\r\n r = 0;\r\n g = 0;\r\n b = 0;\r\n a = 0;\r\n } else {\r\n var matches = rxRgb.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = 1;\r\n } else {\r\n matches = rxRgba.exec(style);\r\n if (matches !== null) {\r\n r = parseInt(matches[1]);\r\n g = parseInt(matches[2]);\r\n b = parseInt(matches[3]);\r\n a = parseFloat(matches[4]);\r\n } else {\r\n a = 1;\r\n\r\n if (typeof style === \"string\" && style.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(style);\r\n if (rgbColor.ok) {\r\n style = rgbColor.toHex();\r\n } else {\r\n style = \"#000000\";\r\n }\r\n }\r\n\r\n if (style.length === 4) {\r\n r = style.substring(1, 2);\r\n r += r;\r\n g = style.substring(2, 3);\r\n g += g;\r\n b = style.substring(3, 4);\r\n b += b;\r\n } else {\r\n r = style.substring(1, 3);\r\n g = style.substring(3, 5);\r\n b = style.substring(5, 7);\r\n }\r\n r = parseInt(r, 16);\r\n g = parseInt(g, 16);\r\n b = parseInt(b, 16);\r\n }\r\n }\r\n }\r\n return { r: r, g: g, b: b, a: a, style: style };\r\n };\r\n\r\n /**\r\n * @name isFillTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isFillTransparent = function() {\r\n return this.ctx.isFillTransparent || this.globalAlpha == 0;\r\n };\r\n\r\n /**\r\n * @name isStrokeTransparent\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns {Boolean}\r\n */\r\n var isStrokeTransparent = function() {\r\n return Boolean(this.ctx.isStrokeTransparent || this.globalAlpha == 0);\r\n };\r\n\r\n /**\r\n * Draws \"filled\" text on the canvas\r\n *\r\n * @name fillText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The fillText() method draws filled text on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.fillText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.fillText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");\r\n }\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n if (isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n\r\n // We only use X axis as scale hint\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Draws text on the canvas (no fill)\r\n *\r\n * @name strokeText\r\n * @function\r\n * @param text {String} Specifies the text that will be written on the canvas\r\n * @param x {Number} The x coordinate where to start painting the text (relative to the canvas)\r\n * @param y {Number} The y coordinate where to start painting the text (relative to the canvas)\r\n * @param maxWidth {Number} Optional. The maximum allowed width of the text, in pixels\r\n * @description The strokeText() method draws text (with no fill) on the canvas. The default color of the text is black.\r\n */\r\n Context2D.prototype.strokeText = function(text, x, y, maxWidth) {\r\n if (isNaN(x) || isNaN(y) || typeof text !== \"string\") {\r\n console.error(\"jsPDF.context2d.strokeText: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");\r\n }\r\n if (isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n maxWidth = isNaN(maxWidth) ? undefined : maxWidth;\r\n\r\n var degs = rad2deg(this.ctx.transform.rotation);\r\n var scale = this.ctx.transform.scaleX;\r\n\r\n putText.call(this, {\r\n text: text,\r\n x: x,\r\n y: y,\r\n scale: scale,\r\n renderingMode: \"stroke\",\r\n angle: degs,\r\n align: this.textAlign,\r\n maxWidth: maxWidth\r\n });\r\n };\r\n\r\n /**\r\n * Returns an object that contains the width of the specified text\r\n *\r\n * @name measureText\r\n * @function\r\n * @param text {String} The text to be measured\r\n * @description The measureText() method returns an object that contains the width of the specified text, in pixels.\r\n * @returns {Number}\r\n */\r\n Context2D.prototype.measureText = function(text) {\r\n if (typeof text !== \"string\") {\r\n console.error(\r\n \"jsPDF.context2d.measureText: Invalid arguments\",\r\n arguments\r\n );\r\n throw new Error(\r\n \"Invalid arguments passed to jsPDF.context2d.measureText\"\r\n );\r\n }\r\n var pdf = this.pdf;\r\n var k = this.pdf.internal.scaleFactor;\r\n\r\n var fontSize = pdf.internal.getFontSize();\r\n var txtWidth =\r\n (pdf.getStringUnitWidth(text) * fontSize) / pdf.internal.scaleFactor;\r\n txtWidth *= Math.round(((k * 96) / 72) * 10000) / 10000;\r\n\r\n var TextMetrics = function(options) {\r\n options = options || {};\r\n var _width = options.width || 0;\r\n Object.defineProperty(this, \"width\", {\r\n get: function() {\r\n return _width;\r\n }\r\n });\r\n return this;\r\n };\r\n return new TextMetrics({ width: txtWidth });\r\n };\r\n\r\n //Transformations\r\n\r\n /**\r\n * Scales the current drawing bigger or smaller\r\n *\r\n * @name scale\r\n * @function\r\n * @param scalewidth {Number} Scales the width of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @param scaleheight {Number} Scales the height of the current drawing (1=100%, 0.5=50%, 2=200%, etc.)\r\n * @description The scale() method scales the current drawing, bigger or smaller.\r\n */\r\n Context2D.prototype.scale = function(scalewidth, scaleheight) {\r\n if (isNaN(scalewidth) || isNaN(scaleheight)) {\r\n console.error(\"jsPDF.context2d.scale: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");\r\n }\r\n var matrix = new Matrix(scalewidth, 0.0, 0.0, scaleheight, 0.0, 0.0);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Rotates the current drawing\r\n *\r\n * @name rotate\r\n * @function\r\n * @param angle {Number} The rotation angle, in radians.\r\n * @description To calculate from degrees to radians: degrees*Math.PI/180.
    \r\n * Example: to rotate 5 degrees, specify the following: 5*Math.PI/180\r\n */\r\n Context2D.prototype.rotate = function(angle) {\r\n if (isNaN(angle)) {\r\n console.error(\"jsPDF.context2d.rotate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");\r\n }\r\n var matrix = new Matrix(\r\n Math.cos(angle),\r\n Math.sin(angle),\r\n -Math.sin(angle),\r\n Math.cos(angle),\r\n 0.0,\r\n 0.0\r\n );\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Remaps the (0,0) position on the canvas\r\n *\r\n * @name translate\r\n * @function\r\n * @param x {Number} The value to add to horizontal (x) coordinates\r\n * @param y {Number} The value to add to vertical (y) coordinates\r\n * @description The translate() method remaps the (0,0) position on the canvas.\r\n */\r\n Context2D.prototype.translate = function(x, y) {\r\n if (isNaN(x) || isNaN(y)) {\r\n console.error(\"jsPDF.context2d.translate: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");\r\n }\r\n var matrix = new Matrix(1.0, 0.0, 0.0, 1.0, x, y);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Replaces the current transformation matrix for the drawing\r\n *\r\n * @name transform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The transform() method replaces the current transformation matrix. It multiplies the current transformation matrix with the matrix described by:



    a c e

    b d f

    0 0 1

    In other words, the transform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.transform = function(a, b, c, d, e, f) {\r\n if (isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f)) {\r\n console.error(\"jsPDF.context2d.transform: Invalid arguments\", arguments);\r\n throw new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");\r\n }\r\n var matrix = new Matrix(a, b, c, d, e, f);\r\n this.ctx.transform = this.ctx.transform.multiply(matrix);\r\n };\r\n\r\n /**\r\n * Resets the current transform to the identity matrix. Then runs transform()\r\n *\r\n * @name setTransform\r\n * @function\r\n * @param a {Number} Horizontal scaling\r\n * @param b {Number} Horizontal skewing\r\n * @param c {Number} Vertical skewing\r\n * @param d {Number} Vertical scaling\r\n * @param e {Number} Horizontal moving\r\n * @param f {Number} Vertical moving\r\n * @description Each object on the canvas has a current transformation matrix.

    The setTransform() method resets the current transform to the identity matrix, and then runs transform() with the same arguments.

    In other words, the setTransform() method lets you scale, rotate, move, and skew the current context.\r\n */\r\n Context2D.prototype.setTransform = function(a, b, c, d, e, f) {\r\n a = isNaN(a) ? 1 : a;\r\n b = isNaN(b) ? 0 : b;\r\n c = isNaN(c) ? 0 : c;\r\n d = isNaN(d) ? 1 : d;\r\n e = isNaN(e) ? 0 : e;\r\n f = isNaN(f) ? 0 : f;\r\n this.ctx.transform = new Matrix(a, b, c, d, e, f);\r\n };\r\n\r\n /**\r\n * Should only be used if pageWrapYEnabled is true\r\n *\r\n * @name setPageByYPosition\r\n * @function\r\n * @private\r\n * @ignore\r\n * @returns One-based Page Number\r\n */\r\n var setPageByYPosition = function(y) {\r\n if (this.pageWrapYEnabled) {\r\n this.lastBreak = 0;\r\n var manualBreaks = 0;\r\n var autoBreaks = 0;\r\n for (var i = 0; i < this.pageBreaks.length; i++) {\r\n if (y >= this.pageBreaks[i]) {\r\n manualBreaks++;\r\n if (this.lastBreak === 0) {\r\n autoBreaks++;\r\n }\r\n var spaceBetweenLastBreak = this.pageBreaks[i] - this.lastBreak;\r\n this.lastBreak = this.pageBreaks[i];\r\n var pagesSinceLastBreak = Math.floor(\r\n spaceBetweenLastBreak / this.pageWrapY\r\n );\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n }\r\n if (this.lastBreak === 0) {\r\n var pagesSinceLastBreak = Math.floor(y / this.pageWrapY) + 1;\r\n autoBreaks += pagesSinceLastBreak;\r\n }\r\n return autoBreaks + manualBreaks;\r\n } else {\r\n return this.pdf.internal.getCurrentPageInfo().pageNumber;\r\n }\r\n };\r\n\r\n var hasMargins = function() {\r\n return (\r\n this.margin[0] > 0 ||\r\n this.margin[1] > 0 ||\r\n this.margin[2] > 0 ||\r\n this.margin[3] > 0\r\n );\r\n };\r\n\r\n /**\r\n * Draws an image, canvas, or video onto the canvas\r\n *\r\n * @function\r\n * @param img {} Specifies the image, canvas, or video element to use\r\n * @param sx {Number} Optional. The x coordinate where to start clipping\r\n * @param sy {Number} Optional. The y coordinate where to start clipping\r\n * @param swidth {Number} Optional. The width of the clipped image\r\n * @param sheight {Number} Optional. The height of the clipped image\r\n * @param x {Number} The x coordinate where to place the image on the canvas\r\n * @param y {Number} The y coordinate where to place the image on the canvas\r\n * @param width {Number} Optional. The width of the image to use (stretch or reduce the image)\r\n * @param height {Number} Optional. The height of the image to use (stretch or reduce the image)\r\n */\r\n Context2D.prototype.drawImage = function(\r\n img,\r\n sx,\r\n sy,\r\n swidth,\r\n sheight,\r\n x,\r\n y,\r\n width,\r\n height\r\n ) {\r\n var imageProperties = this.pdf.getImageProperties(img);\r\n var factorX = 1;\r\n var factorY = 1;\r\n var isClip;\r\n\r\n var clipFactorX = 1;\r\n var clipFactorY = 1;\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width !== \"undefined\") {\r\n isClip = true;\r\n clipFactorX = width / swidth;\r\n clipFactorY = height / sheight;\r\n factorX = ((imageProperties.width / swidth) * width) / swidth;\r\n factorY = ((imageProperties.height / sheight) * height) / sheight;\r\n }\r\n\r\n //is sx and sy are set and x and y not, set x and y with values of sx and sy\r\n if (typeof x === \"undefined\") {\r\n x = sx;\r\n y = sy;\r\n sx = 0;\r\n sy = 0;\r\n }\r\n\r\n if (typeof swidth !== \"undefined\" && typeof width === \"undefined\") {\r\n width = swidth;\r\n height = sheight;\r\n }\r\n if (typeof swidth === \"undefined\" && typeof width === \"undefined\") {\r\n width = imageProperties.width;\r\n height = imageProperties.height;\r\n }\r\n\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var angle = rad2deg(decomposedTransformationMatrix.rotate.shx);\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n var xRect = matrix.applyToRectangle(\r\n new Rectangle(\r\n x - sx * clipFactorX,\r\n y - sy * clipFactorY,\r\n swidth * factorX,\r\n sheight * factorY\r\n )\r\n );\r\n var pageArray = getPagesByPath.call(this, xRect);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var tmpRect = JSON.parse(JSON.stringify(xRect));\r\n tmpRect = pathPositionRedo(\r\n [tmpRect],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping = (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n tmpRect.x,\r\n tmpRect.y,\r\n tmpRect.w,\r\n tmpRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n this.pdf.addImage(\r\n img,\r\n \"JPEG\",\r\n xRect.x,\r\n xRect.y,\r\n xRect.w,\r\n xRect.h,\r\n null,\r\n null,\r\n angle\r\n );\r\n }\r\n };\r\n\r\n var getPagesByPath = function(path, pageWrapX, pageWrapY) {\r\n var result = [];\r\n pageWrapX = pageWrapX || this.pdf.internal.pageSize.width;\r\n pageWrapY =\r\n pageWrapY ||\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var yOffset = this.posY + this.ctx.prevPageLastElemOffset;\r\n\r\n switch (path.type) {\r\n default:\r\n case \"mt\":\r\n case \"lt\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n break;\r\n case \"arc\":\r\n result.push(\r\n Math.floor((path.y + yOffset - path.radius) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor((path.y + yOffset + path.radius) / pageWrapY) + 1\r\n );\r\n break;\r\n case \"qct\":\r\n var rectOfQuadraticCurve = getQuadraticCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfQuadraticCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfQuadraticCurve.y + rectOfQuadraticCurve.h + yOffset) /\r\n pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"bct\":\r\n var rectOfBezierCurve = getBezierCurveBoundary(\r\n this.ctx.lastPoint.x,\r\n this.ctx.lastPoint.y,\r\n path.x1,\r\n path.y1,\r\n path.x2,\r\n path.y2,\r\n path.x,\r\n path.y\r\n );\r\n result.push(\r\n Math.floor((rectOfBezierCurve.y + yOffset) / pageWrapY) + 1\r\n );\r\n result.push(\r\n Math.floor(\r\n (rectOfBezierCurve.y + rectOfBezierCurve.h + yOffset) / pageWrapY\r\n ) + 1\r\n );\r\n break;\r\n case \"rect\":\r\n result.push(Math.floor((path.y + yOffset) / pageWrapY) + 1);\r\n result.push(Math.floor((path.y + path.h + yOffset) / pageWrapY) + 1);\r\n }\r\n\r\n for (var i = 0; i < result.length; i += 1) {\r\n while (this.pdf.internal.getNumberOfPages() < result[i]) {\r\n addPage.call(this);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n var addPage = function() {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var font = this.font;\r\n var lineCap = this.lineCap;\r\n var lineWidth = this.lineWidth;\r\n var lineJoin = this.lineJoin;\r\n this.pdf.addPage();\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.font = font;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n };\r\n\r\n var pathPositionRedo = function(paths, x, y) {\r\n for (var i = 0; i < paths.length; i++) {\r\n switch (paths[i].type) {\r\n case \"bct\":\r\n paths[i].x2 += x;\r\n paths[i].y2 += y;\r\n case \"qct\":\r\n paths[i].x1 += x;\r\n paths[i].y1 += y;\r\n case \"mt\":\r\n case \"lt\":\r\n case \"arc\":\r\n default:\r\n paths[i].x += x;\r\n paths[i].y += y;\r\n }\r\n }\r\n return paths;\r\n };\r\n\r\n var sortPages = function(pages) {\r\n return pages.sort(function(a, b) {\r\n return a - b;\r\n });\r\n };\r\n\r\n var pathPreProcess = function(rule, isClip) {\r\n var fillStyle = this.fillStyle;\r\n var strokeStyle = this.strokeStyle;\r\n var lineCap = this.lineCap;\r\n var oldLineWidth = this.lineWidth;\r\n var lineWidth = Math.abs(oldLineWidth * this.ctx.transform.scaleX);\r\n var lineJoin = this.lineJoin;\r\n\r\n var origPath = JSON.parse(JSON.stringify(this.path));\r\n var xPath = JSON.parse(JSON.stringify(this.path));\r\n var clipPath;\r\n var tmpPath;\r\n var pages = [];\r\n\r\n for (var i = 0; i < xPath.length; i++) {\r\n if (typeof xPath[i].x !== \"undefined\") {\r\n var page = getPagesByPath.call(this, xPath[i]);\r\n\r\n for (var ii = 0; ii < page.length; ii += 1) {\r\n if (pages.indexOf(page[ii]) === -1) {\r\n pages.push(page[ii]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var j = 0; j < pages.length; j++) {\r\n while (this.pdf.internal.getNumberOfPages() < pages[j]) {\r\n addPage.call(this);\r\n }\r\n }\r\n sortPages(pages);\r\n\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var k = min; k < max + 1; k++) {\r\n this.pdf.setPage(k);\r\n\r\n this.fillStyle = fillStyle;\r\n this.strokeStyle = strokeStyle;\r\n this.lineCap = lineCap;\r\n this.lineWidth = lineWidth;\r\n this.lineJoin = lineJoin;\r\n\r\n var pageWidthMinusMargins =\r\n this.pdf.internal.pageSize.width - this.margin[3] - this.margin[1];\r\n var topMargin = k === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusMargins =\r\n this.pdf.internal.pageSize.height - this.margin[0] - this.margin[2];\r\n var previousPageHeightSum =\r\n k === 1 ? 0 : firstPageHeight + (k - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n drawPaths.call(this, rule, true);\r\n this.path = tmpPaths;\r\n }\r\n tmpPath = JSON.parse(JSON.stringify(origPath));\r\n this.path = pathPositionRedo(\r\n tmpPath,\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n );\r\n if (isClip === false || k === 0) {\r\n const needsClipping = (k > min || k < max) && hasMargins.call(this);\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n drawPaths.call(this, rule, isClip);\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n this.lineWidth = oldLineWidth;\r\n }\r\n } else {\r\n this.lineWidth = lineWidth;\r\n drawPaths.call(this, rule, isClip);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n this.path = origPath;\r\n };\r\n\r\n /**\r\n * Processes the paths\r\n *\r\n * @function\r\n * @param rule {String}\r\n * @param isClip {Boolean}\r\n * @private\r\n * @ignore\r\n */\r\n var drawPaths = function(rule, isClip) {\r\n if (rule === \"stroke\" && !isClip && isStrokeTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n if (rule !== \"stroke\" && !isClip && isFillTransparent.call(this)) {\r\n return;\r\n }\r\n\r\n var moves = [];\r\n\r\n //var alpha = (this.ctx.fillOpacity < 1) ? this.ctx.fillOpacity : this.ctx.globalAlpha;\r\n var delta;\r\n var xPath = this.path;\r\n for (var i = 0; i < xPath.length; i++) {\r\n var pt = xPath[i];\r\n\r\n switch (pt.type) {\r\n case \"begin\":\r\n moves.push({\r\n begin: true\r\n });\r\n break;\r\n\r\n case \"close\":\r\n moves.push({\r\n close: true\r\n });\r\n break;\r\n\r\n case \"mt\":\r\n moves.push({\r\n start: pt,\r\n deltas: [],\r\n abs: []\r\n });\r\n break;\r\n\r\n case \"lt\":\r\n var iii = moves.length;\r\n if (xPath[i - 1] && !isNaN(xPath[i - 1].x)) {\r\n delta = [pt.x - xPath[i - 1].x, pt.y - xPath[i - 1].y];\r\n if (iii > 0) {\r\n for (iii; iii >= 0; iii--) {\r\n if (\r\n moves[iii - 1].close !== true &&\r\n moves[iii - 1].begin !== true\r\n ) {\r\n moves[iii - 1].deltas.push(delta);\r\n moves[iii - 1].abs.push(pt);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"bct\":\r\n delta = [\r\n pt.x1 - xPath[i - 1].x,\r\n pt.y1 - xPath[i - 1].y,\r\n pt.x2 - xPath[i - 1].x,\r\n pt.y2 - xPath[i - 1].y,\r\n pt.x - xPath[i - 1].x,\r\n pt.y - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"qct\":\r\n var x1 = xPath[i - 1].x + (2.0 / 3.0) * (pt.x1 - xPath[i - 1].x);\r\n var y1 = xPath[i - 1].y + (2.0 / 3.0) * (pt.y1 - xPath[i - 1].y);\r\n var x2 = pt.x + (2.0 / 3.0) * (pt.x1 - pt.x);\r\n var y2 = pt.y + (2.0 / 3.0) * (pt.y1 - pt.y);\r\n var x3 = pt.x;\r\n var y3 = pt.y;\r\n delta = [\r\n x1 - xPath[i - 1].x,\r\n y1 - xPath[i - 1].y,\r\n x2 - xPath[i - 1].x,\r\n y2 - xPath[i - 1].y,\r\n x3 - xPath[i - 1].x,\r\n y3 - xPath[i - 1].y\r\n ];\r\n moves[moves.length - 1].deltas.push(delta);\r\n break;\r\n\r\n case \"arc\":\r\n moves.push({\r\n deltas: [],\r\n abs: [],\r\n arc: true\r\n });\r\n\r\n if (Array.isArray(moves[moves.length - 1].abs)) {\r\n moves[moves.length - 1].abs.push(pt);\r\n }\r\n break;\r\n }\r\n }\r\n var style;\r\n if (!isClip) {\r\n if (rule === \"stroke\") {\r\n style = \"stroke\";\r\n } else {\r\n style = \"fill\";\r\n }\r\n } else {\r\n style = null;\r\n }\r\n\r\n var began = false;\r\n for (var k = 0; k < moves.length; k++) {\r\n if (moves[k].arc) {\r\n var arcs = moves[k].abs;\r\n\r\n for (var ii = 0; ii < arcs.length; ii++) {\r\n var arc = arcs[ii];\r\n\r\n if (arc.type === \"arc\") {\r\n drawArc.call(\r\n this,\r\n arc.x,\r\n arc.y,\r\n arc.radius,\r\n arc.startAngle,\r\n arc.endAngle,\r\n arc.counterclockwise,\r\n undefined,\r\n isClip,\r\n !began\r\n );\r\n } else {\r\n drawLine.call(this, arc.x, arc.y);\r\n }\r\n began = true;\r\n }\r\n } else if (moves[k].close === true) {\r\n this.pdf.internal.out(\"h\");\r\n began = false;\r\n } else if (moves[k].begin !== true) {\r\n var x = moves[k].start.x;\r\n var y = moves[k].start.y;\r\n drawLines.call(this, moves[k].deltas, x, y);\r\n began = true;\r\n }\r\n }\r\n\r\n if (style) {\r\n putStyle.call(this, style);\r\n }\r\n if (isClip) {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var getBaseline = function(y) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n switch (this.ctx.textBaseline) {\r\n case \"bottom\":\r\n return y - descent;\r\n case \"top\":\r\n return y + height - descent;\r\n case \"hanging\":\r\n return y + height - 2 * descent;\r\n case \"middle\":\r\n return y + height / 2 - descent;\r\n case \"ideographic\":\r\n // TODO not implemented\r\n return y;\r\n case \"alphabetic\":\r\n default:\r\n return y;\r\n }\r\n };\r\n\r\n var getTextBottom = function(yBaseLine) {\r\n var height =\r\n this.pdf.internal.getFontSize() / this.pdf.internal.scaleFactor;\r\n var descent = height * (this.pdf.internal.getLineHeightFactor() - 1);\r\n return yBaseLine + descent;\r\n };\r\n\r\n Context2D.prototype.createLinearGradient = function createLinearGradient() {\r\n var canvasGradient = function canvasGradient() {};\r\n\r\n canvasGradient.colorStops = [];\r\n canvasGradient.addColorStop = function(offset, color) {\r\n this.colorStops.push([offset, color]);\r\n };\r\n\r\n canvasGradient.getColor = function() {\r\n if (this.colorStops.length === 0) {\r\n return \"#000000\";\r\n }\r\n\r\n return this.colorStops[0][1];\r\n };\r\n\r\n canvasGradient.isCanvasGradient = true;\r\n return canvasGradient;\r\n };\r\n Context2D.prototype.createPattern = function createPattern() {\r\n return this.createLinearGradient();\r\n };\r\n Context2D.prototype.createRadialGradient = function createRadialGradient() {\r\n return this.createLinearGradient();\r\n };\r\n\r\n /**\r\n *\r\n * @param x Edge point X\r\n * @param y Edge point Y\r\n * @param r Radius\r\n * @param a1 start angle\r\n * @param a2 end angle\r\n * @param counterclockwise\r\n * @param style\r\n * @param isClip\r\n */\r\n var drawArc = function(\r\n x,\r\n y,\r\n r,\r\n a1,\r\n a2,\r\n counterclockwise,\r\n style,\r\n isClip,\r\n includeMove\r\n ) {\r\n // http://hansmuller-flex.blogspot.com/2011/10/more-about-approximating-circular-arcs.html\r\n var curves = createArc.call(this, r, a1, a2, counterclockwise);\r\n\r\n for (var i = 0; i < curves.length; i++) {\r\n var curve = curves[i];\r\n if (i === 0) {\r\n if (includeMove) {\r\n doMove.call(this, curve.x1 + x, curve.y1 + y);\r\n } else {\r\n drawLine.call(this, curve.x1 + x, curve.y1 + y);\r\n }\r\n }\r\n drawCurve.call(\r\n this,\r\n x,\r\n y,\r\n curve.x2,\r\n curve.y2,\r\n curve.x3,\r\n curve.y3,\r\n curve.x4,\r\n curve.y4\r\n );\r\n }\r\n\r\n if (!isClip) {\r\n putStyle.call(this, style);\r\n } else {\r\n doClip.call(this);\r\n }\r\n };\r\n\r\n var putStyle = function(style) {\r\n switch (style) {\r\n case \"stroke\":\r\n this.pdf.internal.out(\"S\");\r\n break;\r\n case \"fill\":\r\n this.pdf.internal.out(\"f\");\r\n break;\r\n }\r\n };\r\n\r\n var doClip = function() {\r\n this.pdf.clip();\r\n this.pdf.discardPath();\r\n };\r\n\r\n var doMove = function(x, y) {\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x) +\r\n \" \" +\r\n getVerticalCoordinateString(y) +\r\n \" m\"\r\n );\r\n };\r\n\r\n var putText = function(options) {\r\n var textAlign;\r\n switch (options.align) {\r\n case \"right\":\r\n case \"end\":\r\n textAlign = \"right\";\r\n break;\r\n case \"center\":\r\n textAlign = \"center\";\r\n break;\r\n case \"left\":\r\n case \"start\":\r\n default:\r\n textAlign = \"left\";\r\n break;\r\n }\r\n\r\n var textDimensions = this.pdf.getTextDimensions(options.text);\r\n var yBaseLine = getBaseline.call(this, options.y);\r\n var yBottom = getTextBottom.call(this, yBaseLine);\r\n var yTop = yBottom - textDimensions.h;\r\n\r\n var pt = this.ctx.transform.applyToPoint(new Point(options.x, yBaseLine));\r\n var decomposedTransformationMatrix = this.ctx.transform.decompose();\r\n var matrix = new Matrix();\r\n matrix = matrix.multiply(decomposedTransformationMatrix.translate);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.skew);\r\n matrix = matrix.multiply(decomposedTransformationMatrix.scale);\r\n\r\n var baselineRect = this.ctx.transform.applyToRectangle(\r\n new Rectangle(options.x, yBaseLine, textDimensions.w, textDimensions.h)\r\n );\r\n var textBounds = matrix.applyToRectangle(\r\n new Rectangle(options.x, yTop, textDimensions.w, textDimensions.h)\r\n );\r\n var pageArray = getPagesByPath.call(this, textBounds);\r\n var pages = [];\r\n for (var ii = 0; ii < pageArray.length; ii += 1) {\r\n if (pages.indexOf(pageArray[ii]) === -1) {\r\n pages.push(pageArray[ii]);\r\n }\r\n }\r\n\r\n sortPages(pages);\r\n\r\n var clipPath, oldSize, oldLineWidth;\r\n if (this.autoPaging) {\r\n var min = pages[0];\r\n var max = pages[pages.length - 1];\r\n for (var i = min; i < max + 1; i++) {\r\n this.pdf.setPage(i);\r\n\r\n var topMargin = i === 1 ? this.posY + this.margin[0] : this.margin[0];\r\n var firstPageHeight =\r\n this.pdf.internal.pageSize.height -\r\n this.posY -\r\n this.margin[0] -\r\n this.margin[2];\r\n var pageHeightMinusBottomMargin =\r\n this.pdf.internal.pageSize.height - this.margin[2];\r\n var pageHeightMinusMargins =\r\n pageHeightMinusBottomMargin - this.margin[0];\r\n var pageWidthMinusRightMargin =\r\n this.pdf.internal.pageSize.width - this.margin[1];\r\n var pageWidthMinusMargins = pageWidthMinusRightMargin - this.margin[3];\r\n var previousPageHeightSum =\r\n i === 1 ? 0 : firstPageHeight + (i - 2) * pageHeightMinusMargins;\r\n\r\n if (this.ctx.clip_path.length !== 0) {\r\n var tmpPaths = this.path;\r\n clipPath = JSON.parse(JSON.stringify(this.ctx.clip_path));\r\n this.path = pathPositionRedo(\r\n clipPath,\r\n this.posX + this.margin[3],\r\n -1 * previousPageHeightSum + topMargin\r\n );\r\n drawPaths.call(this, \"fill\", true);\r\n this.path = tmpPaths;\r\n }\r\n var textBoundsOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(textBounds))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum + topMargin + this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n\r\n var doSlice = this.autoPaging !== \"text\";\r\n\r\n if (\r\n doSlice ||\r\n textBoundsOnPage.y + textBoundsOnPage.h <= pageHeightMinusBottomMargin\r\n ) {\r\n if (\r\n doSlice ||\r\n (textBoundsOnPage.y >= topMargin &&\r\n textBoundsOnPage.x <= pageWidthMinusRightMargin)\r\n ) {\r\n var croppedText = doSlice\r\n ? options.text\r\n : this.pdf.splitTextToSize(\r\n options.text,\r\n options.maxWidth ||\r\n pageWidthMinusRightMargin - textBoundsOnPage.x\r\n )[0];\r\n var baseLineRectOnPage = pathPositionRedo(\r\n [JSON.parse(JSON.stringify(baselineRect))],\r\n this.posX + this.margin[3],\r\n -previousPageHeightSum +\r\n topMargin +\r\n this.ctx.prevPageLastElemOffset\r\n )[0];\r\n\r\n const needsClipping =\r\n doSlice && (i > min || i < max) && hasMargins.call(this);\r\n\r\n if (needsClipping) {\r\n this.pdf.saveGraphicsState();\r\n this.pdf\r\n .rect(\r\n this.margin[3],\r\n this.margin[0],\r\n pageWidthMinusMargins,\r\n pageHeightMinusMargins,\r\n null\r\n )\r\n .clip()\r\n .discardPath();\r\n }\r\n\r\n this.pdf.text(\r\n croppedText,\r\n baseLineRectOnPage.x,\r\n baseLineRectOnPage.y,\r\n {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode\r\n }\r\n );\r\n\r\n if (needsClipping) {\r\n this.pdf.restoreGraphicsState();\r\n }\r\n }\r\n } else {\r\n // This text is the last element of the page, but it got cut off due to the margin\r\n // so we render it in the next page\r\n\r\n if (textBoundsOnPage.y < pageHeightMinusBottomMargin) {\r\n // As a result, all other elements have their y offset increased\r\n this.ctx.prevPageLastElemOffset +=\r\n pageHeightMinusBottomMargin - textBoundsOnPage.y;\r\n }\r\n }\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n } else {\r\n if (options.scale >= 0.01) {\r\n oldSize = this.pdf.internal.getFontSize();\r\n this.pdf.setFontSize(oldSize * options.scale);\r\n oldLineWidth = this.lineWidth;\r\n this.lineWidth = oldLineWidth * options.scale;\r\n }\r\n this.pdf.text(options.text, pt.x + this.posX, pt.y + this.posY, {\r\n angle: options.angle,\r\n align: textAlign,\r\n renderingMode: options.renderingMode,\r\n maxWidth: options.maxWidth\r\n });\r\n\r\n if (options.scale >= 0.01) {\r\n this.pdf.setFontSize(oldSize);\r\n this.lineWidth = oldLineWidth;\r\n }\r\n }\r\n };\r\n\r\n var drawLine = function(x, y, prevX, prevY) {\r\n prevX = prevX || 0;\r\n prevY = prevY || 0;\r\n\r\n this.pdf.internal.out(\r\n getHorizontalCoordinateString(x + prevX) +\r\n \" \" +\r\n getVerticalCoordinateString(y + prevY) +\r\n \" l\"\r\n );\r\n };\r\n\r\n var drawLines = function(lines, x, y) {\r\n return this.pdf.lines(lines, x, y, null, null);\r\n };\r\n\r\n var drawCurve = function(x, y, x1, y1, x2, y2, x3, y3) {\r\n this.pdf.internal.out(\r\n [\r\n f2(getHorizontalCoordinate(x1 + x)),\r\n f2(getVerticalCoordinate(y1 + y)),\r\n f2(getHorizontalCoordinate(x2 + x)),\r\n f2(getVerticalCoordinate(y2 + y)),\r\n f2(getHorizontalCoordinate(x3 + x)),\r\n f2(getVerticalCoordinate(y3 + y)),\r\n \"c\"\r\n ].join(\" \")\r\n );\r\n };\r\n\r\n /**\r\n * Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin, from startAngle to endAngle (radians) with the specified radius.\r\n *\r\n * Each bezier curve is an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n * @function createArc\r\n */\r\n var createArc = function(radius, startAngle, endAngle, anticlockwise) {\r\n var EPSILON = 0.00001; // Roughly 1/1000th of a degree, see below\r\n var twoPi = Math.PI * 2;\r\n var halfPi = Math.PI / 2.0;\r\n\r\n while (startAngle > endAngle) {\r\n startAngle = startAngle - twoPi;\r\n }\r\n var totalAngle = Math.abs(endAngle - startAngle);\r\n if (totalAngle < twoPi) {\r\n if (anticlockwise) {\r\n totalAngle = twoPi - totalAngle;\r\n }\r\n }\r\n\r\n // Compute the sequence of arc curves, up to PI/2 at a time.\r\n var curves = [];\r\n\r\n // clockwise or counterclockwise\r\n var sgn = anticlockwise ? -1 : +1;\r\n\r\n var a1 = startAngle;\r\n for (; totalAngle > EPSILON; ) {\r\n var remain = sgn * Math.min(totalAngle, halfPi);\r\n var a2 = a1 + remain;\r\n curves.push(createSmallArc.call(this, radius, a1, a2));\r\n totalAngle -= Math.abs(a2 - a1);\r\n a1 = a2;\r\n }\r\n\r\n return curves;\r\n };\r\n\r\n /**\r\n * Cubic bezier approximation of a circular arc centered at the origin, from (radians) a1 to a2, where a2-a1 < pi/2. The arc's radius is r.\r\n *\r\n * Returns an object with four points, where x1,y1 and x4,y4 are the arc's end points and x2,y2 and x3,y3 are the cubic bezier's control points.\r\n *\r\n * This algorithm is based on the approach described in: A. Riškus, \"Approximation of a Cubic Bezier Curve by Circular Arcs and Vice Versa,\" Information Technology and Control, 35(4), 2006 pp. 371-378.\r\n */\r\n var createSmallArc = function(r, a1, a2) {\r\n var a = (a2 - a1) / 2.0;\r\n\r\n var x4 = r * Math.cos(a);\r\n var y4 = r * Math.sin(a);\r\n var x1 = x4;\r\n var y1 = -y4;\r\n\r\n var q1 = x1 * x1 + y1 * y1;\r\n var q2 = q1 + x1 * x4 + y1 * y4;\r\n var k2 = ((4 / 3) * (Math.sqrt(2 * q1 * q2) - q2)) / (x1 * y4 - y1 * x4);\r\n\r\n var x2 = x1 - k2 * y1;\r\n var y2 = y1 + k2 * x1;\r\n var x3 = x2;\r\n var y3 = -y2;\r\n\r\n var ar = a + a1;\r\n var cos_ar = Math.cos(ar);\r\n var sin_ar = Math.sin(ar);\r\n\r\n return {\r\n x1: r * Math.cos(a1),\r\n y1: r * Math.sin(a1),\r\n x2: x2 * cos_ar - y2 * sin_ar,\r\n y2: x2 * sin_ar + y2 * cos_ar,\r\n x3: x3 * cos_ar - y3 * sin_ar,\r\n y3: x3 * sin_ar + y3 * cos_ar,\r\n x4: r * Math.cos(a2),\r\n y4: r * Math.sin(a2)\r\n };\r\n };\r\n\r\n var rad2deg = function(value) {\r\n return (value * 180) / Math.PI;\r\n };\r\n\r\n var getQuadraticCurveBoundary = function(sx, sy, cpx, cpy, ex, ey) {\r\n var midX1 = sx + (cpx - sx) * 0.5;\r\n var midY1 = sy + (cpy - sy) * 0.5;\r\n var midX2 = ex + (cpx - ex) * 0.5;\r\n var midY2 = ey + (cpy - ey) * 0.5;\r\n var resultX1 = Math.min(sx, ex, midX1, midX2);\r\n var resultX2 = Math.max(sx, ex, midX1, midX2);\r\n var resultY1 = Math.min(sy, ey, midY1, midY2);\r\n var resultY2 = Math.max(sy, ey, midY1, midY2);\r\n return new Rectangle(\r\n resultX1,\r\n resultY1,\r\n resultX2 - resultX1,\r\n resultY2 - resultY1\r\n );\r\n };\r\n\r\n //De Casteljau algorithm\r\n var getBezierCurveBoundary = function(ax, ay, bx, by, cx, cy, dx, dy) {\r\n var tobx = bx - ax;\r\n var toby = by - ay;\r\n var tocx = cx - bx;\r\n var tocy = cy - by;\r\n var todx = dx - cx;\r\n var tody = dy - cy;\r\n var precision = 40;\r\n var d,\r\n i,\r\n px,\r\n py,\r\n qx,\r\n qy,\r\n rx,\r\n ry,\r\n tx,\r\n ty,\r\n sx,\r\n sy,\r\n x,\r\n y,\r\n minx,\r\n miny,\r\n maxx,\r\n maxy,\r\n toqx,\r\n toqy,\r\n torx,\r\n tory,\r\n totx,\r\n toty;\r\n for (i = 0; i < precision + 1; i++) {\r\n d = i / precision;\r\n px = ax + d * tobx;\r\n py = ay + d * toby;\r\n qx = bx + d * tocx;\r\n qy = by + d * tocy;\r\n rx = cx + d * todx;\r\n ry = cy + d * tody;\r\n toqx = qx - px;\r\n toqy = qy - py;\r\n torx = rx - qx;\r\n tory = ry - qy;\r\n\r\n sx = px + d * toqx;\r\n sy = py + d * toqy;\r\n tx = qx + d * torx;\r\n ty = qy + d * tory;\r\n totx = tx - sx;\r\n toty = ty - sy;\r\n\r\n x = sx + d * totx;\r\n y = sy + d * toty;\r\n if (i == 0) {\r\n minx = x;\r\n miny = y;\r\n maxx = x;\r\n maxy = y;\r\n } else {\r\n minx = Math.min(minx, x);\r\n miny = Math.min(miny, y);\r\n maxx = Math.max(maxx, x);\r\n maxy = Math.max(maxy, y);\r\n }\r\n }\r\n return new Rectangle(\r\n Math.round(minx),\r\n Math.round(miny),\r\n Math.round(maxx - minx),\r\n Math.round(maxy - miny)\r\n );\r\n };\r\n\r\n var getPrevLineDashValue = function(lineDash, lineDashOffset) {\r\n return JSON.stringify({\r\n lineDash: lineDash,\r\n lineDashOffset: lineDashOffset\r\n });\r\n };\r\n\r\n var setLineDash = function() {\r\n // Avoid unnecessary line dash declarations.\r\n if (\r\n !this.prevLineDash &&\r\n !this.ctx.lineDash.length &&\r\n !this.ctx.lineDashOffset\r\n ) {\r\n return;\r\n }\r\n\r\n // Avoid unnecessary line dash declarations.\r\n const nextLineDash = getPrevLineDashValue(\r\n this.ctx.lineDash,\r\n this.ctx.lineDashOffset\r\n );\r\n if (this.prevLineDash !== nextLineDash) {\r\n this.pdf.setLineDash(this.ctx.lineDash, this.ctx.lineDashOffset);\r\n this.prevLineDash = nextLineDash;\r\n }\r\n };\r\n})(jsPDF.API);\r\n","/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var ASCII85Encode = function(a) {\n var b, c, d, e, f, g, h, i, j, k;\n // eslint-disable-next-line no-control-regex\n for (\n !/[^\\x00-\\xFF]/.test(a),\n b = \"\\x00\\x00\\x00\\x00\".slice(a.length % 4 || 4),\n a += b,\n c = [],\n d = 0,\n e = a.length;\n e > d;\n d += 4\n )\n (f =\n (a.charCodeAt(d) << 24) +\n (a.charCodeAt(d + 1) << 16) +\n (a.charCodeAt(d + 2) << 8) +\n a.charCodeAt(d + 3)),\n 0 !== f\n ? ((k = f % 85),\n (f = (f - k) / 85),\n (j = f % 85),\n (f = (f - j) / 85),\n (i = f % 85),\n (f = (f - i) / 85),\n (h = f % 85),\n (f = (f - h) / 85),\n (g = f % 85),\n c.push(g + 33, h + 33, i + 33, j + 33, k + 33))\n : c.push(122);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(c, b.length),\n String.fromCharCode.apply(String, c) + \"~>\"\n );\n };\n\n var ASCII85Decode = function(a) {\n var c,\n d,\n e,\n f,\n g,\n h = String,\n l = \"length\",\n w = 255,\n x = \"charCodeAt\",\n y = \"slice\",\n z = \"replace\";\n for (\n \"~>\" === a[y](-2),\n a = a[y](0, -2)\n [z](/\\s/g, \"\")\n [z](\"z\", \"!!!!!\"),\n c = \"uuuuu\"[y](a[l] % 5 || 5),\n a += c,\n e = [],\n f = 0,\n g = a[l];\n g > f;\n f += 5\n )\n (d =\n 52200625 * (a[x](f) - 33) +\n 614125 * (a[x](f + 1) - 33) +\n 7225 * (a[x](f + 2) - 33) +\n 85 * (a[x](f + 3) - 33) +\n (a[x](f + 4) - 33)),\n e.push(w & (d >> 24), w & (d >> 16), w & (d >> 8), w & d);\n return (\n (function(a, b) {\n for (var c = b; c > 0; c--) a.pop();\n })(e, c[l]),\n h.fromCharCode.apply(h, e)\n );\n };\n\n var ASCIIHexEncode = function(value) {\n return (\n value\n .split(\"\")\n .map(function(value) {\n return (\"0\" + value.charCodeAt().toString(16)).slice(-2);\n })\n .join(\"\") + \">\"\n );\n };\n\n var ASCIIHexDecode = function(value) {\n var regexCheckIfHex = new RegExp(/^([0-9A-Fa-f]{2})+$/);\n value = value.replace(/\\s/g, \"\");\n if (value.indexOf(\">\") !== -1) {\n value = value.substr(0, value.indexOf(\">\"));\n }\n if (value.length % 2) {\n value += \"0\";\n }\n if (regexCheckIfHex.test(value) === false) {\n return \"\";\n }\n var result = \"\";\n for (var i = 0; i < value.length; i += 2) {\n result += String.fromCharCode(\"0x\" + (value[i] + value[i + 1]));\n }\n return result;\n };\n /*\n var FlatePredictors = {\n None: 1,\n TIFF: 2,\n PNG_None: 10,\n PNG_Sub: 11,\n PNG_Up: 12,\n PNG_Average: 13,\n PNG_Paeth: 14,\n PNG_Optimum: 15\n };\n */\n\n var FlateEncode = function(data) {\n var arr = new Uint8Array(data.length);\n var i = data.length;\n while (i--) {\n arr[i] = data.charCodeAt(i);\n }\n arr = zlibSync(arr);\n data = arr.reduce(function(data, byte) {\n return data + String.fromCharCode(byte);\n }, \"\");\n return data;\n };\n\n jsPDFAPI.processDataByFilters = function(origData, filterChain) {\n \"use strict\";\n var i = 0;\n var data = origData || \"\";\n var reverseChain = [];\n filterChain = filterChain || [];\n\n if (typeof filterChain === \"string\") {\n filterChain = [filterChain];\n }\n\n for (i = 0; i < filterChain.length; i += 1) {\n switch (filterChain[i]) {\n case \"ASCII85Decode\":\n case \"/ASCII85Decode\":\n data = ASCII85Decode(data);\n reverseChain.push(\"/ASCII85Encode\");\n break;\n case \"ASCII85Encode\":\n case \"/ASCII85Encode\":\n data = ASCII85Encode(data);\n reverseChain.push(\"/ASCII85Decode\");\n break;\n case \"ASCIIHexDecode\":\n case \"/ASCIIHexDecode\":\n data = ASCIIHexDecode(data);\n reverseChain.push(\"/ASCIIHexEncode\");\n break;\n case \"ASCIIHexEncode\":\n case \"/ASCIIHexEncode\":\n data = ASCIIHexEncode(data);\n reverseChain.push(\"/ASCIIHexDecode\");\n break;\n case \"FlateEncode\":\n case \"/FlateEncode\":\n data = FlateEncode(data);\n reverseChain.push(\"/FlateDecode\");\n break;\n default:\n throw new Error(\n 'The filter: \"' + filterChain[i] + '\" is not implemented'\n );\n }\n }\n\n return { data: data, reverseChain: reverseChain.reverse().join(\" \") };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2018 Erik Koopmans\n * Released under the MIT License.\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { normalizeFontFace } from \"../libs/fontFace.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF html PlugIn\n *\n * @name html\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadHtml2Canvas() {\n return (function() {\n if (globalObject[\"html2canvas\"]) {\n return Promise.resolve(globalObject[\"html2canvas\"]);\n }\n\n return import(\"html2canvas\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load html2canvas: \" + e));\n })\n .then(function(html2canvas) {\n return html2canvas.default ? html2canvas.default : html2canvas;\n });\n }\n\n function loadDomPurify() {\n return (function() {\n if (globalObject[\"DOMPurify\"]) {\n return Promise.resolve(globalObject[\"DOMPurify\"]);\n }\n\n return import(\"dompurify\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load dompurify: \" + e));\n })\n .then(function(dompurify) {\n return dompurify.default ? dompurify.default : dompurify;\n });\n }\n\n /**\n * Determine the type of a variable/object.\n *\n * @private\n * @ignore\n */\n var objType = function(obj) {\n var type = typeof obj;\n if (type === \"undefined\") return \"undefined\";\n else if (type === \"string\" || obj instanceof String) return \"string\";\n else if (type === \"number\" || obj instanceof Number) return \"number\";\n else if (type === \"function\" || obj instanceof Function) return \"function\";\n else if (!!obj && obj.constructor === Array) return \"array\";\n else if (obj && obj.nodeType === 1) return \"element\";\n else if (type === \"object\") return \"object\";\n else return \"unknown\";\n };\n\n /**\n * Create an HTML element with optional className, innerHTML, and style.\n *\n * @private\n * @ignore\n */\n var createElement = function(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n if (opt.innerHTML && opt.dompurify) {\n el.innerHTML = opt.dompurify.sanitize(opt.innerHTML);\n }\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n return el;\n };\n\n /**\n * Deep-clone a node and preserve contents/properties.\n *\n * @private\n * @ignore\n */\n var cloneNode = function(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone =\n node.nodeType === 3\n ? document.createTextNode(node.nodeValue)\n : node.cloneNode(false);\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (\n javascriptEnabled === true ||\n child.nodeType !== 1 ||\n child.nodeName !== \"SCRIPT\"\n ) {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === \"CANVAS\") {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext(\"2d\").drawImage(node, 0, 0);\n } else if (node.nodeName === \"TEXTAREA\" || node.nodeName === \"SELECT\") {\n clone.value = node.value;\n }\n\n // Preserve the node's scroll position when it loads.\n clone.addEventListener(\n \"load\",\n function() {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n },\n true\n );\n }\n\n // Return the cloned node.\n return clone;\n };\n\n /* ----- CONSTRUCTOR ----- */\n\n var Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(\n Worker.convert(Promise.resolve()),\n JSON.parse(JSON.stringify(Worker.template))\n );\n var self = Worker.convert(Promise.resolve(), root);\n\n // Set progress, optional settings, and return.\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n };\n\n // Boilerplate for subclassing Promise.\n Worker.prototype = Object.create(Promise.prototype);\n Worker.prototype.constructor = Worker;\n\n // Converts/casts promises into Workers.\n Worker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n };\n\n Worker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null,\n callback: function() {}\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: \"file.pdf\",\n margin: [0, 0, 0, 0],\n enableLinks: true,\n x: 0,\n y: 0,\n html2canvas: {},\n jsPDF: {},\n backgroundColor: \"transparent\"\n }\n };\n\n /* ----- FROM / TO ----- */\n\n Worker.prototype.from = function from(src, type) {\n function getType(src) {\n switch (objType(src)) {\n case \"string\":\n return \"string\";\n case \"element\":\n return src.nodeName.toLowerCase() === \"canvas\" ? \"canvas\" : \"element\";\n default:\n return \"unknown\";\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n switch (type) {\n case \"string\":\n return this.then(loadDomPurify).then(function(dompurify) {\n return this.set({\n src: createElement(\"div\", {\n innerHTML: src,\n dompurify: dompurify\n })\n });\n });\n case \"element\":\n return this.set({ src: src });\n case \"canvas\":\n return this.set({ canvas: src });\n case \"img\":\n return this.set({ img: src });\n default:\n return this.error(\"Unknown source type.\");\n }\n });\n };\n\n Worker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case \"container\":\n return this.toContainer();\n case \"canvas\":\n return this.toCanvas();\n case \"img\":\n return this.toImg();\n case \"pdf\":\n return this.toPdf();\n default:\n return this.error(\"Invalid target.\");\n }\n };\n\n Worker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [\n function checkSrc() {\n return (\n this.prop.src || this.error(\"Cannot duplicate - no source HTML.\")\n );\n },\n function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }\n ];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: \"fixed\",\n overflow: \"hidden\",\n zIndex: 1000,\n left: \"-100000px\",\n right: 0,\n bottom: 0,\n top: 0\n };\n var containerCSS = {\n position: \"relative\",\n display: \"inline-block\",\n width:\n (typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.windowWidth\n : Math.max(\n this.prop.src.clientWidth,\n this.prop.src.scrollWidth,\n this.prop.src.offsetWidth\n )) + \"px\",\n left: 0,\n right: 0,\n top: 0,\n margin: \"auto\",\n backgroundColor: this.opt.backgroundColor\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n var source = cloneNode(\n this.prop.src,\n this.opt.html2canvas.javascriptEnabled\n );\n\n if (source.tagName === \"BODY\") {\n containerCSS.height =\n Math.max(\n document.body.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.clientHeight,\n document.documentElement.scrollHeight,\n document.documentElement.offsetHeight\n ) + \"px\";\n }\n\n this.prop.overlay = createElement(\"div\", {\n className: \"html2pdf__overlay\",\n style: overlayCSS\n });\n this.prop.container = createElement(\"div\", {\n className: \"html2pdf__container\",\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.container.firstChild.appendChild(\n createElement(\"div\", {\n style: {\n clear: \"both\",\n border: \"0 none transparent\",\n margin: 0,\n padding: 0,\n height: 0\n }\n })\n );\n this.prop.container.style.float = \"none\";\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n this.prop.container.firstChild.style.position = \"relative\";\n this.prop.container.height =\n Math.max(\n this.prop.container.firstChild.clientHeight,\n this.prop.container.firstChild.scrollHeight,\n this.prop.container.firstChild.offsetHeight\n ) + \"px\";\n });\n };\n\n Worker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toCanvas_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n\n return html2canvas(this.prop.container, options);\n })\n .then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toContext2d = function toContext2d() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContainer() {\n return (\n document.body.contains(this.prop.container) || this.toContainer()\n );\n }\n ];\n\n // Fulfill prereqs then create the canvas.\n return this.thenList(prereqs)\n .then(loadHtml2Canvas)\n .then(function toContext2d_main(html2canvas) {\n // Handle old-fashioned 'onrendered' argument.\n\n var pdf = this.opt.jsPDF;\n var fontFaces = this.opt.fontFaces;\n\n var scale =\n typeof this.opt.width === \"number\" &&\n !isNaN(this.opt.width) &&\n typeof this.opt.windowWidth === \"number\" &&\n !isNaN(this.opt.windowWidth)\n ? this.opt.width / this.opt.windowWidth\n : 1;\n\n var options = Object.assign(\n {\n async: true,\n allowTaint: true,\n scale: scale,\n scrollX: this.opt.scrollX || 0,\n scrollY: this.opt.scrollY || 0,\n backgroundColor: \"#ffffff\",\n imageTimeout: 15000,\n logging: true,\n proxy: null,\n removeContainer: true,\n foreignObjectRendering: false,\n useCORS: false\n },\n this.opt.html2canvas\n );\n delete options.onrendered;\n\n pdf.context2d.autoPaging =\n typeof this.opt.autoPaging === \"undefined\"\n ? true\n : this.opt.autoPaging;\n pdf.context2d.posX = this.opt.x;\n pdf.context2d.posY = this.opt.y;\n pdf.context2d.margin = this.opt.margin;\n pdf.context2d.fontFaces = fontFaces;\n\n if (fontFaces) {\n for (var i = 0; i < fontFaces.length; ++i) {\n var font = fontFaces[i];\n var src = font.src.find(function(src) {\n return src.format === \"truetype\";\n });\n\n if (src) {\n pdf.addFont(src.url, font.ref.name, font.ref.style);\n }\n }\n }\n\n options.windowHeight = options.windowHeight || 0;\n options.windowHeight =\n options.windowHeight == 0\n ? Math.max(\n this.prop.container.clientHeight,\n this.prop.container.scrollHeight,\n this.prop.container.offsetHeight\n )\n : options.windowHeight;\n\n pdf.context2d.save(true);\n return html2canvas(this.prop.container, options);\n })\n .then(function toContext2d_post(canvas) {\n this.opt.jsPDF.context2d.restore(true);\n\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function() {};\n onRendered(canvas);\n\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n };\n\n Worker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [\n function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL(\n \"image/\" + this.opt.image.type,\n this.opt.image.quality\n );\n this.prop.img = document.createElement(\"img\");\n this.prop.img.src = imgData;\n });\n };\n\n Worker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [\n function checkContext2d() {\n return this.toContext2d();\n }\n //function checkCanvas() { return this.prop.canvas || this.toCanvas(); }\n ];\n\n // Fulfill prereqs then create the image.\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n this.prop.pdf = this.prop.pdf || this.opt.jsPDF;\n });\n };\n\n /* ----- OUTPUT / SAVE ----- */\n\n Worker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || \"pdf\";\n if (src.toLowerCase() === \"img\" || src.toLowerCase() === \"image\") {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n };\n\n Worker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n };\n\n Worker.prototype.outputImg = function outputImg(type) {\n // Set up function prerequisites.\n var prereqs = [\n function checkImg() {\n return this.prop.img || this.toImg();\n }\n ];\n\n // Fulfill prereqs then perform the appropriate output.\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case \"img\":\n return this.prop.img;\n case \"datauristring\":\n case \"dataurlstring\":\n return this.prop.img.src;\n case \"datauri\":\n case \"dataurl\":\n return (document.location.href = this.prop.img.src);\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n };\n\n Worker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs)\n .set(filename ? { filename: filename } : null)\n .then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n };\n\n Worker.prototype.doCallback = function doCallback() {\n // Set up function prerequisites.\n var prereqs = [\n function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }\n ];\n\n // Fulfill prereqs, update the filename (if provided), and save the PDF.\n return this.thenList(prereqs).then(function doCallback_main() {\n this.prop.callback(this.prop.pdf);\n });\n };\n\n /* ----- SET / GET ----- */\n\n Worker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n\n // Silently ignore invalid or empty input.\n if (objType(opt) !== \"object\") {\n return this;\n }\n\n // Build an array of setter functions to queue.\n var fns = Object.keys(opt || {}).map(function(key) {\n if (key in Worker.template.prop) {\n // Set pre-defined properties.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n switch (key) {\n case \"margin\":\n return this.setMargin.bind(this, opt.margin);\n case \"jsPDF\":\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n case \"pageSize\":\n return this.setPageSize.bind(this, opt.pageSize);\n default:\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n }\n }, this);\n\n // Set properties within the promise chain.\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n };\n\n Worker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n };\n\n Worker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property.\n switch (objType(margin)) {\n case \"number\":\n margin = [margin, margin, margin, margin];\n // eslint-disable-next-line no-fallthrough\n case \"array\":\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n if (margin.length === 4) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n default:\n return this.error(\"Invalid margin array.\");\n }\n\n // Set the margin property, then update pageSize.\n this.opt.margin = margin;\n }).then(this.setPageSize);\n };\n\n Worker.prototype.setPageSize = function setPageSize(pageSize) {\n function toPx(val, k) {\n return Math.floor(((val * k) / 72) * 96);\n }\n\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jsPDF.getPageSize(this.opt.jsPDF);\n\n // Add 'inner' field if not present.\n if (!pageSize.hasOwnProperty(\"inner\")) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: toPx(pageSize.inner.width, pageSize.k),\n height: toPx(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n }\n\n // Attach pageSize to this.\n this.prop.pageSize = pageSize;\n });\n };\n\n Worker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state;\n\n // Return this for command chaining.\n return this;\n };\n\n Worker.prototype.updateProgress = function updateProgress(\n val,\n state,\n n,\n stack\n ) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(\n val ? this.progress.val + val : null,\n state ? state : null,\n n ? this.progress.n + n : null,\n stack ? this.progress.stack.concat(stack) : null\n );\n };\n\n /* ----- PROMISE MAPPING ----- */\n\n Worker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n\n return this.thenCore(onFulfilled, onRejected, function then_main(\n onFulfilled,\n onRejected\n ) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then\n .call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n })\n .then(onFulfilled, onRejected)\n .then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n };\n\n Worker.prototype.thenCore = function thenCore(\n onFulfilled,\n onRejected,\n thenBase\n ) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then;\n\n // Wrap `this` for encapsulation and bind it to the promise handlers.\n var self = this;\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n if (onRejected) {\n onRejected = onRejected.bind(self);\n }\n\n // Cast self into a Promise to avoid polyfills recursively defining `then`.\n var isNative =\n Promise.toString().indexOf(\"[native code]\") !== -1 &&\n Promise.name === \"Promise\";\n var selfPromise = isNative\n ? self\n : Worker.convert(Object.assign({}, self), Promise.prototype);\n\n // Return the promise, after casting it into a Worker and preserving props.\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n };\n\n Worker.prototype.thenExternal = function thenExternal(\n onFulfilled,\n onRejected\n ) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n };\n\n Worker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n };\n\n Worker.prototype[\"catch\"] = function(onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n var returnVal = Promise.prototype[\"catch\"].call(this, onRejected);\n return Worker.convert(returnVal, this);\n };\n\n Worker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype[\"catch\"].call(this, onRejected);\n };\n\n Worker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n };\n\n /* ----- ALIASES ----- */\n\n Worker.prototype.using = Worker.prototype.set;\n Worker.prototype.saveAs = Worker.prototype.save;\n Worker.prototype.export = Worker.prototype.output;\n Worker.prototype.run = Worker.prototype.then;\n\n // Get dimensions of a PDF page, as determined by jsPDF.\n jsPDF.getPageSize = function(orientation, unit, format) {\n // Decode options object\n if (typeof orientation === \"object\") {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n }\n\n // Default options\n unit = unit || \"mm\";\n format = format || \"a4\";\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\n var format_as_string = (\"\" + format).toLowerCase();\n\n // Size in pt of various paper formats\n var pageFormats = {\n a0: [2383.94, 3370.39],\n a1: [1683.78, 2383.94],\n a2: [1190.55, 1683.78],\n a3: [841.89, 1190.55],\n a4: [595.28, 841.89],\n a5: [419.53, 595.28],\n a6: [297.64, 419.53],\n a7: [209.76, 297.64],\n a8: [147.4, 209.76],\n a9: [104.88, 147.4],\n a10: [73.7, 104.88],\n b0: [2834.65, 4008.19],\n b1: [2004.09, 2834.65],\n b2: [1417.32, 2004.09],\n b3: [1000.63, 1417.32],\n b4: [708.66, 1000.63],\n b5: [498.9, 708.66],\n b6: [354.33, 498.9],\n b7: [249.45, 354.33],\n b8: [175.75, 249.45],\n b9: [124.72, 175.75],\n b10: [87.87, 124.72],\n c0: [2599.37, 3676.54],\n c1: [1836.85, 2599.37],\n c2: [1298.27, 1836.85],\n c3: [918.43, 1298.27],\n c4: [649.13, 918.43],\n c5: [459.21, 649.13],\n c6: [323.15, 459.21],\n c7: [229.61, 323.15],\n c8: [161.57, 229.61],\n c9: [113.39, 161.57],\n c10: [79.37, 113.39],\n dl: [311.81, 623.62],\n letter: [612, 792],\n \"government-letter\": [576, 756],\n legal: [612, 1008],\n \"junior-legal\": [576, 360],\n ledger: [1224, 792],\n tabloid: [792, 1224],\n \"credit-card\": [153, 243]\n };\n\n var k;\n // Unit conversion\n switch (unit) {\n case \"pt\":\n k = 1;\n break;\n case \"mm\":\n k = 72 / 25.4;\n break;\n case \"cm\":\n k = 72 / 2.54;\n break;\n case \"in\":\n k = 72;\n break;\n case \"px\":\n k = 72 / 96;\n break;\n case \"pc\":\n k = 12;\n break;\n case \"em\":\n k = 12;\n break;\n case \"ex\":\n k = 6;\n break;\n default:\n throw \"Invalid unit: \" + unit;\n }\n var pageHeight = 0;\n var pageWidth = 0;\n\n // Dimensions are stored as user units and converted to points on output\n if (pageFormats.hasOwnProperty(format_as_string)) {\n pageHeight = pageFormats[format_as_string][1] / k;\n pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n pageHeight = format[1];\n pageWidth = format[0];\n } catch (err) {\n throw new Error(\"Invalid format: \" + format);\n }\n }\n\n var tmp;\n // Handle page orientation\n if (orientation === \"p\" || orientation === \"portrait\") {\n orientation = \"p\";\n if (pageWidth > pageHeight) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === \"l\" || orientation === \"landscape\") {\n orientation = \"l\";\n if (pageHeight > pageWidth) {\n tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw \"Invalid orientation: \" + orientation;\n }\n\n // Return information (k is the unit conversion ratio from pts)\n var info = {\n width: pageWidth,\n height: pageHeight,\n unit: unit,\n k: k,\n orientation: orientation\n };\n return info;\n };\n\n /**\n * @typedef FontFace\n *\n * The font-face type implements an interface similar to that of the font-face CSS rule,\n * and is used by jsPDF to match fonts when the font property of CanvasRenderingContext2D\n * is updated.\n *\n * All properties expect values similar to those in the font-face CSS rule. A difference\n * is the font-family, which do not need to be enclosed in double-quotes when containing\n * spaces like in CSS.\n *\n * @property {string} family The name of the font-family.\n * @property {string|undefined} style The style that this font-face defines, e.g. 'italic'.\n * @property {string|number|undefined} weight The weight of the font, either as a string or a number (400, 500, 600, e.g.)\n * @property {string|undefined} stretch The stretch of the font, e.g. condensed, normal, expanded.\n * @property {Object[]} src A list of URLs from where fonts of various formats can be fetched.\n * @property {string} [src] url A URL to a font of a specific format.\n * @property {string} [src] format Format of the font referenced by the URL.\n */\n\n /**\n * Generate a PDF from an HTML element or string using.\n *\n * @name html\n * @function\n * @param {HTMLElement|string} source The source HTMLElement or a string containing HTML.\n * @param {Object} [options] Collection of settings\n * @param {function} [options.callback] The mandatory callback-function gets as first parameter the current jsPDF instance\n * @param {(number|number[])=} [options.margin] Page margins [top, right, bottom, left]. Default is 0.\n * @param {(boolean|'slice'|'text')=} [options.autoPaging] The auto paging mode.\n *
      \n *
    • \n * false: Auto paging is disabled.\n *
    • \n *
    • \n * true or 'slice': Will cut shapes or text chunks across page breaks. Will possibly\n * slice text in half, making it difficult to read.\n *
    • \n *
    • \n * 'text': Trys not to cut text in half across page breaks. Works best for documents consisting\n * mostly of a single column of text.\n *
    • \n *
    \n * Default is true.\n * @param {string} [options.filename] name of the file\n * @param {HTMLOptionImage} [options.image] image settings when converting HTML to image\n * @param {Html2CanvasOptions} [options.html2canvas] html2canvas options\n * @param {FontFace[]} [options.fontFaces] A list of font-faces to match when resolving fonts. Fonts will be added to the PDF based on the specified URL. If omitted, the font match algorithm falls back to old algorithm.\n * @param {jsPDF} [options.jsPDF] jsPDF instance\n * @param {number=} [options.x] x position on the PDF document in jsPDF units.\n * @param {number=} [options.y] y position on the PDF document in jsPDF units.\n * @param {number=} [options.width] The target width in the PDF document in jsPDF units. The rendered element will be\n * scaled such that it fits into the specified width. Has no effect if either the html2canvas.scale is\n * specified or the windowWidth option is NOT specified.\n * @param {number=} [options.windowWidth] The window width in CSS pixels. In contrast to the\n * html2canvas.windowWidth option, this option affects the actual container size while rendering and\n * does NOT affect CSS media queries. This option only has an effect, if the width option is also specified.\n *\n * @example\n * var doc = new jsPDF();\n *\n * doc.html(document.body, {\n * callback: function (doc) {\n * doc.save();\n * },\n * x: 10,\n * y: 10\n * });\n */\n jsPDFAPI.html = function(src, options) {\n \"use strict\";\n\n options = options || {};\n options.callback = options.callback || function() {};\n options.html2canvas = options.html2canvas || {};\n options.html2canvas.canvas = options.html2canvas.canvas || this.canvas;\n options.jsPDF = options.jsPDF || this;\n options.fontFaces = options.fontFaces\n ? options.fontFaces.map(normalizeFontFace)\n : null;\n\n // Create a new worker with the given options.\n var worker = new Worker(options);\n\n if (!options.worker) {\n // If worker is not set to true, perform the traditional 'simple' operation.\n return worker.from(src).doCallback();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Outline PlugIn\n *\n * Generates a PDF Outline\n * @name outline\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namesOid;\n //var destsGoto = [];\n\n jsPDFAPI.events.push([\n \"postPutResources\",\n function() {\n var pdf = this;\n var rx = /^(\\d+) 0 obj$/;\n\n // Write action goto objects for each page\n // this.outline.destsGoto = [];\n // for (var i = 0; i < totalPages; i++) {\n // var id = pdf.internal.newObject();\n // this.outline.destsGoto.push(id);\n // pdf.internal.write(\"<> endobj\");\n // }\n //\n // for (var i = 0; i < dests.length; i++) {\n // pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0\n // R\");\n // }\n //\n if (this.outline.root.children.length > 0) {\n var lines = pdf.outline.render().split(/\\r\\n/);\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n var m = rx.exec(line);\n if (m != null) {\n var oid = m[1];\n pdf.internal.newObjectDeferredBegin(oid, false);\n }\n pdf.internal.write(line);\n }\n }\n\n // This code will write named destination for each page reference\n // (page_1, etc)\n if (this.outline.createNamedDestinations) {\n var totalPages = this.internal.pages.length;\n // WARNING: this assumes jsPDF starts on page 3 and pageIDs\n // follow 5, 7, 9, etc\n // Write destination objects for each page\n var dests = [];\n for (var i = 0; i < totalPages; i++) {\n var id = pdf.internal.newObject();\n dests.push(id);\n var info = pdf.internal.getPageInfo(i + 1);\n pdf.internal.write(\n \"<< /D[\" + info.objId + \" 0 R /XYZ null null null]>> endobj\"\n );\n }\n\n // assign a name for each destination\n var names2Oid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Names [ \");\n for (var i = 0; i < dests.length; i++) {\n pdf.internal.write(\"(page_\" + (i + 1) + \")\" + dests[i] + \" 0 R\");\n }\n pdf.internal.write(\" ] >>\", \"endobj\");\n\n // var kids = pdf.internal.newObject();\n // pdf.internal.write('<< /Kids [ ' + names2Oid + ' 0 R');\n // pdf.internal.write(' ] >>', 'endobj');\n\n namesOid = pdf.internal.newObject();\n pdf.internal.write(\"<< /Dests \" + names2Oid + \" 0 R\");\n pdf.internal.write(\">>\", \"endobj\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"putCatalog\",\n function() {\n var pdf = this;\n if (pdf.outline.root.children.length > 0) {\n pdf.internal.write(\n \"/Outlines\",\n this.outline.makeRef(this.outline.root)\n );\n if (this.outline.createNamedDestinations) {\n pdf.internal.write(\"/Names \" + namesOid + \" 0 R\");\n }\n // Open with Bookmarks showing\n // pdf.internal.write(\"/PageMode /UseOutlines\");\n }\n }\n ]);\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n var pdf = this;\n\n pdf.outline = {\n createNamedDestinations: false,\n root: {\n children: []\n }\n };\n\n /**\n * Options: pageNumber\n */\n pdf.outline.add = function(parent, title, options) {\n var item = {\n title: title,\n options: options,\n children: []\n };\n if (parent == null) {\n parent = this.root;\n }\n parent.children.push(item);\n return item;\n };\n\n pdf.outline.render = function() {\n this.ctx = {};\n this.ctx.val = \"\";\n this.ctx.pdf = pdf;\n\n this.genIds_r(this.root);\n this.renderRoot(this.root);\n this.renderItems(this.root);\n\n return this.ctx.val;\n };\n\n pdf.outline.genIds_r = function(node) {\n node.id = pdf.internal.newObjectDeferred();\n for (var i = 0; i < node.children.length; i++) {\n this.genIds_r(node.children[i]);\n }\n };\n\n pdf.outline.renderRoot = function(node) {\n this.objStart(node);\n this.line(\"/Type /Outlines\");\n if (node.children.length > 0) {\n this.line(\"/First \" + this.makeRef(node.children[0]));\n this.line(\n \"/Last \" + this.makeRef(node.children[node.children.length - 1])\n );\n }\n this.line(\n \"/Count \" +\n this.count_r(\n {\n count: 0\n },\n node\n )\n );\n this.objEnd();\n };\n\n pdf.outline.renderItems = function(node) {\n var getVerticalCoordinateString = this.ctx.pdf.internal\n .getVerticalCoordinateString;\n for (var i = 0; i < node.children.length; i++) {\n var item = node.children[i];\n this.objStart(item);\n\n this.line(\"/Title \" + this.makeString(item.title));\n\n this.line(\"/Parent \" + this.makeRef(node));\n if (i > 0) {\n this.line(\"/Prev \" + this.makeRef(node.children[i - 1]));\n }\n if (i < node.children.length - 1) {\n this.line(\"/Next \" + this.makeRef(node.children[i + 1]));\n }\n if (item.children.length > 0) {\n this.line(\"/First \" + this.makeRef(item.children[0]));\n this.line(\n \"/Last \" + this.makeRef(item.children[item.children.length - 1])\n );\n }\n\n var count = (this.count = this.count_r(\n {\n count: 0\n },\n item\n ));\n if (count > 0) {\n this.line(\"/Count \" + count);\n }\n\n if (item.options) {\n if (item.options.pageNumber) {\n // Explicit Destination\n //WARNING this assumes page ids are 3,5,7, etc.\n var info = pdf.internal.getPageInfo(item.options.pageNumber);\n this.line(\n \"/Dest \" +\n \"[\" +\n info.objId +\n \" 0 R /XYZ 0 \" +\n getVerticalCoordinateString(0) +\n \" 0]\"\n );\n // this line does not work on all clients (pageNumber instead of page ref)\n //this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.getHeight() + ' 0]');\n\n // Named Destination\n // this.line('/Dest (page_' + (item.options.pageNumber) + ')');\n\n // Action Destination\n // var id = pdf.internal.newObject();\n // pdf.internal.write('<> endobj');\n // this.line('/A ' + id + ' 0 R' );\n }\n }\n this.objEnd();\n }\n for (var z = 0; z < node.children.length; z++) {\n this.renderItems(node.children[z]);\n }\n };\n\n pdf.outline.line = function(text) {\n this.ctx.val += text + \"\\r\\n\";\n };\n\n pdf.outline.makeRef = function(node) {\n return node.id + \" 0 R\";\n };\n\n pdf.outline.makeString = function(val) {\n return \"(\" + pdf.internal.pdfEscape(val) + \")\";\n };\n\n pdf.outline.objStart = function(node) {\n this.ctx.val += \"\\r\\n\" + node.id + \" 0 obj\" + \"\\r\\n<<\\r\\n\";\n };\n\n pdf.outline.objEnd = function() {\n this.ctx.val += \">> \\r\\n\" + \"endobj\" + \"\\r\\n\";\n };\n\n pdf.outline.count_r = function(ctx, node) {\n for (var i = 0; i < node.children.length; i++) {\n ctx.count++;\n this.count_r(ctx, node.children[i]);\n }\n return ctx.count;\n };\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF jpeg Support PlugIn\n *\n * @name jpeg_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * 0xc0 (SOF) Huffman - Baseline DCT\n * 0xc1 (SOF) Huffman - Extended sequential DCT\n * 0xc2 Progressive DCT (SOF2)\n * 0xc3 Spatial (sequential) lossless (SOF3)\n * 0xc4 Differential sequential DCT (SOF5)\n * 0xc5 Differential progressive DCT (SOF6)\n * 0xc6 Differential spatial (SOF7)\n * 0xc7\n */\n var markers = [0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7];\n\n //takes a string imgData containing the raw bytes of\n //a jpeg image and returns [width, height]\n //Algorithm from: http://www.64lines.com/jpeg-width-height\n var getJpegInfo = function(imgData) {\n var width, height, numcomponents;\n var blockLength = imgData.charCodeAt(4) * 256 + imgData.charCodeAt(5);\n var len = imgData.length;\n var result = { width: 0, height: 0, numcomponents: 1 };\n for (var i = 4; i < len; i += 2) {\n i += blockLength;\n if (markers.indexOf(imgData.charCodeAt(i + 1)) !== -1) {\n height = imgData.charCodeAt(i + 5) * 256 + imgData.charCodeAt(i + 6);\n width = imgData.charCodeAt(i + 7) * 256 + imgData.charCodeAt(i + 8);\n numcomponents = imgData.charCodeAt(i + 9);\n result = { width: width, height: height, numcomponents: numcomponents };\n break;\n } else {\n blockLength =\n imgData.charCodeAt(i + 2) * 256 + imgData.charCodeAt(i + 3);\n }\n }\n return result;\n };\n\n /**\n * @ignore\n */\n jsPDFAPI.processJPEG = function(\n data,\n index,\n alias,\n compression,\n dataAsBinaryString,\n colorSpace\n ) {\n var filter = this.decode.DCT_DECODE,\n bpc = 8,\n dims,\n result = null;\n\n if (\n typeof data === \"string\" ||\n this.__addimage__.isArrayBuffer(data) ||\n this.__addimage__.isArrayBufferView(data)\n ) {\n // if we already have a stored binary string rep use that\n data = dataAsBinaryString || data;\n data = this.__addimage__.isArrayBuffer(data)\n ? new Uint8Array(data)\n : data;\n data = this.__addimage__.isArrayBufferView(data)\n ? this.__addimage__.arrayBufferToBinaryString(data)\n : data;\n\n dims = getJpegInfo(data);\n switch (dims.numcomponents) {\n case 1:\n colorSpace = this.color_spaces.DEVICE_GRAY;\n break;\n case 4:\n colorSpace = this.color_spaces.DEVICE_CMYK;\n break;\n case 3:\n colorSpace = this.color_spaces.DEVICE_RGB;\n break;\n }\n\n result = {\n data: data,\n width: dims.width,\n height: dims.height,\n colorSpace: colorSpace,\n bitsPerComponent: bpc,\n filter: filter,\n index: index,\n alias: alias\n };\n }\n return result;\n };\n})(jsPDF.API);\n","// Generated by CoffeeScript 1.4.0\n\n/**\n * @license\n * PNG.js\n * Copyright (c) 2011 Devon Govett\n * MIT LICENSE\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this\n * software and associated documentation files (the \"Software\"), to deal in the Software\n * without restriction, including without limitation the rights to use, copy, modify, merge,\n * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n * to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or\n * substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nimport { unzlibSync } from \"./fflate.js\";\nimport { globalObject } from \"./globalObject.js\";\n\nvar PNG = (function() {\n var APNG_BLEND_OP_OVER,\n APNG_BLEND_OP_SOURCE,\n APNG_DISPOSE_OP_BACKGROUND,\n APNG_DISPOSE_OP_NONE,\n APNG_DISPOSE_OP_PREVIOUS,\n makeImage,\n scratchCanvas,\n scratchCtx;\n\n APNG_DISPOSE_OP_NONE = 0;\n\n APNG_DISPOSE_OP_BACKGROUND = 1;\n\n APNG_DISPOSE_OP_PREVIOUS = 2;\n\n APNG_BLEND_OP_SOURCE = 0;\n\n APNG_BLEND_OP_OVER = 1;\n\n function PNG(data) {\n var chunkSize,\n colors,\n palLen,\n delayDen,\n delayNum,\n frame,\n i,\n index,\n key,\n section,\n palShort,\n text,\n _i,\n _j,\n _ref;\n this.data = data;\n this.pos = 8;\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.animation = null;\n this.text = {};\n frame = null;\n while (true) {\n chunkSize = this.readUInt32();\n section = function() {\n var _i, _results;\n _results = [];\n for (i = _i = 0; _i < 4; i = ++_i) {\n _results.push(String.fromCharCode(this.data[this.pos++]));\n }\n return _results;\n }\n .call(this)\n .join(\"\");\n switch (section) {\n case \"IHDR\":\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n case \"acTL\":\n this.animation = {\n numFrames: this.readUInt32(),\n numPlays: this.readUInt32() || Infinity,\n frames: []\n };\n break;\n case \"PLTE\":\n this.palette = this.read(chunkSize);\n break;\n case \"fcTL\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.pos += 4;\n frame = {\n width: this.readUInt32(),\n height: this.readUInt32(),\n xOffset: this.readUInt32(),\n yOffset: this.readUInt32()\n };\n delayNum = this.readUInt16();\n delayDen = this.readUInt16() || 100;\n frame.delay = (1000 * delayNum) / delayDen;\n frame.disposeOp = this.data[this.pos++];\n frame.blendOp = this.data[this.pos++];\n frame.data = [];\n break;\n case \"IDAT\":\n case \"fdAT\":\n if (section === \"fdAT\") {\n this.pos += 4;\n chunkSize -= 4;\n }\n data = (frame != null ? frame.data : void 0) || this.imgData;\n for (\n i = _i = 0;\n 0 <= chunkSize ? _i < chunkSize : _i > chunkSize;\n i = 0 <= chunkSize ? ++_i : --_i\n ) {\n data.push(this.data[this.pos++]);\n }\n break;\n case \"tRNS\":\n this.transparency = {};\n switch (this.colorType) {\n case 3:\n palLen = this.palette.length / 3;\n this.transparency.indexed = this.read(chunkSize);\n if (this.transparency.indexed.length > palLen)\n throw new Error(\"More transparent colors than palette size\");\n /*\n * According to the PNG spec trns should be increased to the same size as palette if shorter\n */\n //palShort = 255 - this.transparency.indexed.length;\n palShort = palLen - this.transparency.indexed.length;\n if (palShort > 0) {\n for (\n i = _j = 0;\n 0 <= palShort ? _j < palShort : _j > palShort;\n i = 0 <= palShort ? ++_j : --_j\n ) {\n this.transparency.indexed.push(255);\n }\n }\n break;\n case 0:\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n case 2:\n this.transparency.rgb = this.read(chunkSize);\n }\n break;\n case \"tEXt\":\n text = this.read(chunkSize);\n index = text.indexOf(0);\n key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(\n String,\n text.slice(index + 1)\n );\n break;\n case \"IEND\":\n if (frame) {\n this.animation.frames.push(frame);\n }\n this.colors = function() {\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n return 1;\n case 2:\n case 6:\n return 3;\n }\n }.call(this);\n this.hasAlphaChannel = (_ref = this.colorType) === 4 || _ref === 6;\n colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n this.colorSpace = function() {\n switch (this.colors) {\n case 1:\n return \"DeviceGray\";\n case 3:\n return \"DeviceRGB\";\n }\n }.call(this);\n this.imgData = new Uint8Array(this.imgData);\n return;\n default:\n this.pos += chunkSize;\n }\n this.pos += 4;\n if (this.pos > this.data.length) {\n throw new Error(\"Incomplete or corrupt PNG file\");\n }\n }\n }\n\n PNG.prototype.read = function(bytes) {\n var i, _i, _results;\n _results = [];\n for (\n i = _i = 0;\n 0 <= bytes ? _i < bytes : _i > bytes;\n i = 0 <= bytes ? ++_i : --_i\n ) {\n _results.push(this.data[this.pos++]);\n }\n return _results;\n };\n\n PNG.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.data[this.pos++] << 24;\n b2 = this.data[this.pos++] << 16;\n b3 = this.data[this.pos++] << 8;\n b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n PNG.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.data[this.pos++] << 8;\n b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n PNG.prototype.decodePixels = function(data) {\n var pixelBytes = this.pixelBitlength / 8;\n var fullPixels = new Uint8Array(this.width * this.height * pixelBytes);\n var pos = 0;\n var _this = this;\n\n if (data == null) {\n data = this.imgData;\n }\n if (data.length === 0) {\n return new Uint8Array(0);\n }\n\n data = unzlibSync(data);\n function pass(x0, y0, dx, dy) {\n var abyte,\n c,\n col,\n i,\n left,\n length,\n p,\n pa,\n paeth,\n pb,\n pc,\n pixels,\n row,\n scanlineLength,\n upper,\n upperLeft,\n _i,\n _j,\n _k,\n _l,\n _m;\n var w = Math.ceil((_this.width - x0) / dx),\n h = Math.ceil((_this.height - y0) / dy);\n var isFull = _this.width == w && _this.height == h;\n scanlineLength = pixelBytes * w;\n pixels = isFull ? fullPixels : new Uint8Array(scanlineLength * h);\n length = data.length;\n row = 0;\n c = 0;\n while (row < h && pos < length) {\n switch (data[pos++]) {\n case 0:\n for (i = _i = 0; _i < scanlineLength; i = _i += 1) {\n pixels[c++] = data[pos++];\n }\n break;\n case 1:\n for (i = _j = 0; _j < scanlineLength; i = _j += 1) {\n abyte = data[pos++];\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n pixels[c++] = (abyte + left) % 256;\n }\n break;\n case 2:\n for (i = _k = 0; _k < scanlineLength; i = _k += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (upper + abyte) % 256;\n }\n break;\n case 3:\n for (i = _l = 0; _l < scanlineLength; i = _l += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n upper =\n row &&\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n pixels[c++] = (abyte + Math.floor((left + upper) / 2)) % 256;\n }\n break;\n case 4:\n for (i = _m = 0; _m < scanlineLength; i = _m += 1) {\n abyte = data[pos++];\n col = (i - (i % pixelBytes)) / pixelBytes;\n left = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper =\n pixels[\n (row - 1) * scanlineLength +\n col * pixelBytes +\n (i % pixelBytes)\n ];\n upperLeft =\n col &&\n pixels[\n (row - 1) * scanlineLength +\n (col - 1) * pixelBytes +\n (i % pixelBytes)\n ];\n }\n p = left + upper - upperLeft;\n pa = Math.abs(p - left);\n pb = Math.abs(p - upper);\n pc = Math.abs(p - upperLeft);\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n pixels[c++] = (abyte + paeth) % 256;\n }\n break;\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n if (!isFull) {\n var fullPos = ((y0 + row * dy) * _this.width + x0) * pixelBytes;\n var partPos = row * scanlineLength;\n for (i = 0; i < w; i += 1) {\n for (var j = 0; j < pixelBytes; j += 1)\n fullPixels[fullPos++] = pixels[partPos++];\n fullPos += (dx - 1) * pixelBytes;\n }\n }\n row++;\n }\n }\n if (_this.interlaceMethod == 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n /* NOTE these seem to follow the pattern:\n * pass(x, 0, 2*x, 2*x);\n * pass(0, x, x, 2*x);\n * with x being 4, 2, 1.\n */\n pass(4, 0, 8, 8); // 2\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1);\n }\n return fullPixels;\n };\n\n PNG.prototype.decodePalette = function() {\n var c, i, length, palette, pos, ret, transparency, _i, _ref, _ref1;\n palette = this.palette;\n transparency = this.transparency.indexed || [];\n ret = new Uint8Array((transparency.length || 0) + palette.length);\n pos = 0;\n length = palette.length;\n c = 0;\n for (i = _i = 0, _ref = length; _i < _ref; i = _i += 3) {\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (_ref1 = transparency[c++]) != null ? _ref1 : 255;\n }\n return ret;\n };\n\n PNG.prototype.copyToImageData = function(imageData, pixels) {\n var alpha, colors, data, i, input, j, k, length, palette, v, _ref;\n colors = this.colors;\n palette = null;\n alpha = this.hasAlphaChannel;\n if (this.palette.length) {\n palette =\n (_ref = this._decodedPalette) != null\n ? _ref\n : (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n data = imageData.data || imageData;\n length = data.length;\n input = palette || pixels;\n i = j = 0;\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n PNG.prototype.decode = function() {\n var ret;\n ret = new Uint8Array(this.width * this.height * 4);\n this.copyToImageData(ret, this.decodePixels());\n return ret;\n };\n\n var hasBrowserCanvas = function() {\n if (Object.prototype.toString.call(globalObject) === \"[object Window]\") {\n try {\n scratchCanvas = globalObject.document.createElement(\"canvas\");\n scratchCtx = scratchCanvas.getContext(\"2d\");\n } catch (e) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n hasBrowserCanvas();\n\n makeImage = function(imageData) {\n if (hasBrowserCanvas() === true) {\n var img;\n scratchCtx.width = imageData.width;\n scratchCtx.height = imageData.height;\n scratchCtx.clearRect(0, 0, imageData.width, imageData.height);\n scratchCtx.putImageData(imageData, 0, 0);\n img = new Image();\n img.src = scratchCanvas.toDataURL();\n return img;\n }\n throw new Error(\"This method requires a Browser with Canvas-capability.\");\n };\n\n PNG.prototype.decodeFrames = function(ctx) {\n var frame, i, imageData, pixels, _i, _len, _ref, _results;\n if (!this.animation) {\n return;\n }\n _ref = this.animation.frames;\n _results = [];\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n frame = _ref[i];\n imageData = ctx.createImageData(frame.width, frame.height);\n pixels = this.decodePixels(new Uint8Array(frame.data));\n this.copyToImageData(imageData, pixels);\n frame.imageData = imageData;\n _results.push((frame.image = makeImage(imageData)));\n }\n return _results;\n };\n\n PNG.prototype.renderFrame = function(ctx, number) {\n var frame, frames, prev;\n frames = this.animation.frames;\n frame = frames[number];\n prev = frames[number - 1];\n if (number === 0) {\n ctx.clearRect(0, 0, this.width, this.height);\n }\n if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_BACKGROUND\n ) {\n ctx.clearRect(prev.xOffset, prev.yOffset, prev.width, prev.height);\n } else if (\n (prev != null ? prev.disposeOp : void 0) === APNG_DISPOSE_OP_PREVIOUS\n ) {\n ctx.putImageData(prev.imageData, prev.xOffset, prev.yOffset);\n }\n if (frame.blendOp === APNG_BLEND_OP_SOURCE) {\n ctx.clearRect(frame.xOffset, frame.yOffset, frame.width, frame.height);\n }\n return ctx.drawImage(frame.image, frame.xOffset, frame.yOffset);\n };\n\n PNG.prototype.animate = function(ctx) {\n var doFrame,\n frameNumber,\n frames,\n numFrames,\n numPlays,\n _ref,\n _this = this;\n frameNumber = 0;\n (_ref = this.animation),\n (numFrames = _ref.numFrames),\n (frames = _ref.frames),\n (numPlays = _ref.numPlays);\n return (doFrame = function() {\n var f, frame;\n f = frameNumber++ % numFrames;\n frame = frames[f];\n _this.renderFrame(ctx, f);\n if (numFrames > 1 && frameNumber / numFrames < numPlays) {\n return (_this.animation._timeout = setTimeout(doFrame, frame.delay));\n }\n })();\n };\n\n PNG.prototype.stopAnimation = function() {\n var _ref;\n return clearTimeout(\n (_ref = this.animation) != null ? _ref._timeout : void 0\n );\n };\n\n PNG.prototype.render = function(canvas) {\n var ctx, data;\n if (canvas._png) {\n canvas._png.stopAnimation();\n }\n canvas._png = this;\n canvas.width = this.width;\n canvas.height = this.height;\n ctx = canvas.getContext(\"2d\");\n if (this.animation) {\n this.decodeFrames(ctx);\n return this.animate(ctx);\n } else {\n data = ctx.createImageData(this.width, this.height);\n this.copyToImageData(data, this.decodePixels());\n return ctx.putImageData(data, 0, 0);\n }\n };\n\n return PNG;\n})();\n\nexport { PNG };\n","/** @license\n * MIT license.\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF split_text_to_size plugin\n *\n * @name split_text_to_size\n * @module\n */\n(function(API) {\n \"use strict\";\n /**\n * Returns an array of length matching length of the 'word' string, with each\n * cell occupied by the width of the char in that position.\n *\n * @name getCharWidthsArray\n * @function\n * @param {string} text\n * @param {Object} options\n * @returns {Array}\n */\n var getCharWidthsArray = (API.getCharWidthsArray = function(text, options) {\n options = options || {};\n\n var activeFont = options.font || this.internal.getFont();\n var fontSize = options.fontSize || this.internal.getFontSize();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n\n var widths = options.widths\n ? options.widths\n : activeFont.metadata.Unicode.widths;\n var widthsFractionOf = widths.fof ? widths.fof : 1;\n var kerning = options.kerning\n ? options.kerning\n : activeFont.metadata.Unicode.kerning;\n var kerningFractionOf = kerning.fof ? kerning.fof : 1;\n var doKerning = options.doKerning === false ? false : true;\n var kerningValue = 0;\n\n var i;\n var length = text.length;\n var char_code;\n var prior_char_code = 0; //for kerning\n var default_char_width = widths[0] || widthsFractionOf;\n var output = [];\n\n for (i = 0; i < length; i++) {\n char_code = text.charCodeAt(i);\n\n if (typeof activeFont.metadata.widthOfString === \"function\") {\n output.push(\n (activeFont.metadata.widthOfGlyph(\n activeFont.metadata.characterToGlyph(char_code)\n ) +\n charSpace * (1000 / fontSize) || 0) / 1000\n );\n } else {\n if (\n doKerning &&\n typeof kerning[char_code] === \"object\" &&\n !isNaN(parseInt(kerning[char_code][prior_char_code], 10))\n ) {\n kerningValue =\n kerning[char_code][prior_char_code] / kerningFractionOf;\n } else {\n kerningValue = 0;\n }\n output.push(\n (widths[char_code] || default_char_width) / widthsFractionOf +\n kerningValue\n );\n }\n prior_char_code = char_code;\n }\n\n return output;\n });\n\n /**\n * Returns a widths of string in a given font, if the font size is set as 1 point.\n *\n * In other words, this is \"proportional\" value. For 1 unit of font size, the length\n * of the string will be that much.\n *\n * Multiply by font size to get actual width in *points*\n * Then divide by 72 to get inches or divide by (72/25.6) to get 'mm' etc.\n *\n * @name getStringUnitWidth\n * @public\n * @function\n * @param {string} text\n * @param {string} options\n * @returns {number} result\n */\n var getStringUnitWidth = (API.getStringUnitWidth = function(text, options) {\n options = options || {};\n\n var fontSize = options.fontSize || this.internal.getFontSize();\n var font = options.font || this.internal.getFont();\n var charSpace = options.charSpace || this.internal.getCharSpace();\n var result = 0;\n\n if (API.processArabic) {\n text = API.processArabic(text);\n }\n\n if (typeof font.metadata.widthOfString === \"function\") {\n result =\n font.metadata.widthOfString(text, fontSize, charSpace) / fontSize;\n } else {\n result = getCharWidthsArray\n .apply(this, arguments)\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n }\n return result;\n });\n\n /**\n returns array of lines\n */\n var splitLongWord = function(word, widths_array, firstLineMaxLen, maxLen) {\n var answer = [];\n\n // 1st, chop off the piece that can fit on the hanging line.\n var i = 0,\n l = word.length,\n workingLen = 0;\n while (i !== l && workingLen + widths_array[i] < firstLineMaxLen) {\n workingLen += widths_array[i];\n i++;\n }\n // this is first line.\n answer.push(word.slice(0, i));\n\n // 2nd. Split the rest into maxLen pieces.\n var startOfLine = i;\n workingLen = 0;\n while (i !== l) {\n if (workingLen + widths_array[i] > maxLen) {\n answer.push(word.slice(startOfLine, i));\n workingLen = 0;\n startOfLine = i;\n }\n workingLen += widths_array[i];\n i++;\n }\n if (startOfLine !== i) {\n answer.push(word.slice(startOfLine, i));\n }\n\n return answer;\n };\n\n // Note, all sizing inputs for this function must be in \"font measurement units\"\n // By default, for PDF, it's \"point\".\n var splitParagraphIntoLines = function(text, maxlen, options) {\n // at this time works only on Western scripts, ones with space char\n // separating the words. Feel free to expand.\n\n if (!options) {\n options = {};\n }\n\n var line = [],\n lines = [line],\n line_length = options.textIndent || 0,\n separator_length = 0,\n current_word_length = 0,\n word,\n widths_array,\n words = text.split(\" \"),\n spaceCharWidth = getCharWidthsArray.apply(this, [\" \", options])[0],\n i,\n l,\n tmp,\n lineIndent;\n\n if (options.lineIndent === -1) {\n lineIndent = words[0].length + 2;\n } else {\n lineIndent = options.lineIndent || 0;\n }\n if (lineIndent) {\n var pad = Array(lineIndent).join(\" \"),\n wrds = [];\n words.map(function(wrd) {\n wrd = wrd.split(/\\s*\\n/);\n if (wrd.length > 1) {\n wrds = wrds.concat(\n wrd.map(function(wrd, idx) {\n return (idx && wrd.length ? \"\\n\" : \"\") + wrd;\n })\n );\n } else {\n wrds.push(wrd[0]);\n }\n });\n words = wrds;\n lineIndent = getStringUnitWidth.apply(this, [pad, options]);\n }\n\n for (i = 0, l = words.length; i < l; i++) {\n var force = 0;\n\n word = words[i];\n if (lineIndent && word[0] == \"\\n\") {\n word = word.substr(1);\n force = 1;\n }\n widths_array = getCharWidthsArray.apply(this, [word, options]);\n current_word_length = widths_array.reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n\n if (\n line_length + separator_length + current_word_length > maxlen ||\n force\n ) {\n if (current_word_length > maxlen) {\n // this happens when you have space-less long URLs for example.\n // we just chop these to size. We do NOT insert hiphens\n tmp = splitLongWord.apply(this, [\n word,\n widths_array,\n maxlen - (line_length + separator_length),\n maxlen\n ]);\n // first line we add to existing line object\n line.push(tmp.shift()); // it's ok to have extra space indicator there\n // last line we make into new line object\n line = [tmp.pop()];\n // lines in the middle we apped to lines object as whole lines\n while (tmp.length) {\n lines.push([tmp.shift()]); // single fragment occupies whole line\n }\n current_word_length = widths_array\n .slice(word.length - (line[0] ? line[0].length : 0))\n .reduce(function(pv, cv) {\n return pv + cv;\n }, 0);\n } else {\n // just put it on a new line\n line = [word];\n }\n\n // now we attach new line to lines\n lines.push(line);\n line_length = current_word_length + lineIndent;\n separator_length = spaceCharWidth;\n } else {\n line.push(word);\n\n line_length += separator_length + current_word_length;\n separator_length = spaceCharWidth;\n }\n }\n\n var postProcess;\n if (lineIndent) {\n postProcess = function(ln, idx) {\n return (idx ? pad : \"\") + ln.join(\" \");\n };\n } else {\n postProcess = function(ln) {\n return ln.join(\" \");\n };\n }\n\n return lines.map(postProcess);\n };\n\n /**\n * Splits a given string into an array of strings. Uses 'size' value\n * (in measurement units declared as default for the jsPDF instance)\n * and the font's \"widths\" and \"Kerning\" tables, where available, to\n * determine display length of a given string for a given font.\n *\n * We use character's 100% of unit size (height) as width when Width\n * table or other default width is not available.\n *\n * @name splitTextToSize\n * @public\n * @function\n * @param {string} text Unencoded, regular JavaScript (Unicode, UTF-16 / UCS-2) string.\n * @param {number} size Nominal number, measured in units default to this instance of jsPDF.\n * @param {Object} options Optional flags needed for chopper to do the right thing.\n * @returns {Array} array Array with strings chopped to size.\n */\n API.splitTextToSize = function(text, maxlen, options) {\n \"use strict\";\n\n options = options || {};\n\n var fsize = options.fontSize || this.internal.getFontSize(),\n newOptions = function(options) {\n var widths = {\n 0: 1\n },\n kerning = {};\n\n if (!options.widths || !options.kerning) {\n var f = this.internal.getFont(options.fontName, options.fontStyle),\n encoding = \"Unicode\";\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE\n // Actual JavaScript-native String's 16bit char codes used.\n // no multi-byte logic here\n\n if (f.metadata[encoding]) {\n return {\n widths: f.metadata[encoding].widths || widths,\n kerning: f.metadata[encoding].kerning || kerning\n };\n } else {\n return {\n font: f.metadata,\n fontSize: this.internal.getFontSize(),\n charSpace: this.internal.getCharSpace()\n };\n }\n } else {\n return {\n widths: options.widths,\n kerning: options.kerning\n };\n }\n }.call(this, options);\n\n // first we split on end-of-line chars\n var paragraphs;\n if (Array.isArray(text)) {\n paragraphs = text;\n } else {\n paragraphs = String(text).split(/\\r?\\n/);\n }\n\n // now we convert size (max length of line) into \"font size units\"\n // at present time, the \"font size unit\" is always 'point'\n // 'proportional' means, \"in proportion to font size\"\n var fontUnit_maxLen = (1.0 * this.internal.scaleFactor * maxlen) / fsize;\n // at this time, fsize is always in \"points\" regardless of the default measurement unit of the doc.\n // this may change in the future?\n // until then, proportional_maxlen is likely to be in 'points'\n\n // If first line is to be indented (shorter or longer) than maxLen\n // we indicate that by using CSS-style \"text-indent\" option.\n // here it's in font units too (which is likely 'points')\n // it can be negative (which makes the first line longer than maxLen)\n newOptions.textIndent = options.textIndent\n ? (options.textIndent * 1.0 * this.internal.scaleFactor) / fsize\n : 0;\n newOptions.lineIndent = options.lineIndent;\n\n var i,\n l,\n output = [];\n for (i = 0, l = paragraphs.length; i < l; i++) {\n output = output.concat(\n splitParagraphIntoLines.apply(this, [\n paragraphs[i],\n fontUnit_maxLen,\n newOptions\n ])\n );\n }\n\n return output;\n };\n})(jsPDF.API);\n","/**\n * @license\n * (c) Dean McNamee , 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\n\n\"use strict\";\n\nimport { console } from \"./console.js\";\n\nfunction GifWriter(buf, width, height, gopts) {\n var p = 0;\n\n var gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors - 1)) {\n throw new Error(\n \"Invalid code/color length, must be power of 2 and 2 .. 256.\"\n );\n }\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n if (global_palette !== null) {\n var gp_num_colors = check_palette_and_num_colors(global_palette);\n while ((gp_num_colors >>= 1)) ++gp_num_colors_pow2;\n gp_num_colors = 1 << gp_num_colors_pow2;\n --gp_num_colors_pow2;\n if (gopts.background !== undefined) {\n background = gopts.background;\n if (background >= gp_num_colors)\n throw new Error(\"Background index out of range.\");\n // The GIF spec states that a background index of 0 should be ignored, so\n // this is probably a mistake and you really want to set it to another\n // slot in the palette. But actually in the end most browsers, etc end\n // up ignoring this almost completely (including for dispose background).\n if (background === 0)\n throw new Error(\"Background index explicitly passed as 0.\");\n }\n }\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = (width >> 8) & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = (height >> 8) & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | gp_num_colors_pow2; // Global Color Table Flag. // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n // - Global Color Table\n if (global_palette !== null) {\n for (var i = 0, il = global_palette.length; i < il; ++i) {\n var rgb = global_palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535)\n throw new Error(\"Loop count invalid.\");\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = (loop_count >> 8) & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function(x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535)\n throw new Error(\"x/y invalid.\");\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535)\n throw new Error(\"Width/Height invalid.\");\n\n if (indexed_pixels.length < w * h)\n throw new Error(\"Not enough pixels for the frame size.\");\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null)\n throw new Error(\"Must supply either a local or global palette.\");\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while ((num_colors >>= 1)) ++min_code_size;\n num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3)\n // 4-7 is reserved.\n throw new Error(\"Disposal out of range.\");\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors)\n throw new Error(\"Transparent color index.\");\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = (disposal << 2) | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = (delay >> 8) & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = (x >> 8) & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = (y >> 8) & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = (w >> 8) & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = (h >> 8) & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | (min_code_size - 1) : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = (rgb >> 16) & 0xff;\n buf[p++] = (rgb >> 8) & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(\n buf,\n p,\n min_code_size < 2 ? 2 : min_code_size,\n indexed_pixels\n );\n\n return p;\n };\n\n this.end = function() {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n this.getOutputBuffer = function() {\n return buf;\n };\n this.setOutputBuffer = function(v) {\n buf = v;\n };\n this.getOutputBufferPosition = function() {\n return p;\n };\n this.setOutputBufferPosition = function(v) {\n p = v;\n };\n}\n\n// Main compression routine, palette indexes -> LZW code stream.\n// |index_stream| must have at least one entry.\nfunction GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = (ib_code << 8) | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n}\n\nfunction GifReader(buf) {\n var p = 0;\n\n // - Header (GIF87a or GIF89a).\n if (\n buf[p++] !== 0x47 ||\n buf[p++] !== 0x49 ||\n buf[p++] !== 0x46 ||\n buf[p++] !== 0x38 ||\n ((buf[p++] + 1) & 0xfd) !== 0x38 ||\n buf[p++] !== 0x61\n ) {\n throw new Error(\"Invalid GIF 87a/89a header.\");\n }\n\n // - Logical Screen Descriptor.\n var width = buf[p++] | (buf[p++] << 8);\n var height = buf[p++] | (buf[p++] << 8);\n var pf0 = buf[p++]; // .\n var global_palette_flag = pf0 >> 7;\n var num_global_colors_pow2 = pf0 & 0x7;\n var num_global_colors = 1 << (num_global_colors_pow2 + 1);\n var background = buf[p++];\n buf[p++]; // Pixel aspect ratio (unused?).\n\n var global_palette_offset = null;\n var global_palette_size = null;\n\n if (global_palette_flag) {\n global_palette_offset = p;\n global_palette_size = num_global_colors;\n p += num_global_colors * 3; // Seek past palette.\n }\n\n var no_eof = true;\n\n var frames = [];\n\n var delay = 0;\n var transparent_index = null;\n var disposal = 0; // 0 - No disposal specified.\n var loop_count = null;\n\n this.width = width;\n this.height = height;\n\n while (no_eof && p < buf.length) {\n switch (buf[p++]) {\n case 0x21: // Graphics Control Extension Block\n switch (buf[p++]) {\n case 0xff: // Application specific block\n // Try if it's a Netscape block (with animation loop counter).\n if (\n buf[p] !== 0x0b || // 21 FF already read, check block size.\n // NETSCAPE2.0\n (buf[p + 1] == 0x4e &&\n buf[p + 2] == 0x45 &&\n buf[p + 3] == 0x54 &&\n buf[p + 4] == 0x53 &&\n buf[p + 5] == 0x43 &&\n buf[p + 6] == 0x41 &&\n buf[p + 7] == 0x50 &&\n buf[p + 8] == 0x45 &&\n buf[p + 9] == 0x32 &&\n buf[p + 10] == 0x2e &&\n buf[p + 11] == 0x30 &&\n // Sub-block\n buf[p + 12] == 0x03 &&\n buf[p + 13] == 0x01 &&\n buf[p + 16] == 0)\n ) {\n p += 14;\n loop_count = buf[p++] | (buf[p++] << 8);\n p++; // Skip terminator.\n } else {\n // We don't know what it is, just try to get past it.\n p += 12;\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n }\n break;\n\n case 0xf9: // Graphics Control Extension\n if (buf[p++] !== 0x4 || buf[p + 4] !== 0)\n throw new Error(\"Invalid graphics extension block.\");\n var pf1 = buf[p++];\n delay = buf[p++] | (buf[p++] << 8);\n transparent_index = buf[p++];\n if ((pf1 & 1) === 0) transparent_index = null;\n disposal = (pf1 >> 2) & 0x7;\n p++; // Skip terminator.\n break;\n\n case 0xfe: // Comment Extension.\n while (true) {\n // Seek through subblocks.\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n // console.log(buf.slice(p, p+block_size).toString('ascii'));\n p += block_size;\n }\n break;\n\n default:\n throw new Error(\n \"Unknown graphic control label: 0x\" + buf[p - 1].toString(16)\n );\n }\n break;\n\n case 0x2c: // Image Descriptor.\n var x = buf[p++] | (buf[p++] << 8);\n var y = buf[p++] | (buf[p++] << 8);\n var w = buf[p++] | (buf[p++] << 8);\n var h = buf[p++] | (buf[p++] << 8);\n var pf2 = buf[p++];\n var local_palette_flag = pf2 >> 7;\n var interlace_flag = (pf2 >> 6) & 1;\n var num_local_colors_pow2 = pf2 & 0x7;\n var num_local_colors = 1 << (num_local_colors_pow2 + 1);\n var palette_offset = global_palette_offset;\n var palette_size = global_palette_size;\n var has_local_palette = false;\n if (local_palette_flag) {\n var has_local_palette = true;\n palette_offset = p; // Override with local palette.\n palette_size = num_local_colors;\n p += num_local_colors * 3; // Seek past palette.\n }\n\n var data_offset = p;\n\n p++; // codesize\n while (true) {\n var block_size = buf[p++];\n // Bad block size (ex: undefined from an out of bounds read).\n if (!(block_size >= 0)) throw Error(\"Invalid block size\");\n if (block_size === 0) break; // 0 size is terminator\n p += block_size;\n }\n\n frames.push({\n x: x,\n y: y,\n width: w,\n height: h,\n has_local_palette: has_local_palette,\n palette_offset: palette_offset,\n palette_size: palette_size,\n data_offset: data_offset,\n data_length: p - data_offset,\n transparent_index: transparent_index,\n interlaced: !!interlace_flag,\n delay: delay,\n disposal: disposal\n });\n break;\n\n case 0x3b: // Trailer Marker (end of file).\n no_eof = false;\n break;\n\n default:\n throw new Error(\"Unknown gif block: 0x\" + buf[p - 1].toString(16));\n break;\n }\n }\n\n this.numFrames = function() {\n return frames.length;\n };\n\n this.loopCount = function() {\n return loop_count;\n };\n\n this.frameInfo = function(frame_num) {\n if (frame_num < 0 || frame_num >= frames.length)\n throw new Error(\"Frame index out of range.\");\n return frames[frame_num];\n };\n\n this.decodeAndBlitFrameBGRA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = b;\n pixels[op++] = g;\n pixels[op++] = r;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n\n // I will go to copy and paste hell one day...\n this.decodeAndBlitFrameRGBA = function(frame_num, pixels) {\n var frame = this.frameInfo(frame_num);\n var num_pixels = frame.width * frame.height;\n var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices.\n GifReaderLZWOutputIndexStream(\n buf,\n frame.data_offset,\n index_stream,\n num_pixels\n );\n var palette_offset = frame.palette_offset;\n\n // NOTE(deanm): It seems to be much faster to compare index to 256 than\n // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in\n // the profile, not sure if it's related to using a Uint8Array.\n var trans = frame.transparent_index;\n if (trans === null) trans = 256;\n\n // We are possibly just blitting to a portion of the entire frame.\n // That is a subrect within the framerect, so the additional pixels\n // must be skipped over after we finished a scanline.\n var framewidth = frame.width;\n var framestride = width - framewidth;\n var xleft = framewidth; // Number of subrect pixels left in scanline.\n\n // Output indices of the top left and bottom right corners of the subrect.\n var opbeg = (frame.y * width + frame.x) * 4;\n var opend = ((frame.y + frame.height) * width + frame.x) * 4;\n var op = opbeg;\n\n var scanstride = framestride * 4;\n\n // Use scanstride to skip past the rows when interlacing. This is skipping\n // 7 rows for the first two passes, then 3 then 1.\n if (frame.interlaced === true) {\n scanstride += width * 4 * 7; // Pass 1.\n }\n\n var interlaceskip = 8; // Tracking the row interval in the current pass.\n\n for (var i = 0, il = index_stream.length; i < il; ++i) {\n var index = index_stream[i];\n\n if (xleft === 0) {\n // Beginning of new scan line\n op += scanstride;\n xleft = framewidth;\n if (op >= opend) {\n // Catch the wrap to switch passes when interlacing.\n scanstride = framestride * 4 + width * 4 * (interlaceskip - 1);\n // interlaceskip / 2 * 4 is interlaceskip << 1.\n op = opbeg + (framewidth + framestride) * (interlaceskip << 1);\n interlaceskip >>= 1;\n }\n }\n\n if (index === trans) {\n op += 4;\n } else {\n var r = buf[palette_offset + index * 3];\n var g = buf[palette_offset + index * 3 + 1];\n var b = buf[palette_offset + index * 3 + 2];\n pixels[op++] = r;\n pixels[op++] = g;\n pixels[op++] = b;\n pixels[op++] = 255;\n }\n --xleft;\n }\n };\n}\n\nfunction GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) {\n var min_code_size = code_stream[p++];\n\n var clear_code = 1 << min_code_size;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n // NOTE: This shares the same name as the encoder, but has a different\n // meaning here. Here this masks each code coming from the code stream.\n var code_mask = (1 << cur_code_size) - 1;\n var cur_shift = 0;\n var cur = 0;\n\n var op = 0; // Output pointer.\n\n var subblock_size = code_stream[p++];\n\n // TODO(deanm): Would using a TypedArray be any faster? At least it would\n // solve the fast mode / backing store uncertainty.\n // var code_table = Array(4096);\n var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits.\n\n var prev_code = null; // Track code-1.\n\n while (true) {\n // Read up to two bytes, making sure we always 12-bits for max sized code.\n while (cur_shift < 16) {\n if (subblock_size === 0) break; // No more data to be read.\n\n cur |= code_stream[p++] << cur_shift;\n cur_shift += 8;\n\n if (subblock_size === 1) {\n // Never let it get to 0 to hold logic above.\n subblock_size = code_stream[p++]; // Next subblock.\n } else {\n --subblock_size;\n }\n }\n\n // TODO(deanm): We should never really get here, we should have received\n // and EOI.\n if (cur_shift < cur_code_size) break;\n\n var code = cur & code_mask;\n cur >>= cur_code_size;\n cur_shift -= cur_code_size;\n\n // TODO(deanm): Maybe should check that the first code was a clear code,\n // at least this is what you're supposed to do. But actually our encoder\n // now doesn't emit a clear code first anyway.\n if (code === clear_code) {\n // We don't actually have to clear the table. This could be a good idea\n // for greater error checking, but we don't really do any anyway. We\n // will just track it with next_code and overwrite old entries.\n\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_mask = (1 << cur_code_size) - 1;\n\n // Don't update prev_code ?\n prev_code = null;\n continue;\n } else if (code === eoi_code) {\n break;\n }\n\n // We have a similar situation as the decoder, where we want to store\n // variable length entries (code table entries), but we want to do in a\n // faster manner than an array of arrays. The code below stores sort of a\n // linked list within the code table, and then \"chases\" through it to\n // construct the dictionary entries. When a new entry is created, just the\n // last byte is stored, and the rest (prefix) of the entry is only\n // referenced by its table entry. Then the code chases through the\n // prefixes until it reaches a single byte code. We have to chase twice,\n // first to compute the length, and then to actually copy the data to the\n // output (backwards, since we know the length). The alternative would be\n // storing something in an intermediate stack, but that doesn't make any\n // more sense. I implemented an approach where it also stored the length\n // in the code table, although it's a bit tricky because you run out of\n // bits (12 + 12 + 8), but I didn't measure much improvements (the table\n // entries are generally not the long). Even when I created benchmarks for\n // very long table entries the complexity did not seem worth it.\n // The code table stores the prefix entry in 12 bits and then the suffix\n // byte in 8 bits, so each entry is 20 bits.\n\n var chase_code = code < next_code ? code : prev_code;\n\n // Chase what we will output, either {CODE} or {CODE-1}.\n var chase_length = 0;\n var chase = chase_code;\n while (chase > clear_code) {\n chase = code_table[chase] >> 8;\n ++chase_length;\n }\n\n var k = chase;\n\n var op_end = op + chase_length + (chase_code !== code ? 1 : 0);\n if (op_end > output_length) {\n console.log(\"Warning, gif stream longer than expected.\");\n return;\n }\n\n // Already have the first byte from the chase, might as well write it fast.\n output[op++] = k;\n\n op += chase_length;\n var b = op; // Track pointer, writing backwards.\n\n if (chase_code !== code)\n // The case of emitting {CODE-1} + k.\n output[op++] = k;\n\n chase = chase_code;\n while (chase_length--) {\n chase = code_table[chase];\n output[--b] = chase & 0xff; // Write backwards.\n chase >>= 8; // Pull down to the prefix code.\n }\n\n if (prev_code !== null && next_code < 4096) {\n code_table[next_code++] = (prev_code << 8) | k;\n // TODO(deanm): Figure out this clearing vs code growth logic better. I\n // have an feeling that it should just happen somewhere else, for now it\n // is awkward between when we grow past the max and then hit a clear code.\n // For now just check if we hit the max 12-bits (then a clear code should\n // follow, also of course encoded in 12-bits).\n if (next_code >= code_mask + 1 && cur_code_size < 12) {\n ++cur_code_size;\n code_mask = (code_mask << 1) | 1;\n }\n }\n\n prev_code = code;\n }\n\n if (op !== output_length) {\n console.log(\"Warning, gif stream shorter than expected.\");\n }\n\n return output;\n}\n\nexport { GifReader, GifWriter };\n","/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*\nJPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009\n\nBasic GUI blocking jpeg encoder\n*/\n\nfunction JPEGEncoder(quality) {\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT;\n var UVDC_HT;\n var YAC_HT;\n var UVAC_HT;\n\n var bitcode = new Array(65535);\n var category = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n\n var std_dc_luminance_nrcodes = [\n 0,\n 0,\n 1,\n 5,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 3,\n 3,\n 2,\n 4,\n 3,\n 5,\n 5,\n 4,\n 4,\n 0,\n 0,\n 1,\n 0x7d\n ];\n var std_ac_luminance_values = [\n 0x01,\n 0x02,\n 0x03,\n 0x00,\n 0x04,\n 0x11,\n 0x05,\n 0x12,\n 0x21,\n 0x31,\n 0x41,\n 0x06,\n 0x13,\n 0x51,\n 0x61,\n 0x07,\n 0x22,\n 0x71,\n 0x14,\n 0x32,\n 0x81,\n 0x91,\n 0xa1,\n 0x08,\n 0x23,\n 0x42,\n 0xb1,\n 0xc1,\n 0x15,\n 0x52,\n 0xd1,\n 0xf0,\n 0x24,\n 0x33,\n 0x62,\n 0x72,\n 0x82,\n 0x09,\n 0x0a,\n 0x16,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x25,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x34,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe1,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf1,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n var std_dc_chrominance_nrcodes = [\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ];\n var std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes = [\n 0,\n 0,\n 2,\n 1,\n 2,\n 4,\n 4,\n 3,\n 4,\n 7,\n 5,\n 4,\n 4,\n 0,\n 1,\n 2,\n 0x77\n ];\n var std_ac_chrominance_values = [\n 0x00,\n 0x01,\n 0x02,\n 0x03,\n 0x11,\n 0x04,\n 0x05,\n 0x21,\n 0x31,\n 0x06,\n 0x12,\n 0x41,\n 0x51,\n 0x07,\n 0x61,\n 0x71,\n 0x13,\n 0x22,\n 0x32,\n 0x81,\n 0x08,\n 0x14,\n 0x42,\n 0x91,\n 0xa1,\n 0xb1,\n 0xc1,\n 0x09,\n 0x23,\n 0x33,\n 0x52,\n 0xf0,\n 0x15,\n 0x62,\n 0x72,\n 0xd1,\n 0x0a,\n 0x16,\n 0x24,\n 0x34,\n 0xe1,\n 0x25,\n 0xf1,\n 0x17,\n 0x18,\n 0x19,\n 0x1a,\n 0x26,\n 0x27,\n 0x28,\n 0x29,\n 0x2a,\n 0x35,\n 0x36,\n 0x37,\n 0x38,\n 0x39,\n 0x3a,\n 0x43,\n 0x44,\n 0x45,\n 0x46,\n 0x47,\n 0x48,\n 0x49,\n 0x4a,\n 0x53,\n 0x54,\n 0x55,\n 0x56,\n 0x57,\n 0x58,\n 0x59,\n 0x5a,\n 0x63,\n 0x64,\n 0x65,\n 0x66,\n 0x67,\n 0x68,\n 0x69,\n 0x6a,\n 0x73,\n 0x74,\n 0x75,\n 0x76,\n 0x77,\n 0x78,\n 0x79,\n 0x7a,\n 0x82,\n 0x83,\n 0x84,\n 0x85,\n 0x86,\n 0x87,\n 0x88,\n 0x89,\n 0x8a,\n 0x92,\n 0x93,\n 0x94,\n 0x95,\n 0x96,\n 0x97,\n 0x98,\n 0x99,\n 0x9a,\n 0xa2,\n 0xa3,\n 0xa4,\n 0xa5,\n 0xa6,\n 0xa7,\n 0xa8,\n 0xa9,\n 0xaa,\n 0xb2,\n 0xb3,\n 0xb4,\n 0xb5,\n 0xb6,\n 0xb7,\n 0xb8,\n 0xb9,\n 0xba,\n 0xc2,\n 0xc3,\n 0xc4,\n 0xc5,\n 0xc6,\n 0xc7,\n 0xc8,\n 0xc9,\n 0xca,\n 0xd2,\n 0xd3,\n 0xd4,\n 0xd5,\n 0xd6,\n 0xd7,\n 0xd8,\n 0xd9,\n 0xda,\n 0xe2,\n 0xe3,\n 0xe4,\n 0xe5,\n 0xe6,\n 0xe7,\n 0xe8,\n 0xe9,\n 0xea,\n 0xf2,\n 0xf3,\n 0xf4,\n 0xf5,\n 0xf6,\n 0xf7,\n 0xf8,\n 0xf9,\n 0xfa\n ];\n\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n t = Math.min(Math.max(t, 1), 255);\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n u = Math.min(Math.max(u, 1), 255);\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1.0,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1.0,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1.0 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n fdtbl_UV[k] = 1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0);\n k++;\n }\n }\n }\n\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n\n function initHuffmanTbl() {\n YDC_HT = computeHuffmanTbl(\n std_dc_luminance_nrcodes,\n std_dc_luminance_values\n );\n UVDC_HT = computeHuffmanTbl(\n std_dc_chrominance_nrcodes,\n std_dc_chrominance_values\n );\n YAC_HT = computeHuffmanTbl(\n std_ac_luminance_nrcodes,\n std_ac_luminance_values\n );\n UVAC_HT = computeHuffmanTbl(\n std_ac_chrominance_nrcodes,\n std_ac_chrominance_values\n );\n }\n\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n //Positive numbers\n for (var nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n //Negative numbers\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[(i + 256) >> 0] = 38470 * i;\n RGB_YUV_TABLE[(i + 512) >> 0] = 7471 * i + 0x8000;\n RGB_YUV_TABLE[(i + 768) >> 0] = -11059 * i;\n RGB_YUV_TABLE[(i + 1024) >> 0] = -21709 * i;\n RGB_YUV_TABLE[(i + 1280) >> 0] = 32768 * i + 0x807fff;\n RGB_YUV_TABLE[(i + 1536) >> 0] = -27439 * i;\n RGB_YUV_TABLE[(i + 1792) >> 0] = -5329 * i;\n }\n }\n\n // IO functions\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & (1 << posval)) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 0xff) {\n writeByte(0xff);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n\n function writeByte(value) {\n //byteout.push(clt[value]); // write char directly instead of converting later\n byteout.push(value);\n }\n\n function writeWord(value) {\n writeByte((value >> 8) & 0xff);\n writeByte(value & 0xff);\n }\n\n // DCT & quantization core\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n /* Pass 1: process rows. */\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n\n /* Even part */\n var tmp10 = tmp0 + tmp3; /* phase 2 */\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n\n data[dataOff] = tmp10 + tmp11; /* phase 3 */\n data[dataOff + 4] = tmp10 - tmp11;\n\n var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */\n data[dataOff + 2] = tmp13 + z1; /* phase 5 */\n data[dataOff + 6] = tmp13 - z1;\n\n /* Odd part */\n tmp10 = tmp4 + tmp5; /* phase 2 */\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */\n var z2 = 0.5411961 * tmp10 + z5; /* c2-c6 */\n var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */\n var z3 = tmp11 * 0.707106781; /* c4 */\n\n var z11 = tmp7 + z3; /* phase 5 */\n var z13 = tmp7 - z3;\n\n data[dataOff + 5] = z13 + z2; /* phase 6 */\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n\n dataOff += 8; /* advance pointer to next row */\n }\n\n /* Pass 2: process columns. */\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n\n /* Even part */\n var tmp10p2 = tmp0p2 + tmp3p2; /* phase 2 */\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n\n data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */\n data[dataOff + 16] = tmp13p2 + z1p2; /* phase 5 */\n data[dataOff + 48] = tmp13p2 - z1p2;\n\n /* Odd part */\n tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n\n /* The rotator is modified from fig 4-8 to avoid extra negations. */\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */\n var z2p2 = 0.5411961 * tmp10p2 + z5p2; /* c2-c6 */\n var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */\n var z3p2 = tmp11p2 * 0.707106781; /* c4 */\n\n var z11p2 = tmp7p2 + z3p2; /* phase 5 */\n var z13p2 = tmp7p2 - z3p2;\n\n data[dataOff + 40] = z13p2 + z2p2; /* phase 6 */\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n\n dataOff++; /* advance pointer to next column */\n }\n\n // Quantize/descale the coefficients\n var fDCTQuant;\n for (i = 0; i < I64; ++i) {\n // Apply the quantization and scaling factor & Round to nearest integer\n fDCTQuant = data[i] * fdtbl[i];\n outputfDCTQuant[i] =\n fDCTQuant > 0.0 ? (fDCTQuant + 0.5) | 0 : (fDCTQuant - 0.5) | 0;\n //outputfDCTQuant[i] = fround(fDCTQuant);\n }\n return outputfDCTQuant;\n }\n\n function writeAPP0() {\n writeWord(0xffe0); // marker\n writeWord(16); // length\n writeByte(0x4a); // J\n writeByte(0x46); // F\n writeByte(0x49); // I\n writeByte(0x46); // F\n writeByte(0); // = \"JFIF\",'\\0'\n writeByte(1); // versionhi\n writeByte(1); // versionlo\n writeByte(0); // xyunits\n writeWord(1); // xdensity\n writeWord(1); // ydensity\n writeByte(0); // thumbnwidth\n writeByte(0); // thumbnheight\n }\n\n function writeSOF0(width, height) {\n writeWord(0xffc0); // marker\n writeWord(17); // length, truecolor YUV JPG\n writeByte(8); // precision\n writeWord(height);\n writeWord(width);\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0x11); // HVY\n writeByte(0); // QTY\n writeByte(2); // IdU\n writeByte(0x11); // HVU\n writeByte(1); // QTU\n writeByte(3); // IdV\n writeByte(0x11); // HVV\n writeByte(1); // QTV\n }\n\n function writeDQT() {\n writeWord(0xffdb); // marker\n writeWord(132); // length\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n\n function writeDHT() {\n writeWord(0xffc4); // marker\n writeWord(0x01a2); // length\n\n writeByte(0); // HTYDCinfo\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n\n writeByte(0x10); // HTYACinfo\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n\n writeByte(1); // HTUDCinfo\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n\n writeByte(0x11); // HTUACinfo\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n\n function writeSOS() {\n writeWord(0xffda); // marker\n writeWord(12); // length\n writeByte(3); // nrofcomponents\n writeByte(1); // IdY\n writeByte(0); // HTY\n writeByte(2); // IdU\n writeByte(0x11); // HTU\n writeByte(3); // IdV\n writeByte(0x11); // HTV\n writeByte(0); // Ss\n writeByte(0x3f); // Se\n writeByte(0); // Bf\n }\n\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0x00];\n var M16zeroes = HTAC[0xf0];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n //ZigZag reorder\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n //Encode DC\n if (Diff == 0) {\n writeBits(HTDC[0]); // Diff might be 0\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category[pos]]);\n writeBits(bitcode[pos]);\n }\n //Encode ACs\n var end0pos = 63; // was const... which is crazy\n while (end0pos > 0 && DU[end0pos] == 0) {\n end0pos--;\n }\n //end0pos = first element in reverse order !=0\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n while (DU[i] == 0 && i <= end0pos) {\n ++i;\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 0xf;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category[pos]]);\n writeBits(bitcode[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n ///// ACHTUNG // 255\n clt[i] = sfcc(i);\n }\n }\n\n this.encode = function(\n image,\n quality // image data object\n ) {\n if (quality) setQuality(quality);\n\n // Initialize bit writer\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n\n // Add JPEG headers\n writeWord(0xffd8); // SOI\n writeAPP0();\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n\n // Encode 8x8 macroblocks\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n\n bytenew = 0;\n bytepos = 7;\n\n this.encode.displayName = \"_encode_\";\n\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n\n var quadWidth = width * 4;\n\n var x,\n y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n col = -1;\n row = 0;\n\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3; // /8\n col = (pos & 7) * 4; // %8\n p = start + row * quadWidth + col;\n\n if (y + row >= height) {\n // padding bottom\n p -= quadWidth * (y + 1 + row - height);\n }\n\n if (x + col >= quadWidth) {\n // padding right\n p -= x + col - quadWidth + 4;\n }\n\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n\n /* // calculate YUV values dynamically\n\t\t\t\t\tYDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80\n\t\t\t\t\tUDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));\n\t\t\t\t\tVDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));\n\t\t\t\t\t*/\n\n // use lookup table (slightly faster)\n YDU[pos] =\n ((RGB_YUV_TABLE[r] +\n RGB_YUV_TABLE[(g + 256) >> 0] +\n RGB_YUV_TABLE[(b + 512) >> 0]) >>\n 16) -\n 128;\n UDU[pos] =\n ((RGB_YUV_TABLE[(r + 768) >> 0] +\n RGB_YUV_TABLE[(g + 1024) >> 0] +\n RGB_YUV_TABLE[(b + 1280) >> 0]) >>\n 16) -\n 128;\n VDU[pos] =\n ((RGB_YUV_TABLE[(r + 1280) >> 0] +\n RGB_YUV_TABLE[(g + 1536) >> 0] +\n RGB_YUV_TABLE[(b + 1792) >> 0]) >>\n 16) -\n 128;\n }\n\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);\n x += 32;\n }\n y += 8;\n }\n\n ////////////////////////////////////////////////////////////////\n\n // Do the bit alignment of the EOI marker\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << (bytepos + 1)) - 1;\n writeBits(fillbits);\n }\n\n writeWord(0xffd9); //EOI\n\n return new Uint8Array(byteout);\n };\n\n function setQuality(quality) {\n quality = Math.min(Math.max(quality, 1), 100);\n\n if (currentQuality == quality) return; // don't recalc if unchanged\n\n var sf =\n quality < 50 ? Math.floor(5000 / quality) : Math.floor(200 - quality * 2);\n\n initQuantTables(sf);\n currentQuality = quality;\n //console.log('Quality set to: '+quality +'%');\n }\n\n function init() {\n quality = quality || 50;\n // Create tables\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n\n setQuality(quality);\n }\n init();\n}\n\nexport { JPEGEncoder };\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nimport { console } from \"./console.js\";\n\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.datav = new DataView(buffer.buffer);\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag =\n String.fromCharCode(this.buffer[0]) + String.fromCharCode(this.buffer[1]);\n this.pos += 2;\n if ([\"BM\", \"BA\", \"CI\", \"CP\", \"IC\", \"PT\"].indexOf(this.flag) === -1)\n throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseBGR();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.reserved = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.offset = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.headerSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.width = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.height = this.datav.getInt32(this.pos, true);\n this.pos += 4;\n this.planes = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.bitPP = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n this.compress = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.rawSize = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.hr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.vr = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.colors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n this.importantColors = this.datav.getUint32(this.pos, true);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var quad = this.datav.getUint8(this.pos++, true);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseBGR = function() {\n this.pos = this.offset;\n try {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Uint8Array(len);\n\n this[bitn]();\n } catch (e) {\n console.log(\"bit decode error:\" + e);\n }\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y;\n for (y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 8 * 4;\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[(b >> (7 - i)) & 0x1];\n this.data[location + i * 4] = rgb.blue;\n this.data[location + i * 4 + 1] = rgb.green;\n this.data[location + i * 4 + 2] = rgb.red;\n this.data[location + i * 4 + 3] = 0xff;\n } else {\n break;\n }\n }\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < xlen; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 2 * 4;\n\n var before = b >> 4;\n var after = b & 0x0f;\n\n var rgb = this.palette[before];\n this.data[location] = rgb.blue;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.red;\n this.data[location + 3] = 0xff;\n\n if (x * 2 + 1 >= this.width) break;\n\n rgb = this.palette[after];\n this.data[location + 4] = rgb.blue;\n this.data[location + 4 + 1] = rgb.green;\n this.data[location + 4 + 2] = rgb.red;\n this.data[location + 4 + 3] = 0xff;\n }\n\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function() {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var b = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = rgb.red;\n this.data[location + 1] = rgb.green;\n this.data[location + 2] = rgb.blue;\n this.data[location + 3] = 0xff;\n } else {\n this.data[location] = 0xff;\n this.data[location + 1] = 0xff;\n this.data[location + 2] = 0xff;\n this.data[location + 3] = 0xff;\n }\n }\n if (mode !== 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_5) / _1_5) * 255) | 0;\n var red = ((((B >> 10) & _1_5) / _1_5) * 255) | 0;\n var alpha = B >> 15 ? 0xff : 0x00;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w = this.width % 3;\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n var _111111 = parseInt(\"111111\", 2),\n _1_6 = _111111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var B = this.datav.getUint16(this.pos, true);\n this.pos += 2;\n var alpha = 0xff;\n var blue = (((B & _1_5) / _1_5) * 255) | 0;\n var green = ((((B >> 5) & _1_6) / _1_6) * 255) | 0;\n var red = (((B >> 11) / _1_5) * 255) | 0;\n\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = 0xff;\n }\n //skip extra bytes\n this.pos += this.width % 4;\n }\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //when height > 0\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n var blue = this.datav.getUint8(this.pos++, true);\n var green = this.datav.getUint8(this.pos++, true);\n var red = this.datav.getUint8(this.pos++, true);\n var alpha = this.datav.getUint8(this.pos++, true);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = red;\n this.data[location + 1] = green;\n this.data[location + 2] = blue;\n this.data[location + 3] = alpha;\n }\n //skip extra bytes\n //this.pos += (this.width % 4);\n }\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { BmpDecoder };\n","function WebPDecoder(imageData) {\n /** @license\n * Copyright 2011 Google Inc.\n *\n * This code is licensed under the same terms as WebM:\n * Software License Agreement: http://www.webmproject.org/license/software/\n * Additional IP Rights Grant: http://www.webmproject.org/license/additional/\n * -----------------------------------------------------------------------------\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * -----------------------------------------------------------------------------\n *\n * Copyright 2011-2017 Dominik Homberger\n * Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.6.0)\n *\n * Author: Dominik Homberger (dominik.homberger@gmail.com)\n */\n\n var self = this;\n var UpsampleRgbLinePair,\n UpsampleBgrLinePair,\n UpsampleRgbaLinePair,\n UpsampleBgraLinePair,\n UpsampleArgbLinePair,\n UpsampleArgbLinePair,\n UpsampleRgba4444LinePair,\n UpsampleRgb565LinePair;\n\n function x(F) {\n if (!F) throw Error(\"assert :P\");\n }\n function fa(F, L, J) {\n for (var H = 0; 4 > H; H++) if (F[L + H] != J.charCodeAt(H)) return !0;\n return !1;\n }\n function I(F, L, J, H, Z) {\n for (var O = 0; O < Z; O++) F[L + O] = J[H + O];\n }\n function M(F, L, J, H) {\n for (var Z = 0; Z < H; Z++) F[L + Z] = J;\n }\n function V(F) {\n return new Int32Array(F);\n }\n function wa(F, L) {\n for (var J = [], H = 0; H < F; H++) J.push(new L());\n return J;\n }\n function wb() {\n function F(J, H, Z) {\n for (var O = Z[H], L = 0; L < O; L++) {\n J.push(Z.length > H + 1 ? [] : 0);\n if (Z.length < H + 1) break;\n F(J[L], H + 1, Z);\n }\n }\n var L = [];\n F(L, 0, [3, 11]);\n return L;\n }\n function Ed(F, L) {\n function J(H, O, F) {\n for (var Z = F[O], ma = 0; ma < Z; ma++) {\n H.push(F.length > O + 1 ? [] : new L());\n if (F.length < O + 1) break;\n J(H[ma], O + 1, F);\n }\n }\n var H = [];\n J(H, 0, F);\n return H;\n }\n var _WebPDecoder = function() {\n var self = this;\n function F() {\n V(55);\n }\n function L(a, b) {\n for (var c = (1 << (b - 1)) >>> 0; a & c; ) c >>>= 1;\n return c ? (a & (c - 1)) + c : a;\n }\n function J(a, b, c, d, e) {\n x(!(d % c));\n do (d -= c), (a[b + d] = e);\n while (0 < d);\n }\n function H(a, b, c, d, e, f) {\n var g = b,\n h = 1 << c,\n k,\n l,\n m = V(16),\n n = V(16);\n x(0 != e);\n x(null != d);\n x(null != a);\n x(0 < c);\n for (l = 0; l < e; ++l) {\n if (15 < d[l]) return 0;\n ++m[d[l]];\n }\n if (m[0] == e) return 0;\n n[1] = 0;\n for (k = 1; 15 > k; ++k) {\n if (m[k] > 1 << k) return 0;\n n[k + 1] = n[k] + m[k];\n }\n for (l = 0; l < e; ++l) (k = d[l]), 0 < d[l] && (f[n[k]++] = l);\n if (1 == n[15])\n return (d = new O()), (d.g = 0), (d.value = f[0]), J(a, g, 1, h, d), h;\n var r = -1,\n q = h - 1,\n t = 0,\n v = 1,\n p = 1,\n u,\n w = 1 << c;\n l = 0;\n k = 1;\n for (e = 2; k <= c; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k])\n (d = new O()),\n (d.g = k),\n (d.value = f[l++]),\n J(a, g + t, e, w, d),\n (t = L(t, k));\n }\n k = c + 1;\n for (e = 2; 15 >= k; ++k, e <<= 1) {\n p <<= 1;\n v += p;\n p -= m[k];\n if (0 > p) return 0;\n for (; 0 < m[k]; --m[k]) {\n d = new O();\n if ((t & q) != r) {\n g += w;\n r = k;\n for (u = 1 << (r - c); 15 > r; ) {\n u -= m[r];\n if (0 >= u) break;\n ++r;\n u <<= 1;\n }\n u = r - c;\n w = 1 << u;\n h += w;\n r = t & q;\n a[b + r].g = u + c;\n a[b + r].value = g - b - r;\n }\n d.g = k - c;\n d.value = f[l++];\n J(a, g + (t >> c), e, w, d);\n t = L(t, k);\n }\n }\n return v != 2 * n[15] - 1 ? 0 : h;\n }\n function Z(a, b, c, d, e) {\n x(2328 >= e);\n if (512 >= e) var f = V(512);\n else if (((f = V(e)), null == f)) return 0;\n return H(a, b, c, d, e, f);\n }\n function O() {\n this.value = this.g = 0;\n }\n function Fd() {\n this.value = this.g = 0;\n }\n function Ub() {\n this.G = wa(5, O);\n this.H = V(5);\n this.jc = this.Qb = this.qb = this.nd = 0;\n this.pd = wa(xb, Fd);\n }\n function ma(a, b, c, d) {\n x(null != a);\n x(null != b);\n x(2147483648 > d);\n a.Ca = 254;\n a.I = 0;\n a.b = -8;\n a.Ka = 0;\n a.oa = b;\n a.pa = c;\n a.Jd = b;\n a.Yc = c + d;\n a.Zc = 4 <= d ? c + d - 4 + 1 : c;\n Qa(a);\n }\n function na(a, b) {\n for (var c = 0; 0 < b--; ) c |= K(a, 128) << b;\n return c;\n }\n function ca(a, b) {\n var c = na(a, b);\n return G(a) ? -c : c;\n }\n function cb(a, b, c, d) {\n var e,\n f = 0;\n x(null != a);\n x(null != b);\n x(4294967288 > d);\n a.Sb = d;\n a.Ra = 0;\n a.u = 0;\n a.h = 0;\n 4 < d && (d = 4);\n for (e = 0; e < d; ++e) f += b[c + e] << (8 * e);\n a.Ra = f;\n a.bb = d;\n a.oa = b;\n a.pa = c;\n }\n function Vb(a) {\n for (; 8 <= a.u && a.bb < a.Sb; )\n (a.Ra >>>= 8),\n (a.Ra += (a.oa[a.pa + a.bb] << (ob - 8)) >>> 0),\n ++a.bb,\n (a.u -= 8);\n db(a) && ((a.h = 1), (a.u = 0));\n }\n function D(a, b) {\n x(0 <= b);\n if (!a.h && b <= Gd) {\n var c = pb(a) & Hd[b];\n a.u += b;\n Vb(a);\n return c;\n }\n a.h = 1;\n return (a.u = 0);\n }\n function Wb() {\n this.b = this.Ca = this.I = 0;\n this.oa = [];\n this.pa = 0;\n this.Jd = [];\n this.Yc = 0;\n this.Zc = [];\n this.Ka = 0;\n }\n function Ra() {\n this.Ra = 0;\n this.oa = [];\n this.h = this.u = this.bb = this.Sb = this.pa = 0;\n }\n function pb(a) {\n return (a.Ra >>> (a.u & (ob - 1))) >>> 0;\n }\n function db(a) {\n x(a.bb <= a.Sb);\n return a.h || (a.bb == a.Sb && a.u > ob);\n }\n function qb(a, b) {\n a.u = b;\n a.h = db(a);\n }\n function Sa(a) {\n a.u >= Xb && (x(a.u >= Xb), Vb(a));\n }\n function Qa(a) {\n x(null != a && null != a.oa);\n a.pa < a.Zc\n ? ((a.I = (a.oa[a.pa++] | (a.I << 8)) >>> 0), (a.b += 8))\n : (x(null != a && null != a.oa),\n a.pa < a.Yc\n ? ((a.b += 8), (a.I = a.oa[a.pa++] | (a.I << 8)))\n : a.Ka\n ? (a.b = 0)\n : ((a.I <<= 8), (a.b += 8), (a.Ka = 1)));\n }\n function G(a) {\n return na(a, 1);\n }\n function K(a, b) {\n var c = a.Ca;\n 0 > a.b && Qa(a);\n var d = a.b,\n e = (c * b) >>> 8,\n f = (a.I >>> d > e) + 0;\n f ? ((c -= e), (a.I -= ((e + 1) << d) >>> 0)) : (c = e + 1);\n d = c;\n for (e = 0; 256 <= d; ) (e += 8), (d >>= 8);\n d = 7 ^ (e + Id[d]);\n a.b -= d;\n a.Ca = (c << d) - 1;\n return f;\n }\n function ra(a, b, c) {\n a[b + 0] = (c >> 24) & 255;\n a[b + 1] = (c >> 16) & 255;\n a[b + 2] = (c >> 8) & 255;\n a[b + 3] = (c >> 0) & 255;\n }\n function Ta(a, b) {\n return (a[b + 0] << 0) | (a[b + 1] << 8);\n }\n function Yb(a, b) {\n return Ta(a, b) | (a[b + 2] << 16);\n }\n function Ha(a, b) {\n return Ta(a, b) | (Ta(a, b + 2) << 16);\n }\n function Zb(a, b) {\n var c = 1 << b;\n x(null != a);\n x(0 < b);\n a.X = V(c);\n if (null == a.X) return 0;\n a.Mb = 32 - b;\n a.Xa = b;\n return 1;\n }\n function $b(a, b) {\n x(null != a);\n x(null != b);\n x(a.Xa == b.Xa);\n I(b.X, 0, a.X, 0, 1 << b.Xa);\n }\n function ac() {\n this.X = [];\n this.Xa = this.Mb = 0;\n }\n function bc(a, b, c, d) {\n x(null != c);\n x(null != d);\n var e = c[0],\n f = d[0];\n 0 == e && (e = (a * f + b / 2) / b);\n 0 == f && (f = (b * e + a / 2) / a);\n if (0 >= e || 0 >= f) return 0;\n c[0] = e;\n d[0] = f;\n return 1;\n }\n function xa(a, b) {\n return (a + (1 << b) - 1) >>> b;\n }\n function yb(a, b) {\n return (\n (((((a & 4278255360) + (b & 4278255360)) >>> 0) & 4278255360) +\n ((((a & 16711935) + (b & 16711935)) >>> 0) & 16711935)) >>>\n 0\n );\n }\n function X(a, b) {\n self[b] = function(b, d, e, f, g, h, k) {\n var c;\n for (c = 0; c < g; ++c) {\n var m = self[a](h[k + c - 1], e, f + c);\n h[k + c] = yb(b[d + c], m);\n }\n };\n }\n function Jd() {\n this.ud = this.hd = this.jd = 0;\n }\n function aa(a, b) {\n return ((((a ^ b) & 4278124286) >>> 1) + (a & b)) >>> 0;\n }\n function sa(a) {\n if (0 <= a && 256 > a) return a;\n if (0 > a) return 0;\n if (255 < a) return 255;\n }\n function eb(a, b) {\n return sa(a + ((a - b + 0.5) >> 1));\n }\n function Ia(a, b, c) {\n return Math.abs(b - c) - Math.abs(a - c);\n }\n function cc(a, b, c, d, e, f, g) {\n d = f[g - 1];\n for (c = 0; c < e; ++c) f[g + c] = d = yb(a[b + c], d);\n }\n function Kd(a, b, c, d, e) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + f],\n h = (g >> 8) & 255,\n k = g & 16711935,\n k = k + ((h << 16) + h),\n k = k & 16711935;\n d[e + f] = ((g & 4278255360) + k) >>> 0;\n }\n }\n function dc(a, b) {\n b.jd = (a >> 0) & 255;\n b.hd = (a >> 8) & 255;\n b.ud = (a >> 16) & 255;\n }\n function Ld(a, b, c, d, e, f) {\n var g;\n for (g = 0; g < d; ++g) {\n var h = b[c + g],\n k = h >>> 8,\n l = h >>> 16,\n m = h,\n l = l + ((((a.jd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n l = l & 255,\n m = m + ((((a.hd << 24) >> 24) * ((k << 24) >> 24)) >>> 5),\n m = m + ((((a.ud << 24) >> 24) * ((l << 24) >> 24)) >>> 5),\n m = m & 255;\n e[f + g] = (h & 4278255360) + (l << 16) + m;\n }\n }\n function ec(a, b, c, d, e) {\n self[b] = function(a, b, c, k, l, m, n, r, q) {\n for (k = n; k < r; ++k)\n for (n = 0; n < q; ++n) l[m++] = e(c[d(a[b++])]);\n };\n self[a] = function(a, b, h, k, l, m, n) {\n var f = 8 >> a.b,\n g = a.Ea,\n t = a.K[0],\n v = a.w;\n if (8 > f)\n for (a = (1 << a.b) - 1, v = (1 << f) - 1; b < h; ++b) {\n var p = 0,\n u;\n for (u = 0; u < g; ++u)\n u & a || (p = d(k[l++])), (m[n++] = e(t[p & v])), (p >>= f);\n }\n else self[\"VP8LMapColor\" + c](k, l, t, v, m, n, b, h, g);\n };\n }\n function Md(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n }\n }\n function Nd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 16) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 24) & 255;\n }\n }\n function Od(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 240) | ((f >> 12) & 15),\n f = ((f >> 0) & 240) | ((f >> 28) & 15);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Pd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++],\n g = ((f >> 16) & 248) | ((f >> 13) & 7),\n f = ((f >> 5) & 224) | ((f >> 3) & 31);\n d[e++] = g;\n d[e++] = f;\n }\n }\n function Qd(a, b, c, d, e) {\n for (c = b + c; b < c; ) {\n var f = a[b++];\n d[e++] = (f >> 0) & 255;\n d[e++] = (f >> 8) & 255;\n d[e++] = (f >> 16) & 255;\n }\n }\n function fb(a, b, c, d, e, f) {\n if (0 == f)\n for (c = b + c; b < c; )\n (f = a[b++]),\n ra(\n d,\n ((f[0] >> 24) |\n ((f[1] >> 8) & 65280) |\n ((f[2] << 8) & 16711680) |\n (f[3] << 24)) >>>\n 0\n ),\n (e += 32);\n else I(d, e, a, b, c);\n }\n function gb(a, b) {\n self[b][0] = self[a + \"0\"];\n self[b][1] = self[a + \"1\"];\n self[b][2] = self[a + \"2\"];\n self[b][3] = self[a + \"3\"];\n self[b][4] = self[a + \"4\"];\n self[b][5] = self[a + \"5\"];\n self[b][6] = self[a + \"6\"];\n self[b][7] = self[a + \"7\"];\n self[b][8] = self[a + \"8\"];\n self[b][9] = self[a + \"9\"];\n self[b][10] = self[a + \"10\"];\n self[b][11] = self[a + \"11\"];\n self[b][12] = self[a + \"12\"];\n self[b][13] = self[a + \"13\"];\n self[b][14] = self[a + \"0\"];\n self[b][15] = self[a + \"0\"];\n }\n function hb(a) {\n return a == zb || a == Ab || a == Ja || a == Bb;\n }\n function Rd() {\n this.eb = [];\n this.size = this.A = this.fb = 0;\n }\n function Sd() {\n this.y = [];\n this.f = [];\n this.ea = [];\n this.F = [];\n this.Tc = this.Ed = this.Cd = this.Fd = this.lb = this.Db = this.Ab = this.fa = this.J = this.W = this.N = this.O = 0;\n }\n function Cb() {\n this.Rd = this.height = this.width = this.S = 0;\n this.f = {};\n this.f.RGBA = new Rd();\n this.f.kb = new Sd();\n this.sd = null;\n }\n function Td() {\n this.width = [0];\n this.height = [0];\n this.Pd = [0];\n this.Qd = [0];\n this.format = [0];\n }\n function Ud() {\n this.Id = this.fd = this.Md = this.hb = this.ib = this.da = this.bd = this.cd = this.j = this.v = this.Da = this.Sd = this.ob = 0;\n }\n function Vd(a) {\n alert(\"todo:WebPSamplerProcessPlane\");\n return a.T;\n }\n function Wd(a, b) {\n var c = a.T,\n d = b.ba.f.RGBA,\n e = d.eb,\n f = d.fb + a.ka * d.A,\n g = P[b.ba.S],\n h = a.y,\n k = a.O,\n l = a.f,\n m = a.N,\n n = a.ea,\n r = a.W,\n q = b.cc,\n t = b.dc,\n v = b.Mc,\n p = b.Nc,\n u = a.ka,\n w = a.ka + a.T,\n y = a.U,\n A = (y + 1) >> 1;\n 0 == u\n ? g(h, k, null, null, l, m, n, r, l, m, n, r, e, f, null, null, y)\n : (g(b.ec, b.fc, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y),\n ++c);\n for (; u + 2 < w; u += 2)\n (q = l),\n (t = m),\n (v = n),\n (p = r),\n (m += a.Rc),\n (r += a.Rc),\n (f += 2 * d.A),\n (k += 2 * a.fa),\n g(h, k - a.fa, h, k, q, t, v, p, l, m, n, r, e, f - d.A, e, f, y);\n k += a.fa;\n a.j + w < a.o\n ? (I(b.ec, b.fc, h, k, y),\n I(b.cc, b.dc, l, m, A),\n I(b.Mc, b.Nc, n, r, A),\n c--)\n : w & 1 ||\n g(\n h,\n k,\n null,\n null,\n l,\n m,\n n,\n r,\n l,\n m,\n n,\n r,\n e,\n f + d.A,\n null,\n null,\n y\n );\n return c;\n }\n function Xd(a, b, c) {\n var d = a.F,\n e = [a.J];\n if (null != d) {\n var f = a.U,\n g = b.ba.S,\n h = g == ya || g == Ja;\n b = b.ba.f.RGBA;\n var k = [0],\n l = a.ka;\n k[0] = a.T;\n a.Kb &&\n (0 == l ? --k[0] : (--l, (e[0] -= a.width)),\n a.j + a.ka + a.T == a.o && (k[0] = a.o - a.j - l));\n var m = b.eb,\n l = b.fb + l * b.A;\n a = fc(d, e[0], a.width, f, k, m, l + (h ? 0 : 3), b.A);\n x(c == k);\n a && hb(g) && za(m, l, h, f, k, b.A);\n }\n return 0;\n }\n function gc(a) {\n var b = a.ma,\n c = b.ba.S,\n d = 11 > c,\n e = c == Ua || c == Va || c == ya || c == Db || 12 == c || hb(c);\n b.memory = null;\n b.Ib = null;\n b.Jb = null;\n b.Nd = null;\n if (!hc(b.Oa, a, e ? 11 : 12)) return 0;\n e && hb(c) && ic();\n if (a.da) alert(\"todo:use_scaling\");\n else {\n if (d) {\n if (((b.Ib = Vd), a.Kb)) {\n c = (a.U + 1) >> 1;\n b.memory = V(a.U + 2 * c);\n if (null == b.memory) return 0;\n b.ec = b.memory;\n b.fc = 0;\n b.cc = b.ec;\n b.dc = b.fc + a.U;\n b.Mc = b.cc;\n b.Nc = b.dc + c;\n b.Ib = Wd;\n ic();\n }\n } else alert(\"todo:EmitYUV\");\n e && ((b.Jb = Xd), d && Aa());\n }\n if (d && !jc) {\n for (a = 0; 256 > a; ++a)\n (Yd[a] = (89858 * (a - 128) + Ba) >> Wa),\n (Zd[a] = -22014 * (a - 128) + Ba),\n ($d[a] = -45773 * (a - 128)),\n (ae[a] = (113618 * (a - 128) + Ba) >> Wa);\n for (a = ta; a < Eb; ++a)\n (b = (76283 * (a - 16) + Ba) >> Wa),\n (be[a - ta] = ga(b, 255)),\n (ce[a - ta] = ga((b + 8) >> 4, 15));\n jc = 1;\n }\n return 1;\n }\n function kc(a) {\n var b = a.ma,\n c = a.U,\n d = a.T;\n x(!(a.ka & 1));\n if (0 >= c || 0 >= d) return 0;\n c = b.Ib(a, b);\n null != b.Jb && b.Jb(a, b, c);\n b.Dc += c;\n return 1;\n }\n function lc(a) {\n a.ma.memory = null;\n }\n function mc(a, b, c, d) {\n if (47 != D(a, 8)) return 0;\n b[0] = D(a, 14) + 1;\n c[0] = D(a, 14) + 1;\n d[0] = D(a, 1);\n return 0 != D(a, 3) ? 0 : !a.h;\n }\n function ib(a, b) {\n if (4 > a) return a + 1;\n var c = (a - 2) >> 1;\n return ((2 + (a & 1)) << c) + D(b, c) + 1;\n }\n function nc(a, b) {\n if (120 < b) return b - 120;\n var c = de[b - 1],\n c = (c >> 4) * a + (8 - (c & 15));\n return 1 <= c ? c : 1;\n }\n function ua(a, b, c) {\n var d = pb(c);\n b += d & 255;\n var e = a[b].g - 8;\n 0 < e &&\n (qb(c, c.u + 8),\n (d = pb(c)),\n (b += a[b].value),\n (b += d & ((1 << e) - 1)));\n qb(c, c.u + a[b].g);\n return a[b].value;\n }\n function ub(a, b, c) {\n c.g += a.g;\n c.value += (a.value << b) >>> 0;\n x(8 >= c.g);\n return a.g;\n }\n function ha(a, b, c) {\n var d = a.xc;\n b = 0 == d ? 0 : a.vc[a.md * (c >> d) + (b >> d)];\n x(b < a.Wb);\n return a.Ya[b];\n }\n function oc(a, b, c, d) {\n var e = a.ab,\n f = a.c * b,\n g = a.C;\n b = g + b;\n var h = c,\n k = d;\n d = a.Ta;\n for (c = a.Ua; 0 < e--; ) {\n var l = a.gc[e],\n m = g,\n n = b,\n r = h,\n q = k,\n k = d,\n h = c,\n t = l.Ea;\n x(m < n);\n x(n <= l.nc);\n switch (l.hc) {\n case 2:\n pc(r, q, (n - m) * t, k, h);\n break;\n case 0:\n var v = l,\n p = m,\n u = n,\n w = k,\n y = h,\n A = v.Ea;\n 0 == p &&\n (ee(r, q, null, null, 1, w, y),\n cc(r, q + 1, 0, 0, A - 1, w, y + 1),\n (q += A),\n (y += A),\n ++p);\n for (\n var E = 1 << v.b,\n B = E - 1,\n C = xa(A, v.b),\n N = v.K,\n v = v.w + (p >> v.b) * C;\n p < u;\n\n ) {\n var z = N,\n Q = v,\n S = 1;\n for (fe(r, q, w, y - A, 1, w, y); S < A; ) {\n var K = qc[(z[Q++] >> 8) & 15],\n D = (S & ~B) + E;\n D > A && (D = A);\n K(r, q + +S, w, y + S - A, D - S, w, y + S);\n S = D;\n }\n q += A;\n y += A;\n ++p;\n p & B || (v += C);\n }\n n != l.nc && I(k, h - t, k, h + (n - m - 1) * t, t);\n break;\n case 1:\n t = r;\n u = q;\n r = l.Ea;\n q = 1 << l.b;\n w = q - 1;\n y = r & ~w;\n A = r - y;\n p = xa(r, l.b);\n E = l.K;\n for (l = l.w + (m >> l.b) * p; m < n; ) {\n B = E;\n C = l;\n N = new Jd();\n v = u + y;\n for (z = u + r; u < v; )\n dc(B[C++], N), Fb(N, t, u, q, k, h), (u += q), (h += q);\n u < z &&\n (dc(B[C++], N), Fb(N, t, u, A, k, h), (u += A), (h += A));\n ++m;\n m & w || (l += p);\n }\n break;\n case 3:\n if (r == k && q == h && 0 < l.b) {\n y = (n - m) * xa(l.Ea, l.b);\n t = h + (n - m) * t - y;\n u = k;\n r = t;\n q = k;\n w = h;\n A = y;\n p = [];\n for (y = A - 1; 0 <= y; --y) p[y] = q[w + y];\n for (y = A - 1; 0 <= y; --y) u[r + y] = p[y];\n rc(l, m, n, k, t, k, h);\n } else rc(l, m, n, r, q, k, h);\n }\n h = d;\n k = c;\n }\n k != c && I(d, c, h, k, f);\n }\n function ge(a, b) {\n var c = a.V,\n d = a.Ba + a.c * a.C,\n e = b - a.C;\n x(b <= a.l.o);\n x(16 >= e);\n if (0 < e) {\n var f = a.l,\n g = a.Ta,\n h = a.Ua,\n k = f.width;\n oc(a, e, c, d);\n h = [h];\n c = a.C;\n d = b;\n e = h;\n x(c < d);\n x(f.v < f.va);\n d > f.o && (d = f.o);\n if (c < f.j) {\n var l = f.j - c,\n c = f.j;\n e[0] += l * k;\n }\n c >= d\n ? (c = 0)\n : ((e[0] += 4 * f.v),\n (f.ka = c - f.j),\n (f.U = f.va - f.v),\n (f.T = d - c),\n (c = 1));\n if (c) {\n h = h[0];\n c = a.ca;\n if (11 > c.S) {\n for (\n var m = c.f.RGBA,\n d = c.S,\n e = f.U,\n f = f.T,\n l = m.eb,\n n = m.A,\n r = f,\n m = m.fb + a.Ma * m.A;\n 0 < r--;\n\n ) {\n var q = g,\n t = h,\n v = e,\n p = l,\n u = m;\n switch (d) {\n case Ca:\n sc(q, t, v, p, u);\n break;\n case Ua:\n Gb(q, t, v, p, u);\n break;\n case zb:\n Gb(q, t, v, p, u);\n za(p, u, 0, v, 1, 0);\n break;\n case tc:\n uc(q, t, v, p, u);\n break;\n case Va:\n fb(q, t, v, p, u, 1);\n break;\n case Ab:\n fb(q, t, v, p, u, 1);\n za(p, u, 0, v, 1, 0);\n break;\n case ya:\n fb(q, t, v, p, u, 0);\n break;\n case Ja:\n fb(q, t, v, p, u, 0);\n za(p, u, 1, v, 1, 0);\n break;\n case Db:\n Hb(q, t, v, p, u);\n break;\n case Bb:\n Hb(q, t, v, p, u);\n vc(p, u, v, 1, 0);\n break;\n case wc:\n xc(q, t, v, p, u);\n break;\n default:\n x(0);\n }\n h += k;\n m += n;\n }\n a.Ma += f;\n } else alert(\"todo:EmitRescaledRowsYUVA\");\n x(a.Ma <= c.height);\n }\n }\n a.C = b;\n x(a.C <= a.i);\n }\n function yc(a) {\n var b;\n if (0 < a.ua) return 0;\n for (b = 0; b < a.Wb; ++b) {\n var c = a.Ya[b].G,\n d = a.Ya[b].H;\n if (\n 0 < c[1][d[1] + 0].g ||\n 0 < c[2][d[2] + 0].g ||\n 0 < c[3][d[3] + 0].g\n )\n return 0;\n }\n return 1;\n }\n function zc(a, b, c, d, e, f) {\n if (0 != a.Z) {\n var g = a.qd,\n h = a.rd;\n for (x(null != ia[a.Z]); b < c; ++b)\n ia[a.Z](g, h, d, e, d, e, f), (g = d), (h = e), (e += f);\n a.qd = g;\n a.rd = h;\n }\n }\n function Ib(a, b) {\n var c = a.l.ma,\n d = 0 == c.Z || 1 == c.Z ? a.l.j : a.C,\n d = a.C < d ? d : a.C;\n x(b <= a.l.o);\n if (b > d) {\n var e = a.l.width,\n f = c.ca,\n g = c.tb + e * d,\n h = a.V,\n k = a.Ba + a.c * d,\n l = a.gc;\n x(1 == a.ab);\n x(3 == l[0].hc);\n he(l[0], d, b, h, k, f, g);\n zc(c, d, b, f, g, e);\n }\n a.C = a.Ma = b;\n }\n function Jb(a, b, c, d, e, f, g) {\n var h = a.$ / d,\n k = a.$ % d,\n l = a.m,\n m = a.s,\n n = c + a.$,\n r = n;\n e = c + d * e;\n var q = c + d * f,\n t = 280 + m.ua,\n v = a.Pb ? h : 16777216,\n p = 0 < m.ua ? m.Wa : null,\n u = m.wc,\n w = n < q ? ha(m, k, h) : null;\n x(a.C < f);\n x(q <= e);\n var y = !1;\n a: for (;;) {\n for (; y || n < q; ) {\n var A = 0;\n if (h >= v) {\n var v = a,\n E = n - c;\n x(v.Pb);\n v.wd = v.m;\n v.xd = E;\n 0 < v.s.ua && $b(v.s.Wa, v.s.vb);\n v = h + ie;\n }\n k & u || (w = ha(m, k, h));\n x(null != w);\n w.Qb && ((b[n] = w.qb), (y = !0));\n if (!y)\n if ((Sa(l), w.jc)) {\n var A = l,\n E = b,\n B = n,\n C = w.pd[pb(A) & (xb - 1)];\n x(w.jc);\n 256 > C.g\n ? (qb(A, A.u + C.g), (E[B] = C.value), (A = 0))\n : (qb(A, A.u + C.g - 256), x(256 <= C.value), (A = C.value));\n 0 == A && (y = !0);\n } else A = ua(w.G[0], w.H[0], l);\n if (l.h) break;\n if (y || 256 > A) {\n if (!y)\n if (w.nd) b[n] = (w.qb | (A << 8)) >>> 0;\n else {\n Sa(l);\n y = ua(w.G[1], w.H[1], l);\n Sa(l);\n E = ua(w.G[2], w.H[2], l);\n B = ua(w.G[3], w.H[3], l);\n if (l.h) break;\n b[n] = ((B << 24) | (y << 16) | (A << 8) | E) >>> 0;\n }\n y = !1;\n ++n;\n ++k;\n if (\n k >= d &&\n ((k = 0),\n ++h,\n null != g && h <= f && !(h % 16) && g(a, h),\n null != p)\n )\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (280 > A) {\n A = ib(A - 256, l);\n E = ua(w.G[4], w.H[4], l);\n Sa(l);\n E = ib(E, l);\n E = nc(d, E);\n if (l.h) break;\n if (n - c < E || e - n < A) break a;\n else for (B = 0; B < A; ++B) b[n + B] = b[n + B - E];\n n += A;\n for (k += A; k >= d; )\n (k -= d), ++h, null != g && h <= f && !(h % 16) && g(a, h);\n x(n <= e);\n k & u && (w = ha(m, k, h));\n if (null != p)\n for (; r < n; )\n (A = b[r++]),\n (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n } else if (A < t) {\n y = A - 280;\n for (x(null != p); r < n; )\n (A = b[r++]), (p.X[((506832829 * A) & 4294967295) >>> p.Mb] = A);\n A = n;\n E = p;\n x(!(y >>> E.Xa));\n b[A] = E.X[y];\n y = !0;\n } else break a;\n y || x(l.h == db(l));\n }\n if (a.Pb && l.h && n < e)\n x(a.m.h),\n (a.a = 5),\n (a.m = a.wd),\n (a.$ = a.xd),\n 0 < a.s.ua && $b(a.s.vb, a.s.Wa);\n else if (l.h) break a;\n else null != g && g(a, h > f ? f : h), (a.a = 0), (a.$ = n - c);\n return 1;\n }\n a.a = 3;\n return 0;\n }\n function Ac(a) {\n x(null != a);\n a.vc = null;\n a.yc = null;\n a.Ya = null;\n var b = a.Wa;\n null != b && (b.X = null);\n a.vb = null;\n x(null != a);\n }\n function Bc() {\n var a = new je();\n if (null == a) return null;\n a.a = 0;\n a.xb = Cc;\n gb(\"Predictor\", \"VP8LPredictors\");\n gb(\"Predictor\", \"VP8LPredictors_C\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd\");\n gb(\"PredictorAdd\", \"VP8LPredictorsAdd_C\");\n pc = Kd;\n Fb = Ld;\n sc = Md;\n Gb = Nd;\n Hb = Od;\n xc = Pd;\n uc = Qd;\n self.VP8LMapColor32b = ke;\n self.VP8LMapColor8b = le;\n return a;\n }\n function rb(a, b, c, d, e) {\n var f = 1,\n g = [a],\n h = [b],\n k = d.m,\n l = d.s,\n m = null,\n n = 0;\n a: for (;;) {\n if (c)\n for (; f && D(k, 1); ) {\n var r = g,\n q = h,\n t = d,\n v = 1,\n p = t.m,\n u = t.gc[t.ab],\n w = D(p, 2);\n if (t.Oc & (1 << w)) f = 0;\n else {\n t.Oc |= 1 << w;\n u.hc = w;\n u.Ea = r[0];\n u.nc = q[0];\n u.K = [null];\n ++t.ab;\n x(4 >= t.ab);\n switch (w) {\n case 0:\n case 1:\n u.b = D(p, 3) + 2;\n v = rb(xa(u.Ea, u.b), xa(u.nc, u.b), 0, t, u.K);\n u.K = u.K[0];\n break;\n case 3:\n var y = D(p, 8) + 1,\n A = 16 < y ? 0 : 4 < y ? 1 : 2 < y ? 2 : 3;\n r[0] = xa(u.Ea, A);\n u.b = A;\n var v = rb(y, 1, 0, t, u.K),\n E;\n if ((E = v)) {\n var B,\n C = y,\n N = u,\n z = 1 << (8 >> N.b),\n Q = V(z);\n if (null == Q) E = 0;\n else {\n var S = N.K[0],\n K = N.w;\n Q[0] = N.K[0][0];\n for (B = 1; B < 1 * C; ++B) Q[B] = yb(S[K + B], Q[B - 1]);\n for (; B < 4 * z; ++B) Q[B] = 0;\n N.K[0] = null;\n N.K[0] = Q;\n E = 1;\n }\n }\n v = E;\n break;\n case 2:\n break;\n default:\n x(0);\n }\n f = v;\n }\n }\n g = g[0];\n h = h[0];\n if (f && D(k, 1) && ((n = D(k, 4)), (f = 1 <= n && 11 >= n), !f)) {\n d.a = 3;\n break a;\n }\n var H;\n if ((H = f))\n b: {\n var F = d,\n G = g,\n L = h,\n J = n,\n T = c,\n Da,\n ba,\n X = F.m,\n R = F.s,\n P = [null],\n U,\n W = 1,\n aa = 0,\n na = me[J];\n c: for (;;) {\n if (T && D(X, 1)) {\n var ca = D(X, 3) + 2,\n ga = xa(G, ca),\n ka = xa(L, ca),\n qa = ga * ka;\n if (!rb(ga, ka, 0, F, P)) break c;\n P = P[0];\n R.xc = ca;\n for (Da = 0; Da < qa; ++Da) {\n var ia = (P[Da] >> 8) & 65535;\n P[Da] = ia;\n ia >= W && (W = ia + 1);\n }\n }\n if (X.h) break c;\n for (ba = 0; 5 > ba; ++ba) {\n var Y = Dc[ba];\n !ba && 0 < J && (Y += 1 << J);\n aa < Y && (aa = Y);\n }\n var ma = wa(W * na, O);\n var ua = W,\n va = wa(ua, Ub);\n if (null == va) var la = null;\n else x(65536 >= ua), (la = va);\n var ha = V(aa);\n if (null == la || null == ha || null == ma) {\n F.a = 1;\n break c;\n }\n var pa = ma;\n for (Da = U = 0; Da < W; ++Da) {\n var ja = la[Da],\n da = ja.G,\n ea = ja.H,\n Fa = 0,\n ra = 1,\n Ha = 0;\n for (ba = 0; 5 > ba; ++ba) {\n Y = Dc[ba];\n da[ba] = pa;\n ea[ba] = U;\n !ba && 0 < J && (Y += 1 << J);\n d: {\n var sa,\n za = Y,\n ta = F,\n oa = ha,\n db = pa,\n eb = U,\n Ia = 0,\n Ka = ta.m,\n fb = D(Ka, 1);\n M(oa, 0, 0, za);\n if (fb) {\n var gb = D(Ka, 1) + 1,\n hb = D(Ka, 1),\n Ja = D(Ka, 0 == hb ? 1 : 8);\n oa[Ja] = 1;\n 2 == gb && ((Ja = D(Ka, 8)), (oa[Ja] = 1));\n var ya = 1;\n } else {\n var Ua = V(19),\n Va = D(Ka, 4) + 4;\n if (19 < Va) {\n ta.a = 3;\n var Aa = 0;\n break d;\n }\n for (sa = 0; sa < Va; ++sa) Ua[ne[sa]] = D(Ka, 3);\n var Ba = void 0,\n sb = void 0,\n Wa = ta,\n ib = Ua,\n Ca = za,\n Xa = oa,\n Oa = 0,\n La = Wa.m,\n Ya = 8,\n Za = wa(128, O);\n e: for (;;) {\n if (!Z(Za, 0, 7, ib, 19)) break e;\n if (D(La, 1)) {\n var kb = 2 + 2 * D(La, 3),\n Ba = 2 + D(La, kb);\n if (Ba > Ca) break e;\n } else Ba = Ca;\n for (sb = 0; sb < Ca && Ba--; ) {\n Sa(La);\n var $a = Za[0 + (pb(La) & 127)];\n qb(La, La.u + $a.g);\n var jb = $a.value;\n if (16 > jb) (Xa[sb++] = jb), 0 != jb && (Ya = jb);\n else {\n var lb = 16 == jb,\n ab = jb - 16,\n mb = oe[ab],\n bb = D(La, pe[ab]) + mb;\n if (sb + bb > Ca) break e;\n else\n for (var nb = lb ? Ya : 0; 0 < bb--; )\n Xa[sb++] = nb;\n }\n }\n Oa = 1;\n break e;\n }\n Oa || (Wa.a = 3);\n ya = Oa;\n }\n (ya = ya && !Ka.h) && (Ia = Z(db, eb, 8, oa, za));\n ya && 0 != Ia ? (Aa = Ia) : ((ta.a = 3), (Aa = 0));\n }\n if (0 == Aa) break c;\n ra && 1 == qe[ba] && (ra = 0 == pa[U].g);\n Fa += pa[U].g;\n U += Aa;\n if (3 >= ba) {\n var Pa = ha[0],\n tb;\n for (tb = 1; tb < Y; ++tb) ha[tb] > Pa && (Pa = ha[tb]);\n Ha += Pa;\n }\n }\n ja.nd = ra;\n ja.Qb = 0;\n ra &&\n ((ja.qb =\n ((da[3][ea[3] + 0].value << 24) |\n (da[1][ea[1] + 0].value << 16) |\n da[2][ea[2] + 0].value) >>>\n 0),\n 0 == Fa &&\n 256 > da[0][ea[0] + 0].value &&\n ((ja.Qb = 1), (ja.qb += da[0][ea[0] + 0].value << 8)));\n ja.jc = !ja.Qb && 6 > Ha;\n if (ja.jc) {\n var Ga,\n Ea = ja;\n for (Ga = 0; Ga < xb; ++Ga) {\n var Ma = Ga,\n Na = Ea.pd[Ma],\n vb = Ea.G[0][Ea.H[0] + Ma];\n 256 <= vb.value\n ? ((Na.g = vb.g + 256), (Na.value = vb.value))\n : ((Na.g = 0),\n (Na.value = 0),\n (Ma >>= ub(vb, 8, Na)),\n (Ma >>= ub(Ea.G[1][Ea.H[1] + Ma], 16, Na)),\n (Ma >>= ub(Ea.G[2][Ea.H[2] + Ma], 0, Na)),\n ub(Ea.G[3][Ea.H[3] + Ma], 24, Na));\n }\n }\n }\n R.vc = P;\n R.Wb = W;\n R.Ya = la;\n R.yc = ma;\n H = 1;\n break b;\n }\n H = 0;\n }\n f = H;\n if (!f) {\n d.a = 3;\n break a;\n }\n if (0 < n) {\n if (((l.ua = 1 << n), !Zb(l.Wa, n))) {\n d.a = 1;\n f = 0;\n break a;\n }\n } else l.ua = 0;\n var Qa = d,\n cb = g,\n ob = h,\n Ra = Qa.s,\n Ta = Ra.xc;\n Qa.c = cb;\n Qa.i = ob;\n Ra.md = xa(cb, Ta);\n Ra.wc = 0 == Ta ? -1 : (1 << Ta) - 1;\n if (c) {\n d.xb = re;\n break a;\n }\n m = V(g * h);\n if (null == m) {\n d.a = 1;\n f = 0;\n break a;\n }\n f = (f = Jb(d, m, 0, g, h, h, null)) && !k.h;\n break a;\n }\n f\n ? (null != e ? (e[0] = m) : (x(null == m), x(c)), (d.$ = 0), c || Ac(l))\n : Ac(l);\n return f;\n }\n function Ec(a, b) {\n var c = a.c * a.i,\n d = c + b + 16 * b;\n x(a.c <= b);\n a.V = V(d);\n if (null == a.V) return (a.Ta = null), (a.Ua = 0), (a.a = 1), 0;\n a.Ta = a.V;\n a.Ua = a.Ba + c + b;\n return 1;\n }\n function se(a, b) {\n var c = a.C,\n d = b - c,\n e = a.V,\n f = a.Ba + a.c * c;\n for (x(b <= a.l.o); 0 < d; ) {\n var g = 16 < d ? 16 : d,\n h = a.l.ma,\n k = a.l.width,\n l = k * g,\n m = h.ca,\n n = h.tb + k * c,\n r = a.Ta,\n q = a.Ua;\n oc(a, g, e, f);\n Fc(r, q, m, n, l);\n zc(h, c, c + g, m, n, k);\n d -= g;\n e += g * a.c;\n c += g;\n }\n x(c == b);\n a.C = a.Ma = b;\n }\n function te(a, b) {\n var c = [0],\n d = [0],\n e = [0];\n a: for (;;) {\n if (null == a) return 0;\n if (null == b) return (a.a = 2), 0;\n a.l = b;\n a.a = 0;\n cb(a.m, b.data, b.w, b.ha);\n if (!mc(a.m, c, d, e)) {\n a.a = 3;\n break a;\n }\n a.xb = Cc;\n b.width = c[0];\n b.height = d[0];\n if (!rb(c[0], d[0], 1, a, null)) break a;\n return 1;\n }\n x(0 != a.a);\n return 0;\n }\n function ue() {\n this.ub = this.yd = this.td = this.Rb = 0;\n }\n function ve() {\n this.Kd = this.Ld = this.Ud = this.Td = this.i = this.c = 0;\n }\n function we() {\n this.Fb = this.Bb = this.Cb = 0;\n this.Zb = V(4);\n this.Lb = V(4);\n }\n function Gc() {\n this.Yb = wb();\n }\n function xe() {\n this.jb = V(3);\n this.Wc = Ed([4, 8], Gc);\n this.Xc = Ed([4, 17], Gc);\n }\n function ye() {\n this.Pc = this.wb = this.Tb = this.zd = 0;\n this.vd = new V(4);\n this.od = new V(4);\n }\n function Xa() {\n this.ld = this.La = this.dd = this.tc = 0;\n }\n function Hc() {\n this.Na = this.la = 0;\n }\n function ze() {\n this.Sc = [0, 0];\n this.Eb = [0, 0];\n this.Qc = [0, 0];\n this.ia = this.lc = 0;\n }\n function Kb() {\n this.ad = V(384);\n this.Za = 0;\n this.Ob = V(16);\n this.$b = this.Ad = this.ia = this.Gc = this.Hc = this.Dd = 0;\n }\n function Ae() {\n this.uc = this.M = this.Nb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.ya = Array(new Kb());\n this.aa = 0;\n this.l = new Oa();\n }\n function Ic() {\n this.y = V(16);\n this.f = V(8);\n this.ea = V(8);\n }\n function Be() {\n this.cb = this.a = 0;\n this.sc = \"\";\n this.m = new Wb();\n this.Od = new ue();\n this.Kc = new ve();\n this.ed = new ye();\n this.Qa = new we();\n this.Ic = this.$c = this.Aa = 0;\n this.D = new Ae();\n this.Xb = this.Va = this.Hb = this.zb = this.yb = this.Ub = this.za = 0;\n this.Jc = wa(8, Wb);\n this.ia = 0;\n new F();\n this.pb = wa(4, ze);\n this.Pa = new xe();\n this.Bd = this.kc = 0;\n this.Ac = [];\n this.Bc = 0;\n this.zc = [0, 0, 0, 0];\n this.Gd = Array(new Ic());\n this.Hd = 0;\n this.rb = Array(new Hc());\n this.sb = 0;\n this.wa = Array(new Xa());\n this.Y = 0;\n this.oc = [];\n this.pc = 0;\n this.sa = [];\n this.ta = 0;\n this.qa = [];\n this.ra = 0;\n this.Ha = [];\n this.B = this.R = this.Ia = 0;\n this.Ec = [];\n this.M = this.ja = this.Vb = this.Fc = 0;\n this.ya = Array(new Kb());\n this.L = this.aa = 0;\n this.gd = Ed([4, 2], Xa);\n this.ga = null;\n this.Fa = [];\n this.Cc = this.qc = this.P = 0;\n this.Gb = [];\n this.Uc = 0;\n this.mb = [];\n this.nb = 0;\n this.rc = [];\n this.Ga = this.Vc = 0;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function Oa() {\n this.T = this.U = this.ka = this.height = this.width = 0;\n this.y = [];\n this.f = [];\n this.ea = [];\n this.Rc = this.fa = this.W = this.N = this.O = 0;\n this.ma = \"void\";\n this.put = \"VP8IoPutHook\";\n this.ac = \"VP8IoSetupHook\";\n this.bc = \"VP8IoTeardownHook\";\n this.ha = this.Kb = 0;\n this.data = [];\n this.hb = this.ib = this.da = this.o = this.j = this.va = this.v = this.Da = this.ob = this.w = 0;\n this.F = [];\n this.J = 0;\n }\n function Ce() {\n var a = new Be();\n null != a &&\n ((a.a = 0), (a.sc = \"OK\"), (a.cb = 0), (a.Xb = 0), oa || (oa = De));\n return a;\n }\n function T(a, b, c) {\n 0 == a.a && ((a.a = b), (a.sc = c), (a.cb = 0));\n return 0;\n }\n function Jc(a, b, c) {\n return 3 <= c && 157 == a[b + 0] && 1 == a[b + 1] && 42 == a[b + 2];\n }\n function Kc(a, b) {\n if (null == a) return 0;\n a.a = 0;\n a.sc = \"OK\";\n if (null == b) return T(a, 2, \"null VP8Io passed to VP8GetHeaders()\");\n var c = b.data;\n var d = b.w;\n var e = b.ha;\n if (4 > e) return T(a, 7, \"Truncated header.\");\n var f = c[d + 0] | (c[d + 1] << 8) | (c[d + 2] << 16);\n var g = a.Od;\n g.Rb = !(f & 1);\n g.td = (f >> 1) & 7;\n g.yd = (f >> 4) & 1;\n g.ub = f >> 5;\n if (3 < g.td) return T(a, 3, \"Incorrect keyframe parameters.\");\n if (!g.yd) return T(a, 4, \"Frame not displayable.\");\n d += 3;\n e -= 3;\n var h = a.Kc;\n if (g.Rb) {\n if (7 > e) return T(a, 7, \"cannot parse picture header\");\n if (!Jc(c, d, e)) return T(a, 3, \"Bad code word\");\n h.c = ((c[d + 4] << 8) | c[d + 3]) & 16383;\n h.Td = c[d + 4] >> 6;\n h.i = ((c[d + 6] << 8) | c[d + 5]) & 16383;\n h.Ud = c[d + 6] >> 6;\n d += 7;\n e -= 7;\n a.za = (h.c + 15) >> 4;\n a.Ub = (h.i + 15) >> 4;\n b.width = h.c;\n b.height = h.i;\n b.Da = 0;\n b.j = 0;\n b.v = 0;\n b.va = b.width;\n b.o = b.height;\n b.da = 0;\n b.ib = b.width;\n b.hb = b.height;\n b.U = b.width;\n b.T = b.height;\n f = a.Pa;\n M(f.jb, 0, 255, f.jb.length);\n f = a.Qa;\n x(null != f);\n f.Cb = 0;\n f.Bb = 0;\n f.Fb = 1;\n M(f.Zb, 0, 0, f.Zb.length);\n M(f.Lb, 0, 0, f.Lb);\n }\n if (g.ub > e) return T(a, 7, \"bad partition length\");\n f = a.m;\n ma(f, c, d, g.ub);\n d += g.ub;\n e -= g.ub;\n g.Rb && ((h.Ld = G(f)), (h.Kd = G(f)));\n h = a.Qa;\n var k = a.Pa,\n l;\n x(null != f);\n x(null != h);\n h.Cb = G(f);\n if (h.Cb) {\n h.Bb = G(f);\n if (G(f)) {\n h.Fb = G(f);\n for (l = 0; 4 > l; ++l) h.Zb[l] = G(f) ? ca(f, 7) : 0;\n for (l = 0; 4 > l; ++l) h.Lb[l] = G(f) ? ca(f, 6) : 0;\n }\n if (h.Bb) for (l = 0; 3 > l; ++l) k.jb[l] = G(f) ? na(f, 8) : 255;\n } else h.Bb = 0;\n if (f.Ka) return T(a, 3, \"cannot parse segment header\");\n h = a.ed;\n h.zd = G(f);\n h.Tb = na(f, 6);\n h.wb = na(f, 3);\n h.Pc = G(f);\n if (h.Pc && G(f)) {\n for (k = 0; 4 > k; ++k) G(f) && (h.vd[k] = ca(f, 6));\n for (k = 0; 4 > k; ++k) G(f) && (h.od[k] = ca(f, 6));\n }\n a.L = 0 == h.Tb ? 0 : h.zd ? 1 : 2;\n if (f.Ka) return T(a, 3, \"cannot parse filter header\");\n l = d;\n var m = e;\n e = l;\n d = l + m;\n h = m;\n a.Xb = (1 << na(a.m, 2)) - 1;\n k = a.Xb;\n if (m < 3 * k) c = 7;\n else {\n l += 3 * k;\n h -= 3 * k;\n for (m = 0; m < k; ++m) {\n var n = c[e + 0] | (c[e + 1] << 8) | (c[e + 2] << 16);\n n > h && (n = h);\n ma(a.Jc[+m], c, l, n);\n l += n;\n h -= n;\n e += 3;\n }\n ma(a.Jc[+k], c, l, h);\n c = l < d ? 0 : 5;\n }\n if (0 != c) return T(a, c, \"cannot parse partitions\");\n l = a.m;\n c = na(l, 7);\n e = G(l) ? ca(l, 4) : 0;\n d = G(l) ? ca(l, 4) : 0;\n h = G(l) ? ca(l, 4) : 0;\n k = G(l) ? ca(l, 4) : 0;\n l = G(l) ? ca(l, 4) : 0;\n m = a.Qa;\n for (n = 0; 4 > n; ++n) {\n if (m.Cb) {\n var r = m.Zb[n];\n m.Fb || (r += c);\n } else if (0 < n) {\n a.pb[n] = a.pb[0];\n continue;\n } else r = c;\n var q = a.pb[n];\n q.Sc[0] = Lb[ga(r + e, 127)];\n q.Sc[1] = Mb[ga(r + 0, 127)];\n q.Eb[0] = 2 * Lb[ga(r + d, 127)];\n q.Eb[1] = (101581 * Mb[ga(r + h, 127)]) >> 16;\n 8 > q.Eb[1] && (q.Eb[1] = 8);\n q.Qc[0] = Lb[ga(r + k, 117)];\n q.Qc[1] = Mb[ga(r + l, 127)];\n q.lc = r + l;\n }\n if (!g.Rb) return T(a, 4, \"Not a key frame.\");\n G(f);\n g = a.Pa;\n for (c = 0; 4 > c; ++c) {\n for (e = 0; 8 > e; ++e)\n for (d = 0; 3 > d; ++d)\n for (h = 0; 11 > h; ++h)\n (k = K(f, Ee[c][e][d][h]) ? na(f, 8) : Fe[c][e][d][h]),\n (g.Wc[c][e].Yb[d][h] = k);\n for (e = 0; 17 > e; ++e) g.Xc[c][e] = g.Wc[c][Ge[e]];\n }\n a.kc = G(f);\n a.kc && (a.Bd = na(f, 8));\n return (a.cb = 1);\n }\n function De(a, b, c, d, e, f, g) {\n var h = b[e].Yb[c];\n for (c = 0; 16 > e; ++e) {\n if (!K(a, h[c + 0])) return e;\n for (; !K(a, h[c + 1]); )\n if (((h = b[++e].Yb[0]), (c = 0), 16 == e)) return 16;\n var k = b[e + 1].Yb;\n if (K(a, h[c + 2])) {\n var l = a,\n m = h,\n n = c;\n var r = 0;\n if (K(l, m[n + 3]))\n if (K(l, m[n + 6])) {\n h = 0;\n r = K(l, m[n + 8]);\n m = K(l, m[n + 9 + r]);\n n = 2 * r + m;\n r = 0;\n for (m = He[n]; m[h]; ++h) r += r + K(l, m[h]);\n r += 3 + (8 << n);\n } else\n K(l, m[n + 7])\n ? ((r = 7 + 2 * K(l, 165)), (r += K(l, 145)))\n : (r = 5 + K(l, 159));\n else K(l, m[n + 4]) ? (r = 3 + K(l, m[n + 5])) : (r = 2);\n h = k[2];\n } else (r = 1), (h = k[1]);\n k = g + Ie[e];\n l = a;\n 0 > l.b && Qa(l);\n var m = l.b,\n n = l.Ca >> 1,\n q = (n - (l.I >> m)) >> 31;\n --l.b;\n l.Ca += q;\n l.Ca |= 1;\n l.I -= ((n + 1) & q) << m;\n f[k] = ((r ^ q) - q) * d[(0 < e) + 0];\n }\n return 16;\n }\n function Lc(a) {\n var b = a.rb[a.sb - 1];\n b.la = 0;\n b.Na = 0;\n M(a.zc, 0, 0, a.zc.length);\n a.ja = 0;\n }\n function Je(a, b) {\n for (a.M = 0; a.M < a.Va; ++a.M) {\n var c = a.Jc[a.M & a.Xb],\n d = a.m,\n e = a,\n f;\n for (f = 0; f < e.za; ++f) {\n var g = d;\n var h = e;\n var k = h.Ac,\n l = h.Bc + 4 * f,\n m = h.zc,\n n = h.ya[h.aa + f];\n h.Qa.Bb\n ? (n.$b = K(g, h.Pa.jb[0])\n ? 2 + K(g, h.Pa.jb[2])\n : K(g, h.Pa.jb[1]))\n : (n.$b = 0);\n h.kc && (n.Ad = K(g, h.Bd));\n n.Za = !K(g, 145) + 0;\n if (n.Za) {\n var r = n.Ob,\n q = 0;\n for (h = 0; 4 > h; ++h) {\n var t = m[0 + h];\n var v;\n for (v = 0; 4 > v; ++v) {\n t = Ke[k[l + v]][t];\n for (var p = Mc[K(g, t[0])]; 0 < p; )\n p = Mc[2 * p + K(g, t[p])];\n t = -p;\n k[l + v] = t;\n }\n I(r, q, k, l, 4);\n q += 4;\n m[0 + h] = t;\n }\n } else\n (t = K(g, 156) ? (K(g, 128) ? 1 : 3) : K(g, 163) ? 2 : 0),\n (n.Ob[0] = t),\n M(k, l, t, 4),\n M(m, 0, t, 4);\n n.Dd = K(g, 142) ? (K(g, 114) ? (K(g, 183) ? 1 : 3) : 2) : 0;\n }\n if (e.m.Ka) return T(a, 7, \"Premature end-of-partition0 encountered.\");\n for (; a.ja < a.za; ++a.ja) {\n d = a;\n e = c;\n g = d.rb[d.sb - 1];\n k = d.rb[d.sb + d.ja];\n f = d.ya[d.aa + d.ja];\n if ((l = d.kc ? f.Ad : 0))\n (g.la = k.la = 0),\n f.Za || (g.Na = k.Na = 0),\n (f.Hc = 0),\n (f.Gc = 0),\n (f.ia = 0);\n else {\n var u,\n w,\n g = k,\n k = e,\n l = d.Pa.Xc,\n m = d.ya[d.aa + d.ja],\n n = d.pb[m.$b];\n h = m.ad;\n r = 0;\n q = d.rb[d.sb - 1];\n t = v = 0;\n M(h, r, 0, 384);\n if (m.Za) {\n var y = 0;\n var A = l[3];\n } else {\n p = V(16);\n var E = g.Na + q.Na;\n E = oa(k, l[1], E, n.Eb, 0, p, 0);\n g.Na = q.Na = (0 < E) + 0;\n if (1 < E) Nc(p, 0, h, r);\n else {\n var B = (p[0] + 3) >> 3;\n for (p = 0; 256 > p; p += 16) h[r + p] = B;\n }\n y = 1;\n A = l[0];\n }\n var C = g.la & 15;\n var N = q.la & 15;\n for (p = 0; 4 > p; ++p) {\n var z = N & 1;\n for (B = w = 0; 4 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, A, E, n.Sc, y, h, r)),\n (z = E > y),\n (C = (C >> 1) | (z << 7)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 4;\n N = (N >> 1) | (z << 7);\n v = ((v << 8) | w) >>> 0;\n }\n A = C;\n y = N >> 4;\n for (u = 0; 4 > u; u += 2) {\n w = 0;\n C = g.la >> (4 + u);\n N = q.la >> (4 + u);\n for (p = 0; 2 > p; ++p) {\n z = N & 1;\n for (B = 0; 2 > B; ++B)\n (E = z + (C & 1)),\n (E = oa(k, l[2], E, n.Qc, 0, h, r)),\n (z = 0 < E),\n (C = (C >> 1) | (z << 3)),\n (w = (w << 2) | (3 < E ? 3 : 1 < E ? 2 : 0 != h[r + 0])),\n (r += 16);\n C >>= 2;\n N = (N >> 1) | (z << 5);\n }\n t |= w << (4 * u);\n A |= (C << 4) << u;\n y |= (N & 240) << u;\n }\n g.la = A;\n q.la = y;\n m.Hc = v;\n m.Gc = t;\n m.ia = t & 43690 ? 0 : n.ia;\n l = !(v | t);\n }\n 0 < d.L &&\n ((d.wa[d.Y + d.ja] = d.gd[f.$b][f.Za]),\n (d.wa[d.Y + d.ja].La |= !l));\n if (e.Ka) return T(a, 7, \"Premature end-of-file encountered.\");\n }\n Lc(a);\n c = a;\n d = b;\n e = 1;\n f = c.D;\n g = 0 < c.L && c.M >= c.zb && c.M <= c.Va;\n if (0 == c.Aa)\n a: {\n (f.M = c.M), (f.uc = g), Oc(c, f), (e = 1);\n w = c.D;\n f = w.Nb;\n t = Ya[c.L];\n g = t * c.R;\n k = (t / 2) * c.B;\n p = 16 * f * c.R;\n B = 8 * f * c.B;\n l = c.sa;\n m = c.ta - g + p;\n n = c.qa;\n h = c.ra - k + B;\n r = c.Ha;\n q = c.Ia - k + B;\n C = w.M;\n N = 0 == C;\n v = C >= c.Va - 1;\n 2 == c.Aa && Oc(c, w);\n if (w.uc)\n for (E = c, z = E.D.M, x(E.D.uc), w = E.yb; w < E.Hb; ++w) {\n var Q = E;\n y = w;\n A = z;\n var S = Q.D,\n D = S.Nb;\n u = Q.R;\n var S = S.wa[S.Y + y],\n F = Q.sa,\n H = Q.ta + 16 * D * u + 16 * y,\n J = S.dd,\n G = S.tc;\n if (0 != G)\n if ((x(3 <= G), 1 == Q.L))\n 0 < y && Pc(F, H, u, G + 4),\n S.La && Qc(F, H, u, G),\n 0 < A && Rc(F, H, u, G + 4),\n S.La && Sc(F, H, u, G);\n else {\n var L = Q.B,\n O = Q.qa,\n P = Q.ra + 8 * D * L + 8 * y,\n R = Q.Ha,\n Q = Q.Ia + 8 * D * L + 8 * y,\n D = S.ld;\n 0 < y &&\n (Tc(F, H, u, G + 4, J, D),\n Uc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Vc(F, H, u, G, J, D), Wc(O, P, R, Q, L, G, J, D));\n 0 < A &&\n (Xc(F, H, u, G + 4, J, D),\n Yc(O, P, R, Q, L, G + 4, J, D));\n S.La && (Zc(F, H, u, G, J, D), $c(O, P, R, Q, L, G, J, D));\n }\n }\n c.ia && alert(\"todo:DitherRow\");\n if (null != d.put) {\n w = 16 * C;\n C = 16 * (C + 1);\n N\n ? ((d.y = c.sa),\n (d.O = c.ta + p),\n (d.f = c.qa),\n (d.N = c.ra + B),\n (d.ea = c.Ha),\n (d.W = c.Ia + B))\n : ((w -= t),\n (d.y = l),\n (d.O = m),\n (d.f = n),\n (d.N = h),\n (d.ea = r),\n (d.W = q));\n v || (C -= t);\n C > d.o && (C = d.o);\n d.F = null;\n d.J = null;\n if (\n null != c.Fa &&\n 0 < c.Fa.length &&\n w < C &&\n ((d.J = Le(c, d, w, C - w)),\n (d.F = c.mb),\n null == d.F && 0 == d.F.length)\n ) {\n e = T(c, 3, \"Could not decode alpha data.\");\n break a;\n }\n w < d.j &&\n ((t = d.j - w),\n (w = d.j),\n x(!(t & 1)),\n (d.O += c.R * t),\n (d.N += c.B * (t >> 1)),\n (d.W += c.B * (t >> 1)),\n null != d.F && (d.J += d.width * t));\n w < C &&\n ((d.O += d.v),\n (d.N += d.v >> 1),\n (d.W += d.v >> 1),\n null != d.F && (d.J += d.v),\n (d.ka = w - d.j),\n (d.U = d.va - d.v),\n (d.T = C - w),\n (e = d.put(d)));\n }\n f + 1 != c.Ic ||\n v ||\n (I(c.sa, c.ta - g, l, m + 16 * c.R, g),\n I(c.qa, c.ra - k, n, h + 8 * c.B, k),\n I(c.Ha, c.Ia - k, r, q + 8 * c.B, k));\n }\n if (!e) return T(a, 6, \"Output aborted.\");\n }\n return 1;\n }\n function Me(a, b) {\n if (null == a) return 0;\n if (null == b) return T(a, 2, \"NULL VP8Io parameter in VP8Decode().\");\n if (!a.cb && !Kc(a, b)) return 0;\n x(a.cb);\n if (null == b.ac || b.ac(b)) {\n b.ob && (a.L = 0);\n var c = Ya[a.L];\n 2 == a.L\n ? ((a.yb = 0), (a.zb = 0))\n : ((a.yb = (b.v - c) >> 4),\n (a.zb = (b.j - c) >> 4),\n 0 > a.yb && (a.yb = 0),\n 0 > a.zb && (a.zb = 0));\n a.Va = (b.o + 15 + c) >> 4;\n a.Hb = (b.va + 15 + c) >> 4;\n a.Hb > a.za && (a.Hb = a.za);\n a.Va > a.Ub && (a.Va = a.Ub);\n if (0 < a.L) {\n var d = a.ed;\n for (c = 0; 4 > c; ++c) {\n var e;\n if (a.Qa.Cb) {\n var f = a.Qa.Lb[c];\n a.Qa.Fb || (f += d.Tb);\n } else f = d.Tb;\n for (e = 0; 1 >= e; ++e) {\n var g = a.gd[c][e],\n h = f;\n d.Pc && ((h += d.vd[0]), e && (h += d.od[0]));\n h = 0 > h ? 0 : 63 < h ? 63 : h;\n if (0 < h) {\n var k = h;\n 0 < d.wb &&\n ((k = 4 < d.wb ? k >> 2 : k >> 1),\n k > 9 - d.wb && (k = 9 - d.wb));\n 1 > k && (k = 1);\n g.dd = k;\n g.tc = 2 * h + k;\n g.ld = 40 <= h ? 2 : 15 <= h ? 1 : 0;\n } else g.tc = 0;\n g.La = e;\n }\n }\n }\n c = 0;\n } else T(a, 6, \"Frame setup failed\"), (c = a.a);\n if ((c = 0 == c)) {\n if (c) {\n a.$c = 0;\n 0 < a.Aa || (a.Ic = Ne);\n b: {\n c = a.Ic;\n var k = a.za,\n d = 4 * k,\n l = 32 * k,\n m = k + 1,\n n = 0 < a.L ? k * (0 < a.Aa ? 2 : 1) : 0,\n r = (2 == a.Aa ? 2 : 1) * k;\n e = ((3 * (16 * c + Ya[a.L])) / 2) * l;\n f = null != a.Fa && 0 < a.Fa.length ? a.Kc.c * a.Kc.i : 0;\n g = d + 832 + e + f;\n if (g != g) c = 0;\n else {\n if (g > a.Vb) {\n a.Vb = 0;\n a.Ec = V(g);\n a.Fc = 0;\n if (null == a.Ec) {\n c = T(a, 1, \"no memory during frame initialization.\");\n break b;\n }\n a.Vb = g;\n }\n g = a.Ec;\n h = a.Fc;\n a.Ac = g;\n a.Bc = h;\n h += d;\n a.Gd = wa(l, Ic);\n a.Hd = 0;\n a.rb = wa(m + 1, Hc);\n a.sb = 1;\n a.wa = n ? wa(n, Xa) : null;\n a.Y = 0;\n a.D.Nb = 0;\n a.D.wa = a.wa;\n a.D.Y = a.Y;\n 0 < a.Aa && (a.D.Y += k);\n x(!0);\n a.oc = g;\n a.pc = h;\n h += 832;\n a.ya = wa(r, Kb);\n a.aa = 0;\n a.D.ya = a.ya;\n a.D.aa = a.aa;\n 2 == a.Aa && (a.D.aa += k);\n a.R = 16 * k;\n a.B = 8 * k;\n l = Ya[a.L];\n k = l * a.R;\n l = (l / 2) * a.B;\n a.sa = g;\n a.ta = h + k;\n a.qa = a.sa;\n a.ra = a.ta + 16 * c * a.R + l;\n a.Ha = a.qa;\n a.Ia = a.ra + 8 * c * a.B + l;\n a.$c = 0;\n h += e;\n a.mb = f ? g : null;\n a.nb = f ? h : null;\n x(h + f <= a.Fc + a.Vb);\n Lc(a);\n M(a.Ac, a.Bc, 0, d);\n c = 1;\n }\n }\n if (c) {\n b.ka = 0;\n b.y = a.sa;\n b.O = a.ta;\n b.f = a.qa;\n b.N = a.ra;\n b.ea = a.Ha;\n b.Vd = a.Ia;\n b.fa = a.R;\n b.Rc = a.B;\n b.F = null;\n b.J = 0;\n if (!ad) {\n for (c = -255; 255 >= c; ++c) bd[255 + c] = 0 > c ? -c : c;\n for (c = -1020; 1020 >= c; ++c)\n cd[1020 + c] = -128 > c ? -128 : 127 < c ? 127 : c;\n for (c = -112; 112 >= c; ++c)\n dd[112 + c] = -16 > c ? -16 : 15 < c ? 15 : c;\n for (c = -255; 510 >= c; ++c)\n ed[255 + c] = 0 > c ? 0 : 255 < c ? 255 : c;\n ad = 1;\n }\n Nc = Oe;\n Za = Pe;\n Nb = Qe;\n pa = Re;\n Ob = Se;\n fd = Te;\n Xc = Ue;\n Tc = Ve;\n Yc = We;\n Uc = Xe;\n Zc = Ye;\n Vc = Ze;\n $c = $e;\n Wc = af;\n Rc = gd;\n Pc = hd;\n Sc = bf;\n Qc = cf;\n W[0] = df;\n W[1] = ef;\n W[2] = ff;\n W[3] = gf;\n W[4] = hf;\n W[5] = jf;\n W[6] = kf;\n W[7] = lf;\n W[8] = mf;\n W[9] = nf;\n Y[0] = of;\n Y[1] = pf;\n Y[2] = qf;\n Y[3] = rf;\n Y[4] = sf;\n Y[5] = tf;\n Y[6] = uf;\n ka[0] = vf;\n ka[1] = wf;\n ka[2] = xf;\n ka[3] = yf;\n ka[4] = zf;\n ka[5] = Af;\n ka[6] = Bf;\n c = 1;\n } else c = 0;\n }\n c && (c = Je(a, b));\n null != b.bc && b.bc(b);\n c &= 1;\n }\n if (!c) return 0;\n a.cb = 0;\n return c;\n }\n function qa(a, b, c, d, e) {\n e = a[b + c + 32 * d] + (e >> 3);\n a[b + c + 32 * d] = e & -256 ? (0 > e ? 0 : 255) : e;\n }\n function kb(a, b, c, d, e, f) {\n qa(a, b, 0, c, d + e);\n qa(a, b, 1, c, d + f);\n qa(a, b, 2, c, d - f);\n qa(a, b, 3, c, d - e);\n }\n function da(a) {\n return ((20091 * a) >> 16) + a;\n }\n function id(a, b, c, d) {\n var e = 0,\n f;\n var g = V(16);\n for (f = 0; 4 > f; ++f) {\n var h = a[b + 0] + a[b + 8];\n var k = a[b + 0] - a[b + 8];\n var l = ((35468 * a[b + 4]) >> 16) - da(a[b + 12]);\n var m = da(a[b + 4]) + ((35468 * a[b + 12]) >> 16);\n g[e + 0] = h + m;\n g[e + 1] = k + l;\n g[e + 2] = k - l;\n g[e + 3] = h - m;\n e += 4;\n b++;\n }\n for (f = e = 0; 4 > f; ++f)\n (a = g[e + 0] + 4),\n (h = a + g[e + 8]),\n (k = a - g[e + 8]),\n (l = ((35468 * g[e + 4]) >> 16) - da(g[e + 12])),\n (m = da(g[e + 4]) + ((35468 * g[e + 12]) >> 16)),\n qa(c, d, 0, 0, h + m),\n qa(c, d, 1, 0, k + l),\n qa(c, d, 2, 0, k - l),\n qa(c, d, 3, 0, h - m),\n e++,\n (d += 32);\n }\n function Te(a, b, c, d) {\n var e = a[b + 0] + 4,\n f = (35468 * a[b + 4]) >> 16,\n g = da(a[b + 4]),\n h = (35468 * a[b + 1]) >> 16;\n a = da(a[b + 1]);\n kb(c, d, 0, e + g, a, h);\n kb(c, d, 1, e + f, a, h);\n kb(c, d, 2, e - f, a, h);\n kb(c, d, 3, e - g, a, h);\n }\n function Pe(a, b, c, d, e) {\n id(a, b, c, d);\n e && id(a, b + 16, c, d + 4);\n }\n function Qe(a, b, c, d) {\n Za(a, b + 0, c, d, 1);\n Za(a, b + 32, c, d + 128, 1);\n }\n function Re(a, b, c, d) {\n a = a[b + 0] + 4;\n var e;\n for (e = 0; 4 > e; ++e) for (b = 0; 4 > b; ++b) qa(c, d, b, e, a);\n }\n function Se(a, b, c, d) {\n a[b + 0] && pa(a, b + 0, c, d);\n a[b + 16] && pa(a, b + 16, c, d + 4);\n a[b + 32] && pa(a, b + 32, c, d + 128);\n a[b + 48] && pa(a, b + 48, c, d + 128 + 4);\n }\n function Oe(a, b, c, d) {\n var e = V(16),\n f;\n for (f = 0; 4 > f; ++f) {\n var g = a[b + 0 + f] + a[b + 12 + f];\n var h = a[b + 4 + f] + a[b + 8 + f];\n var k = a[b + 4 + f] - a[b + 8 + f];\n var l = a[b + 0 + f] - a[b + 12 + f];\n e[0 + f] = g + h;\n e[8 + f] = g - h;\n e[4 + f] = l + k;\n e[12 + f] = l - k;\n }\n for (f = 0; 4 > f; ++f)\n (a = e[0 + 4 * f] + 3),\n (g = a + e[3 + 4 * f]),\n (h = e[1 + 4 * f] + e[2 + 4 * f]),\n (k = e[1 + 4 * f] - e[2 + 4 * f]),\n (l = a - e[3 + 4 * f]),\n (c[d + 0] = (g + h) >> 3),\n (c[d + 16] = (l + k) >> 3),\n (c[d + 32] = (g - h) >> 3),\n (c[d + 48] = (l - k) >> 3),\n (d += 64);\n }\n function Pb(a, b, c) {\n var d = b - 32,\n e = R,\n f = 255 - a[d - 1],\n g;\n for (g = 0; g < c; ++g) {\n var h = e,\n k = f + a[b - 1],\n l;\n for (l = 0; l < c; ++l) a[b + l] = h[k + a[d + l]];\n b += 32;\n }\n }\n function ef(a, b) {\n Pb(a, b, 4);\n }\n function wf(a, b) {\n Pb(a, b, 8);\n }\n function pf(a, b) {\n Pb(a, b, 16);\n }\n function qf(a, b) {\n var c;\n for (c = 0; 16 > c; ++c) I(a, b + 32 * c, a, b - 32, 16);\n }\n function rf(a, b) {\n var c;\n for (c = 16; 0 < c; --c) M(a, b, a[b - 1], 16), (b += 32);\n }\n function $a(a, b, c) {\n var d;\n for (d = 0; 16 > d; ++d) M(b, c + 32 * d, a, 16);\n }\n function of(a, b) {\n var c = 16,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d] + a[b + d - 32];\n $a(c >> 5, a, b);\n }\n function sf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b - 1 + 32 * d];\n $a(c >> 4, a, b);\n }\n function tf(a, b) {\n var c = 8,\n d;\n for (d = 0; 16 > d; ++d) c += a[b + d - 32];\n $a(c >> 4, a, b);\n }\n function uf(a, b) {\n $a(128, a, b);\n }\n function z(a, b, c) {\n return (a + 2 * b + c + 2) >> 2;\n }\n function ff(a, b) {\n var c = b - 32,\n c = new Uint8Array([\n z(a[c - 1], a[c + 0], a[c + 1]),\n z(a[c + 0], a[c + 1], a[c + 2]),\n z(a[c + 1], a[c + 2], a[c + 3]),\n z(a[c + 2], a[c + 3], a[c + 4])\n ]),\n d;\n for (d = 0; 4 > d; ++d) I(a, b + 32 * d, c, 0, c.length);\n }\n function gf(a, b) {\n var c = a[b - 1],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n ra(a, b + 0, 16843009 * z(a[b - 1 - 32], c, d));\n ra(a, b + 32, 16843009 * z(c, d, e));\n ra(a, b + 64, 16843009 * z(d, e, f));\n ra(a, b + 96, 16843009 * z(e, f, f));\n }\n function df(a, b) {\n var c = 4,\n d;\n for (d = 0; 4 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n c >>= 3;\n for (d = 0; 4 > d; ++d) M(a, b + 32 * d, c, 4);\n }\n function hf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 96] = z(d, e, a[b - 1 + 96]);\n a[b + 1 + 96] = a[b + 0 + 64] = z(c, d, e);\n a[b + 2 + 96] = a[b + 1 + 64] = a[b + 0 + 32] = z(f, c, d);\n a[b + 3 + 96] = a[b + 2 + 64] = a[b + 1 + 32] = a[b + 0 + 0] = z(g, f, c);\n a[b + 3 + 64] = a[b + 2 + 32] = a[b + 1 + 0] = z(h, g, f);\n a[b + 3 + 32] = a[b + 2 + 0] = z(k, h, g);\n a[b + 3 + 0] = z(l, k, h);\n }\n function kf(a, b) {\n var c = a[b + 1 - 32],\n d = a[b + 2 - 32],\n e = a[b + 3 - 32],\n f = a[b + 4 - 32],\n g = a[b + 5 - 32],\n h = a[b + 6 - 32],\n k = a[b + 7 - 32];\n a[b + 0 + 0] = z(a[b + 0 - 32], c, d);\n a[b + 1 + 0] = a[b + 0 + 32] = z(c, d, e);\n a[b + 2 + 0] = a[b + 1 + 32] = a[b + 0 + 64] = z(d, e, f);\n a[b + 3 + 0] = a[b + 2 + 32] = a[b + 1 + 64] = a[b + 0 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 64] = a[b + 1 + 96] = z(f, g, h);\n a[b + 3 + 64] = a[b + 2 + 96] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, k);\n }\n function jf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 - 32],\n g = a[b + 0 - 32],\n h = a[b + 1 - 32],\n k = a[b + 2 - 32],\n l = a[b + 3 - 32];\n a[b + 0 + 0] = a[b + 1 + 64] = (f + g + 1) >> 1;\n a[b + 1 + 0] = a[b + 2 + 64] = (g + h + 1) >> 1;\n a[b + 2 + 0] = a[b + 3 + 64] = (h + k + 1) >> 1;\n a[b + 3 + 0] = (k + l + 1) >> 1;\n a[b + 0 + 96] = z(e, d, c);\n a[b + 0 + 64] = z(d, c, f);\n a[b + 0 + 32] = a[b + 1 + 96] = z(c, f, g);\n a[b + 1 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 2 + 32] = a[b + 3 + 96] = z(g, h, k);\n a[b + 3 + 32] = z(h, k, l);\n }\n function lf(a, b) {\n var c = a[b + 0 - 32],\n d = a[b + 1 - 32],\n e = a[b + 2 - 32],\n f = a[b + 3 - 32],\n g = a[b + 4 - 32],\n h = a[b + 5 - 32],\n k = a[b + 6 - 32],\n l = a[b + 7 - 32];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 1 + 0] = a[b + 0 + 64] = (d + e + 1) >> 1;\n a[b + 2 + 0] = a[b + 1 + 64] = (e + f + 1) >> 1;\n a[b + 3 + 0] = a[b + 2 + 64] = (f + g + 1) >> 1;\n a[b + 0 + 32] = z(c, d, e);\n a[b + 1 + 32] = a[b + 0 + 96] = z(d, e, f);\n a[b + 2 + 32] = a[b + 1 + 96] = z(e, f, g);\n a[b + 3 + 32] = a[b + 2 + 96] = z(f, g, h);\n a[b + 3 + 64] = z(g, h, k);\n a[b + 3 + 96] = z(h, k, l);\n }\n function nf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96];\n a[b + 0 + 0] = (c + d + 1) >> 1;\n a[b + 2 + 0] = a[b + 0 + 32] = (d + e + 1) >> 1;\n a[b + 2 + 32] = a[b + 0 + 64] = (e + f + 1) >> 1;\n a[b + 1 + 0] = z(c, d, e);\n a[b + 3 + 0] = a[b + 1 + 32] = z(d, e, f);\n a[b + 3 + 32] = a[b + 1 + 64] = z(e, f, f);\n a[b + 3 + 64] = a[b + 2 + 64] = a[b + 0 + 96] = a[b + 1 + 96] = a[\n b + 2 + 96\n ] = a[b + 3 + 96] = f;\n }\n function mf(a, b) {\n var c = a[b - 1 + 0],\n d = a[b - 1 + 32],\n e = a[b - 1 + 64],\n f = a[b - 1 + 96],\n g = a[b - 1 - 32],\n h = a[b + 0 - 32],\n k = a[b + 1 - 32],\n l = a[b + 2 - 32];\n a[b + 0 + 0] = a[b + 2 + 32] = (c + g + 1) >> 1;\n a[b + 0 + 32] = a[b + 2 + 64] = (d + c + 1) >> 1;\n a[b + 0 + 64] = a[b + 2 + 96] = (e + d + 1) >> 1;\n a[b + 0 + 96] = (f + e + 1) >> 1;\n a[b + 3 + 0] = z(h, k, l);\n a[b + 2 + 0] = z(g, h, k);\n a[b + 1 + 0] = a[b + 3 + 32] = z(c, g, h);\n a[b + 1 + 32] = a[b + 3 + 64] = z(d, c, g);\n a[b + 1 + 64] = a[b + 3 + 96] = z(e, d, c);\n a[b + 1 + 96] = z(f, e, d);\n }\n function xf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) I(a, b + 32 * c, a, b - 32, 8);\n }\n function yf(a, b) {\n var c;\n for (c = 0; 8 > c; ++c) M(a, b, a[b - 1], 8), (b += 32);\n }\n function lb(a, b, c) {\n var d;\n for (d = 0; 8 > d; ++d) M(b, c + 32 * d, a, 8);\n }\n function vf(a, b) {\n var c = 8,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32] + a[b - 1 + 32 * d];\n lb(c >> 4, a, b);\n }\n function Af(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b + d - 32];\n lb(c >> 3, a, b);\n }\n function zf(a, b) {\n var c = 4,\n d;\n for (d = 0; 8 > d; ++d) c += a[b - 1 + 32 * d];\n lb(c >> 3, a, b);\n }\n function Bf(a, b) {\n lb(128, a, b);\n }\n function ab(a, b, c) {\n var d = a[b - c],\n e = a[b + 0],\n f = 3 * (e - d) + Qb[1020 + a[b - 2 * c] - a[b + c]],\n g = mb[112 + ((f + 4) >> 3)];\n a[b - c] = R[255 + d + mb[112 + ((f + 3) >> 3)]];\n a[b + 0] = R[255 + e - g];\n }\n function jd(a, b, c, d) {\n var e = a[b + 0],\n f = a[b + c];\n return U[255 + a[b - 2 * c] - a[b - c]] > d || U[255 + f - e] > d;\n }\n function kd(a, b, c, d) {\n return (\n 4 * U[255 + a[b - c] - a[b + 0]] + U[255 + a[b - 2 * c] - a[b + c]] <= d\n );\n }\n function ld(a, b, c, d, e) {\n var f = a[b - 3 * c],\n g = a[b - 2 * c],\n h = a[b - c],\n k = a[b + 0],\n l = a[b + c],\n m = a[b + 2 * c],\n n = a[b + 3 * c];\n return 4 * U[255 + h - k] + U[255 + g - l] > d\n ? 0\n : U[255 + a[b - 4 * c] - f] <= e &&\n U[255 + f - g] <= e &&\n U[255 + g - h] <= e &&\n U[255 + n - m] <= e &&\n U[255 + m - l] <= e &&\n U[255 + l - k] <= e;\n }\n function gd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d, c, e) && ab(a, b + d, c);\n }\n function hd(a, b, c, d) {\n var e = 2 * d + 1;\n for (d = 0; 16 > d; ++d) kd(a, b + d * c, 1, e) && ab(a, b + d * c, 1);\n }\n function bf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4 * c), gd(a, b, c, d);\n }\n function cf(a, b, c, d) {\n var e;\n for (e = 3; 0 < e; --e) (b += 4), hd(a, b, c, d);\n }\n function ea(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - 2 * m],\n r = k[l - m],\n q = k[l + 0],\n t = k[l + m],\n v = k[l + 2 * m],\n p = Qb[1020 + 3 * (q - r) + Qb[1020 + n - t]],\n u = (27 * p + 63) >> 7,\n w = (18 * p + 63) >> 7,\n p = (9 * p + 63) >> 7;\n k[l - 3 * m] = R[255 + k[l - 3 * m] + p];\n k[l - 2 * m] = R[255 + n + w];\n k[l - m] = R[255 + r + u];\n k[l + 0] = R[255 + q - u];\n k[l + m] = R[255 + t - w];\n k[l + 2 * m] = R[255 + v - p];\n }\n b += d;\n }\n }\n function Fa(a, b, c, d, e, f, g, h) {\n for (f = 2 * f + 1; 0 < e--; ) {\n if (ld(a, b, c, f, g))\n if (jd(a, b, c, h)) ab(a, b, c);\n else {\n var k = a,\n l = b,\n m = c,\n n = k[l - m],\n r = k[l + 0],\n q = k[l + m],\n t = 3 * (r - n),\n v = mb[112 + ((t + 4) >> 3)],\n t = mb[112 + ((t + 3) >> 3)],\n p = (v + 1) >> 1;\n k[l - 2 * m] = R[255 + k[l - 2 * m] + p];\n k[l - m] = R[255 + n + t];\n k[l + 0] = R[255 + r - v];\n k[l + m] = R[255 + q - p];\n }\n b += d;\n }\n }\n function Ue(a, b, c, d, e, f) {\n ea(a, b, c, 1, 16, d, e, f);\n }\n function Ve(a, b, c, d, e, f) {\n ea(a, b, 1, c, 16, d, e, f);\n }\n function Ye(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4 * c), Fa(a, b, c, 1, 16, d, e, f);\n }\n function Ze(a, b, c, d, e, f) {\n var g;\n for (g = 3; 0 < g; --g) (b += 4), Fa(a, b, 1, c, 16, d, e, f);\n }\n function We(a, b, c, d, e, f, g, h) {\n ea(a, b, e, 1, 8, f, g, h);\n ea(c, d, e, 1, 8, f, g, h);\n }\n function Xe(a, b, c, d, e, f, g, h) {\n ea(a, b, 1, e, 8, f, g, h);\n ea(c, d, 1, e, 8, f, g, h);\n }\n function $e(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4 * e, e, 1, 8, f, g, h);\n Fa(c, d + 4 * e, e, 1, 8, f, g, h);\n }\n function af(a, b, c, d, e, f, g, h) {\n Fa(a, b + 4, 1, e, 8, f, g, h);\n Fa(c, d + 4, 1, e, 8, f, g, h);\n }\n function Cf() {\n this.ba = new Cb();\n this.ec = [];\n this.cc = [];\n this.Mc = [];\n this.Dc = this.Nc = this.dc = this.fc = 0;\n this.Oa = new Ud();\n this.memory = 0;\n this.Ib = \"OutputFunc\";\n this.Jb = \"OutputAlphaFunc\";\n this.Nd = \"OutputRowFunc\";\n }\n function md() {\n this.data = [];\n this.offset = this.kd = this.ha = this.w = 0;\n this.na = [];\n this.xa = this.gb = this.Ja = this.Sa = this.P = 0;\n }\n function Df() {\n this.nc = this.Ea = this.b = this.hc = 0;\n this.K = [];\n this.w = 0;\n }\n function Ef() {\n this.ua = 0;\n this.Wa = new ac();\n this.vb = new ac();\n this.md = this.xc = this.wc = 0;\n this.vc = [];\n this.Wb = 0;\n this.Ya = new Ub();\n this.yc = new O();\n }\n function je() {\n this.xb = this.a = 0;\n this.l = new Oa();\n this.ca = new Cb();\n this.V = [];\n this.Ba = 0;\n this.Ta = [];\n this.Ua = 0;\n this.m = new Ra();\n this.Pb = 0;\n this.wd = new Ra();\n this.Ma = this.$ = this.C = this.i = this.c = this.xd = 0;\n this.s = new Ef();\n this.ab = 0;\n this.gc = wa(4, Df);\n this.Oc = 0;\n }\n function Ff() {\n this.Lc = this.Z = this.$a = this.i = this.c = 0;\n this.l = new Oa();\n this.ic = 0;\n this.ca = [];\n this.tb = 0;\n this.qd = null;\n this.rd = 0;\n }\n function Rb(a, b, c, d, e, f, g) {\n a = null == a ? 0 : a[b + 0];\n for (b = 0; b < g; ++b) (e[f + b] = (a + c[d + b]) & 255), (a = e[f + b]);\n }\n function Gf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h;\n for (h = 0; h < g; ++h) e[f + h] = (a[b + h] + c[d + h]) & 255;\n }\n }\n function Hf(a, b, c, d, e, f, g) {\n if (null == a) Rb(null, null, c, d, e, f, g);\n else {\n var h = a[b + 0],\n k = h,\n l = h,\n m;\n for (m = 0; m < g; ++m)\n (h = a[b + m]),\n (k = l + h - k),\n (l = (c[d + m] + (k & -256 ? (0 > k ? 0 : 255) : k)) & 255),\n (k = h),\n (e[f + m] = l);\n }\n }\n function Le(a, b, c, d) {\n var e = b.width,\n f = b.o;\n x(null != a && null != b);\n if (0 > c || 0 >= d || c + d > f) return null;\n if (!a.Cc) {\n if (null == a.ga) {\n a.ga = new Ff();\n var g;\n (g = null == a.ga) ||\n ((g = b.width * b.o),\n x(0 == a.Gb.length),\n (a.Gb = V(g)),\n (a.Uc = 0),\n null == a.Gb\n ? (g = 0)\n : ((a.mb = a.Gb), (a.nb = a.Uc), (a.rc = null), (g = 1)),\n (g = !g));\n if (!g) {\n g = a.ga;\n var h = a.Fa,\n k = a.P,\n l = a.qc,\n m = a.mb,\n n = a.nb,\n r = k + 1,\n q = l - 1,\n t = g.l;\n x(null != h && null != m && null != b);\n ia[0] = null;\n ia[1] = Rb;\n ia[2] = Gf;\n ia[3] = Hf;\n g.ca = m;\n g.tb = n;\n g.c = b.width;\n g.i = b.height;\n x(0 < g.c && 0 < g.i);\n if (1 >= l) b = 0;\n else if (\n ((g.$a = (h[k + 0] >> 0) & 3),\n (g.Z = (h[k + 0] >> 2) & 3),\n (g.Lc = (h[k + 0] >> 4) & 3),\n (k = (h[k + 0] >> 6) & 3),\n 0 > g.$a || 1 < g.$a || 4 <= g.Z || 1 < g.Lc || k)\n )\n b = 0;\n else if (\n ((t.put = kc),\n (t.ac = gc),\n (t.bc = lc),\n (t.ma = g),\n (t.width = b.width),\n (t.height = b.height),\n (t.Da = b.Da),\n (t.v = b.v),\n (t.va = b.va),\n (t.j = b.j),\n (t.o = b.o),\n g.$a)\n )\n b: {\n x(1 == g.$a), (b = Bc());\n c: for (;;) {\n if (null == b) {\n b = 0;\n break b;\n }\n x(null != g);\n g.mc = b;\n b.c = g.c;\n b.i = g.i;\n b.l = g.l;\n b.l.ma = g;\n b.l.width = g.c;\n b.l.height = g.i;\n b.a = 0;\n cb(b.m, h, r, q);\n if (!rb(g.c, g.i, 1, b, null)) break c;\n 1 == b.ab && 3 == b.gc[0].hc && yc(b.s)\n ? ((g.ic = 1),\n (h = b.c * b.i),\n (b.Ta = null),\n (b.Ua = 0),\n (b.V = V(h)),\n (b.Ba = 0),\n null == b.V ? ((b.a = 1), (b = 0)) : (b = 1))\n : ((g.ic = 0), (b = Ec(b, g.c)));\n if (!b) break c;\n b = 1;\n break b;\n }\n g.mc = null;\n b = 0;\n }\n else b = q >= g.c * g.i;\n g = !b;\n }\n if (g) return null;\n 1 != a.ga.Lc ? (a.Ga = 0) : (d = f - c);\n }\n x(null != a.ga);\n x(c + d <= f);\n a: {\n h = a.ga;\n b = h.c;\n f = h.l.o;\n if (0 == h.$a) {\n r = a.rc;\n q = a.Vc;\n t = a.Fa;\n k = a.P + 1 + c * b;\n l = a.mb;\n m = a.nb + c * b;\n x(k <= a.P + a.qc);\n if (0 != h.Z)\n for (x(null != ia[h.Z]), g = 0; g < d; ++g)\n ia[h.Z](r, q, t, k, l, m, b),\n (r = l),\n (q = m),\n (m += b),\n (k += b);\n else\n for (g = 0; g < d; ++g)\n I(l, m, t, k, b), (r = l), (q = m), (m += b), (k += b);\n a.rc = r;\n a.Vc = q;\n } else {\n x(null != h.mc);\n b = c + d;\n g = h.mc;\n x(null != g);\n x(b <= g.i);\n if (g.C >= b) b = 1;\n else if ((h.ic || Aa(), h.ic)) {\n var h = g.V,\n r = g.Ba,\n q = g.c,\n v = g.i,\n t = 1,\n k = g.$ / q,\n l = g.$ % q,\n m = g.m,\n n = g.s,\n p = g.$,\n u = q * v,\n w = q * b,\n y = n.wc,\n A = p < w ? ha(n, l, k) : null;\n x(p <= u);\n x(b <= v);\n x(yc(n));\n c: for (;;) {\n for (; !m.h && p < w; ) {\n l & y || (A = ha(n, l, k));\n x(null != A);\n Sa(m);\n v = ua(A.G[0], A.H[0], m);\n if (256 > v)\n (h[r + p] = v),\n ++p,\n ++l,\n l >= q && ((l = 0), ++k, k <= b && !(k % 16) && Ib(g, k));\n else if (280 > v) {\n var v = ib(v - 256, m);\n var E = ua(A.G[4], A.H[4], m);\n Sa(m);\n E = ib(E, m);\n E = nc(q, E);\n if (p >= E && u - p >= v) {\n var B;\n for (B = 0; B < v; ++B) h[r + p + B] = h[r + p + B - E];\n } else {\n t = 0;\n break c;\n }\n p += v;\n for (l += v; l >= q; )\n (l -= q), ++k, k <= b && !(k % 16) && Ib(g, k);\n p < w && l & y && (A = ha(n, l, k));\n } else {\n t = 0;\n break c;\n }\n x(m.h == db(m));\n }\n Ib(g, k > b ? b : k);\n break c;\n }\n !t || (m.h && p < u) ? ((t = 0), (g.a = m.h ? 5 : 3)) : (g.$ = p);\n b = t;\n } else b = Jb(g, g.V, g.Ba, g.c, g.i, b, se);\n if (!b) {\n d = 0;\n break a;\n }\n }\n c + d >= f && (a.Cc = 1);\n d = 1;\n }\n if (!d) return null;\n if (\n a.Cc &&\n ((d = a.ga), null != d && (d.mc = null), (a.ga = null), 0 < a.Ga)\n )\n return alert(\"todo:WebPDequantizeLevels\"), null;\n }\n return a.nb + c * e;\n }\n function If(a, b, c, d, e, f) {\n for (; 0 < e--; ) {\n var g = a,\n h = b + (c ? 1 : 0),\n k = a,\n l = b + (c ? 0 : 3),\n m;\n for (m = 0; m < d; ++m) {\n var n = k[l + 4 * m];\n 255 != n &&\n ((n *= 32897),\n (g[h + 4 * m + 0] = (g[h + 4 * m + 0] * n) >> 23),\n (g[h + 4 * m + 1] = (g[h + 4 * m + 1] * n) >> 23),\n (g[h + 4 * m + 2] = (g[h + 4 * m + 2] * n) >> 23));\n }\n b += f;\n }\n }\n function Jf(a, b, c, d, e) {\n for (; 0 < d--; ) {\n var f;\n for (f = 0; f < c; ++f) {\n var g = a[b + 2 * f + 0],\n h = a[b + 2 * f + 1],\n k = h & 15,\n l = 4369 * k,\n h = (((h & 240) | (h >> 4)) * l) >> 16;\n a[b + 2 * f + 0] =\n (((((g & 240) | (g >> 4)) * l) >> 16) & 240) |\n ((((((g & 15) | (g << 4)) * l) >> 16) >> 4) & 15);\n a[b + 2 * f + 1] = (h & 240) | k;\n }\n b += e;\n }\n }\n function Kf(a, b, c, d, e, f, g, h) {\n var k = 255,\n l,\n m;\n for (m = 0; m < e; ++m) {\n for (l = 0; l < d; ++l) {\n var n = a[b + l];\n f[g + 4 * l] = n;\n k &= n;\n }\n b += c;\n g += h;\n }\n return 255 != k;\n }\n function Lf(a, b, c, d, e) {\n var f;\n for (f = 0; f < e; ++f) c[d + f] = a[b + f] >> 8;\n }\n function Aa() {\n za = If;\n vc = Jf;\n fc = Kf;\n Fc = Lf;\n }\n function va(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n, r, q, t, v, p, u, w, y) {\n var d,\n E = (y - 1) >> 1;\n var B = h[k + 0] | (l[m + 0] << 16);\n var C = n[r + 0] | (q[t + 0] << 16);\n x(null != a);\n var z = (3 * B + C + 131074) >> 2;\n b(a[e + 0], z & 255, z >> 16, v, p);\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + 0], z & 255, z >> 16, u, w));\n for (d = 1; d <= E; ++d) {\n var D = h[k + d] | (l[m + d] << 16);\n var G = n[r + d] | (q[t + d] << 16);\n var F = B + D + C + G + 524296;\n var H = (F + 2 * (D + C)) >> 3;\n F = (F + 2 * (B + G)) >> 3;\n z = (H + B) >> 1;\n B = (F + D) >> 1;\n b(a[e + 2 * d - 1], z & 255, z >> 16, v, p + (2 * d - 1) * c);\n b(a[e + 2 * d - 0], B & 255, B >> 16, v, p + (2 * d - 0) * c);\n null != f &&\n ((z = (F + C) >> 1),\n (B = (H + G) >> 1),\n b(f[g + 2 * d - 1], z & 255, z >> 16, u, w + (2 * d - 1) * c),\n b(f[g + 2 * d + 0], B & 255, B >> 16, u, w + (2 * d + 0) * c));\n B = D;\n C = G;\n }\n y & 1 ||\n ((z = (3 * B + C + 131074) >> 2),\n b(a[e + y - 1], z & 255, z >> 16, v, p + (y - 1) * c),\n null != f &&\n ((z = (3 * C + B + 131074) >> 2),\n b(f[g + y - 1], z & 255, z >> 16, u, w + (y - 1) * c)));\n };\n }\n function ic() {\n P[Ca] = Mf;\n P[Ua] = nd;\n P[tc] = Nf;\n P[Va] = od;\n P[ya] = pd;\n P[Db] = qd;\n P[wc] = Of;\n P[zb] = nd;\n P[Ab] = od;\n P[Ja] = pd;\n P[Bb] = qd;\n }\n function Sb(a) {\n return a & ~Pf ? (0 > a ? 0 : 255) : a >> rd;\n }\n function bb(a, b) {\n return Sb(((19077 * a) >> 8) + ((26149 * b) >> 8) - 14234);\n }\n function nb(a, b, c) {\n return Sb(\n ((19077 * a) >> 8) - ((6419 * b) >> 8) - ((13320 * c) >> 8) + 8708\n );\n }\n function Pa(a, b) {\n return Sb(((19077 * a) >> 8) + ((33050 * b) >> 8) - 17685);\n }\n function Ga(a, b, c, d, e) {\n d[e + 0] = bb(a, c);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = Pa(a, b);\n }\n function Tb(a, b, c, d, e) {\n d[e + 0] = Pa(a, b);\n d[e + 1] = nb(a, b, c);\n d[e + 2] = bb(a, c);\n }\n function sd(a, b, c, d, e) {\n var f = nb(a, b, c);\n b = ((f << 3) & 224) | (Pa(a, b) >> 3);\n d[e + 0] = (bb(a, c) & 248) | (f >> 5);\n d[e + 1] = b;\n }\n function td(a, b, c, d, e) {\n var f = (Pa(a, b) & 240) | 15;\n d[e + 0] = (bb(a, c) & 240) | (nb(a, b, c) >> 4);\n d[e + 1] = f;\n }\n function ud(a, b, c, d, e) {\n d[e + 0] = 255;\n Ga(a, b, c, d, e + 1);\n }\n function vd(a, b, c, d, e) {\n Tb(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function wd(a, b, c, d, e) {\n Ga(a, b, c, d, e);\n d[e + 3] = 255;\n }\n function ga(a, b) {\n return 0 > a ? 0 : a > b ? b : a;\n }\n function la(a, b, c) {\n self[a] = function(a, e, f, g, h, k, l, m, n) {\n for (var d = m + (n & -2) * c; m != d; )\n b(a[e + 0], f[g + 0], h[k + 0], l, m),\n b(a[e + 1], f[g + 0], h[k + 0], l, m + c),\n (e += 2),\n ++g,\n ++k,\n (m += 2 * c);\n n & 1 && b(a[e + 0], f[g + 0], h[k + 0], l, m);\n };\n }\n function xd(a, b, c) {\n return 0 == c ? (0 == a ? (0 == b ? 6 : 5) : 0 == b ? 4 : 0) : c;\n }\n function yd(a, b, c, d, e) {\n switch (a >>> 30) {\n case 3:\n Za(b, c, d, e, 0);\n break;\n case 2:\n fd(b, c, d, e);\n break;\n case 1:\n pa(b, c, d, e);\n }\n }\n function Oc(a, b) {\n var c,\n d,\n e = b.M,\n f = b.Nb,\n g = a.oc,\n h = a.pc + 40,\n k = a.oc,\n l = a.pc + 584,\n m = a.oc,\n n = a.pc + 600;\n for (c = 0; 16 > c; ++c) g[h + 32 * c - 1] = 129;\n for (c = 0; 8 > c; ++c)\n (k[l + 32 * c - 1] = 129), (m[n + 32 * c - 1] = 129);\n 0 < e\n ? (g[h - 1 - 32] = k[l - 1 - 32] = m[n - 1 - 32] = 129)\n : (M(g, h - 32 - 1, 127, 21),\n M(k, l - 32 - 1, 127, 9),\n M(m, n - 32 - 1, 127, 9));\n for (d = 0; d < a.za; ++d) {\n var r = b.ya[b.aa + d];\n if (0 < d) {\n for (c = -1; 16 > c; ++c) I(g, h + 32 * c - 4, g, h + 32 * c + 12, 4);\n for (c = -1; 8 > c; ++c)\n I(k, l + 32 * c - 4, k, l + 32 * c + 4, 4),\n I(m, n + 32 * c - 4, m, n + 32 * c + 4, 4);\n }\n var q = a.Gd,\n t = a.Hd + d,\n v = r.ad,\n p = r.Hc;\n 0 < e &&\n (I(g, h - 32, q[t].y, 0, 16),\n I(k, l - 32, q[t].f, 0, 8),\n I(m, n - 32, q[t].ea, 0, 8));\n if (r.Za) {\n var u = g;\n var w = h - 32 + 16;\n 0 < e &&\n (d >= a.za - 1\n ? M(u, w, q[t].y[15], 4)\n : I(u, w, q[t + 1].y, 0, 4));\n for (c = 0; 4 > c; c++)\n u[w + 128 + c] = u[w + 256 + c] = u[w + 384 + c] = u[w + 0 + c];\n for (c = 0; 16 > c; ++c, p <<= 2)\n (u = g), (w = h + zd[c]), W[r.Ob[c]](u, w), yd(p, v, 16 * +c, u, w);\n } else if (((u = xd(d, e, r.Ob[0])), Y[u](g, h), 0 != p))\n for (c = 0; 16 > c; ++c, p <<= 2) yd(p, v, 16 * +c, g, h + zd[c]);\n c = r.Gc;\n u = xd(d, e, r.Dd);\n ka[u](k, l);\n ka[u](m, n);\n r = c >> 0;\n p = v;\n u = k;\n w = l;\n r & 255 && (r & 170 ? Nb(p, 256, u, w) : Ob(p, 256, u, w));\n c >>= 8;\n r = m;\n p = n;\n c & 255 && (c & 170 ? Nb(v, 320, r, p) : Ob(v, 320, r, p));\n e < a.Ub - 1 &&\n (I(q[t].y, 0, g, h + 480, 16),\n I(q[t].f, 0, k, l + 224, 8),\n I(q[t].ea, 0, m, n + 224, 8));\n c = 8 * f * a.B;\n q = a.sa;\n t = a.ta + 16 * d + 16 * f * a.R;\n v = a.qa;\n r = a.ra + 8 * d + c;\n p = a.Ha;\n u = a.Ia + 8 * d + c;\n for (c = 0; 16 > c; ++c) I(q, t + c * a.R, g, h + 32 * c, 16);\n for (c = 0; 8 > c; ++c)\n I(v, r + c * a.B, k, l + 32 * c, 8),\n I(p, u + c * a.B, m, n + 32 * c, 8);\n }\n }\n function Ad(a, b, c, d, e, f, g, h, k) {\n var l = [0],\n m = [0],\n n = 0,\n r = null != k ? k.kd : 0,\n q = null != k ? k : new md();\n if (null == a || 12 > c) return 7;\n q.data = a;\n q.w = b;\n q.ha = c;\n b = [b];\n c = [c];\n q.gb = [q.gb];\n a: {\n var t = b;\n var v = c;\n var p = q.gb;\n x(null != a);\n x(null != v);\n x(null != p);\n p[0] = 0;\n if (12 <= v[0] && !fa(a, t[0], \"RIFF\")) {\n if (fa(a, t[0] + 8, \"WEBP\")) {\n p = 3;\n break a;\n }\n var u = Ha(a, t[0] + 4);\n if (12 > u || 4294967286 < u) {\n p = 3;\n break a;\n }\n if (r && u > v[0] - 8) {\n p = 7;\n break a;\n }\n p[0] = u;\n t[0] += 12;\n v[0] -= 12;\n }\n p = 0;\n }\n if (0 != p) return p;\n u = 0 < q.gb[0];\n for (c = c[0]; ; ) {\n t = [0];\n n = [n];\n a: {\n var w = a;\n v = b;\n p = c;\n var y = n,\n A = l,\n z = m,\n B = t;\n y[0] = 0;\n if (8 > p[0]) p = 7;\n else {\n if (!fa(w, v[0], \"VP8X\")) {\n if (10 != Ha(w, v[0] + 4)) {\n p = 3;\n break a;\n }\n if (18 > p[0]) {\n p = 7;\n break a;\n }\n var C = Ha(w, v[0] + 8);\n var D = 1 + Yb(w, v[0] + 12);\n w = 1 + Yb(w, v[0] + 15);\n if (2147483648 <= D * w) {\n p = 3;\n break a;\n }\n null != B && (B[0] = C);\n null != A && (A[0] = D);\n null != z && (z[0] = w);\n v[0] += 18;\n p[0] -= 18;\n y[0] = 1;\n }\n p = 0;\n }\n }\n n = n[0];\n t = t[0];\n if (0 != p) return p;\n v = !!(t & 2);\n if (!u && n) return 3;\n null != f && (f[0] = !!(t & 16));\n null != g && (g[0] = v);\n null != h && (h[0] = 0);\n g = l[0];\n t = m[0];\n if (n && v && null == k) {\n p = 0;\n break;\n }\n if (4 > c) {\n p = 7;\n break;\n }\n if ((u && n) || (!u && !n && !fa(a, b[0], \"ALPH\"))) {\n c = [c];\n q.na = [q.na];\n q.P = [q.P];\n q.Sa = [q.Sa];\n a: {\n C = a;\n p = b;\n u = c;\n var y = q.gb,\n A = q.na,\n z = q.P,\n B = q.Sa;\n D = 22;\n x(null != C);\n x(null != u);\n w = p[0];\n var F = u[0];\n x(null != A);\n x(null != B);\n A[0] = null;\n z[0] = null;\n for (B[0] = 0; ; ) {\n p[0] = w;\n u[0] = F;\n if (8 > F) {\n p = 7;\n break a;\n }\n var G = Ha(C, w + 4);\n if (4294967286 < G) {\n p = 3;\n break a;\n }\n var H = (8 + G + 1) & -2;\n D += H;\n if (0 < y && D > y) {\n p = 3;\n break a;\n }\n if (!fa(C, w, \"VP8 \") || !fa(C, w, \"VP8L\")) {\n p = 0;\n break a;\n }\n if (F[0] < H) {\n p = 7;\n break a;\n }\n fa(C, w, \"ALPH\") || ((A[0] = C), (z[0] = w + 8), (B[0] = G));\n w += H;\n F -= H;\n }\n }\n c = c[0];\n q.na = q.na[0];\n q.P = q.P[0];\n q.Sa = q.Sa[0];\n if (0 != p) break;\n }\n c = [c];\n q.Ja = [q.Ja];\n q.xa = [q.xa];\n a: if (\n ((y = a),\n (p = b),\n (u = c),\n (A = q.gb[0]),\n (z = q.Ja),\n (B = q.xa),\n (C = p[0]),\n (w = !fa(y, C, \"VP8 \")),\n (D = !fa(y, C, \"VP8L\")),\n x(null != y),\n x(null != u),\n x(null != z),\n x(null != B),\n 8 > u[0])\n )\n p = 7;\n else {\n if (w || D) {\n y = Ha(y, C + 4);\n if (12 <= A && y > A - 12) {\n p = 3;\n break a;\n }\n if (r && y > u[0] - 8) {\n p = 7;\n break a;\n }\n z[0] = y;\n p[0] += 8;\n u[0] -= 8;\n B[0] = D;\n } else\n (B[0] = 5 <= u[0] && 47 == y[C + 0] && !(y[C + 4] >> 5)),\n (z[0] = u[0]);\n p = 0;\n }\n c = c[0];\n q.Ja = q.Ja[0];\n q.xa = q.xa[0];\n b = b[0];\n if (0 != p) break;\n if (4294967286 < q.Ja) return 3;\n null == h || v || (h[0] = q.xa ? 2 : 1);\n g = [g];\n t = [t];\n if (q.xa) {\n if (5 > c) {\n p = 7;\n break;\n }\n h = g;\n r = t;\n v = f;\n null == a || 5 > c\n ? (a = 0)\n : 5 <= c && 47 == a[b + 0] && !(a[b + 4] >> 5)\n ? ((u = [0]),\n (y = [0]),\n (A = [0]),\n (z = new Ra()),\n cb(z, a, b, c),\n mc(z, u, y, A)\n ? (null != h && (h[0] = u[0]),\n null != r && (r[0] = y[0]),\n null != v && (v[0] = A[0]),\n (a = 1))\n : (a = 0))\n : (a = 0);\n } else {\n if (10 > c) {\n p = 7;\n break;\n }\n h = t;\n null == a || 10 > c || !Jc(a, b + 3, c - 3)\n ? (a = 0)\n : ((r = a[b + 0] | (a[b + 1] << 8) | (a[b + 2] << 16)),\n (v = ((a[b + 7] << 8) | a[b + 6]) & 16383),\n (a = ((a[b + 9] << 8) | a[b + 8]) & 16383),\n r & 1 ||\n 3 < ((r >> 1) & 7) ||\n !((r >> 4) & 1) ||\n r >> 5 >= q.Ja ||\n !v ||\n !a\n ? (a = 0)\n : (g && (g[0] = v), h && (h[0] = a), (a = 1)));\n }\n if (!a) return 3;\n g = g[0];\n t = t[0];\n if (n && (l[0] != g || m[0] != t)) return 3;\n null != k &&\n ((k[0] = q),\n (k.offset = b - k.w),\n x(4294967286 > b - k.w),\n x(k.offset == k.ha - c));\n break;\n }\n return 0 == p || (7 == p && n && null == k)\n ? (null != f && (f[0] |= null != q.na && 0 < q.na.length),\n null != d && (d[0] = g),\n null != e && (e[0] = t),\n 0)\n : p;\n }\n function hc(a, b, c) {\n var d = b.width,\n e = b.height,\n f = 0,\n g = 0,\n h = d,\n k = e;\n b.Da = null != a && 0 < a.Da;\n if (\n b.Da &&\n ((h = a.cd),\n (k = a.bd),\n (f = a.v),\n (g = a.j),\n 11 > c || ((f &= -2), (g &= -2)),\n 0 > f || 0 > g || 0 >= h || 0 >= k || f + h > d || g + k > e)\n )\n return 0;\n b.v = f;\n b.j = g;\n b.va = f + h;\n b.o = g + k;\n b.U = h;\n b.T = k;\n b.da = null != a && 0 < a.da;\n if (b.da) {\n c = [a.ib];\n f = [a.hb];\n if (!bc(h, k, c, f)) return 0;\n b.ib = c[0];\n b.hb = f[0];\n }\n b.ob = null != a && a.ob;\n b.Kb = null == a || !a.Sd;\n b.da && ((b.ob = b.ib < (3 * d) / 4 && b.hb < (3 * e) / 4), (b.Kb = 0));\n return 1;\n }\n function Bd(a) {\n if (null == a) return 2;\n if (11 > a.S) {\n var b = a.f.RGBA;\n b.fb += (a.height - 1) * b.A;\n b.A = -b.A;\n } else\n (b = a.f.kb),\n (a = a.height),\n (b.O += (a - 1) * b.fa),\n (b.fa = -b.fa),\n (b.N += ((a - 1) >> 1) * b.Ab),\n (b.Ab = -b.Ab),\n (b.W += ((a - 1) >> 1) * b.Db),\n (b.Db = -b.Db),\n null != b.F && ((b.J += (a - 1) * b.lb), (b.lb = -b.lb));\n return 0;\n }\n function Cd(a, b, c, d) {\n if (null == d || 0 >= a || 0 >= b) return 2;\n if (null != c) {\n if (c.Da) {\n var e = c.cd,\n f = c.bd,\n g = c.v & -2,\n h = c.j & -2;\n if (0 > g || 0 > h || 0 >= e || 0 >= f || g + e > a || h + f > b)\n return 2;\n a = e;\n b = f;\n }\n if (c.da) {\n e = [c.ib];\n f = [c.hb];\n if (!bc(a, b, e, f)) return 2;\n a = e[0];\n b = f[0];\n }\n }\n d.width = a;\n d.height = b;\n a: {\n var k = d.width;\n var l = d.height;\n a = d.S;\n if (0 >= k || 0 >= l || !(a >= Ca && 13 > a)) a = 2;\n else {\n if (0 >= d.Rd && null == d.sd) {\n var g = (f = e = b = 0),\n h = k * Dd[a],\n m = h * l;\n 11 > a ||\n ((b = (k + 1) / 2),\n (f = ((l + 1) / 2) * b),\n 12 == a && ((e = k), (g = e * l)));\n l = V(m + 2 * f + g);\n if (null == l) {\n a = 1;\n break a;\n }\n d.sd = l;\n 11 > a\n ? ((k = d.f.RGBA),\n (k.eb = l),\n (k.fb = 0),\n (k.A = h),\n (k.size = m))\n : ((k = d.f.kb),\n (k.y = l),\n (k.O = 0),\n (k.fa = h),\n (k.Fd = m),\n (k.f = l),\n (k.N = 0 + m),\n (k.Ab = b),\n (k.Cd = f),\n (k.ea = l),\n (k.W = 0 + m + f),\n (k.Db = b),\n (k.Ed = f),\n 12 == a && ((k.F = l), (k.J = 0 + m + 2 * f)),\n (k.Tc = g),\n (k.lb = e));\n }\n b = 1;\n e = d.S;\n f = d.width;\n g = d.height;\n if (e >= Ca && 13 > e)\n if (11 > e)\n (a = d.f.RGBA),\n (h = Math.abs(a.A)),\n (b &= h * (g - 1) + f <= a.size),\n (b &= h >= f * Dd[e]),\n (b &= null != a.eb);\n else {\n a = d.f.kb;\n h = (f + 1) / 2;\n m = (g + 1) / 2;\n k = Math.abs(a.fa);\n var l = Math.abs(a.Ab),\n n = Math.abs(a.Db),\n r = Math.abs(a.lb),\n q = r * (g - 1) + f;\n b &= k * (g - 1) + f <= a.Fd;\n b &= l * (m - 1) + h <= a.Cd;\n b &= n * (m - 1) + h <= a.Ed;\n b = b & (k >= f) & (l >= h) & (n >= h);\n b &= null != a.y;\n b &= null != a.f;\n b &= null != a.ea;\n 12 == e && ((b &= r >= f), (b &= q <= a.Tc), (b &= null != a.F));\n }\n else b = 0;\n a = b ? 0 : 2;\n }\n }\n if (0 != a) return a;\n null != c && c.fd && (a = Bd(d));\n return a;\n }\n var xb = 64,\n Hd = [\n 0,\n 1,\n 3,\n 7,\n 15,\n 31,\n 63,\n 127,\n 255,\n 511,\n 1023,\n 2047,\n 4095,\n 8191,\n 16383,\n 32767,\n 65535,\n 131071,\n 262143,\n 524287,\n 1048575,\n 2097151,\n 4194303,\n 8388607,\n 16777215\n ],\n Gd = 24,\n ob = 32,\n Xb = 8,\n Id = [\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7,\n 7\n ];\n X(\"Predictor0\", \"PredictorAdd0\");\n self.Predictor0 = function() {\n return 4278190080;\n };\n self.Predictor1 = function(a) {\n return a;\n };\n self.Predictor2 = function(a, b, c) {\n return b[c + 0];\n };\n self.Predictor3 = function(a, b, c) {\n return b[c + 1];\n };\n self.Predictor4 = function(a, b, c) {\n return b[c - 1];\n };\n self.Predictor5 = function(a, b, c) {\n return aa(aa(a, b[c + 1]), b[c + 0]);\n };\n self.Predictor6 = function(a, b, c) {\n return aa(a, b[c - 1]);\n };\n self.Predictor7 = function(a, b, c) {\n return aa(a, b[c + 0]);\n };\n self.Predictor8 = function(a, b, c) {\n return aa(b[c - 1], b[c + 0]);\n };\n self.Predictor9 = function(a, b, c) {\n return aa(b[c + 0], b[c + 1]);\n };\n self.Predictor10 = function(a, b, c) {\n return aa(aa(a, b[c - 1]), aa(b[c + 0], b[c + 1]));\n };\n self.Predictor11 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return 0 >=\n Ia((d >> 24) & 255, (a >> 24) & 255, (b >> 24) & 255) +\n Ia((d >> 16) & 255, (a >> 16) & 255, (b >> 16) & 255) +\n Ia((d >> 8) & 255, (a >> 8) & 255, (b >> 8) & 255) +\n Ia(d & 255, a & 255, b & 255)\n ? d\n : a;\n };\n self.Predictor12 = function(a, b, c) {\n var d = b[c + 0];\n b = b[c - 1];\n return (\n ((sa(((a >> 24) & 255) + ((d >> 24) & 255) - ((b >> 24) & 255)) << 24) |\n (sa(((a >> 16) & 255) + ((d >> 16) & 255) - ((b >> 16) & 255)) <<\n 16) |\n (sa(((a >> 8) & 255) + ((d >> 8) & 255) - ((b >> 8) & 255)) << 8) |\n sa((a & 255) + (d & 255) - (b & 255))) >>>\n 0\n );\n };\n self.Predictor13 = function(a, b, c) {\n var d = b[c - 1];\n a = aa(a, b[c + 0]);\n return (\n ((eb((a >> 24) & 255, (d >> 24) & 255) << 24) |\n (eb((a >> 16) & 255, (d >> 16) & 255) << 16) |\n (eb((a >> 8) & 255, (d >> 8) & 255) << 8) |\n eb((a >> 0) & 255, (d >> 0) & 255)) >>>\n 0\n );\n };\n var ee = self.PredictorAdd0;\n self.PredictorAdd1 = cc;\n X(\"Predictor2\", \"PredictorAdd2\");\n X(\"Predictor3\", \"PredictorAdd3\");\n X(\"Predictor4\", \"PredictorAdd4\");\n X(\"Predictor5\", \"PredictorAdd5\");\n X(\"Predictor6\", \"PredictorAdd6\");\n X(\"Predictor7\", \"PredictorAdd7\");\n X(\"Predictor8\", \"PredictorAdd8\");\n X(\"Predictor9\", \"PredictorAdd9\");\n X(\"Predictor10\", \"PredictorAdd10\");\n X(\"Predictor11\", \"PredictorAdd11\");\n X(\"Predictor12\", \"PredictorAdd12\");\n X(\"Predictor13\", \"PredictorAdd13\");\n var fe = self.PredictorAdd2;\n ec(\n \"ColorIndexInverseTransform\",\n \"MapARGB\",\n \"32b\",\n function(a) {\n return (a >> 8) & 255;\n },\n function(a) {\n return a;\n }\n );\n ec(\n \"VP8LColorIndexInverseTransformAlpha\",\n \"MapAlpha\",\n \"8b\",\n function(a) {\n return a;\n },\n function(a) {\n return (a >> 8) & 255;\n }\n );\n var rc = self.ColorIndexInverseTransform,\n ke = self.MapARGB,\n he = self.VP8LColorIndexInverseTransformAlpha,\n le = self.MapAlpha,\n pc,\n qc = (self.VP8LPredictorsAdd = []);\n qc.length = 16;\n (self.VP8LPredictors = []).length = 16;\n (self.VP8LPredictorsAdd_C = []).length = 16;\n (self.VP8LPredictors_C = []).length = 16;\n var Fb,\n sc,\n Gb,\n Hb,\n xc,\n uc,\n bd = V(511),\n cd = V(2041),\n dd = V(225),\n ed = V(767),\n ad = 0,\n Qb = cd,\n mb = dd,\n R = ed,\n U = bd,\n Ca = 0,\n Ua = 1,\n tc = 2,\n Va = 3,\n ya = 4,\n Db = 5,\n wc = 6,\n zb = 7,\n Ab = 8,\n Ja = 9,\n Bb = 10,\n pe = [2, 3, 7],\n oe = [3, 3, 11],\n Dc = [280, 256, 256, 256, 40],\n qe = [0, 1, 1, 1, 0],\n ne = [17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n de = [\n 24,\n 7,\n 23,\n 25,\n 40,\n 6,\n 39,\n 41,\n 22,\n 26,\n 38,\n 42,\n 56,\n 5,\n 55,\n 57,\n 21,\n 27,\n 54,\n 58,\n 37,\n 43,\n 72,\n 4,\n 71,\n 73,\n 20,\n 28,\n 53,\n 59,\n 70,\n 74,\n 36,\n 44,\n 88,\n 69,\n 75,\n 52,\n 60,\n 3,\n 87,\n 89,\n 19,\n 29,\n 86,\n 90,\n 35,\n 45,\n 68,\n 76,\n 85,\n 91,\n 51,\n 61,\n 104,\n 2,\n 103,\n 105,\n 18,\n 30,\n 102,\n 106,\n 34,\n 46,\n 84,\n 92,\n 67,\n 77,\n 101,\n 107,\n 50,\n 62,\n 120,\n 1,\n 119,\n 121,\n 83,\n 93,\n 17,\n 31,\n 100,\n 108,\n 66,\n 78,\n 118,\n 122,\n 33,\n 47,\n 117,\n 123,\n 49,\n 63,\n 99,\n 109,\n 82,\n 94,\n 0,\n 116,\n 124,\n 65,\n 79,\n 16,\n 32,\n 98,\n 110,\n 48,\n 115,\n 125,\n 81,\n 95,\n 64,\n 114,\n 126,\n 97,\n 111,\n 80,\n 113,\n 127,\n 96,\n 112\n ],\n me = [\n 2954,\n 2956,\n 2958,\n 2962,\n 2970,\n 2986,\n 3018,\n 3082,\n 3212,\n 3468,\n 3980,\n 5004\n ],\n ie = 8,\n Lb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 17,\n 18,\n 19,\n 20,\n 20,\n 21,\n 21,\n 22,\n 22,\n 23,\n 23,\n 24,\n 25,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n 62,\n 63,\n 64,\n 65,\n 66,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 75,\n 76,\n 76,\n 77,\n 78,\n 79,\n 80,\n 81,\n 82,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 91,\n 93,\n 95,\n 96,\n 98,\n 100,\n 101,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 118,\n 122,\n 124,\n 126,\n 128,\n 130,\n 132,\n 134,\n 136,\n 138,\n 140,\n 143,\n 145,\n 148,\n 151,\n 154,\n 157\n ],\n Mb = [\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 60,\n 62,\n 64,\n 66,\n 68,\n 70,\n 72,\n 74,\n 76,\n 78,\n 80,\n 82,\n 84,\n 86,\n 88,\n 90,\n 92,\n 94,\n 96,\n 98,\n 100,\n 102,\n 104,\n 106,\n 108,\n 110,\n 112,\n 114,\n 116,\n 119,\n 122,\n 125,\n 128,\n 131,\n 134,\n 137,\n 140,\n 143,\n 146,\n 149,\n 152,\n 155,\n 158,\n 161,\n 164,\n 167,\n 170,\n 173,\n 177,\n 181,\n 185,\n 189,\n 193,\n 197,\n 201,\n 205,\n 209,\n 213,\n 217,\n 221,\n 225,\n 229,\n 234,\n 239,\n 245,\n 249,\n 254,\n 259,\n 264,\n 269,\n 274,\n 279,\n 284\n ],\n oa = null,\n He = [\n [173, 148, 140, 0],\n [176, 155, 140, 135, 0],\n [180, 157, 141, 134, 130, 0],\n [254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0]\n ],\n Ie = [0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15],\n Mc = [-0, 1, -1, 2, -2, 3, 4, 6, -3, 5, -4, -5, -6, 7, -7, 8, -8, -9],\n Fe = [\n [\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128],\n [189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128],\n [106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128]\n ],\n [\n [1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128],\n [181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128],\n [78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128]\n ],\n [\n [1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128],\n [184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128],\n [77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128]\n ],\n [\n [1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128],\n [170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128],\n [37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128]\n ],\n [\n [1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128],\n [207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128],\n [102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128]\n ],\n [\n [1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128],\n [177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128],\n [80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62],\n [131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1],\n [68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128]\n ],\n [\n [1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128],\n [184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128],\n [81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128]\n ],\n [\n [1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128],\n [99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128],\n [23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128]\n ],\n [\n [1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128],\n [109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128],\n [44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128]\n ],\n [\n [1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128],\n [94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128],\n [22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128]\n ],\n [\n [1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128],\n [124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128],\n [35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128]\n ],\n [\n [1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128],\n [121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128],\n [45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128]\n ],\n [\n [1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128],\n [203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128],\n [175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128],\n [73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128]\n ],\n [\n [1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128],\n [239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128],\n [155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128]\n ],\n [\n [1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128],\n [201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128],\n [69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128]\n ],\n [\n [1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128],\n [223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128],\n [141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128],\n [190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128],\n [149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128],\n [213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128],\n [55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ],\n [\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128],\n [128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ],\n [\n [\n [202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255],\n [126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128],\n [61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128]\n ],\n [\n [1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128],\n [166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128],\n [39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128]\n ],\n [\n [1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128],\n [124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128],\n [24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128]\n ],\n [\n [1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128],\n [149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128],\n [28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128]\n ],\n [\n [1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128],\n [123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128],\n [20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128]\n ],\n [\n [1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128],\n [168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128],\n [47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128]\n ],\n [\n [1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128],\n [141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128],\n [42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128]\n ],\n [\n [1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128],\n [238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128]\n ]\n ]\n ],\n Ke = [\n [\n [231, 120, 48, 89, 115, 113, 120, 152, 112],\n [152, 179, 64, 126, 170, 118, 46, 70, 95],\n [175, 69, 143, 80, 85, 82, 72, 155, 103],\n [56, 58, 10, 171, 218, 189, 17, 13, 152],\n [114, 26, 17, 163, 44, 195, 21, 10, 173],\n [121, 24, 80, 195, 26, 62, 44, 64, 85],\n [144, 71, 10, 38, 171, 213, 144, 34, 26],\n [170, 46, 55, 19, 136, 160, 33, 206, 71],\n [63, 20, 8, 114, 114, 208, 12, 9, 226],\n [81, 40, 11, 96, 182, 84, 29, 16, 36]\n ],\n [\n [134, 183, 89, 137, 98, 101, 106, 165, 148],\n [72, 187, 100, 130, 157, 111, 32, 75, 80],\n [66, 102, 167, 99, 74, 62, 40, 234, 128],\n [41, 53, 9, 178, 241, 141, 26, 8, 107],\n [74, 43, 26, 146, 73, 166, 49, 23, 157],\n [65, 38, 105, 160, 51, 52, 31, 115, 128],\n [104, 79, 12, 27, 217, 255, 87, 17, 7],\n [87, 68, 71, 44, 114, 51, 15, 186, 23],\n [47, 41, 14, 110, 182, 183, 21, 17, 194],\n [66, 45, 25, 102, 197, 189, 23, 18, 22]\n ],\n [\n [88, 88, 147, 150, 42, 46, 45, 196, 205],\n [43, 97, 183, 117, 85, 38, 35, 179, 61],\n [39, 53, 200, 87, 26, 21, 43, 232, 171],\n [56, 34, 51, 104, 114, 102, 29, 93, 77],\n [39, 28, 85, 171, 58, 165, 90, 98, 64],\n [34, 22, 116, 206, 23, 34, 43, 166, 73],\n [107, 54, 32, 26, 51, 1, 81, 43, 31],\n [68, 25, 106, 22, 64, 171, 36, 225, 114],\n [34, 19, 21, 102, 132, 188, 16, 76, 124],\n [62, 18, 78, 95, 85, 57, 50, 48, 51]\n ],\n [\n [193, 101, 35, 159, 215, 111, 89, 46, 111],\n [60, 148, 31, 172, 219, 228, 21, 18, 111],\n [112, 113, 77, 85, 179, 255, 38, 120, 114],\n [40, 42, 1, 196, 245, 209, 10, 25, 109],\n [88, 43, 29, 140, 166, 213, 37, 43, 154],\n [61, 63, 30, 155, 67, 45, 68, 1, 209],\n [100, 80, 8, 43, 154, 1, 51, 26, 71],\n [142, 78, 78, 16, 255, 128, 34, 197, 171],\n [41, 40, 5, 102, 211, 183, 4, 1, 221],\n [51, 50, 17, 168, 209, 192, 23, 25, 82]\n ],\n [\n [138, 31, 36, 171, 27, 166, 38, 44, 229],\n [67, 87, 58, 169, 82, 115, 26, 59, 179],\n [63, 59, 90, 180, 59, 166, 93, 73, 154],\n [40, 40, 21, 116, 143, 209, 34, 39, 175],\n [47, 15, 16, 183, 34, 223, 49, 45, 183],\n [46, 17, 33, 183, 6, 98, 15, 32, 183],\n [57, 46, 22, 24, 128, 1, 54, 17, 37],\n [65, 32, 73, 115, 28, 128, 23, 128, 205],\n [40, 3, 9, 115, 51, 192, 18, 6, 223],\n [87, 37, 9, 115, 59, 77, 64, 21, 47]\n ],\n [\n [104, 55, 44, 218, 9, 54, 53, 130, 226],\n [64, 90, 70, 205, 40, 41, 23, 26, 57],\n [54, 57, 112, 184, 5, 41, 38, 166, 213],\n [30, 34, 26, 133, 152, 116, 10, 32, 134],\n [39, 19, 53, 221, 26, 114, 32, 73, 255],\n [31, 9, 65, 234, 2, 15, 1, 118, 73],\n [75, 32, 12, 51, 192, 255, 160, 43, 51],\n [88, 31, 35, 67, 102, 85, 55, 186, 85],\n [56, 21, 23, 111, 59, 205, 45, 37, 192],\n [55, 38, 70, 124, 73, 102, 1, 34, 98]\n ],\n [\n [125, 98, 42, 88, 104, 85, 117, 175, 82],\n [95, 84, 53, 89, 128, 100, 113, 101, 45],\n [75, 79, 123, 47, 51, 128, 81, 171, 1],\n [57, 17, 5, 71, 102, 57, 53, 41, 49],\n [38, 33, 13, 121, 57, 73, 26, 1, 85],\n [41, 10, 67, 138, 77, 110, 90, 47, 114],\n [115, 21, 2, 10, 102, 255, 166, 23, 6],\n [101, 29, 16, 10, 85, 128, 101, 196, 26],\n [57, 18, 10, 102, 102, 213, 34, 20, 43],\n [117, 20, 15, 36, 163, 128, 68, 1, 26]\n ],\n [\n [102, 61, 71, 37, 34, 53, 31, 243, 192],\n [69, 60, 71, 38, 73, 119, 28, 222, 37],\n [68, 45, 128, 34, 1, 47, 11, 245, 171],\n [62, 17, 19, 70, 146, 85, 55, 62, 70],\n [37, 43, 37, 154, 100, 163, 85, 160, 1],\n [63, 9, 92, 136, 28, 64, 32, 201, 85],\n [75, 15, 9, 9, 64, 255, 184, 119, 16],\n [86, 6, 28, 5, 64, 255, 25, 248, 1],\n [56, 8, 17, 132, 137, 255, 55, 116, 128],\n [58, 15, 20, 82, 135, 57, 26, 121, 40]\n ],\n [\n [164, 50, 31, 137, 154, 133, 25, 35, 218],\n [51, 103, 44, 131, 131, 123, 31, 6, 158],\n [86, 40, 64, 135, 148, 224, 45, 183, 128],\n [22, 26, 17, 131, 240, 154, 14, 1, 209],\n [45, 16, 21, 91, 64, 222, 7, 1, 197],\n [56, 21, 39, 155, 60, 138, 23, 102, 213],\n [83, 12, 13, 54, 192, 255, 68, 47, 28],\n [85, 26, 85, 85, 128, 128, 32, 146, 171],\n [18, 11, 7, 63, 144, 171, 4, 4, 246],\n [35, 27, 10, 146, 174, 171, 12, 26, 128]\n ],\n [\n [190, 80, 35, 99, 180, 80, 126, 54, 45],\n [85, 126, 47, 87, 176, 51, 41, 20, 32],\n [101, 75, 128, 139, 118, 146, 116, 128, 85],\n [56, 41, 15, 176, 236, 85, 37, 9, 62],\n [71, 30, 17, 119, 118, 255, 17, 18, 138],\n [101, 38, 60, 138, 55, 70, 43, 26, 142],\n [146, 36, 19, 30, 171, 255, 97, 27, 20],\n [138, 45, 61, 62, 219, 1, 81, 188, 64],\n [32, 41, 20, 117, 151, 142, 20, 21, 163],\n [112, 19, 12, 61, 195, 128, 48, 4, 24]\n ]\n ],\n Ee = [\n [\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255],\n [250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255],\n [234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255],\n [234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255],\n [251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255]\n ],\n [\n [255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ],\n [\n [\n [248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255],\n [248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255],\n [250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ],\n [\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],\n [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]\n ]\n ]\n ],\n Ge = [0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 0],\n Nc,\n Y = [],\n W = [],\n ka = [],\n Za,\n fd,\n Nb,\n pa,\n Ob,\n Xc,\n Tc,\n Yc,\n Uc,\n Zc,\n Vc,\n $c,\n Wc,\n Rc,\n Pc,\n Sc,\n Qc,\n re = 1,\n Cc = 2,\n ia = [],\n za,\n vc,\n fc,\n Fc,\n P = [];\n va(\"UpsampleRgbLinePair\", Ga, 3);\n va(\"UpsampleBgrLinePair\", Tb, 3);\n va(\"UpsampleRgbaLinePair\", wd, 4);\n va(\"UpsampleBgraLinePair\", vd, 4);\n va(\"UpsampleArgbLinePair\", ud, 4);\n va(\"UpsampleRgba4444LinePair\", td, 2);\n va(\"UpsampleRgb565LinePair\", sd, 2);\n var Mf = self.UpsampleRgbLinePair,\n Nf = self.UpsampleBgrLinePair,\n nd = self.UpsampleRgbaLinePair,\n od = self.UpsampleBgraLinePair,\n pd = self.UpsampleArgbLinePair,\n qd = self.UpsampleRgba4444LinePair,\n Of = self.UpsampleRgb565LinePair,\n Wa = 16,\n Ba = 1 << (Wa - 1),\n ta = -227,\n Eb = 482,\n rd = 6,\n Pf = (256 << rd) - 1,\n jc = 0,\n Yd = V(256),\n ae = V(256),\n $d = V(256),\n Zd = V(256),\n be = V(Eb - ta),\n ce = V(Eb - ta);\n la(\"YuvToRgbRow\", Ga, 3);\n la(\"YuvToBgrRow\", Tb, 3);\n la(\"YuvToRgbaRow\", wd, 4);\n la(\"YuvToBgraRow\", vd, 4);\n la(\"YuvToArgbRow\", ud, 4);\n la(\"YuvToRgba4444Row\", td, 2);\n la(\"YuvToRgb565Row\", sd, 2);\n var zd = [\n 0,\n 4,\n 8,\n 12,\n 128,\n 132,\n 136,\n 140,\n 256,\n 260,\n 264,\n 268,\n 384,\n 388,\n 392,\n 396\n ],\n Ya = [0, 2, 8],\n Qf = [8, 7, 6, 4, 4, 2, 2, 2, 1, 1, 1, 1],\n Ne = 1;\n this.WebPDecodeRGBA = function(a, b, c, d, e) {\n var f = Ua;\n var g = new Cf(),\n h = new Cb();\n g.ba = h;\n h.S = f;\n h.width = [h.width];\n h.height = [h.height];\n var k = h.width;\n var l = h.height,\n m = new Td();\n if (null == m || null == a) var n = 2;\n else\n x(null != m),\n (n = Ad(a, b, c, m.width, m.height, m.Pd, m.Qd, m.format, null));\n 0 != n\n ? (k = 0)\n : (null != k && (k[0] = m.width[0]),\n null != l && (l[0] = m.height[0]),\n (k = 1));\n if (k) {\n h.width = h.width[0];\n h.height = h.height[0];\n null != d && (d[0] = h.width);\n null != e && (e[0] = h.height);\n b: {\n d = new Oa();\n e = new md();\n e.data = a;\n e.w = b;\n e.ha = c;\n e.kd = 1;\n b = [0];\n x(null != e);\n a = Ad(e.data, e.w, e.ha, null, null, null, b, null, e);\n (0 == a || 7 == a) && b[0] && (a = 4);\n b = a;\n if (0 == b) {\n x(null != g);\n d.data = e.data;\n d.w = e.w + e.offset;\n d.ha = e.ha - e.offset;\n d.put = kc;\n d.ac = gc;\n d.bc = lc;\n d.ma = g;\n if (e.xa) {\n a = Bc();\n if (null == a) {\n g = 1;\n break b;\n }\n if (te(a, d)) {\n b = Cd(d.width, d.height, g.Oa, g.ba);\n if ((d = 0 == b)) {\n c: {\n d = a;\n d: for (;;) {\n if (null == d) {\n d = 0;\n break c;\n }\n x(null != d.s.yc);\n x(null != d.s.Ya);\n x(0 < d.s.Wb);\n c = d.l;\n x(null != c);\n e = c.ma;\n x(null != e);\n if (0 != d.xb) {\n d.ca = e.ba;\n d.tb = e.tb;\n x(null != d.ca);\n if (!hc(e.Oa, c, Va)) {\n d.a = 2;\n break d;\n }\n if (!Ec(d, c.width)) break d;\n if (c.da) break d;\n (c.da || hb(d.ca.S)) && Aa();\n 11 > d.ca.S ||\n (alert(\"todo:WebPInitConvertARGBToYUV\"),\n null != d.ca.f.kb.F && Aa());\n if (\n d.Pb &&\n 0 < d.s.ua &&\n null == d.s.vb.X &&\n !Zb(d.s.vb, d.s.Wa.Xa)\n ) {\n d.a = 1;\n break d;\n }\n d.xb = 0;\n }\n if (!Jb(d, d.V, d.Ba, d.c, d.i, c.o, ge)) break d;\n e.Dc = d.Ma;\n d = 1;\n break c;\n }\n x(0 != d.a);\n d = 0;\n }\n d = !d;\n }\n d && (b = a.a);\n } else b = a.a;\n } else {\n a = new Ce();\n if (null == a) {\n g = 1;\n break b;\n }\n a.Fa = e.na;\n a.P = e.P;\n a.qc = e.Sa;\n if (Kc(a, d)) {\n if (((b = Cd(d.width, d.height, g.Oa, g.ba)), 0 == b)) {\n a.Aa = 0;\n c = g.Oa;\n e = a;\n x(null != e);\n if (null != c) {\n k = c.Md;\n k = 0 > k ? 0 : 100 < k ? 255 : (255 * k) / 100;\n if (0 < k) {\n for (l = m = 0; 4 > l; ++l)\n (n = e.pb[l]),\n 12 > n.lc &&\n (n.ia = (k * Qf[0 > n.lc ? 0 : n.lc]) >> 3),\n (m |= n.ia);\n m && (alert(\"todo:VP8InitRandom\"), (e.ia = 1));\n }\n e.Ga = c.Id;\n 100 < e.Ga ? (e.Ga = 100) : 0 > e.Ga && (e.Ga = 0);\n }\n Me(a, d) || (b = a.a);\n }\n } else b = a.a;\n }\n 0 == b && null != g.Oa && g.Oa.fd && (b = Bd(g.ba));\n }\n g = b;\n }\n f = 0 != g ? null : 11 > f ? h.f.RGBA.eb : h.f.kb.y;\n } else f = null;\n return f;\n };\n var Dd = [3, 4, 3, 4, 4, 2, 2, 4, 4, 4, 2, 1, 1];\n };\n new _WebPDecoder();\n\n /** @license\n * Copyright (c) 2017 Dominik Homberger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nhttps://webpjs.appspot.com\nWebPRiffParser dominikhlbg@gmail.com\n*/\n\n function memcmp(data, data_off, str, size) {\n for (var i = 0; i < size; i++)\n if (data[data_off + i] != str.charCodeAt(i)) return true;\n return false;\n }\n\n function GetTag(data, data_off) {\n var str = \"\";\n for (var i = 0; i < 4; i++) str += String.fromCharCode(data[data_off++]);\n return str;\n }\n\n function GetLE16(data, data_off) {\n return (data[data_off + 0] << 0) | (data[data_off + 1] << 8);\n }\n\n function GetLE24(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16)) >>>\n 0\n );\n }\n\n function GetLE32(data, data_off) {\n return (\n ((data[data_off + 0] << 0) |\n (data[data_off + 1] << 8) |\n (data[data_off + 2] << 16) |\n (data[data_off + 3] << 24)) >>>\n 0\n );\n }\n\n function WebPRiffParser(src, src_off) {\n var imagearray = {};\n var i = 0;\n var alpha_chunk = false;\n var alpha_size = 0;\n var alpha_offset = 0;\n imagearray[\"frames\"] = [];\n if (memcmp(src, src_off, \"RIFF\", 4)) return;\n src_off += 4;\n var riff_size = GetLE32(src, src_off) + 8;\n src_off += 8;\n\n while (src_off < src.length) {\n var fourcc = GetTag(src, src_off);\n src_off += 4;\n\n var payload_size = GetLE32(src, src_off);\n src_off += 4;\n var payload_size_padded = payload_size + (payload_size & 1);\n\n switch (fourcc) {\n case \"VP8 \":\n case \"VP8L\":\n if (typeof imagearray[\"frames\"][i] === \"undefined\")\n imagearray[\"frames\"][i] = {};\n var obj = imagearray[\"frames\"][i];\n var height = [0];\n var width = [0];\n obj[\"src_off\"] = alpha_chunk ? alpha_offset : src_off - 8;\n obj[\"src_size\"] = alpha_size + payload_size + 8;\n //var rgba = webpdecoder.WebPDecodeRGBA(src,(alpha_chunk?alpha_offset:src_off-8),alpha_size+payload_size+8,width,height);\n //imagearray[i]={'rgba':rgba,'width':width[0],'height':height[0]};\n i++;\n if (alpha_chunk) {\n alpha_chunk = false;\n alpha_size = 0;\n alpha_offset = 0;\n }\n break;\n case \"VP8X\":\n var obj = (imagearray[\"header\"] = {});\n var feature_flags = (obj[\"feature_flags\"] = src[src_off]);\n var src_off_ = src_off + 4;\n var canvas_width = (obj[\"canvas_width\"] = 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n var canvas_height = (obj[\"canvas_height\"] =\n 1 + GetLE24(src, src_off_));\n src_off_ += 3;\n break;\n case \"ALPH\":\n alpha_chunk = true;\n alpha_size = payload_size_padded + 8;\n alpha_offset = src_off - 8;\n break;\n\n case \"ANIM\":\n var obj = imagearray[\"header\"];\n var bgcolor = (obj[\"bgcolor\"] = GetLE32(src, src_off));\n src_off_ = src_off + 4;\n\n var loop_count = (obj[\"loop_count\"] = GetLE16(src, src_off_));\n src_off_ += 2;\n break;\n case \"ANMF\":\n var offset_x = 0,\n offset_y = 0,\n width = 0,\n height = 0,\n duration = 0,\n blend = 0,\n dispose = 0,\n temp = 0;\n var obj = (imagearray[\"frames\"][i] = {});\n obj[\"offset_x\"] = offset_x = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"offset_y\"] = offset_y = 2 * GetLE24(src, src_off);\n src_off += 3;\n obj[\"width\"] = width = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"height\"] = height = 1 + GetLE24(src, src_off);\n src_off += 3;\n obj[\"duration\"] = duration = GetLE24(src, src_off);\n src_off += 3;\n temp = src[src_off++];\n obj[\"dispose\"] = dispose = temp & 1;\n obj[\"blend\"] = blend = (temp >> 1) & 1;\n break;\n default:\n }\n if (fourcc != \"ANMF\") src_off += payload_size_padded;\n }\n return imagearray;\n }\n\n var height = [0];\n var width = [0];\n var pixels = [];\n var webpdecoder = new _WebPDecoder();\n\n var response = imageData;\n var imagearray = WebPRiffParser(response, 0);\n imagearray[\"response\"] = response;\n imagearray[\"rgbaoutput\"] = true;\n imagearray[\"dataurl\"] = false;\n\n var header = imagearray[\"header\"] ? imagearray[\"header\"] : null;\n var frames = imagearray[\"frames\"] ? imagearray[\"frames\"] : null;\n\n if (header) {\n header[\"loop_counter\"] = header[\"loop_count\"];\n height = [header[\"canvas_height\"]];\n width = [header[\"canvas_width\"]];\n\n var blend = false;\n for (var f = 0; f < frames.length; f++)\n if (frames[f][\"blend\"] == 0) {\n blend = true;\n break;\n }\n }\n\n var frame = frames[0];\n var rgba = webpdecoder.WebPDecodeRGBA(\n response,\n frame[\"src_off\"],\n frame[\"src_size\"],\n width,\n height\n );\n frame[\"rgba\"] = rgba;\n frame[\"imgwidth\"] = width[0];\n frame[\"imgheight\"] = height[0];\n\n for (var i = 0; i < width[0] * height[0] * 4; i++) {\n pixels[i] = rgba[i];\n }\n\n this.width = width;\n this.height = height;\n this.data = pixels;\n return this;\n}\n\nWebPDecoder.prototype.getData = function() {\n return this.data;\n};\n\nexport { WebPDecoder };\n","/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { zlibSync } from \"../libs/fflate.js\";\nimport { PNG } from \"../libs/png.js\";\n\n/**\n * jsPDF PNG PlugIn\n * @name png_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /*\n * @see http://www.w3.org/TR/PNG-Chunks.html\n *\n Color Allowed Interpretation\n Type Bit Depths\n\n 0 1,2,4,8,16 Each pixel is a grayscale sample.\n\n 2 8,16 Each pixel is an R,G,B triple.\n\n 3 1,2,4,8 Each pixel is a palette index;\n a PLTE chunk must appear.\n\n 4 8,16 Each pixel is a grayscale sample,\n followed by an alpha sample.\n\n 6 8,16 Each pixel is an R,G,B triple,\n followed by an alpha sample.\n */\n\n /*\n * PNG filter method types\n *\n * @see http://www.w3.org/TR/PNG-Filters.html\n * @see http://www.libpng.org/pub/png/book/chapter09.html\n *\n * This is what the value 'Predictor' in decode params relates to\n *\n * 15 is \"optimal prediction\", which means the prediction algorithm can change from line to line.\n * In that case, you actually have to read the first byte off each line for the prediction algorthim (which should be 0-4, corresponding to PDF 10-14) and select the appropriate unprediction algorithm based on that byte.\n *\n 0 None\n 1 Sub\n 2 Up\n 3 Average\n 4 Paeth\n */\n\n var canCompress = function(value) {\n return value !== jsPDFAPI.image_compression.NONE && hasCompressionJS();\n };\n\n var hasCompressionJS = function() {\n return typeof zlibSync === \"function\";\n };\n var compressBytes = function(bytes, lineLength, colorsPerPixel, compression) {\n var level = 4;\n var filter_method = filterUp;\n\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n level = 1;\n filter_method = filterSub;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n level = 6;\n filter_method = filterAverage;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n level = 9;\n filter_method = filterPaeth;\n break;\n }\n\n bytes = applyPngFilterMethod(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n );\n var dat = zlibSync(bytes, { level: level });\n return jsPDFAPI.__addimage__.arrayBufferToBinaryString(dat);\n };\n\n var applyPngFilterMethod = function(\n bytes,\n lineLength,\n colorsPerPixel,\n filter_method\n ) {\n var lines = bytes.length / lineLength,\n result = new Uint8Array(bytes.length + lines),\n filter_methods = getFilterMethods(),\n line,\n prevLine,\n offset;\n\n for (var i = 0; i < lines; i += 1) {\n offset = i * lineLength;\n line = bytes.subarray(offset, offset + lineLength);\n\n if (filter_method) {\n result.set(filter_method(line, colorsPerPixel, prevLine), offset + i);\n } else {\n var len = filter_methods.length,\n results = [];\n\n for (var j; j < len; j += 1) {\n results[j] = filter_methods[j](line, colorsPerPixel, prevLine);\n }\n\n var ind = getIndexOfSmallestSum(results.concat());\n\n result.set(results[ind], offset + i);\n }\n\n prevLine = line;\n }\n\n return result;\n };\n\n var filterNone = function(line) {\n /*var result = new Uint8Array(line.length + 1);\n result[0] = 0;\n result.set(line, 1);*/\n\n var result = Array.apply([], line);\n result.unshift(0);\n\n return result;\n };\n\n var filterSub = function(line, colorsPerPixel) {\n var result = [],\n len = line.length,\n left;\n\n result[0] = 1;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n result[i + 1] = (line[i] - left + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterUp = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n up;\n\n result[0] = 2;\n\n for (var i = 0; i < len; i += 1) {\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] - up + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var filterAverage = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up;\n\n result[0] = 3;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n result[i + 1] = (line[i] + 0x0100 - ((left + up) >>> 1)) & 0xff;\n }\n\n return result;\n };\n\n var filterPaeth = function(line, colorsPerPixel, prevLine) {\n var result = [],\n len = line.length,\n left,\n up,\n upLeft,\n paeth;\n\n result[0] = 4;\n\n for (var i = 0; i < len; i += 1) {\n left = line[i - colorsPerPixel] || 0;\n up = (prevLine && prevLine[i]) || 0;\n upLeft = (prevLine && prevLine[i - colorsPerPixel]) || 0;\n paeth = paethPredictor(left, up, upLeft);\n result[i + 1] = (line[i] - paeth + 0x0100) & 0xff;\n }\n\n return result;\n };\n\n var paethPredictor = function(left, up, upLeft) {\n if (left === up && up === upLeft) {\n return left;\n }\n var pLeft = Math.abs(up - upLeft),\n pUp = Math.abs(left - upLeft),\n pUpLeft = Math.abs(left + up - upLeft - upLeft);\n return pLeft <= pUp && pLeft <= pUpLeft\n ? left\n : pUp <= pUpLeft\n ? up\n : upLeft;\n };\n\n var getFilterMethods = function() {\n return [filterNone, filterSub, filterUp, filterAverage, filterPaeth];\n };\n\n var getIndexOfSmallestSum = function(arrays) {\n var sum = arrays.map(function(value) {\n return value.reduce(function(pv, cv) {\n return pv + Math.abs(cv);\n }, 0);\n });\n return sum.indexOf(Math.min.apply(null, sum));\n };\n\n var getPredictorFromCompression = function(compression) {\n var predictor;\n switch (compression) {\n case jsPDFAPI.image_compression.FAST:\n predictor = 11;\n break;\n\n case jsPDFAPI.image_compression.MEDIUM:\n predictor = 13;\n break;\n\n case jsPDFAPI.image_compression.SLOW:\n predictor = 14;\n break;\n\n default:\n predictor = 12;\n break;\n }\n return predictor;\n };\n\n /**\n * @name processPNG\n * @function\n * @ignore\n */\n jsPDFAPI.processPNG = function(imageData, index, alias, compression) {\n \"use strict\";\n\n var colorSpace,\n filter = this.decode.FLATE_DECODE,\n bitsPerComponent,\n image,\n decodeParameters = \"\",\n trns,\n colors,\n pal,\n smask,\n pixels,\n len,\n alphaData,\n imgData,\n hasColors,\n pixel,\n i,\n n;\n\n if (this.__addimage__.isArrayBuffer(imageData))\n imageData = new Uint8Array(imageData);\n\n if (this.__addimage__.isArrayBufferView(imageData)) {\n image = new PNG(imageData);\n imageData = image.imgData;\n bitsPerComponent = image.bits;\n colorSpace = image.colorSpace;\n colors = image.colors;\n\n /*\n * colorType 6 - Each pixel is an R,G,B triple, followed by an alpha sample.\n *\n * colorType 4 - Each pixel is a grayscale sample, followed by an alpha sample.\n *\n * Extract alpha to create two separate images, using the alpha as a sMask\n */\n if ([4, 6].indexOf(image.colorType) !== -1) {\n /*\n * processes 8 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 8) {\n pixels =\n image.pixelBitlength == 32\n ? new Uint32Array(image.decodePixels().buffer)\n : image.pixelBitlength == 16\n ? new Uint16Array(image.decodePixels().buffer)\n : new Uint8Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(len * image.colors);\n alphaData = new Uint8Array(len);\n var pDiff = image.pixelBitlength - image.bits;\n i = 0;\n n = 0;\n var pbl;\n\n for (; i < len; i++) {\n pixel = pixels[i];\n pbl = 0;\n\n while (pbl < pDiff) {\n imgData[n++] = (pixel >>> pbl) & 0xff;\n pbl = pbl + image.bits;\n }\n\n alphaData[i] = (pixel >>> pbl) & 0xff;\n }\n }\n\n /*\n * processes 16 bit RGBA and grayscale + alpha images\n */\n if (image.bits === 16) {\n pixels = new Uint32Array(image.decodePixels().buffer);\n len = pixels.length;\n imgData = new Uint8Array(\n len * (32 / image.pixelBitlength) * image.colors\n );\n alphaData = new Uint8Array(len * (32 / image.pixelBitlength));\n hasColors = image.colors > 1;\n i = 0;\n n = 0;\n var a = 0;\n\n while (i < len) {\n pixel = pixels[i++];\n\n imgData[n++] = (pixel >>> 0) & 0xff;\n\n if (hasColors) {\n imgData[n++] = (pixel >>> 16) & 0xff;\n\n pixel = pixels[i++];\n imgData[n++] = (pixel >>> 0) & 0xff;\n }\n\n alphaData[a++] = (pixel >>> 16) & 0xff;\n }\n bitsPerComponent = 8;\n }\n\n if (canCompress(compression)) {\n imageData = compressBytes(\n imgData,\n image.width * image.colors,\n image.colors,\n compression\n );\n smask = compressBytes(alphaData, image.width, 1, compression);\n } else {\n imageData = imgData;\n smask = alphaData;\n filter = undefined;\n }\n }\n\n /*\n * Indexed png. Each pixel is a palette index.\n */\n if (image.colorType === 3) {\n colorSpace = this.color_spaces.INDEXED;\n pal = image.palette;\n\n if (image.transparency.indexed) {\n var trans = image.transparency.indexed;\n var total = 0;\n i = 0;\n len = trans.length;\n\n for (; i < len; ++i) {\n total += trans[i];\n }\n\n total = total / 255;\n\n /*\n * a single color is specified as 100% transparent (0),\n * so we set trns to use a /Mask with that index\n */\n if (total === len - 1 && trans.indexOf(0) !== -1) {\n trns = [trans.indexOf(0)];\n\n /*\n * there's more than one colour within the palette that specifies\n * a transparency value less than 255, so we unroll the pixels to create an image sMask\n */\n } else if (total !== len) {\n pixels = image.decodePixels();\n alphaData = new Uint8Array(pixels.length);\n i = 0;\n len = pixels.length;\n\n for (; i < len; i++) {\n alphaData[i] = trans[pixels[i]];\n }\n\n smask = compressBytes(alphaData, image.width, 1);\n }\n }\n }\n\n var predictor = getPredictorFromCompression(compression);\n\n if (filter === this.decode.FLATE_DECODE) {\n decodeParameters = \"/Predictor \" + predictor + \" \";\n }\n decodeParameters +=\n \"/Colors \" +\n colors +\n \" /BitsPerComponent \" +\n bitsPerComponent +\n \" /Columns \" +\n image.width;\n\n if (\n this.__addimage__.isArrayBuffer(imageData) ||\n this.__addimage__.isArrayBufferView(imageData)\n ) {\n imageData = this.__addimage__.arrayBufferToBinaryString(imageData);\n }\n\n if (\n (smask && this.__addimage__.isArrayBuffer(smask)) ||\n this.__addimage__.isArrayBufferView(smask)\n ) {\n smask = this.__addimage__.arrayBufferToBinaryString(smask);\n }\n\n return {\n alias: alias,\n data: imageData,\n index: index,\n filter: filter,\n decodeParameters: decodeParameters,\n transparency: trns,\n palette: pal,\n sMask: smask,\n predictor: predictor,\n width: image.width,\n height: image.height,\n bitsPerComponent: bitsPerComponent,\n colorSpace: colorSpace\n };\n }\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { GifReader } from \"../libs/omggif.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\n\n/**\n * jsPDF Gif Support PlugIn\n *\n * @name gif_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processGIF89A = function(imageData, index, alias, compression) {\n var reader = new GifReader(imageData);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = [];\n\n reader.decodeAndBlitFrameRGBA(0, pixels);\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n\n jsPDFAPI.processGIF87A = jsPDFAPI.processGIF89A;\n})(jsPDF.API);\n","import { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { BmpDecoder } from \"../libs/BMPDecoder.js\";\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF bmp Support PlugIn\n * @name bmp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processBMP = function(imageData, index, alias, compression) {\n var reader = new BmpDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { JPEGEncoder } from \"../libs/JPEGEncoder.js\";\nimport { WebPDecoder } from \"../libs/WebPDecoder.js\";\n\n/**\n * jsPDF webp Support PlugIn\n *\n * @name webp_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n jsPDFAPI.processWEBP = function(imageData, index, alias, compression) {\n var reader = new WebPDecoder(imageData, false);\n var width = reader.width,\n height = reader.height;\n var qu = 100;\n var pixels = reader.getData();\n\n var rawImageData = {\n data: pixels,\n width: width,\n height: height\n };\n\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(rawImageData, qu);\n return jsPDFAPI.processJPEG.call(this, data, index, alias, compression);\n };\n})(jsPDF.API);\n","/**\n * @license\n *\n * Copyright (c) 2021 Antti Palola, https://github.com/Pantura\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF RGBA array PlugIn\n * @name rgba_support\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @name processRGBA\n * @function\n *\n * Process RGBA Array. This is a one-dimension array with pixel data [red, green, blue, alpha, red, green, ...].\n * RGBA array data can be obtained from DOM canvas getImageData.\n * @ignore\n */\n jsPDFAPI.processRGBA = function(imageData, index, alias) {\n \"use strict\";\n\n var imagePixels = imageData.data;\n var length = imagePixels.length;\n // jsPDF takes alpha data separately so extract that.\n var rgbOut = new Uint8Array((length / 4) * 3);\n var alphaOut = new Uint8Array(length / 4);\n var outIndex = 0;\n var alphaIndex = 0;\n\n for (var i = 0; i < length; i += 4) {\n var r = imagePixels[i];\n var g = imagePixels[i + 1];\n var b = imagePixels[i + 2];\n var alpha = imagePixels[i + 3];\n rgbOut[outIndex++] = r;\n rgbOut[outIndex++] = g;\n rgbOut[outIndex++] = b;\n alphaOut[alphaIndex++] = alpha;\n }\n\n var rgbData = this.__addimage__.arrayBufferToBinaryString(rgbOut);\n var alphaData = this.__addimage__.arrayBufferToBinaryString(alphaOut);\n\n return {\n alpha: alphaData,\n data: rgbData,\n index: index,\n alias: alias,\n colorSpace: \"DeviceRGB\",\n bitsPerComponent: 8,\n width: imageData.width,\n height: imageData.height\n };\n };\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF setLanguage Plugin\n *\n * @name setLanguage\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Add Language Tag to the generated PDF\n *\n * @name setLanguage\n * @function\n * @param {string} langCode The Language code as ISO-639-1 (e.g. 'en') or as country language code (e.g. 'en-GB').\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF()\n * doc.text(10, 10, 'This is a test')\n * doc.setLanguage(\"en-US\")\n * doc.save('english.pdf')\n */\n jsPDFAPI.setLanguage = function(langCode) {\n \"use strict\";\n\n var langCodes = {\n af: \"Afrikaans\",\n sq: \"Albanian\",\n ar: \"Arabic (Standard)\",\n \"ar-DZ\": \"Arabic (Algeria)\",\n \"ar-BH\": \"Arabic (Bahrain)\",\n \"ar-EG\": \"Arabic (Egypt)\",\n \"ar-IQ\": \"Arabic (Iraq)\",\n \"ar-JO\": \"Arabic (Jordan)\",\n \"ar-KW\": \"Arabic (Kuwait)\",\n \"ar-LB\": \"Arabic (Lebanon)\",\n \"ar-LY\": \"Arabic (Libya)\",\n \"ar-MA\": \"Arabic (Morocco)\",\n \"ar-OM\": \"Arabic (Oman)\",\n \"ar-QA\": \"Arabic (Qatar)\",\n \"ar-SA\": \"Arabic (Saudi Arabia)\",\n \"ar-SY\": \"Arabic (Syria)\",\n \"ar-TN\": \"Arabic (Tunisia)\",\n \"ar-AE\": \"Arabic (U.A.E.)\",\n \"ar-YE\": \"Arabic (Yemen)\",\n an: \"Aragonese\",\n hy: \"Armenian\",\n as: \"Assamese\",\n ast: \"Asturian\",\n az: \"Azerbaijani\",\n eu: \"Basque\",\n be: \"Belarusian\",\n bn: \"Bengali\",\n bs: \"Bosnian\",\n br: \"Breton\",\n bg: \"Bulgarian\",\n my: \"Burmese\",\n ca: \"Catalan\",\n ch: \"Chamorro\",\n ce: \"Chechen\",\n zh: \"Chinese\",\n \"zh-HK\": \"Chinese (Hong Kong)\",\n \"zh-CN\": \"Chinese (PRC)\",\n \"zh-SG\": \"Chinese (Singapore)\",\n \"zh-TW\": \"Chinese (Taiwan)\",\n cv: \"Chuvash\",\n co: \"Corsican\",\n cr: \"Cree\",\n hr: \"Croatian\",\n cs: \"Czech\",\n da: \"Danish\",\n nl: \"Dutch (Standard)\",\n \"nl-BE\": \"Dutch (Belgian)\",\n en: \"English\",\n \"en-AU\": \"English (Australia)\",\n \"en-BZ\": \"English (Belize)\",\n \"en-CA\": \"English (Canada)\",\n \"en-IE\": \"English (Ireland)\",\n \"en-JM\": \"English (Jamaica)\",\n \"en-NZ\": \"English (New Zealand)\",\n \"en-PH\": \"English (Philippines)\",\n \"en-ZA\": \"English (South Africa)\",\n \"en-TT\": \"English (Trinidad & Tobago)\",\n \"en-GB\": \"English (United Kingdom)\",\n \"en-US\": \"English (United States)\",\n \"en-ZW\": \"English (Zimbabwe)\",\n eo: \"Esperanto\",\n et: \"Estonian\",\n fo: \"Faeroese\",\n fj: \"Fijian\",\n fi: \"Finnish\",\n fr: \"French (Standard)\",\n \"fr-BE\": \"French (Belgium)\",\n \"fr-CA\": \"French (Canada)\",\n \"fr-FR\": \"French (France)\",\n \"fr-LU\": \"French (Luxembourg)\",\n \"fr-MC\": \"French (Monaco)\",\n \"fr-CH\": \"French (Switzerland)\",\n fy: \"Frisian\",\n fur: \"Friulian\",\n gd: \"Gaelic (Scots)\",\n \"gd-IE\": \"Gaelic (Irish)\",\n gl: \"Galacian\",\n ka: \"Georgian\",\n de: \"German (Standard)\",\n \"de-AT\": \"German (Austria)\",\n \"de-DE\": \"German (Germany)\",\n \"de-LI\": \"German (Liechtenstein)\",\n \"de-LU\": \"German (Luxembourg)\",\n \"de-CH\": \"German (Switzerland)\",\n el: \"Greek\",\n gu: \"Gujurati\",\n ht: \"Haitian\",\n he: \"Hebrew\",\n hi: \"Hindi\",\n hu: \"Hungarian\",\n is: \"Icelandic\",\n id: \"Indonesian\",\n iu: \"Inuktitut\",\n ga: \"Irish\",\n it: \"Italian (Standard)\",\n \"it-CH\": \"Italian (Switzerland)\",\n ja: \"Japanese\",\n kn: \"Kannada\",\n ks: \"Kashmiri\",\n kk: \"Kazakh\",\n km: \"Khmer\",\n ky: \"Kirghiz\",\n tlh: \"Klingon\",\n ko: \"Korean\",\n \"ko-KP\": \"Korean (North Korea)\",\n \"ko-KR\": \"Korean (South Korea)\",\n la: \"Latin\",\n lv: \"Latvian\",\n lt: \"Lithuanian\",\n lb: \"Luxembourgish\",\n mk: \"North Macedonia\",\n ms: \"Malay\",\n ml: \"Malayalam\",\n mt: \"Maltese\",\n mi: \"Maori\",\n mr: \"Marathi\",\n mo: \"Moldavian\",\n nv: \"Navajo\",\n ng: \"Ndonga\",\n ne: \"Nepali\",\n no: \"Norwegian\",\n nb: \"Norwegian (Bokmal)\",\n nn: \"Norwegian (Nynorsk)\",\n oc: \"Occitan\",\n or: \"Oriya\",\n om: \"Oromo\",\n fa: \"Persian\",\n \"fa-IR\": \"Persian/Iran\",\n pl: \"Polish\",\n pt: \"Portuguese\",\n \"pt-BR\": \"Portuguese (Brazil)\",\n pa: \"Punjabi\",\n \"pa-IN\": \"Punjabi (India)\",\n \"pa-PK\": \"Punjabi (Pakistan)\",\n qu: \"Quechua\",\n rm: \"Rhaeto-Romanic\",\n ro: \"Romanian\",\n \"ro-MO\": \"Romanian (Moldavia)\",\n ru: \"Russian\",\n \"ru-MO\": \"Russian (Moldavia)\",\n sz: \"Sami (Lappish)\",\n sg: \"Sango\",\n sa: \"Sanskrit\",\n sc: \"Sardinian\",\n sd: \"Sindhi\",\n si: \"Singhalese\",\n sr: \"Serbian\",\n sk: \"Slovak\",\n sl: \"Slovenian\",\n so: \"Somani\",\n sb: \"Sorbian\",\n es: \"Spanish\",\n \"es-AR\": \"Spanish (Argentina)\",\n \"es-BO\": \"Spanish (Bolivia)\",\n \"es-CL\": \"Spanish (Chile)\",\n \"es-CO\": \"Spanish (Colombia)\",\n \"es-CR\": \"Spanish (Costa Rica)\",\n \"es-DO\": \"Spanish (Dominican Republic)\",\n \"es-EC\": \"Spanish (Ecuador)\",\n \"es-SV\": \"Spanish (El Salvador)\",\n \"es-GT\": \"Spanish (Guatemala)\",\n \"es-HN\": \"Spanish (Honduras)\",\n \"es-MX\": \"Spanish (Mexico)\",\n \"es-NI\": \"Spanish (Nicaragua)\",\n \"es-PA\": \"Spanish (Panama)\",\n \"es-PY\": \"Spanish (Paraguay)\",\n \"es-PE\": \"Spanish (Peru)\",\n \"es-PR\": \"Spanish (Puerto Rico)\",\n \"es-ES\": \"Spanish (Spain)\",\n \"es-UY\": \"Spanish (Uruguay)\",\n \"es-VE\": \"Spanish (Venezuela)\",\n sx: \"Sutu\",\n sw: \"Swahili\",\n sv: \"Swedish\",\n \"sv-FI\": \"Swedish (Finland)\",\n \"sv-SV\": \"Swedish (Sweden)\",\n ta: \"Tamil\",\n tt: \"Tatar\",\n te: \"Teluga\",\n th: \"Thai\",\n tig: \"Tigre\",\n ts: \"Tsonga\",\n tn: \"Tswana\",\n tr: \"Turkish\",\n tk: \"Turkmen\",\n uk: \"Ukrainian\",\n hsb: \"Upper Sorbian\",\n ur: \"Urdu\",\n ve: \"Venda\",\n vi: \"Vietnamese\",\n vo: \"Volapuk\",\n wa: \"Walloon\",\n cy: \"Welsh\",\n xh: \"Xhosa\",\n ji: \"Yiddish\",\n zu: \"Zulu\"\n };\n\n if (this.internal.languageSettings === undefined) {\n this.internal.languageSettings = {};\n this.internal.languageSettings.isSubscribed = false;\n }\n\n if (langCodes[langCode] !== undefined) {\n this.internal.languageSettings.languageCode = langCode;\n if (this.internal.languageSettings.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.write(\n \"/Lang (\" + this.internal.languageSettings.languageCode + \")\"\n );\n });\n this.internal.languageSettings.isSubscribed = true;\n }\n }\n return this;\n };\n})(jsPDF.API);\n","/** @license\n jsPDF standard_fonts_metrics plugin\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n * MIT license.\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n * \n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * This file adds the standard font metrics to jsPDF.\n *\n * Font metrics data is reprocessed derivative of contents of\n * \"Font Metrics for PDF Core 14 Fonts\" package, which exhibits the following copyright and license:\n *\n * Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.\n *\n * This file and the 14 PostScript(R) AFM files it accompanies may be used,\n * copied, and distributed for any purpose and without charge, with or without\n * modification, provided that all copyright notices are retained; that the AFM\n * files are not distributed without this file; that all modifications to this\n * file or any of the AFM files are prominently noted in the modified file(s);\n * and that this paragraph is not modified. Adobe Systems has no responsibility\n * or obligation to support the use of the AFM files.\n *\n * @name standard_fonts_metrics\n * @module\n */\n\n(function(API) {\n \"use strict\";\n API.__fontmetrics__ = API.__fontmetrics__ || {};\n\n var decoded = \"0123456789abcdef\",\n encoded = \"klmnopqrstuvwxyz\",\n mappingUncompress = {},\n mappingCompress = {};\n\n for (var i = 0; i < encoded.length; i++) {\n mappingUncompress[encoded[i]] = decoded[i];\n mappingCompress[decoded[i]] = encoded[i];\n }\n\n var hex = function(value) {\n return \"0x\" + parseInt(value, 10).toString(16);\n };\n\n var compress = (API.__fontmetrics__.compress = function(data) {\n var vals = [\"{\"];\n var value, keystring, valuestring, numberprefix;\n\n for (var key in data) {\n value = data[key];\n\n if (!isNaN(parseInt(key, 10))) {\n key = parseInt(key, 10);\n keystring = hex(key).slice(2);\n keystring =\n keystring.slice(0, -1) + mappingCompress[keystring.slice(-1)];\n } else {\n keystring = \"'\" + key + \"'\";\n }\n\n if (typeof value == \"number\") {\n if (value < 0) {\n valuestring = hex(value).slice(3);\n numberprefix = \"-\";\n } else {\n valuestring = hex(value).slice(2);\n numberprefix = \"\";\n }\n valuestring =\n numberprefix +\n valuestring.slice(0, -1) +\n mappingCompress[valuestring.slice(-1)];\n } else {\n if (typeof value === \"object\") {\n valuestring = compress(value);\n } else {\n throw new Error(\n \"Don't know what to do with value type \" + typeof value + \".\"\n );\n }\n }\n vals.push(keystring + valuestring);\n }\n vals.push(\"}\");\n return vals.join(\"\");\n });\n\n /**\n * Uncompresses data compressed into custom, base16-like format.\n *\n * @public\n * @function\n * @param\n * @returns {Type}\n */\n var uncompress = (API.__fontmetrics__.uncompress = function(data) {\n if (typeof data !== \"string\") {\n throw new Error(\"Invalid argument passed to uncompress.\");\n }\n\n var output = {},\n sign = 1,\n stringparts, // undef. will be [] in string mode\n activeobject = output,\n parentchain = [],\n parent_key_pair,\n keyparts = \"\",\n valueparts = \"\",\n key, // undef. will be Truthy when Key is resolved.\n datalen = data.length - 1, // stripping ending }\n ch;\n\n for (var i = 1; i < datalen; i += 1) {\n // - { } ' are special.\n\n ch = data[i];\n\n if (ch == \"'\") {\n if (stringparts) {\n // end of string mode\n key = stringparts.join(\"\");\n stringparts = undefined;\n } else {\n // start of string mode\n stringparts = [];\n }\n } else if (stringparts) {\n stringparts.push(ch);\n } else if (ch == \"{\") {\n // start of object\n parentchain.push([activeobject, key]);\n activeobject = {};\n key = undefined;\n } else if (ch == \"}\") {\n // end of object\n parent_key_pair = parentchain.pop();\n parent_key_pair[0][parent_key_pair[1]] = activeobject;\n key = undefined;\n activeobject = parent_key_pair[0];\n } else if (ch == \"-\") {\n sign = -1;\n } else {\n // must be number\n if (key === undefined) {\n if (mappingUncompress.hasOwnProperty(ch)) {\n keyparts += mappingUncompress[ch];\n key = parseInt(keyparts, 16) * sign;\n sign = +1;\n keyparts = \"\";\n } else {\n keyparts += ch;\n }\n } else {\n if (mappingUncompress.hasOwnProperty(ch)) {\n valueparts += mappingUncompress[ch];\n activeobject[key] = parseInt(valueparts, 16) * sign;\n sign = +1;\n key = undefined;\n valueparts = \"\";\n } else {\n valueparts += ch;\n }\n }\n }\n }\n return output;\n });\n\n // encoding = 'Unicode'\n // NOT UTF8, NOT UTF16BE/LE, NOT UCS2BE/LE. NO clever BOM behavior\n // Actual 16bit char codes used.\n // no multi-byte logic here\n\n // Unicode characters to WinAnsiEncoding:\n // {402: 131, 8211: 150, 8212: 151, 8216: 145, 8217: 146, 8218: 130, 8220: 147, 8221: 148, 8222: 132, 8224: 134, 8225: 135, 8226: 149, 8230: 133, 8364: 128, 8240:137, 8249: 139, 8250: 155, 710: 136, 8482: 153, 338: 140, 339: 156, 732: 152, 352: 138, 353: 154, 376: 159, 381: 142, 382: 158}\n // as you can see, all Unicode chars are outside of 0-255 range. No char code conflicts.\n // this means that you can give Win cp1252 encoded strings to jsPDF for rendering directly\n // as well as give strings with some (supported by these fonts) Unicode characters and\n // these will be mapped to win cp1252\n // for example, you can send char code (cp1252) 0x80 or (unicode) 0x20AC, getting \"Euro\" glyph displayed in both cases.\n\n var encodingBlock = {\n codePages: [\"WinAnsiEncoding\"],\n WinAnsiEncoding: uncompress(\n \"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\"\n )\n };\n var encodings = {\n Unicode: {\n Courier: encodingBlock,\n \"Courier-Bold\": encodingBlock,\n \"Courier-BoldOblique\": encodingBlock,\n \"Courier-Oblique\": encodingBlock,\n Helvetica: encodingBlock,\n \"Helvetica-Bold\": encodingBlock,\n \"Helvetica-BoldOblique\": encodingBlock,\n \"Helvetica-Oblique\": encodingBlock,\n \"Times-Roman\": encodingBlock,\n \"Times-Bold\": encodingBlock,\n \"Times-BoldItalic\": encodingBlock,\n \"Times-Italic\": encodingBlock\n //\t, 'Symbol'\n //\t, 'ZapfDingbats'\n }\n };\n\n var fontMetrics = {\n Unicode: {\n // all sizing numbers are n/fontMetricsFractionOf = one font size unit\n // this means that if fontMetricsFractionOf = 1000, and letter A's width is 476, it's\n // width is 476/1000 or 47.6% of its height (regardless of font size)\n // At this time this value applies to \"widths\" and \"kerning\" numbers.\n\n // char code 0 represents \"default\" (average) width - use it for chars missing in this table.\n // key 'fof' represents the \"fontMetricsFractionOf\" value\n\n \"Courier-Oblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-BoldItalic\": uncompress(\n \"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n \"Helvetica-Bold\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n Courier: uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-BoldOblique\": uncompress(\n \"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"\n ),\n \"Times-Bold\": uncompress(\n \"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"\n ),\n Symbol: uncompress(\n \"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"\n ),\n Helvetica: uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n ),\n \"Helvetica-BoldOblique\": uncompress(\n \"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"\n ),\n ZapfDingbats: uncompress(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Courier-Bold\": uncompress(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\n \"Times-Italic\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"\n ),\n \"Times-Roman\": uncompress(\n \"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"\n ),\n \"Helvetica-Oblique\": uncompress(\n \"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"\n )\n }\n };\n\n /*\n\tThis event handler is fired when a new jsPDF object is initialized\n\tThis event handler appends metrics data to standard fonts within\n\tthat jsPDF instance. The metrics are mapped over Unicode character\n\tcodes, NOT CIDs or other codes matching the StandardEncoding table of the\n\tstandard PDF fonts.\n\tFuture:\n\tAlso included is the encoding maping table, converting Unicode (UCS-2, UTF-16)\n\tchar codes to StandardEncoding character codes. The encoding table is to be used\n\tsomewhere around \"pdfEscape\" call.\n\t*/\n API.events.push([\n \"addFont\",\n function(data) {\n var font = data.font;\n\n var metrics = fontMetrics[\"Unicode\"][font.postScriptName];\n if (metrics) {\n font.metadata[\"Unicode\"] = {};\n font.metadata[\"Unicode\"].widths = metrics.widths;\n font.metadata[\"Unicode\"].kerning = metrics.kerning;\n }\n\n var encodingBlock = encodings[\"Unicode\"][font.postScriptName];\n if (encodingBlock) {\n font.metadata[\"Unicode\"].encoding = encodingBlock;\n font.encoding = encodingBlock.codePages[0];\n }\n }\n ]); // end of adding event handler\n})(jsPDF.API);\n","/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob } from \"../libs/AtobBtoa.js\";\n\n/**\n * @name ttfsupport\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n\n var binaryStringToUint8Array = function(binary_string) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n };\n\n var addFont = function(font, file) {\n // eslint-disable-next-line no-control-regex\n if (/^\\x00\\x01\\x00\\x00/.test(file)) {\n file = binaryStringToUint8Array(file);\n } else {\n file = binaryStringToUint8Array(atob(file));\n }\n font.metadata = jsPDF.API.TTFFont.open(file);\n font.metadata.Unicode = font.metadata.Unicode || {\n encoding: {},\n kerning: {},\n widths: []\n };\n font.metadata.glyIdsUsed = [0];\n };\n\n jsPDF.API.events.push([\n \"addFont\",\n function(data) {\n var file = undefined;\n var font = data.font;\n var instance = data.instance;\n if (font.isStandardFont) {\n return;\n }\n if (typeof instance !== \"undefined\") {\n if (instance.existsFileInVFS(font.postScriptName) === false) {\n file = instance.loadFile(font.postScriptName);\n } else {\n file = instance.getFileFromVFS(font.postScriptName);\n }\n if (typeof file !== \"string\") {\n throw new Error(\n \"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n addFont(font, file);\n } else {\n throw new Error(\n \"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\" +\n font.postScriptName +\n \"').\"\n );\n }\n }\n ]); // end of adding event handler\n})(jsPDF);\n","/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { console } from \"../libs/console.js\";\nimport { globalObject } from \"../libs/globalObject.js\";\n\n/**\n * jsPDF SVG plugin\n *\n * @name svg\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n function loadCanvg() {\n return (function() {\n if (globalObject[\"canvg\"]) {\n return Promise.resolve(globalObject[\"canvg\"]);\n }\n\n return import(\"canvg\");\n\n })()\n .catch(function(e) {\n return Promise.reject(new Error(\"Could not load canvg: \" + e));\n })\n .then(function(canvg) {\n return canvg.default ? canvg.default : canvg;\n });\n }\n\n /**\n * Parses SVG XML and saves it as image into the PDF.\n *\n * Depends on canvas-element and canvg\n *\n * @name addSvgAsImage\n * @public\n * @function\n * @param {string} SVG-Data as Text\n * @param {number} x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width of SVG-Image (in units declared at inception of PDF document)\n * @param {number} height of SVG-Image (in units declared at inception of PDF document)\n * @param {string} alias of SVG-Image (if used multiple times)\n * @param {string} compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation of the image in degrees (0-359)\n *\n * @returns jsPDF jsPDF-instance\n */\n jsPDFAPI.addSvgAsImage = function(\n svg,\n x,\n y,\n w,\n h,\n alias,\n compression,\n rotation\n ) {\n if (isNaN(x) || isNaN(y)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid coordinates\", arguments);\n throw new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");\n }\n\n if (isNaN(w) || isNaN(h)) {\n console.error(\"jsPDF.addSvgAsImage: Invalid measurements\", arguments);\n throw new Error(\n \"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\"\n );\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#fff\"; /// set white fill style\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n var options = {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true\n };\n var doc = this;\n return loadCanvg()\n .then(\n function(canvg) {\n return canvg.fromString(ctx, svg, options);\n },\n function() {\n return Promise.reject(new Error(\"Could not load canvg.\"));\n }\n )\n .then(function(instance) {\n return instance.render(options);\n })\n .then(function() {\n doc.addImage(\n canvas.toDataURL(\"image/jpeg\", 1.0),\n x,\n y,\n w,\n h,\n compression,\n rotation\n );\n });\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF total_pages plugin\n * @name total_pages\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * @name putTotalPages\n * @function\n * @param {string} pageExpression Regular Expression\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.putTotalPages = function(pageExpression) {\n \"use strict\";\n\n var replaceExpression;\n var totalNumberOfPages = 0;\n if (parseInt(this.internal.getFont().id.substr(1), 10) < 15) {\n replaceExpression = new RegExp(pageExpression, \"g\");\n totalNumberOfPages = this.internal.getNumberOfPages();\n } else {\n replaceExpression = new RegExp(\n this.pdfEscape16(pageExpression, this.internal.getFont()),\n \"g\"\n );\n totalNumberOfPages = this.pdfEscape16(\n this.internal.getNumberOfPages() + \"\",\n this.internal.getFont()\n );\n }\n\n for (var n = 1; n <= this.internal.getNumberOfPages(); n++) {\n for (var i = 0; i < this.internal.pages[n].length; i++) {\n this.internal.pages[n][i] = this.internal.pages[n][i].replace(\n replaceExpression,\n totalNumberOfPages\n );\n }\n }\n\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * jsPDF viewerPreferences Plugin\n * @author Aras Abbasi (github.com/arasabbasi)\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Adds the ability to set ViewerPreferences and by thus\n * controlling the way the document is to be presented on the\n * screen or in print.\n * @name viewerpreferences\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n /**\n * Set the ViewerPreferences of the generated PDF\n *\n * @name viewerPreferences\n * @function\n * @public\n * @param {Object} options Array with the ViewerPreferences
    \n * Example: doc.viewerPreferences({\"FitWindow\":true});
    \n *
    \n * You can set following preferences:
    \n *
    \n * HideToolbar (boolean)
    \n * Default value: false
    \n *
    \n * HideMenubar (boolean)
    \n * Default value: false.
    \n *
    \n * HideWindowUI (boolean)
    \n * Default value: false.
    \n *
    \n * FitWindow (boolean)
    \n * Default value: false.
    \n *
    \n * CenterWindow (boolean)
    \n * Default value: false
    \n *
    \n * DisplayDocTitle (boolean)
    \n * Default value: false.
    \n *
    \n * NonFullScreenPageMode (string)
    \n * Possible values: UseNone, UseOutlines, UseThumbs, UseOC
    \n * Default value: UseNone
    \n *
    \n * Direction (string)
    \n * Possible values: L2R, R2L
    \n * Default value: L2R.
    \n *
    \n * ViewArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * ViewClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintArea (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox
    \n *
    \n * PrintClip (string)
    \n * Possible values: MediaBox, CropBox, TrimBox, BleedBox, ArtBox
    \n * Default value: CropBox.
    \n *
    \n * PrintScaling (string)
    \n * Possible values: AppDefault, None
    \n * Default value: AppDefault.
    \n *
    \n * Duplex (string)
    \n * Possible values: Simplex, DuplexFlipLongEdge, DuplexFlipShortEdge\n * Default value: none
    \n *
    \n * PickTrayByPDFSize (boolean)
    \n * Default value: false
    \n *
    \n * PrintPageRange (Array)
    \n * Example: [[1,5], [7,9]]
    \n * Default value: as defined by PDF viewer application
    \n *
    \n * NumCopies (Number)
    \n * Possible values: 1, 2, 3, 4, 5
    \n * Default value: 1
    \n *
    \n * For more information see the PDF Reference, sixth edition on Page 577\n * @param {boolean} doReset True to reset the settings\n * @function\n * @returns jsPDF jsPDF-instance\n * @example\n * var doc = new jsPDF()\n * doc.text('This is a test', 10, 10)\n * doc.viewerPreferences({'FitWindow': true}, true)\n * doc.save(\"viewerPreferences.pdf\")\n *\n * // Example printing 10 copies, using cropbox, and hiding UI.\n * doc.viewerPreferences({\n * 'HideWindowUI': true,\n * 'PrintArea': 'CropBox',\n * 'NumCopies': 10\n * })\n */\n jsPDFAPI.viewerPreferences = function(options, doReset) {\n options = options || {};\n doReset = doReset || false;\n\n var configuration;\n var configurationTemplate = {\n HideToolbar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideMenubar: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n HideWindowUI: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n FitWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n CenterWindow: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.3\n },\n DisplayDocTitle: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.4\n },\n NonFullScreenPageMode: {\n defaultValue: \"UseNone\",\n value: \"UseNone\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"UseNone\", \"UseOutlines\", \"UseThumbs\", \"UseOC\"],\n pdfVersion: 1.3\n },\n Direction: {\n defaultValue: \"L2R\",\n value: \"L2R\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"L2R\", \"R2L\"],\n pdfVersion: 1.3\n },\n ViewArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n ViewClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintArea: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintClip: {\n defaultValue: \"CropBox\",\n value: \"CropBox\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"MediaBox\", \"CropBox\", \"TrimBox\", \"BleedBox\", \"ArtBox\"],\n pdfVersion: 1.4\n },\n PrintScaling: {\n defaultValue: \"AppDefault\",\n value: \"AppDefault\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\"AppDefault\", \"None\"],\n pdfVersion: 1.6\n },\n Duplex: {\n defaultValue: \"\",\n value: \"none\",\n type: \"name\",\n explicitSet: false,\n valueSet: [\n \"Simplex\",\n \"DuplexFlipShortEdge\",\n \"DuplexFlipLongEdge\",\n \"none\"\n ],\n pdfVersion: 1.7\n },\n PickTrayByPDFSize: {\n defaultValue: false,\n value: false,\n type: \"boolean\",\n explicitSet: false,\n valueSet: [true, false],\n pdfVersion: 1.7\n },\n PrintPageRange: {\n defaultValue: \"\",\n value: \"\",\n type: \"array\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n },\n NumCopies: {\n defaultValue: 1,\n value: 1,\n type: \"integer\",\n explicitSet: false,\n valueSet: null,\n pdfVersion: 1.7\n }\n };\n\n var configurationKeys = Object.keys(configurationTemplate);\n\n var rangeArray = [];\n var i = 0;\n var j = 0;\n var k = 0;\n var isValid;\n\n var method;\n var value;\n\n function arrayContainsElement(array, element) {\n var iterator;\n var result = false;\n\n for (iterator = 0; iterator < array.length; iterator += 1) {\n if (array[iterator] === element) {\n result = true;\n }\n }\n return result;\n }\n\n if (this.internal.viewerpreferences === undefined) {\n this.internal.viewerpreferences = {};\n this.internal.viewerpreferences.configuration = JSON.parse(\n JSON.stringify(configurationTemplate)\n );\n this.internal.viewerpreferences.isSubscribed = false;\n }\n configuration = this.internal.viewerpreferences.configuration;\n\n if (options === \"reset\" || doReset === true) {\n var len = configurationKeys.length;\n\n for (k = 0; k < len; k += 1) {\n configuration[configurationKeys[k]].value =\n configuration[configurationKeys[k]].defaultValue;\n configuration[configurationKeys[k]].explicitSet = false;\n }\n }\n\n if (typeof options === \"object\") {\n for (method in options) {\n value = options[method];\n if (\n arrayContainsElement(configurationKeys, method) &&\n value !== undefined\n ) {\n if (\n configuration[method].type === \"boolean\" &&\n typeof value === \"boolean\"\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"name\" &&\n arrayContainsElement(configuration[method].valueSet, value)\n ) {\n configuration[method].value = value;\n } else if (\n configuration[method].type === \"integer\" &&\n Number.isInteger(value)\n ) {\n configuration[method].value = value;\n } else if (configuration[method].type === \"array\") {\n for (i = 0; i < value.length; i += 1) {\n isValid = true;\n if (value[i].length === 1 && typeof value[i][0] === \"number\") {\n rangeArray.push(String(value[i] - 1));\n } else if (value[i].length > 1) {\n for (j = 0; j < value[i].length; j += 1) {\n if (typeof value[i][j] !== \"number\") {\n isValid = false;\n }\n }\n if (isValid === true) {\n rangeArray.push([value[i][0] - 1, value[i][1] - 1].join(\" \"));\n }\n }\n }\n configuration[method].value = \"[\" + rangeArray.join(\" \") + \"]\";\n } else {\n configuration[method].value = configuration[method].defaultValue;\n }\n\n configuration[method].explicitSet = true;\n }\n }\n }\n\n if (this.internal.viewerpreferences.isSubscribed === false) {\n this.internal.events.subscribe(\"putCatalog\", function() {\n var pdfDict = [];\n var vPref;\n for (vPref in configuration) {\n if (configuration[vPref].explicitSet === true) {\n if (configuration[vPref].type === \"name\") {\n pdfDict.push(\"/\" + vPref + \" /\" + configuration[vPref].value);\n } else {\n pdfDict.push(\"/\" + vPref + \" \" + configuration[vPref].value);\n }\n }\n }\n if (pdfDict.length !== 0) {\n this.internal.write(\n \"/ViewerPreferences\\n<<\\n\" + pdfDict.join(\"\\n\") + \"\\n>>\"\n );\n }\n });\n this.internal.viewerpreferences.isSubscribed = true;\n }\n\n this.internal.viewerpreferences.configuration = configuration;\n return this;\n };\n})(jsPDF.API);\n","/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name xmp_metadata\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var postPutResources = function() {\n var xmpmeta_beginning = '';\n var rdf_beginning =\n '';\n var rdf_ending = \"\";\n var xmpmeta_ending = \"\";\n var utf8_xmpmeta_beginning = unescape(\n encodeURIComponent(xmpmeta_beginning)\n );\n var utf8_rdf_beginning = unescape(encodeURIComponent(rdf_beginning));\n var utf8_metadata = unescape(\n encodeURIComponent(this.internal.__metadata__.metadata)\n );\n var utf8_rdf_ending = unescape(encodeURIComponent(rdf_ending));\n var utf8_xmpmeta_ending = unescape(encodeURIComponent(xmpmeta_ending));\n\n var total_len =\n utf8_rdf_beginning.length +\n utf8_metadata.length +\n utf8_rdf_ending.length +\n utf8_xmpmeta_beginning.length +\n utf8_xmpmeta_ending.length;\n\n this.internal.__metadata__.metadata_object_number = this.internal.newObject();\n this.internal.write(\n \"<< /Type /Metadata /Subtype /XML /Length \" + total_len + \" >>\"\n );\n this.internal.write(\"stream\");\n this.internal.write(\n utf8_xmpmeta_beginning +\n utf8_rdf_beginning +\n utf8_metadata +\n utf8_rdf_ending +\n utf8_xmpmeta_ending\n );\n this.internal.write(\"endstream\");\n this.internal.write(\"endobj\");\n };\n\n var putCatalog = function() {\n if (this.internal.__metadata__.metadata_object_number) {\n this.internal.write(\n \"/Metadata \" +\n this.internal.__metadata__.metadata_object_number +\n \" 0 R\"\n );\n }\n };\n\n /**\n * Adds XMP formatted metadata to PDF\n *\n * @name addMetadata\n * @function\n * @param {String} metadata The actual metadata to be added. The metadata shall be stored as XMP simple value. Note that if the metadata string contains XML markup characters \"<\", \">\" or \"&\", those characters should be written using XML entities.\n * @param {String} namespaceuri Sets the namespace URI for the metadata. Last character should be slash or hash.\n * @returns {jsPDF} jsPDF-instance\n */\n jsPDFAPI.addMetadata = function(metadata, namespaceuri) {\n if (typeof this.internal.__metadata__ === \"undefined\") {\n this.internal.__metadata__ = {\n metadata: metadata,\n namespaceuri: namespaceuri || \"http://jspdf.default.namespaceuri/\"\n };\n this.internal.events.subscribe(\"putCatalog\", putCatalog);\n\n this.internal.events.subscribe(\"postPutResources\", postPutResources);\n }\n return this;\n };\n})(jsPDF.API);\n","import { jsPDF } from \"../jspdf.js\";\nimport { toPDFName } from \"../libs/pdfname.js\";\n\n/**\n * @name utf8\n * @module\n */\n(function(jsPDF) {\n \"use strict\";\n var jsPDFAPI = jsPDF.API;\n\n /***************************************************************************************************/\n /* function : pdfEscape16 */\n /* comment : The character id of a 2-byte string is converted to a hexadecimal number by obtaining */\n /* the corresponding glyph id and width, and then adding padding to the string. */\n /***************************************************************************************************/\n var pdfEscape16 = (jsPDFAPI.pdfEscape16 = function(text, font) {\n var widths = font.metadata.Unicode.widths;\n var padz = [\"\", \"0\", \"00\", \"000\", \"0000\"];\n var ar = [\"\"];\n for (var i = 0, l = text.length, t; i < l; ++i) {\n t = font.metadata.characterToGlyph(text.charCodeAt(i));\n font.metadata.glyIdsUsed.push(t);\n font.metadata.toUnicode[t] = text.charCodeAt(i);\n if (widths.indexOf(t) == -1) {\n widths.push(t);\n widths.push([parseInt(font.metadata.widthOfGlyph(t), 10)]);\n }\n if (t == \"0\") {\n //Spaces are not allowed in cmap.\n return ar.join(\"\");\n } else {\n t = t.toString(16);\n ar.push(padz[4 - t.length], t);\n }\n }\n return ar.join(\"\");\n });\n\n var toUnicodeCmap = function(map) {\n var code, codes, range, unicode, unicodeMap, _i, _len;\n unicodeMap =\n \"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000>\\nendcodespacerange\";\n codes = Object.keys(map).sort(function(a, b) {\n return a - b;\n });\n\n range = [];\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (range.length >= 100) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\";\n range = [];\n }\n\n if (\n map[code] !== undefined &&\n map[code] !== null &&\n typeof map[code].toString === \"function\"\n ) {\n unicode = (\"0000\" + map[code].toString(16)).slice(-4);\n code = (\"0000\" + (+code).toString(16)).slice(-4);\n range.push(\"<\" + code + \"><\" + unicode + \">\");\n }\n }\n\n if (range.length) {\n unicodeMap +=\n \"\\n\" +\n range.length +\n \" beginbfchar\\n\" +\n range.join(\"\\n\") +\n \"\\nendbfchar\\n\";\n }\n unicodeMap +=\n \"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\";\n return unicodeMap;\n };\n\n var identityHFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"Identity-H\"\n ) {\n //Tag with Identity-H\n var widths = font.metadata.Unicode.widths;\n var data = font.metadata.subset.encode(font.metadata.glyIdsUsed, 1);\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Type /FontDescriptor\");\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/Flags \" + font.metadata.flags);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\">>\");\n out(\"endobj\");\n\n var DescendantFont = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/FontDescriptor \" + fontDescriptor + \" 0 R\");\n out(\"/W \" + jsPDF.API.PDFObject.convert(widths));\n out(\"/CIDToGIDMap /Identity\");\n out(\"/DW 1000\");\n out(\"/Subtype /CIDFontType2\");\n out(\"/CIDSystemInfo\");\n out(\"<<\");\n out(\"/Supplement 0\");\n out(\"/Registry (Adobe)\");\n out(\"/Ordering (\" + font.encoding + \")\");\n out(\">>\");\n out(\">>\");\n out(\"endobj\");\n\n font.objectNumber = newObject();\n out(\"<<\");\n out(\"/Type /Font\");\n out(\"/Subtype /Type0\");\n out(\"/ToUnicode \" + cmap + \" 0 R\");\n out(\"/BaseFont /\" + toPDFName(font.fontName));\n out(\"/Encoding /\" + font.encoding);\n out(\"/DescendantFonts [\" + DescendantFont + \" 0 R]\");\n out(\">>\");\n out(\"endobj\");\n\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n identityHFunction(args);\n }\n ]);\n\n var winAnsiEncodingFunction = function(options) {\n var font = options.font;\n var out = options.out;\n var newObject = options.newObject;\n var putStream = options.putStream;\n\n if (\n font.metadata instanceof jsPDF.API.TTFFont &&\n font.encoding === \"WinAnsiEncoding\"\n ) {\n //Tag with WinAnsi encoding\n var data = font.metadata.rawData;\n var pdfOutput = data;\n var pdfOutput2 = \"\";\n for (var i = 0; i < pdfOutput.length; i++) {\n pdfOutput2 += String.fromCharCode(pdfOutput[i]);\n }\n var fontTable = newObject();\n putStream({ data: pdfOutput2, addLength1: true, objectId: fontTable });\n out(\"endobj\");\n\n var cmap = newObject();\n var cmapData = toUnicodeCmap(font.metadata.toUnicode);\n putStream({ data: cmapData, addLength1: true, objectId: cmap });\n out(\"endobj\");\n\n var fontDescriptor = newObject();\n out(\"<<\");\n out(\"/Descent \" + font.metadata.decender);\n out(\"/CapHeight \" + font.metadata.capHeight);\n out(\"/StemV \" + font.metadata.stemV);\n out(\"/Type /FontDescriptor\");\n out(\"/FontFile2 \" + fontTable + \" 0 R\");\n out(\"/Flags 96\");\n out(\"/FontBBox \" + jsPDF.API.PDFObject.convert(font.metadata.bbox));\n out(\"/FontName /\" + toPDFName(font.fontName));\n out(\"/ItalicAngle \" + font.metadata.italicAngle);\n out(\"/Ascent \" + font.metadata.ascender);\n out(\">>\");\n out(\"endobj\");\n font.objectNumber = newObject();\n for (var j = 0; j < font.metadata.hmtx.widths.length; j++) {\n font.metadata.hmtx.widths[j] = parseInt(\n font.metadata.hmtx.widths[j] * (1000 / font.metadata.head.unitsPerEm)\n ); //Change the width of Em units to Point units.\n }\n out(\n \"<>\"\n );\n out(\"endobj\");\n font.isAlreadyPutted = true;\n }\n };\n\n jsPDFAPI.events.push([\n \"putFont\",\n function(args) {\n winAnsiEncodingFunction(args);\n }\n ]);\n\n var utf8TextFunction = function(args) {\n var text = args.text || \"\";\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n\n var pdfEscape = mutex.pdfEscape;\n var activeFontKey = mutex.activeFontKey;\n var fonts = mutex.fonts;\n var key = activeFontKey;\n\n var str = \"\",\n s = 0,\n cmapConfirm;\n var strText = \"\";\n var encoding = fonts[key].encoding;\n\n if (fonts[key].encoding !== \"Identity-H\") {\n return {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n }\n strText = text;\n\n key = activeFontKey;\n if (Array.isArray(text)) {\n strText = text[0];\n }\n for (s = 0; s < strText.length; s += 1) {\n if (fonts[key].metadata.hasOwnProperty(\"cmap\")) {\n cmapConfirm =\n fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)];\n /*\n if (Object.prototype.toString.call(text) === '[object Array]') {\n var i = 0;\n // for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[s]) === '[object Array]') {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s][0].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n } else {\n\n }\n //}\n\n } else {\n cmapConfirm = fonts[key].metadata.cmap.unicode.codeMap[strText[s].charCodeAt(0)]; //Make sure the cmap has the corresponding glyph id\n }*/\n }\n if (!cmapConfirm) {\n if (\n strText[s].charCodeAt(0) < 256 &&\n fonts[key].metadata.hasOwnProperty(\"Unicode\")\n ) {\n str += strText[s];\n } else {\n str += \"\";\n }\n } else {\n str += strText[s];\n }\n }\n var result = \"\";\n if (parseInt(key.slice(1)) < 14 || encoding === \"WinAnsiEncoding\") {\n //For the default 13 font\n result = pdfEscape(str, key)\n .split(\"\")\n .map(function(cv) {\n return cv.charCodeAt(0).toString(16);\n })\n .join(\"\");\n } else if (encoding === \"Identity-H\") {\n result = pdfEscape16(str, fonts[key]);\n }\n mutex.isHex = true;\n\n return {\n text: result,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n };\n\n var utf8EscapeFunction = function(parms) {\n var text = parms.text || \"\",\n x = parms.x,\n y = parms.y,\n options = parms.options,\n mutex = parms.mutex;\n var tmpText = [];\n var args = {\n text: text,\n x: x,\n y: y,\n options: options,\n mutex: mutex\n };\n\n if (Array.isArray(text)) {\n var i = 0;\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n if (text[i].length === 3) {\n tmpText.push([\n utf8TextFunction(Object.assign({}, args, { text: text[i][0] }))\n .text,\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n } else {\n tmpText.push(\n utf8TextFunction(Object.assign({}, args, { text: text[i] })).text\n );\n }\n }\n parms.text = tmpText;\n } else {\n parms.text = utf8TextFunction(\n Object.assign({}, args, { text: text })\n ).text;\n }\n };\n\n jsPDFAPI.events.push([\"postProcessText\", utf8EscapeFunction]);\n})(jsPDF);\n","/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * Use the vFS to handle files\n *\n * @name vFS\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var _initializeVFS = function() {\n if (typeof this.internal.vFS === \"undefined\") {\n this.internal.vFS = {};\n }\n return true;\n };\n\n /**\n * Check if the file exists in the vFS\n *\n * @name existsFileInVFS\n * @function\n * @param {string} Possible filename in the vFS.\n * @returns {boolean}\n * @example\n * doc.existsFileInVFS(\"someFile.txt\");\n */\n jsPDFAPI.existsFileInVFS = function(filename) {\n _initializeVFS.call(this);\n return typeof this.internal.vFS[filename] !== \"undefined\";\n };\n\n /**\n * Add a file to the vFS\n *\n * @name addFileToVFS\n * @function\n * @param {string} filename The name of the file which should be added.\n * @param {string} filecontent The content of the file.\n * @returns {jsPDF}\n * @example\n * doc.addFileToVFS(\"someFile.txt\", \"BADFACE1\");\n */\n jsPDFAPI.addFileToVFS = function(filename, filecontent) {\n _initializeVFS.call(this);\n this.internal.vFS[filename] = filecontent;\n return this;\n };\n\n /**\n * Get the file from the vFS\n *\n * @name getFileFromVFS\n * @function\n * @param {string} The name of the file which gets requested.\n * @returns {string}\n * @example\n * doc.getFileFromVFS(\"someFile.txt\");\n */\n jsPDFAPI.getFileFromVFS = function(filename) {\n _initializeVFS.call(this);\n\n if (typeof this.internal.vFS[filename] !== \"undefined\") {\n return this.internal.vFS[filename];\n }\n return null;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n(function(jsPDF) {\n \"use strict\";\n /**\n * Table of Unicode types.\n *\n * Generated by:\n *\n * var bidi = require(\"./bidi/index\");\n * var bidi_accumulate = bidi.slice(0, 256).concat(bidi.slice(0x0500, 0x0500 + 256 * 3)).\n * concat(bidi.slice(0x2000, 0x2000 + 256)).concat(bidi.slice(0xFB00, 0xFB00 + 256)).\n * concat(bidi.slice(0xFE00, 0xFE00 + 2 * 256));\n *\n * for( var i = 0; i < bidi_accumulate.length; i++) {\n * \tif(bidi_accumulate[i] === undefined || bidi_accumulate[i] === 'ON')\n * \t\tbidi_accumulate[i] = 'N'; //mark as neutral to conserve space and substitute undefined\n * }\n * var bidiAccumulateStr = 'return [ \"' + bidi_accumulate.toString().replace(/,/g, '\", \"') + '\" ];';\n * require(\"fs\").writeFile('unicode-types.js', bidiAccumulateStr);\n *\n * Based on:\n * https://github.com/mathiasbynens/unicode-8.0.0\n */\n var bidiUnicodeTypes = [\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"S\",\n \"B\",\n \"S\",\n \"WS\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"B\",\n \"B\",\n \"S\",\n \"WS\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"B\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"CS\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"EN\",\n \"EN\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"N\",\n \"N\",\n \"AL\",\n \"ET\",\n \"ET\",\n \"AL\",\n \"CS\",\n \"AL\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"AN\",\n \"ET\",\n \"AN\",\n \"AN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AN\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"R\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"L\",\n \"R\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"B\",\n \"LRE\",\n \"RLE\",\n \"PDF\",\n \"LRO\",\n \"RLO\",\n \"CS\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"WS\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"N\",\n \"LRI\",\n \"RLI\",\n \"FSI\",\n \"PDI\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"BN\",\n \"EN\",\n \"L\",\n \"N\",\n \"N\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"R\",\n \"NSM\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"ES\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"N\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"R\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"NSM\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"N\",\n \"N\",\n \"ES\",\n \"ES\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"AL\",\n \"N\",\n \"N\",\n \"BN\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"ES\",\n \"CS\",\n \"ES\",\n \"CS\",\n \"CS\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"EN\",\n \"CS\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"L\",\n \"L\",\n \"L\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"ET\",\n \"ET\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\",\n \"N\"\n ];\n\n /**\n * Unicode Bidi algorithm compliant Bidi engine.\n * For reference see http://unicode.org/reports/tr9/\n */\n\n /**\n * constructor ( options )\n *\n * Initializes Bidi engine\n *\n * @param {Object} See 'setOptions' below for detailed description.\n * options are cashed between invocation of 'doBidiReorder' method\n *\n * sample usage pattern of BidiEngine:\n * var opt = {\n * \tisInputVisual: true,\n * \tisInputRtl: false,\n * \tisOutputVisual: false,\n * \tisOutputRtl: false,\n * \tisSymmetricSwapping: true\n * }\n * var sourceToTarget = [], levels = [];\n * var bidiEng = Globalize.bidiEngine(opt);\n * var src = \"text string to be reordered\";\n * var ret = bidiEng.doBidiReorder(src, sourceToTarget, levels);\n */\n\n jsPDF.__bidiEngine__ = jsPDF.prototype.__bidiEngine__ = function(options) {\n var _UNICODE_TYPES = _bidiUnicodeTypes;\n\n var _STATE_TABLE_LTR = [\n [0, 3, 0, 1, 0, 0, 0],\n [0, 3, 0, 1, 2, 2, 0],\n [0, 3, 0, 0x11, 2, 0, 1],\n [0, 3, 5, 5, 4, 1, 0],\n [0, 3, 0x15, 0x15, 4, 0, 1],\n [0, 3, 5, 5, 4, 2, 0]\n ];\n\n var _STATE_TABLE_RTL = [\n [2, 0, 1, 1, 0, 1, 0],\n [2, 0, 1, 1, 0, 2, 0],\n [2, 0, 2, 1, 3, 2, 0],\n [2, 0, 2, 0x21, 3, 1, 1]\n ];\n\n var _TYPE_NAMES_MAP = { L: 0, R: 1, EN: 2, AN: 3, N: 4, B: 5, S: 6 };\n\n var _UNICODE_RANGES_MAP = {\n 0: 0,\n 5: 1,\n 6: 2,\n 7: 3,\n 0x20: 4,\n 0xfb: 5,\n 0xfe: 6,\n 0xff: 7\n };\n\n var _SWAP_TABLE = [\n \"\\u0028\",\n \"\\u0029\",\n \"\\u0028\",\n \"\\u003C\",\n \"\\u003E\",\n \"\\u003C\",\n \"\\u005B\",\n \"\\u005D\",\n \"\\u005B\",\n \"\\u007B\",\n \"\\u007D\",\n \"\\u007B\",\n \"\\u00AB\",\n \"\\u00BB\",\n \"\\u00AB\",\n \"\\u2039\",\n \"\\u203A\",\n \"\\u2039\",\n \"\\u2045\",\n \"\\u2046\",\n \"\\u2045\",\n \"\\u207D\",\n \"\\u207E\",\n \"\\u207D\",\n \"\\u208D\",\n \"\\u208E\",\n \"\\u208D\",\n \"\\u2264\",\n \"\\u2265\",\n \"\\u2264\",\n \"\\u2329\",\n \"\\u232A\",\n \"\\u2329\",\n \"\\uFE59\",\n \"\\uFE5A\",\n \"\\uFE59\",\n \"\\uFE5B\",\n \"\\uFE5C\",\n \"\\uFE5B\",\n \"\\uFE5D\",\n \"\\uFE5E\",\n \"\\uFE5D\",\n \"\\uFE64\",\n \"\\uFE65\",\n \"\\uFE64\"\n ];\n\n var _LTR_RANGES_REG_EXPR = new RegExp(\n /^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/\n );\n\n var _lastArabic = false,\n _hasUbatAl,\n _hasUbatB,\n _hasUbatS,\n DIR_LTR = 0,\n DIR_RTL = 1,\n _isInVisual,\n _isInRtl,\n _isOutVisual,\n _isOutRtl,\n _isSymmetricSwapping,\n _dir = DIR_LTR;\n\n this.__bidiEngine__ = {};\n\n var _init = function(text, sourceToTargetMap) {\n if (sourceToTargetMap) {\n for (var i = 0; i < text.length; i++) {\n sourceToTargetMap[i] = i;\n }\n }\n if (_isInRtl === undefined) {\n _isInRtl = _isContextualDirRtl(text);\n }\n if (_isOutRtl === undefined) {\n _isOutRtl = _isContextualDirRtl(text);\n }\n };\n\n // for reference see 3.2 in http://unicode.org/reports/tr9/\n //\n var _getCharType = function(ch) {\n var charCode = ch.charCodeAt(),\n range = charCode >> 8,\n rangeIdx = _UNICODE_RANGES_MAP[range];\n\n if (rangeIdx !== undefined) {\n return _UNICODE_TYPES[rangeIdx * 256 + (charCode & 0xff)];\n } else if (range === 0xfc || range === 0xfd) {\n return \"AL\";\n } else if (_LTR_RANGES_REG_EXPR.test(range)) {\n //unlikely case\n return \"L\";\n } else if (range === 8) {\n // even less likely\n return \"R\";\n }\n return \"N\"; //undefined type, mark as neutral\n };\n\n var _isContextualDirRtl = function(text) {\n for (var i = 0, charType; i < text.length; i++) {\n charType = _getCharType(text.charAt(i));\n if (charType === \"L\") {\n return false;\n } else if (charType === \"R\") {\n return true;\n }\n }\n return false;\n };\n\n // for reference see 3.3.4 & 3.3.5 in http://unicode.org/reports/tr9/\n //\n var _resolveCharType = function(chars, types, resolvedTypes, index) {\n var cType = types[index],\n wType,\n nType,\n i,\n len;\n switch (cType) {\n case \"L\":\n case \"R\":\n _lastArabic = false;\n break;\n case \"N\":\n case \"AN\":\n break;\n\n case \"EN\":\n if (_lastArabic) {\n cType = \"AN\";\n }\n break;\n\n case \"AL\":\n _lastArabic = true;\n _hasUbatAl = true;\n cType = \"R\";\n break;\n\n case \"WS\":\n cType = \"N\";\n break;\n\n case \"CS\":\n if (\n index < 1 ||\n index + 1 >= types.length ||\n ((wType = resolvedTypes[index - 1]) !== \"EN\" && wType !== \"AN\") ||\n ((nType = types[index + 1]) !== \"EN\" && nType !== \"AN\")\n ) {\n cType = \"N\";\n } else if (_lastArabic) {\n nType = \"AN\";\n }\n cType = nType === wType ? nType : \"N\";\n break;\n\n case \"ES\":\n wType = index > 0 ? resolvedTypes[index - 1] : \"B\";\n cType =\n wType === \"EN\" &&\n index + 1 < types.length &&\n types[index + 1] === \"EN\"\n ? \"EN\"\n : \"N\";\n break;\n\n case \"ET\":\n if (index > 0 && resolvedTypes[index - 1] === \"EN\") {\n cType = \"EN\";\n break;\n } else if (_lastArabic) {\n cType = \"N\";\n break;\n }\n i = index + 1;\n len = types.length;\n while (i < len && types[i] === \"ET\") {\n i++;\n }\n if (i < len && types[i] === \"EN\") {\n cType = \"EN\";\n } else {\n cType = \"N\";\n }\n break;\n\n case \"NSM\":\n if (_isInVisual && !_isInRtl) {\n //V->L\n len = types.length;\n i = index + 1;\n while (i < len && types[i] === \"NSM\") {\n i++;\n }\n if (i < len) {\n var c = chars[index];\n var rtlCandidate = (c >= 0x0591 && c <= 0x08ff) || c === 0xfb1e;\n wType = types[i];\n if (rtlCandidate && (wType === \"R\" || wType === \"AL\")) {\n cType = \"R\";\n break;\n }\n }\n }\n if (index < 1 || (wType = types[index - 1]) === \"B\") {\n cType = \"N\";\n } else {\n cType = resolvedTypes[index - 1];\n }\n break;\n\n case \"B\":\n _lastArabic = false;\n _hasUbatB = true;\n cType = _dir;\n break;\n\n case \"S\":\n _hasUbatS = true;\n cType = \"N\";\n break;\n\n case \"LRE\":\n case \"RLE\":\n case \"LRO\":\n case \"RLO\":\n case \"PDF\":\n _lastArabic = false;\n break;\n case \"BN\":\n cType = \"N\";\n break;\n }\n return cType;\n };\n\n var _handleUbatS = function(types, levels, length) {\n for (var i = 0; i < length; i++) {\n if (types[i] === \"S\") {\n levels[i] = _dir;\n for (var j = i - 1; j >= 0; j--) {\n if (types[j] === \"WS\") {\n levels[j] = _dir;\n } else {\n break;\n }\n }\n }\n }\n };\n\n var _invertString = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\");\n if (levels) {\n _computeLevels(charArray, levels, { hiLevel: _dir });\n }\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return charArray.join(\"\");\n };\n\n // For reference see 3.3 in http://unicode.org/reports/tr9/\n //\n var _computeLevels = function(chars, levels, params) {\n var action,\n condition,\n i,\n index,\n newLevel,\n prevState,\n condPos = -1,\n len = chars.length,\n newState = 0,\n resolvedTypes = [],\n stateTable = _dir ? _STATE_TABLE_RTL : _STATE_TABLE_LTR,\n types = [];\n\n _lastArabic = false;\n _hasUbatAl = false;\n _hasUbatB = false;\n _hasUbatS = false;\n for (i = 0; i < len; i++) {\n types[i] = _getCharType(chars[i]);\n }\n for (index = 0; index < len; index++) {\n prevState = newState;\n resolvedTypes[index] = _resolveCharType(\n chars,\n types,\n resolvedTypes,\n index\n );\n newState = stateTable[prevState][_TYPE_NAMES_MAP[resolvedTypes[index]]];\n action = newState & 0xf0;\n newState &= 0x0f;\n levels[index] = newLevel = stateTable[newState][5];\n if (action > 0) {\n if (action === 0x10) {\n for (i = condPos; i < index; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n } else {\n condPos = -1;\n }\n }\n condition = stateTable[newState][6];\n if (condition) {\n if (condPos === -1) {\n condPos = index;\n }\n } else {\n if (condPos > -1) {\n for (i = condPos; i < index; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (types[index] === \"B\") {\n levels[index] = 0;\n }\n params.hiLevel |= newLevel;\n }\n if (_hasUbatS) {\n _handleUbatS(types, levels, len);\n }\n };\n\n // for reference see 3.4 in http://unicode.org/reports/tr9/\n //\n var _invertByLevel = function(\n level,\n charArray,\n sourceToTargetMap,\n levels,\n params\n ) {\n if (params.hiLevel < level) {\n return;\n }\n if (level === 1 && _dir === DIR_RTL && !_hasUbatB) {\n charArray.reverse();\n sourceToTargetMap && sourceToTargetMap.reverse();\n return;\n }\n var ch,\n high,\n end,\n low,\n len = charArray.length,\n start = 0;\n\n while (start < len) {\n if (levels[start] >= level) {\n end = start + 1;\n while (end < len && levels[end] >= level) {\n end++;\n }\n for (low = start, high = end - 1; low < high; low++, high--) {\n ch = charArray[low];\n charArray[low] = charArray[high];\n charArray[high] = ch;\n if (sourceToTargetMap) {\n ch = sourceToTargetMap[low];\n sourceToTargetMap[low] = sourceToTargetMap[high];\n sourceToTargetMap[high] = ch;\n }\n }\n start = end;\n }\n start++;\n }\n };\n\n // for reference see 7 & BD16 in http://unicode.org/reports/tr9/\n //\n var _symmetricSwap = function(charArray, levels, params) {\n if (params.hiLevel !== 0 && _isSymmetricSwapping) {\n for (var i = 0, index; i < charArray.length; i++) {\n if (levels[i] === 1) {\n index = _SWAP_TABLE.indexOf(charArray[i]);\n if (index >= 0) {\n charArray[i] = _SWAP_TABLE[index + 1];\n }\n }\n }\n }\n };\n\n var _reorder = function(text, sourceToTargetMap, levels) {\n var charArray = text.split(\"\"),\n params = { hiLevel: _dir };\n\n if (!levels) {\n levels = [];\n }\n _computeLevels(charArray, levels, params);\n _symmetricSwap(charArray, levels, params);\n _invertByLevel(DIR_RTL + 1, charArray, sourceToTargetMap, levels, params);\n _invertByLevel(DIR_RTL, charArray, sourceToTargetMap, levels, params);\n return charArray.join(\"\");\n };\n\n // doBidiReorder( text, sourceToTargetMap, levels )\n // Performs Bidi reordering by implementing Unicode Bidi algorithm.\n // Returns reordered string\n // @text [String]:\n // - input string to be reordered, this is input parameter\n // $sourceToTargetMap [Array] (optional)\n // - resultant mapping between input and output strings, this is output parameter\n // $levels [Array] (optional)\n // - array of calculated Bidi levels, , this is output parameter\n this.__bidiEngine__.doBidiReorder = function(\n text,\n sourceToTargetMap,\n levels\n ) {\n _init(text, sourceToTargetMap);\n if (!_isInVisual && _isOutVisual && !_isOutRtl) {\n // LLTR->VLTR, LRTL->VLTR\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && _isOutVisual && _isInRtl ^ _isOutRtl) {\n // VRTL->VLTR, VLTR->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _invertString(text, sourceToTargetMap, levels);\n } else if (!_isInVisual && _isOutVisual && _isOutRtl) {\n // LLTR->VRTL, LRTL->VRTL\n _dir = _isInRtl ? DIR_RTL : DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (_isInVisual && !_isInRtl && !_isOutVisual && !_isOutRtl) {\n // VLTR->LLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else if (_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // VLTR->LRTL, VRTL->LLTR\n text = _invertString(text, sourceToTargetMap);\n if (_isInRtl) {\n //LLTR -> VLTR\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n } else {\n //LRTL -> VRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n }\n } else if (_isInVisual && _isInRtl && !_isOutVisual && _isOutRtl) {\n // VRTL->LRTL\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n } else if (!_isInVisual && !_isOutVisual && _isInRtl ^ _isOutRtl) {\n // LRTL->LLTR, LLTR->LRTL\n var isSymmetricSwappingOrig = _isSymmetricSwapping;\n if (_isInRtl) {\n //LRTL->LLTR\n _dir = DIR_RTL;\n text = _reorder(text, sourceToTargetMap, levels);\n _dir = DIR_LTR;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n } else {\n //LLTR->LRTL\n _dir = DIR_LTR;\n text = _reorder(text, sourceToTargetMap, levels);\n text = _invertString(text, sourceToTargetMap);\n _dir = DIR_RTL;\n _isSymmetricSwapping = false;\n text = _reorder(text, sourceToTargetMap, levels);\n _isSymmetricSwapping = isSymmetricSwappingOrig;\n text = _invertString(text, sourceToTargetMap);\n }\n }\n return text;\n };\n\n /**\n * @name setOptions( options )\n * @function\n * Sets options for Bidi conversion\n * @param {Object}:\n * - isInputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isInputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong character of input string)\n * - isOutputVisual {boolean} (defaults to false): allowed values: true(Visual mode), false(Logical mode)\n * - isOutputRtl {boolean}: allowed values true(Right-to-left direction), false (Left-to-right directiion), undefined(Contectual direction, i.e.direction defined by first strong characterof input string)\n * - isSymmetricSwapping {boolean} (defaults to false): allowed values true(needs symmetric swapping), false (no need in symmetric swapping),\n */\n this.__bidiEngine__.setOptions = function(options) {\n if (options) {\n _isInVisual = options.isInputVisual;\n _isOutVisual = options.isOutputVisual;\n _isInRtl = options.isInputRtl;\n _isOutRtl = options.isOutputRtl;\n _isSymmetricSwapping = options.isSymmetricSwapping;\n }\n };\n\n this.__bidiEngine__.setOptions(options);\n return this.__bidiEngine__;\n };\n\n var _bidiUnicodeTypes = bidiUnicodeTypes;\n\n var bidiEngine = new jsPDF.__bidiEngine__({ isInputVisual: true });\n\n var bidiEngineFunction = function(args) {\n var text = args.text;\n var x = args.x;\n var y = args.y;\n var options = args.options || {};\n var mutex = args.mutex || {};\n var lang = options.lang;\n var tmpText = [];\n\n options.isInputVisual =\n typeof options.isInputVisual === \"boolean\" ? options.isInputVisual : true;\n bidiEngine.setOptions(options);\n\n if (Object.prototype.toString.call(text) === \"[object Array]\") {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Object.prototype.toString.call(text[i]) === \"[object Array]\") {\n tmpText.push([\n bidiEngine.doBidiReorder(text[i][0]),\n text[i][1],\n text[i][2]\n ]);\n } else {\n tmpText.push([bidiEngine.doBidiReorder(text[i])]);\n }\n }\n args.text = tmpText;\n } else {\n args.text = bidiEngine.doBidiReorder(text);\n }\n bidiEngine.setOptions({ isInputVisual: true });\n };\n\n jsPDF.API.events.push([\"postProcessText\", bidiEngineFunction]);\n})(jsPDF);\n","/* eslint-disable no-control-regex */\n/************************************************\n * Title : custom font *\n * Start Data : 2017. 01. 22. *\n * Comment : TEXT API *\n ************************************************/\n\n/******************************\n * jsPDF extension API Design *\n * ****************************/\n\nimport { jsPDF } from \"../jspdf.js\";\n\njsPDF.API.TTFFont = (function() {\n /************************************************************************/\n /* function : open */\n /* comment : Decode the encoded ttf content and create a TTFFont object. */\n /************************************************************************/\n TTFFont.open = function(file) {\n return new TTFFont(file);\n };\n /***************************************************************/\n /* function : TTFFont gernerator */\n /* comment : Decode TTF contents are parsed, Data, */\n /* Subset object is created, and registerTTF function is called.*/\n /***************************************************************/\n function TTFFont(rawData) {\n var data;\n this.rawData = rawData;\n data = this.contents = new Data(rawData);\n this.contents.pos = 4;\n if (data.readString(4) === \"ttcf\") {\n throw new Error(\"TTCF not supported.\");\n } else {\n data.pos = 0;\n this.parse();\n this.subset = new Subset(this);\n this.registerTTF();\n }\n }\n /********************************************************/\n /* function : parse */\n /* comment : TTF Parses the file contents by each table.*/\n /********************************************************/\n TTFFont.prototype.parse = function() {\n this.directory = new Directory(this.contents);\n this.head = new HeadTable(this);\n this.name = new NameTable(this);\n this.cmap = new CmapTable(this);\n this.toUnicode = {};\n this.hhea = new HheaTable(this);\n this.maxp = new MaxpTable(this);\n this.hmtx = new HmtxTable(this);\n this.post = new PostTable(this);\n this.os2 = new OS2Table(this);\n this.loca = new LocaTable(this);\n this.glyf = new GlyfTable(this);\n this.ascender =\n (this.os2.exists && this.os2.ascender) || this.hhea.ascender;\n this.decender =\n (this.os2.exists && this.os2.decender) || this.hhea.decender;\n this.lineGap = (this.os2.exists && this.os2.lineGap) || this.hhea.lineGap;\n return (this.bbox = [\n this.head.xMin,\n this.head.yMin,\n this.head.xMax,\n this.head.yMax\n ]);\n };\n /***************************************************************/\n /* function : registerTTF */\n /* comment : Get the value to assign pdf font descriptors. */\n /***************************************************************/\n TTFFont.prototype.registerTTF = function() {\n var e, hi, low, raw, _ref;\n this.scaleFactor = 1000.0 / this.head.unitsPerEm;\n this.bbox = function() {\n var _i, _len, _ref, _results;\n _ref = this.bbox;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n e = _ref[_i];\n _results.push(Math.round(e * this.scaleFactor));\n }\n return _results;\n }.call(this);\n this.stemV = 0;\n if (this.post.exists) {\n raw = this.post.italic_angle;\n hi = raw >> 16;\n low = raw & 0xff;\n if ((hi & 0x8000) !== 0) {\n hi = -((hi ^ 0xffff) + 1);\n }\n this.italicAngle = +(\"\" + hi + \".\" + low);\n } else {\n this.italicAngle = 0;\n }\n this.ascender = Math.round(this.ascender * this.scaleFactor);\n this.decender = Math.round(this.decender * this.scaleFactor);\n this.lineGap = Math.round(this.lineGap * this.scaleFactor);\n this.capHeight = (this.os2.exists && this.os2.capHeight) || this.ascender;\n this.xHeight = (this.os2.exists && this.os2.xHeight) || 0;\n this.familyClass = ((this.os2.exists && this.os2.familyClass) || 0) >> 8;\n this.isSerif =\n (_ref = this.familyClass) === 1 ||\n _ref === 2 ||\n _ref === 3 ||\n _ref === 4 ||\n _ref === 5 ||\n _ref === 7;\n this.isScript = this.familyClass === 10;\n this.flags = 0;\n if (this.post.isFixedPitch) {\n this.flags |= 1 << 0;\n }\n if (this.isSerif) {\n this.flags |= 1 << 1;\n }\n if (this.isScript) {\n this.flags |= 1 << 3;\n }\n if (this.italicAngle !== 0) {\n this.flags |= 1 << 6;\n }\n this.flags |= 1 << 5;\n if (!this.cmap.unicode) {\n throw new Error(\"No unicode cmap for font\");\n }\n };\n TTFFont.prototype.characterToGlyph = function(character) {\n var _ref;\n return (\n ((_ref = this.cmap.unicode) != null ? _ref.codeMap[character] : void 0) ||\n 0\n );\n };\n TTFFont.prototype.widthOfGlyph = function(glyph) {\n var scale;\n scale = 1000.0 / this.head.unitsPerEm;\n return this.hmtx.forGlyph(glyph).advance * scale;\n };\n TTFFont.prototype.widthOfString = function(string, size, charSpace) {\n var charCode, i, scale, width, _ref;\n string = \"\" + string;\n width = 0;\n for (\n i = 0, _ref = string.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n charCode = string.charCodeAt(i);\n width +=\n this.widthOfGlyph(this.characterToGlyph(charCode)) +\n charSpace * (1000 / size) || 0;\n }\n scale = size / 1000;\n return width * scale;\n };\n TTFFont.prototype.lineHeight = function(size, includeGap) {\n var gap;\n if (includeGap == null) {\n includeGap = false;\n }\n gap = includeGap ? this.lineGap : 0;\n return ((this.ascender + gap - this.decender) / 1000) * size;\n };\n return TTFFont;\n})();\n\n/************************************************************************************************/\n/* function : Data */\n/* comment : The ttf data decoded and stored in an array is read and written to the Data object.*/\n/************************************************************************************************/\nvar Data = (function() {\n function Data(data) {\n this.data = data != null ? data : [];\n this.pos = 0;\n this.length = this.data.length;\n }\n Data.prototype.readByte = function() {\n return this.data[this.pos++];\n };\n Data.prototype.writeByte = function(byte) {\n return (this.data[this.pos++] = byte);\n };\n Data.prototype.readUInt32 = function() {\n var b1, b2, b3, b4;\n b1 = this.readByte() * 0x1000000;\n b2 = this.readByte() << 16;\n b3 = this.readByte() << 8;\n b4 = this.readByte();\n return b1 + b2 + b3 + b4;\n };\n Data.prototype.writeUInt32 = function(val) {\n this.writeByte((val >>> 24) & 0xff);\n this.writeByte((val >> 16) & 0xff);\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt32 = function() {\n var int;\n int = this.readUInt32();\n if (int >= 0x80000000) {\n return int - 0x100000000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt32 = function(val) {\n if (val < 0) {\n val += 0x100000000;\n }\n return this.writeUInt32(val);\n };\n Data.prototype.readUInt16 = function() {\n var b1, b2;\n b1 = this.readByte() << 8;\n b2 = this.readByte();\n return b1 | b2;\n };\n Data.prototype.writeUInt16 = function(val) {\n this.writeByte((val >> 8) & 0xff);\n return this.writeByte(val & 0xff);\n };\n Data.prototype.readInt16 = function() {\n var int;\n int = this.readUInt16();\n if (int >= 0x8000) {\n return int - 0x10000;\n } else {\n return int;\n }\n };\n Data.prototype.writeInt16 = function(val) {\n if (val < 0) {\n val += 0x10000;\n }\n return this.writeUInt16(val);\n };\n Data.prototype.readString = function(length) {\n var i, ret;\n ret = [];\n for (\n i = 0;\n 0 <= length ? i < length : i > length;\n i = 0 <= length ? ++i : --i\n ) {\n ret[i] = String.fromCharCode(this.readByte());\n }\n return ret.join(\"\");\n };\n Data.prototype.writeString = function(val) {\n var i, _ref, _results;\n _results = [];\n for (\n i = 0, _ref = val.length;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n _results.push(this.writeByte(val.charCodeAt(i)));\n }\n return _results;\n };\n /*Data.prototype.stringAt = function (pos, length) {\n this.pos = pos;\n return this.readString(length);\n };*/\n Data.prototype.readShort = function() {\n return this.readInt16();\n };\n Data.prototype.writeShort = function(val) {\n return this.writeInt16(val);\n };\n Data.prototype.readLongLong = function() {\n var b1, b2, b3, b4, b5, b6, b7, b8;\n b1 = this.readByte();\n b2 = this.readByte();\n b3 = this.readByte();\n b4 = this.readByte();\n b5 = this.readByte();\n b6 = this.readByte();\n b7 = this.readByte();\n b8 = this.readByte();\n if (b1 & 0x80) {\n return (\n ((b1 ^ 0xff) * 0x100000000000000 +\n (b2 ^ 0xff) * 0x1000000000000 +\n (b3 ^ 0xff) * 0x10000000000 +\n (b4 ^ 0xff) * 0x100000000 +\n (b5 ^ 0xff) * 0x1000000 +\n (b6 ^ 0xff) * 0x10000 +\n (b7 ^ 0xff) * 0x100 +\n (b8 ^ 0xff) +\n 1) *\n -1\n );\n }\n return (\n b1 * 0x100000000000000 +\n b2 * 0x1000000000000 +\n b3 * 0x10000000000 +\n b4 * 0x100000000 +\n b5 * 0x1000000 +\n b6 * 0x10000 +\n b7 * 0x100 +\n b8\n );\n };\n Data.prototype.writeLongLong = function(val) {\n var high, low;\n high = Math.floor(val / 0x100000000);\n low = val & 0xffffffff;\n this.writeByte((high >> 24) & 0xff);\n this.writeByte((high >> 16) & 0xff);\n this.writeByte((high >> 8) & 0xff);\n this.writeByte(high & 0xff);\n this.writeByte((low >> 24) & 0xff);\n this.writeByte((low >> 16) & 0xff);\n this.writeByte((low >> 8) & 0xff);\n return this.writeByte(low & 0xff);\n };\n Data.prototype.readInt = function() {\n return this.readInt32();\n };\n Data.prototype.writeInt = function(val) {\n return this.writeInt32(val);\n };\n /*Data.prototype.slice = function (start, end) {\n return this.data.slice(start, end);\n };*/\n Data.prototype.read = function(bytes) {\n var buf, i;\n buf = [];\n for (\n i = 0;\n 0 <= bytes ? i < bytes : i > bytes;\n i = 0 <= bytes ? ++i : --i\n ) {\n buf.push(this.readByte());\n }\n return buf;\n };\n Data.prototype.write = function(bytes) {\n var byte, i, _len, _results;\n _results = [];\n for (i = 0, _len = bytes.length; i < _len; i++) {\n byte = bytes[i];\n _results.push(this.writeByte(byte));\n }\n return _results;\n };\n return Data;\n})();\n\nvar Directory = (function() {\n var checksum;\n\n /*****************************************************************************************************/\n /* function : Directory generator */\n /* comment : Initialize the offset, tag, length, and checksum for each table for the font to be used.*/\n /*****************************************************************************************************/\n function Directory(data) {\n var entry, i, _ref;\n this.scalarType = data.readInt();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n this.tables = {};\n for (\n i = 0, _ref = this.tableCount;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n entry = {\n tag: data.readString(4),\n checksum: data.readInt(),\n offset: data.readInt(),\n length: data.readInt()\n };\n this.tables[entry.tag] = entry;\n }\n }\n /********************************************************************************************************/\n /* function : encode */\n /* comment : It encodes and stores the font table object and information used for the directory object. */\n /********************************************************************************************************/\n Directory.prototype.encode = function(tables) {\n var adjustment,\n directory,\n directoryLength,\n entrySelector,\n headOffset,\n log2,\n offset,\n rangeShift,\n searchRange,\n sum,\n table,\n tableCount,\n tableData,\n tag;\n tableCount = Object.keys(tables).length;\n log2 = Math.log(2);\n searchRange = Math.floor(Math.log(tableCount) / log2) * 16;\n entrySelector = Math.floor(searchRange / log2);\n rangeShift = tableCount * 16 - searchRange;\n directory = new Data();\n directory.writeInt(this.scalarType);\n directory.writeShort(tableCount);\n directory.writeShort(searchRange);\n directory.writeShort(entrySelector);\n directory.writeShort(rangeShift);\n directoryLength = tableCount * 16;\n offset = directory.pos + directoryLength;\n headOffset = null;\n tableData = [];\n for (tag in tables) {\n table = tables[tag];\n directory.writeString(tag);\n directory.writeInt(checksum(table));\n directory.writeInt(offset);\n directory.writeInt(table.length);\n tableData = tableData.concat(table);\n if (tag === \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n while (offset % 4) {\n tableData.push(0);\n offset++;\n }\n }\n directory.write(tableData);\n sum = checksum(directory.data);\n adjustment = 0xb1b0afba - sum;\n directory.pos = headOffset + 8;\n directory.writeUInt32(adjustment);\n return directory.data;\n };\n /***************************************************************/\n /* function : checksum */\n /* comment : Duplicate the table for the tag. */\n /***************************************************************/\n checksum = function(data) {\n var i, sum, tmp, _ref;\n data = __slice.call(data);\n while (data.length % 4) {\n data.push(0);\n }\n tmp = new Data(data);\n sum = 0;\n for (i = 0, _ref = data.length; i < _ref; i = i += 4) {\n sum += tmp.readUInt32();\n }\n return sum & 0xffffffff;\n };\n return Directory;\n})();\n\nvar Table,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) {\n for (var key in parent) {\n if (__hasProp.call(parent, key)) child[key] = parent[key];\n }\n\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n };\n\n/***************************************************************/\n/* function : Table */\n/* comment : Save info for each table, and parse the table. */\n/***************************************************************/\nTable = (function() {\n function Table(file) {\n var info;\n this.file = file;\n info = this.file.directory.tables[this.tag];\n this.exists = !!info;\n if (info) {\n (this.offset = info.offset), (this.length = info.length);\n this.parse(this.file.contents);\n }\n }\n Table.prototype.parse = function() {};\n Table.prototype.encode = function() {};\n Table.prototype.raw = function() {\n if (!this.exists) {\n return null;\n }\n this.file.contents.pos = this.offset;\n return this.file.contents.read(this.length);\n };\n return Table;\n})();\n\nvar HeadTable = (function(_super) {\n __extends(HeadTable, _super);\n\n function HeadTable() {\n return HeadTable.__super__.constructor.apply(this, arguments);\n }\n HeadTable.prototype.tag = \"head\";\n HeadTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.revision = data.readInt();\n this.checkSumAdjustment = data.readInt();\n this.magicNumber = data.readInt();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.readLongLong();\n this.modified = data.readLongLong();\n this.xMin = data.readShort();\n this.yMin = data.readShort();\n this.xMax = data.readShort();\n this.yMax = data.readShort();\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort();\n this.indexToLocFormat = data.readShort();\n return (this.glyphDataFormat = data.readShort());\n };\n HeadTable.prototype.encode = function(indexToLocFormat) {\n var table;\n table = new Data();\n table.writeInt(this.version);\n table.writeInt(this.revision);\n table.writeInt(this.checkSumAdjustment);\n table.writeInt(this.magicNumber);\n table.writeShort(this.flags);\n table.writeShort(this.unitsPerEm);\n table.writeLongLong(this.created);\n table.writeLongLong(this.modified);\n table.writeShort(this.xMin);\n table.writeShort(this.yMin);\n table.writeShort(this.xMax);\n table.writeShort(this.yMax);\n table.writeShort(this.macStyle);\n table.writeShort(this.lowestRecPPEM);\n table.writeShort(this.fontDirectionHint);\n table.writeShort(indexToLocFormat);\n table.writeShort(this.glyphDataFormat);\n return table.data;\n };\n return HeadTable;\n})(Table);\n\n/************************************************************************************/\n/* function : CmapEntry */\n/* comment : Cmap Initializes and encodes object information (required by pdf spec).*/\n/************************************************************************************/\nvar CmapEntry = (function() {\n function CmapEntry(data, offset) {\n var code,\n count,\n endCode,\n glyphId,\n glyphIds,\n i,\n idDelta,\n idRangeOffset,\n index,\n saveOffset,\n segCount,\n segCountX2,\n start,\n startCode,\n tail,\n _j,\n _k,\n _len;\n this.platformID = data.readUInt16();\n this.encodingID = data.readShort();\n this.offset = offset + data.readInt();\n saveOffset = data.pos;\n data.pos = this.offset;\n this.format = data.readUInt16();\n this.length = data.readUInt16();\n this.language = data.readUInt16();\n this.isUnicode =\n (this.platformID === 3 && this.encodingID === 1 && this.format === 4) ||\n (this.platformID === 0 && this.format === 4);\n this.codeMap = {};\n switch (this.format) {\n case 0:\n for (i = 0; i < 256; ++i) {\n this.codeMap[i] = data.readByte();\n }\n break;\n case 4:\n segCountX2 = data.readUInt16();\n segCount = segCountX2 / 2;\n data.pos += 6;\n endCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n data.pos += 2;\n startCode = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idDelta = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n idRangeOffset = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= segCount ? _j < segCount : _j > segCount;\n i = 0 <= segCount ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n count = (this.length - data.pos + this.offset) / 2;\n glyphIds = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= count ? _j < count : _j > count;\n i = 0 <= count ? ++_j : --_j\n ) {\n _results.push(data.readUInt16());\n }\n return _results;\n })();\n for (i = _j = 0, _len = endCode.length; _j < _len; i = ++_j) {\n tail = endCode[i];\n start = startCode[i];\n for (\n code = _k = start;\n start <= tail ? _k <= tail : _k >= tail;\n code = start <= tail ? ++_k : --_k\n ) {\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n index = idRangeOffset[i] / 2 + (code - start) - (segCount - i);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n this.codeMap[code] = glyphId & 0xffff;\n }\n }\n }\n data.pos = saveOffset;\n }\n CmapEntry.encode = function(charmap, encoding) {\n var charMap,\n code,\n codeMap,\n codes,\n delta,\n deltas,\n diff,\n endCode,\n endCodes,\n entrySelector,\n glyphIDs,\n i,\n id,\n indexes,\n last,\n map,\n nextID,\n offset,\n old,\n rangeOffsets,\n rangeShift,\n searchRange,\n segCount,\n segCountX2,\n startCode,\n startCodes,\n startGlyph,\n subtable,\n _i,\n _j,\n _k,\n _l,\n _len,\n _len1,\n _len2,\n _len3,\n _len4,\n _len5,\n _len6,\n _len7,\n _m,\n _n,\n _name,\n _o,\n _p,\n _q;\n subtable = new Data();\n codes = Object.keys(charmap).sort(function(a, b) {\n return a - b;\n });\n switch (encoding) {\n case \"macroman\":\n id = 0;\n indexes = (function() {\n var _results = [];\n for (i = 0; i < 256; ++i) {\n _results.push(0);\n }\n return _results;\n })();\n map = {\n 0: 0\n };\n codeMap = {};\n for (_i = 0, _len = codes.length; _i < _len; _i++) {\n code = codes[_i];\n if (map[(_name = charmap[code])] == null) {\n map[_name] = ++id;\n }\n codeMap[code] = {\n old: charmap[code],\n new: map[charmap[code]]\n };\n indexes[code] = map[charmap[code]];\n }\n subtable.writeUInt16(1);\n subtable.writeUInt16(0);\n subtable.writeUInt32(12);\n subtable.writeUInt16(0);\n subtable.writeUInt16(262);\n subtable.writeUInt16(0);\n subtable.write(indexes);\n return {\n charMap: codeMap,\n subtable: subtable.data,\n maxGlyphID: id + 1\n };\n case \"unicode\":\n startCodes = [];\n endCodes = [];\n nextID = 0;\n map = {};\n charMap = {};\n last = diff = null;\n for (_j = 0, _len1 = codes.length; _j < _len1; _j++) {\n code = codes[_j];\n old = charmap[code];\n if (map[old] == null) {\n map[old] = ++nextID;\n }\n charMap[code] = {\n old: old,\n new: map[old]\n };\n delta = map[old] - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xffff);\n startCodes.push(0xffff);\n segCount = startCodes.length;\n segCountX2 = segCount * 2;\n searchRange = 2 * Math.pow(Math.log(segCount) / Math.LN2, 2);\n entrySelector = Math.log(searchRange / 2) / Math.LN2;\n rangeShift = 2 * segCount - searchRange;\n deltas = [];\n rangeOffsets = [];\n glyphIDs = [];\n for (i = _k = 0, _len2 = startCodes.length; _k < _len2; i = ++_k) {\n startCode = startCodes[i];\n endCode = endCodes[i];\n if (startCode === 0xffff) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n startGlyph = charMap[startCode][\"new\"];\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIDs.length + segCount - i));\n for (\n code = _l = startCode;\n startCode <= endCode ? _l <= endCode : _l >= endCode;\n code = startCode <= endCode ? ++_l : --_l\n ) {\n glyphIDs.push(charMap[code][\"new\"]);\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n subtable.writeUInt16(3);\n subtable.writeUInt16(1);\n subtable.writeUInt32(12);\n subtable.writeUInt16(4);\n subtable.writeUInt16(16 + segCount * 8 + glyphIDs.length * 2);\n subtable.writeUInt16(0);\n subtable.writeUInt16(segCountX2);\n subtable.writeUInt16(searchRange);\n subtable.writeUInt16(entrySelector);\n subtable.writeUInt16(rangeShift);\n for (_m = 0, _len3 = endCodes.length; _m < _len3; _m++) {\n code = endCodes[_m];\n subtable.writeUInt16(code);\n }\n subtable.writeUInt16(0);\n for (_n = 0, _len4 = startCodes.length; _n < _len4; _n++) {\n code = startCodes[_n];\n subtable.writeUInt16(code);\n }\n for (_o = 0, _len5 = deltas.length; _o < _len5; _o++) {\n delta = deltas[_o];\n subtable.writeUInt16(delta);\n }\n for (_p = 0, _len6 = rangeOffsets.length; _p < _len6; _p++) {\n offset = rangeOffsets[_p];\n subtable.writeUInt16(offset);\n }\n for (_q = 0, _len7 = glyphIDs.length; _q < _len7; _q++) {\n id = glyphIDs[_q];\n subtable.writeUInt16(id);\n }\n return {\n charMap: charMap,\n subtable: subtable.data,\n maxGlyphID: nextID + 1\n };\n }\n };\n return CmapEntry;\n})();\n\nvar CmapTable = (function(_super) {\n __extends(CmapTable, _super);\n\n function CmapTable() {\n return CmapTable.__super__.constructor.apply(this, arguments);\n }\n CmapTable.prototype.tag = \"cmap\";\n CmapTable.prototype.parse = function(data) {\n var entry, i, tableCount;\n data.pos = this.offset;\n this.version = data.readUInt16();\n tableCount = data.readUInt16();\n this.tables = [];\n this.unicode = null;\n for (\n i = 0;\n 0 <= tableCount ? i < tableCount : i > tableCount;\n i = 0 <= tableCount ? ++i : --i\n ) {\n entry = new CmapEntry(data, this.offset);\n this.tables.push(entry);\n if (entry.isUnicode) {\n if (this.unicode == null) {\n this.unicode = entry;\n }\n }\n }\n return true;\n };\n /*************************************************************************/\n /* function : encode */\n /* comment : Encode the cmap table corresponding to the input character. */\n /*************************************************************************/\n CmapTable.encode = function(charmap, encoding) {\n var result, table;\n if (encoding == null) {\n encoding = \"macroman\";\n }\n result = CmapEntry.encode(charmap, encoding);\n table = new Data();\n table.writeUInt16(0);\n table.writeUInt16(1);\n result.table = table.data.concat(result.subtable);\n return result;\n };\n return CmapTable;\n})(Table);\n\nvar HheaTable = (function(_super) {\n __extends(HheaTable, _super);\n\n function HheaTable() {\n return HheaTable.__super__.constructor.apply(this, arguments);\n }\n HheaTable.prototype.tag = \"hhea\";\n HheaTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.ascender = data.readShort();\n this.decender = data.readShort();\n this.lineGap = data.readShort();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort();\n this.minRightSideBearing = data.readShort();\n this.xMaxExtent = data.readShort();\n this.caretSlopeRise = data.readShort();\n this.caretSlopeRun = data.readShort();\n this.caretOffset = data.readShort();\n data.pos += 4 * 2;\n this.metricDataFormat = data.readShort();\n return (this.numberOfMetrics = data.readUInt16());\n };\n /*HheaTable.prototype.encode = function (ids) {\n var i, table, _i, _ref;\n table = new Data;\n table.writeInt(this.version);\n table.writeShort(this.ascender);\n table.writeShort(this.decender);\n table.writeShort(this.lineGap);\n table.writeShort(this.advanceWidthMax);\n table.writeShort(this.minLeftSideBearing);\n table.writeShort(this.minRightSideBearing);\n table.writeShort(this.xMaxExtent);\n table.writeShort(this.caretSlopeRise);\n table.writeShort(this.caretSlopeRun);\n table.writeShort(this.caretOffset);\n for (i = _i = 0, _ref = 4 * 2; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n table.writeByte(0);\n }\n table.writeShort(this.metricDataFormat);\n table.writeUInt16(ids.length);\n return table.data;\n };*/\n return HheaTable;\n})(Table);\n\nvar OS2Table = (function(_super) {\n __extends(OS2Table, _super);\n\n function OS2Table() {\n return OS2Table.__super__.constructor.apply(this, arguments);\n }\n OS2Table.prototype.tag = \"OS/2\";\n OS2Table.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readUInt16();\n this.averageCharWidth = data.readShort();\n this.weightClass = data.readUInt16();\n this.widthClass = data.readUInt16();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort();\n this.ySubscriptYSize = data.readShort();\n this.ySubscriptXOffset = data.readShort();\n this.ySubscriptYOffset = data.readShort();\n this.ySuperscriptXSize = data.readShort();\n this.ySuperscriptYSize = data.readShort();\n this.ySuperscriptXOffset = data.readShort();\n this.ySuperscriptYOffset = data.readShort();\n this.yStrikeoutSize = data.readShort();\n this.yStrikeoutPosition = data.readShort();\n this.familyClass = data.readShort();\n this.panose = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 10; ++i) {\n _results.push(data.readByte());\n }\n return _results;\n })();\n this.charRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 4; ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n if (this.version > 0) {\n this.ascent = data.readShort();\n this.descent = data.readShort();\n this.lineGap = data.readShort();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = (function() {\n var i, _results;\n _results = [];\n for (i = 0; i < 2; i = ++i) {\n _results.push(data.readInt());\n }\n return _results;\n })();\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n return (this.maxContext = data.readShort());\n }\n }\n };\n /*OS2Table.prototype.encode = function () {\n return this.raw();\n };*/\n return OS2Table;\n})(Table);\n\nvar PostTable = (function(_super) {\n var POSTSCRIPT_GLYPHS;\n __extends(PostTable, _super);\n\n function PostTable() {\n return PostTable.__super__.constructor.apply(this, arguments);\n }\n PostTable.prototype.tag = \"post\";\n PostTable.prototype.parse = function(data) {\n var length, numberOfGlyphs, _results;\n data.pos = this.offset;\n this.format = data.readInt();\n this.italicAngle = data.readInt();\n this.underlinePosition = data.readShort();\n this.underlineThickness = data.readShort();\n this.isFixedPitch = data.readInt();\n this.minMemType42 = data.readInt();\n this.maxMemType42 = data.readInt();\n this.minMemType1 = data.readInt();\n this.maxMemType1 = data.readInt();\n switch (this.format) {\n case 0x00010000:\n break;\n case 0x00020000:\n numberOfGlyphs = data.readUInt16();\n this.glyphNameIndex = [];\n var i;\n for (\n i = 0;\n 0 <= numberOfGlyphs ? i < numberOfGlyphs : i > numberOfGlyphs;\n i = 0 <= numberOfGlyphs ? ++i : --i\n ) {\n this.glyphNameIndex.push(data.readUInt16());\n }\n this.names = [];\n _results = [];\n while (data.pos < this.offset + this.length) {\n length = data.readByte();\n _results.push(this.names.push(data.readString(length)));\n }\n return _results;\n case 0x00025000:\n numberOfGlyphs = data.readUInt16();\n return (this.offsets = data.read(numberOfGlyphs));\n case 0x00030000:\n break;\n case 0x00040000:\n return (this.map = function() {\n var _j, _ref, _results1;\n _results1 = [];\n for (\n i = _j = 0, _ref = this.file.maxp.numGlyphs;\n 0 <= _ref ? _j < _ref : _j > _ref;\n i = 0 <= _ref ? ++_j : --_j\n ) {\n _results1.push(data.readUInt32());\n }\n return _results1;\n }.call(this));\n }\n };\n /*PostTable.prototype.glyphFor = function (code) {\n var index;\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || '.notdef';\n case 0x00020000:\n index = this.glyphNameIndex[code];\n if (index <= 257) {\n return POSTSCRIPT_GLYPHS[index];\n }\n else {\n return this.names[index - 258] || '.notdef';\n }\n break;\n case 0x00025000:\n return POSTSCRIPT_GLYPHS[code + this.offsets[code]] || '.notdef';\n case 0x00030000:\n return '.notdef';\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n };*/\n /*PostTable.prototype.encode = function (mapping) {\n var id, index, indexes, position, post, raw, string, strings, table, _i, _j, _k, _len, _len1, _len2;\n if (!this.exists) {\n return null;\n }\n raw = this.raw();\n if (this.format === 0x00030000) {\n return raw;\n }\n table = new Data(raw.slice(0, 32));\n table.writeUInt32(0x00020000);\n table.pos = 32;\n indexes = [];\n strings = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n post = this.glyphFor(id);\n position = POSTSCRIPT_GLYPHS.indexOf(post);\n if (position !== -1) {\n indexes.push(position);\n }\n else {\n indexes.push(257 + strings.length);\n strings.push(post);\n }\n }\n table.writeUInt16(Object.keys(mapping).length);\n for (_j = 0, _len1 = indexes.length; _j < _len1; _j++) {\n index = indexes[_j];\n table.writeUInt16(index);\n }\n for (_k = 0, _len2 = strings.length; _k < _len2; _k++) {\n string = strings[_k];\n table.writeByte(string.length);\n table.writeString(string);\n }\n return table.data;\n };*/\n POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\\nzero one two three four five six seven eight nine colon semicolon less equal greater\\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\\nbracketleft backslash bracketright asciicircum underscore grave\\na b c d e f g h i j k l m n o p q r s t u v w x y z\\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\\nsterling section bullet paragraph germandbls registered copyright trademark acute\\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\\nCacute cacute Ccaron ccaron dcroat\".split(\n /\\s+/g\n );\n return PostTable;\n})(Table);\n\n/*********************************************************************************************************/\n/* function : NameEntry */\n/* comment : Store copyright information, platformID, encodingID, and languageID in the NameEntry object.*/\n/*********************************************************************************************************/\nvar NameEntry = (function() {\n function NameEntry(raw, entry) {\n this.raw = raw;\n this.length = raw.length;\n this.platformID = entry.platformID;\n this.encodingID = entry.encodingID;\n this.languageID = entry.languageID;\n }\n return NameEntry;\n})();\n\nvar NameTable = (function(_super) {\n var subsetTag;\n __extends(NameTable, _super);\n\n function NameTable() {\n return NameTable.__super__.constructor.apply(this, arguments);\n }\n NameTable.prototype.tag = \"name\";\n NameTable.prototype.parse = function(data) {\n var count,\n entries,\n entry,\n i,\n name,\n stringOffset,\n strings,\n text,\n _j,\n _len,\n _name;\n data.pos = this.offset;\n data.readShort(); //format\n count = data.readShort();\n stringOffset = data.readShort();\n entries = [];\n for (\n i = 0;\n 0 <= count ? i < count : i > count;\n i = 0 <= count ? ++i : --i\n ) {\n entries.push({\n platformID: data.readShort(),\n encodingID: data.readShort(),\n languageID: data.readShort(),\n nameID: data.readShort(),\n length: data.readShort(),\n offset: this.offset + stringOffset + data.readShort()\n });\n }\n strings = {};\n for (i = _j = 0, _len = entries.length; _j < _len; i = ++_j) {\n entry = entries[i];\n data.pos = entry.offset;\n text = data.readString(entry.length);\n name = new NameEntry(text, entry);\n if (strings[(_name = entry.nameID)] == null) {\n strings[_name] = [];\n }\n strings[entry.nameID].push(name);\n }\n this.strings = strings;\n this.copyright = strings[0];\n this.fontFamily = strings[1];\n this.fontSubfamily = strings[2];\n this.uniqueSubfamily = strings[3];\n this.fontName = strings[4];\n this.version = strings[5];\n try {\n this.postscriptName = strings[6][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n } catch (e) {\n this.postscriptName = strings[4][0].raw.replace(\n /[\\x00-\\x19\\x80-\\xff]/g,\n \"\"\n );\n }\n this.trademark = strings[7];\n this.manufacturer = strings[8];\n this.designer = strings[9];\n this.description = strings[10];\n this.vendorUrl = strings[11];\n this.designerUrl = strings[12];\n this.license = strings[13];\n this.licenseUrl = strings[14];\n this.preferredFamily = strings[15];\n this.preferredSubfamily = strings[17];\n this.compatibleFull = strings[18];\n return (this.sampleText = strings[19]);\n };\n subsetTag = \"AAAAAA\";\n /*NameTable.prototype.encode = function () {\n var id, list, nameID, nameTable, postscriptName, strCount, strTable, string, strings, table, val, _i, _len, _ref;\n strings = {};\n _ref = this.strings;\n for (id in _ref) {\n val = _ref[id];\n strings[id] = val;\n }\n postscriptName = new NameEntry(\"\" + subsetTag + \"+\" + this.postscriptName, {\n platformID: 1\n , encodingID: 0\n , languageID: 0\n });\n strings[6] = [postscriptName];\n subsetTag = successorOf(subsetTag);\n strCount = 0;\n for (id in strings) {\n list = strings[id];\n if (list != null) {\n strCount += list.length;\n }\n }\n table = new Data;\n strTable = new Data;\n table.writeShort(0);\n table.writeShort(strCount);\n table.writeShort(6 + 12 * strCount);\n for (nameID in strings) {\n list = strings[nameID];\n if (list != null) {\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n string = list[_i];\n table.writeShort(string.platformID);\n table.writeShort(string.encodingID);\n table.writeShort(string.languageID);\n table.writeShort(nameID);\n table.writeShort(string.length);\n table.writeShort(strTable.pos);\n strTable.writeString(string.raw);\n }\n }\n }\n return nameTable = {\n postscriptName: postscriptName.raw\n , table: table.data.concat(strTable.data)\n };\n };*/\n return NameTable;\n})(Table);\n\nvar MaxpTable = (function(_super) {\n __extends(MaxpTable, _super);\n\n function MaxpTable() {\n return MaxpTable.__super__.constructor.apply(this, arguments);\n }\n MaxpTable.prototype.tag = \"maxp\";\n MaxpTable.prototype.parse = function(data) {\n data.pos = this.offset;\n this.version = data.readInt();\n this.numGlyphs = data.readUInt16();\n this.maxPoints = data.readUInt16();\n this.maxContours = data.readUInt16();\n this.maxCompositePoints = data.readUInt16();\n this.maxComponentContours = data.readUInt16();\n this.maxZones = data.readUInt16();\n this.maxTwilightPoints = data.readUInt16();\n this.maxStorage = data.readUInt16();\n this.maxFunctionDefs = data.readUInt16();\n this.maxInstructionDefs = data.readUInt16();\n this.maxStackElements = data.readUInt16();\n this.maxSizeOfInstructions = data.readUInt16();\n this.maxComponentElements = data.readUInt16();\n return (this.maxComponentDepth = data.readUInt16());\n };\n /*MaxpTable.prototype.encode = function (ids) {\n var table;\n table = new Data;\n table.writeInt(this.version);\n table.writeUInt16(ids.length);\n table.writeUInt16(this.maxPoints);\n table.writeUInt16(this.maxContours);\n table.writeUInt16(this.maxCompositePoints);\n table.writeUInt16(this.maxComponentContours);\n table.writeUInt16(this.maxZones);\n table.writeUInt16(this.maxTwilightPoints);\n table.writeUInt16(this.maxStorage);\n table.writeUInt16(this.maxFunctionDefs);\n table.writeUInt16(this.maxInstructionDefs);\n table.writeUInt16(this.maxStackElements);\n table.writeUInt16(this.maxSizeOfInstructions);\n table.writeUInt16(this.maxComponentElements);\n table.writeUInt16(this.maxComponentDepth);\n return table.data;\n };*/\n return MaxpTable;\n})(Table);\n\nvar HmtxTable = (function(_super) {\n __extends(HmtxTable, _super);\n\n function HmtxTable() {\n return HmtxTable.__super__.constructor.apply(this, arguments);\n }\n HmtxTable.prototype.tag = \"hmtx\";\n HmtxTable.prototype.parse = function(data) {\n var i, last, lsbCount, m, _j, _ref, _results;\n data.pos = this.offset;\n this.metrics = [];\n for (\n i = 0, _ref = this.file.hhea.numberOfMetrics;\n 0 <= _ref ? i < _ref : i > _ref;\n i = 0 <= _ref ? ++i : --i\n ) {\n this.metrics.push({\n advance: data.readUInt16(),\n lsb: data.readInt16()\n });\n }\n lsbCount = this.file.maxp.numGlyphs - this.file.hhea.numberOfMetrics;\n this.leftSideBearings = (function() {\n var _j, _results;\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(data.readInt16());\n }\n return _results;\n })();\n this.widths = function() {\n var _j, _len, _ref1, _results;\n _ref1 = this.metrics;\n _results = [];\n for (_j = 0, _len = _ref1.length; _j < _len; _j++) {\n m = _ref1[_j];\n _results.push(m.advance);\n }\n return _results;\n }.call(this);\n last = this.widths[this.widths.length - 1];\n _results = [];\n for (\n i = _j = 0;\n 0 <= lsbCount ? _j < lsbCount : _j > lsbCount;\n i = 0 <= lsbCount ? ++_j : --_j\n ) {\n _results.push(this.widths.push(last));\n }\n return _results;\n };\n /***************************************************************/\n /* function : forGlyph */\n /* comment : Returns the advance width and lsb for this glyph. */\n /***************************************************************/\n HmtxTable.prototype.forGlyph = function(id) {\n if (id in this.metrics) {\n return this.metrics[id];\n }\n return {\n advance: this.metrics[this.metrics.length - 1].advance,\n lsb: this.leftSideBearings[id - this.metrics.length]\n };\n };\n /*HmtxTable.prototype.encode = function (mapping) {\n var id, metric, table, _i, _len;\n table = new Data;\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n metric = this.forGlyph(id);\n table.writeUInt16(metric.advance);\n table.writeUInt16(metric.lsb);\n }\n return table.data;\n };*/\n return HmtxTable;\n})(Table);\n\nvar __slice = [].slice;\n\nvar GlyfTable = (function(_super) {\n __extends(GlyfTable, _super);\n\n function GlyfTable() {\n return GlyfTable.__super__.constructor.apply(this, arguments);\n }\n GlyfTable.prototype.tag = \"glyf\";\n GlyfTable.prototype.parse = function() {\n return (this.cache = {});\n };\n GlyfTable.prototype.glyphFor = function(id) {\n var data,\n index,\n length,\n loca,\n numberOfContours,\n raw,\n xMax,\n xMin,\n yMax,\n yMin;\n if (id in this.cache) {\n return this.cache[id];\n }\n loca = this.file.loca;\n data = this.file.contents;\n index = loca.indexOf(id);\n length = loca.lengthOf(id);\n if (length === 0) {\n return (this.cache[id] = null);\n }\n data.pos = this.offset + index;\n raw = new Data(data.read(length));\n numberOfContours = raw.readShort();\n xMin = raw.readShort();\n yMin = raw.readShort();\n xMax = raw.readShort();\n yMax = raw.readShort();\n if (numberOfContours === -1) {\n this.cache[id] = new CompoundGlyph(raw, xMin, yMin, xMax, yMax);\n } else {\n this.cache[id] = new SimpleGlyph(\n raw,\n numberOfContours,\n xMin,\n yMin,\n xMax,\n yMax\n );\n }\n return this.cache[id];\n };\n GlyfTable.prototype.encode = function(glyphs, mapping, old2new) {\n var glyph, id, offsets, table, _i, _len;\n table = [];\n offsets = [];\n for (_i = 0, _len = mapping.length; _i < _len; _i++) {\n id = mapping[_i];\n glyph = glyphs[id];\n offsets.push(table.length);\n if (glyph) {\n table = table.concat(glyph.encode(old2new));\n }\n }\n offsets.push(table.length);\n return {\n table: table,\n offsets: offsets\n };\n };\n return GlyfTable;\n})(Table);\n\nvar SimpleGlyph = (function() {\n /**************************************************************************/\n /* function : SimpleGlyph */\n /* comment : Stores raw, xMin, yMin, xMax, and yMax values for this glyph.*/\n /**************************************************************************/\n function SimpleGlyph(raw, numberOfContours, xMin, yMin, xMax, yMax) {\n this.raw = raw;\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = false;\n }\n SimpleGlyph.prototype.encode = function() {\n return this.raw.data;\n };\n return SimpleGlyph;\n})();\n\nvar CompoundGlyph = (function() {\n var ARG_1_AND_2_ARE_WORDS,\n MORE_COMPONENTS,\n WE_HAVE_AN_X_AND_Y_SCALE,\n WE_HAVE_A_SCALE,\n WE_HAVE_A_TWO_BY_TWO,\n WE_HAVE_INSTRUCTIONS;\n ARG_1_AND_2_ARE_WORDS = 0x0001;\n WE_HAVE_A_SCALE = 0x0008;\n MORE_COMPONENTS = 0x0020;\n WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n WE_HAVE_A_TWO_BY_TWO = 0x0080;\n WE_HAVE_INSTRUCTIONS = 0x0100;\n\n /********************************************************************************************************************/\n /* function : CompoundGlypg generator */\n /* comment : It stores raw, xMin, yMin, xMax, yMax, glyph id, and glyph offset for the corresponding compound glyph.*/\n /********************************************************************************************************************/\n function CompoundGlyph(raw, xMin, yMin, xMax, yMax) {\n var data, flags;\n this.raw = raw;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n this.compound = true;\n this.glyphIDs = [];\n this.glyphOffsets = [];\n data = this.raw;\n while (true) {\n flags = data.readShort();\n this.glyphOffsets.push(data.pos);\n this.glyphIDs.push(data.readUInt16());\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n data.pos += 4;\n } else {\n data.pos += 2;\n }\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.pos += 8;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.pos += 4;\n } else if (flags & WE_HAVE_A_SCALE) {\n data.pos += 2;\n }\n }\n }\n /****************************************************************************************************************/\n /* function : CompoundGlypg encode */\n /* comment : After creating a table for the characters you typed, you call directory.encode to encode the table.*/\n /****************************************************************************************************************/\n CompoundGlyph.prototype.encode = function() {\n var i, result, _len, _ref;\n result = new Data(__slice.call(this.raw.data));\n _ref = this.glyphIDs;\n for (i = 0, _len = _ref.length; i < _len; ++i) {\n result.pos = this.glyphOffsets[i];\n }\n return result.data;\n };\n return CompoundGlyph;\n})();\n\nvar LocaTable = (function(_super) {\n __extends(LocaTable, _super);\n\n function LocaTable() {\n return LocaTable.__super__.constructor.apply(this, arguments);\n }\n LocaTable.prototype.tag = \"loca\";\n LocaTable.prototype.parse = function(data) {\n var format, i;\n data.pos = this.offset;\n format = this.file.head.indexToLocFormat;\n if (format === 0) {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 2) {\n _results.push(data.readUInt16() * 2);\n }\n return _results;\n }.call(this));\n } else {\n return (this.offsets = function() {\n var _ref, _results;\n _results = [];\n for (i = 0, _ref = this.length; i < _ref; i += 4) {\n _results.push(data.readUInt32());\n }\n return _results;\n }.call(this));\n }\n };\n LocaTable.prototype.indexOf = function(id) {\n return this.offsets[id];\n };\n LocaTable.prototype.lengthOf = function(id) {\n return this.offsets[id + 1] - this.offsets[id];\n };\n LocaTable.prototype.encode = function(offsets, activeGlyphs) {\n var LocaTable = new Uint32Array(this.offsets.length);\n var glyfPtr = 0;\n var listGlyf = 0;\n for (var k = 0; k < LocaTable.length; ++k) {\n LocaTable[k] = glyfPtr;\n if (listGlyf < activeGlyphs.length && activeGlyphs[listGlyf] == k) {\n ++listGlyf;\n LocaTable[k] = glyfPtr;\n var start = this.offsets[k];\n var len = this.offsets[k + 1] - start;\n if (len > 0) {\n glyfPtr += len;\n }\n }\n }\n var newLocaTable = new Array(LocaTable.length * 4);\n for (var j = 0; j < LocaTable.length; ++j) {\n newLocaTable[4 * j + 3] = LocaTable[j] & 0x000000ff;\n newLocaTable[4 * j + 2] = (LocaTable[j] & 0x0000ff00) >> 8;\n newLocaTable[4 * j + 1] = (LocaTable[j] & 0x00ff0000) >> 16;\n newLocaTable[4 * j] = (LocaTable[j] & 0xff000000) >> 24;\n }\n return newLocaTable;\n };\n return LocaTable;\n})(Table);\n\n/************************************************************************************/\n/* function : invert */\n/* comment : Change the object's (key: value) to create an object with (value: key).*/\n/************************************************************************************/\nvar invert = function(object) {\n var key, ret, val;\n ret = {};\n for (key in object) {\n val = object[key];\n ret[val] = key;\n }\n return ret;\n};\n\n/*var successorOf = function (input) {\n var added, alphabet, carry, i, index, isUpperCase, last, length, next, result;\n alphabet = 'abcdefghijklmnopqrstuvwxyz';\n length = alphabet.length;\n result = input;\n i = input.length;\n while (i >= 0) {\n last = input.charAt(--i);\n if (isNaN(last)) {\n index = alphabet.indexOf(last.toLowerCase());\n if (index === -1) {\n next = last;\n carry = true;\n }\n else {\n next = alphabet.charAt((index + 1) % length);\n isUpperCase = last === last.toUpperCase();\n if (isUpperCase) {\n next = next.toUpperCase();\n }\n carry = index + 1 >= length;\n if (carry && i === 0) {\n added = isUpperCase ? 'A' : 'a';\n result = added + next + result.slice(1);\n break;\n }\n }\n }\n else {\n next = +last + 1;\n carry = next > 9;\n if (carry) {\n next = 0;\n }\n if (carry && i === 0) {\n result = '1' + next + result.slice(1);\n break;\n }\n }\n result = result.slice(0, i) + next + result.slice(i + 1);\n if (!carry) {\n break;\n }\n }\n return result;\n };*/\n\nvar Subset = (function() {\n function Subset(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.next = 33;\n }\n /*Subset.prototype.use = function (character) {\n var i, _i, _ref;\n if (typeof character === 'string') {\n for (i = _i = 0, _ref = character.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n this.use(character.charCodeAt(i));\n }\n return;\n }\n if (!this.unicodes[character]) {\n this.subset[this.next] = character;\n return this.unicodes[character] = this.next++;\n }\n };*/\n /*Subset.prototype.encodeText = function (text) {\n var char, i, string, _i, _ref;\n string = '';\n for (i = _i = 0, _ref = text.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {\n char = this.unicodes[text.charCodeAt(i)];\n string += String.fromCharCode(char);\n }\n return string;\n };*/\n /***************************************************************/\n /* function : generateCmap */\n /* comment : Returns the unicode cmap for this font. */\n /***************************************************************/\n Subset.prototype.generateCmap = function() {\n var mapping, roman, unicode, unicodeCmap, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n mapping = {};\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n mapping[roman] = unicodeCmap[unicode];\n }\n return mapping;\n };\n /*Subset.prototype.glyphIDs = function () {\n var ret, roman, unicode, unicodeCmap, val, _ref;\n unicodeCmap = this.font.cmap.tables[0].codeMap;\n ret = [0];\n _ref = this.subset;\n for (roman in _ref) {\n unicode = _ref[roman];\n val = unicodeCmap[unicode];\n if ((val != null) && __indexOf.call(ret, val) < 0) {\n ret.push(val);\n }\n }\n return ret.sort();\n };*/\n /******************************************************************/\n /* function : glyphsFor */\n /* comment : Returns simple glyph objects for the input character.*/\n /******************************************************************/\n Subset.prototype.glyphsFor = function(glyphIDs) {\n var additionalIDs, glyph, glyphs, id, _i, _len, _ref;\n glyphs = {};\n for (_i = 0, _len = glyphIDs.length; _i < _len; _i++) {\n id = glyphIDs[_i];\n glyphs[id] = this.font.glyf.glyphFor(id);\n }\n additionalIDs = [];\n for (id in glyphs) {\n glyph = glyphs[id];\n if (glyph != null ? glyph.compound : void 0) {\n additionalIDs.push.apply(additionalIDs, glyph.glyphIDs);\n }\n }\n if (additionalIDs.length > 0) {\n _ref = this.glyphsFor(additionalIDs);\n for (id in _ref) {\n glyph = _ref[id];\n glyphs[id] = glyph;\n }\n }\n return glyphs;\n };\n /***************************************************************/\n /* function : encode */\n /* comment : Encode various tables for the characters you use. */\n /***************************************************************/\n Subset.prototype.encode = function(glyID, indexToLocFormat) {\n var cmap,\n code,\n glyf,\n glyphs,\n id,\n ids,\n loca,\n new2old,\n newIDs,\n nextGlyphID,\n old2new,\n oldID,\n oldIDs,\n tables,\n _ref;\n cmap = CmapTable.encode(this.generateCmap(), \"unicode\");\n glyphs = this.glyphsFor(glyID);\n old2new = {\n 0: 0\n };\n _ref = cmap.charMap;\n for (code in _ref) {\n ids = _ref[code];\n old2new[ids.old] = ids[\"new\"];\n }\n nextGlyphID = cmap.maxGlyphID;\n for (oldID in glyphs) {\n if (!(oldID in old2new)) {\n old2new[oldID] = nextGlyphID++;\n }\n }\n new2old = invert(old2new);\n newIDs = Object.keys(new2old).sort(function(a, b) {\n return a - b;\n });\n oldIDs = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = newIDs.length; _i < _len; _i++) {\n id = newIDs[_i];\n _results.push(new2old[id]);\n }\n return _results;\n })();\n glyf = this.font.glyf.encode(glyphs, oldIDs, old2new);\n loca = this.font.loca.encode(glyf.offsets, oldIDs);\n tables = {\n cmap: this.font.cmap.raw(),\n glyf: glyf.table,\n loca: loca,\n hmtx: this.font.hmtx.raw(),\n hhea: this.font.hhea.raw(),\n maxp: this.font.maxp.raw(),\n post: this.font.post.raw(),\n name: this.font.name.raw(),\n head: this.font.head.encode(indexToLocFormat)\n };\n if (this.font.os2.exists) {\n tables[\"OS/2\"] = this.font.os2.raw();\n }\n return this.font.directory.encode(tables);\n };\n return Subset;\n})();\n\njsPDF.API.PDFObject = (function() {\n var pad;\n\n function PDFObject() {}\n pad = function(str, length) {\n return (Array(length + 1).join(\"0\") + str).slice(-length);\n };\n /*****************************************************************************/\n /* function : convert */\n /* comment :Converts pdf tag's / FontBBox and array values in / W to strings */\n /*****************************************************************************/\n PDFObject.convert = function(object) {\n var e, items, key, out, val;\n if (Array.isArray(object)) {\n items = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = object.length; _i < _len; _i++) {\n e = object[_i];\n _results.push(PDFObject.convert(e));\n }\n return _results;\n })().join(\" \");\n return \"[\" + items + \"]\";\n } else if (typeof object === \"string\") {\n return \"/\" + object;\n } else if (object != null ? object.isString : void 0) {\n return \"(\" + object + \")\";\n } else if (object instanceof Date) {\n return (\n \"(D:\" +\n pad(object.getUTCFullYear(), 4) +\n pad(object.getUTCMonth(), 2) +\n pad(object.getUTCDate(), 2) +\n pad(object.getUTCHours(), 2) +\n pad(object.getUTCMinutes(), 2) +\n pad(object.getUTCSeconds(), 2) +\n \"Z)\"\n );\n } else if ({}.toString.call(object) === \"[object Object]\") {\n out = [\"<<\"];\n for (key in object) {\n val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n out.push(\">>\");\n return out.join(\"\\n\");\n } else {\n return \"\" + object;\n }\n };\n return PDFObject;\n})();\n","import React, { useState, useEffect } from 'react';\nimport '../styles/Interview.css';\nimport { getCurrentUser, fetchUserAttributes } from 'aws-amplify/auth';\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\nimport html2canvas from 'html2canvas';\nimport jsPDF from 'jspdf';\n\nconst Interview = () => {\n const [socialIssue, setSocialIssue] = useState('');\n const [geography, setGeography] = useState('');\n const [presentation, setPresentation] = useState('');\n const [purpose, setPurpose] = useState('');\n const [duration, setDuration] = useState('');\n const [toRecord, setToRecord] = useState('');\n const [feedbackInterview, setFeedbackInterview] = useState('');\n const [nextSteps, setNextSteps] = useState('');\n const [contact, setContact] = useState('');\n\n const [loading, setLoading] = useState(false);\n const [answer, setAnswer] = useState('');\n const [sessionId, setSessionId] = useState(null);\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [feedbackGiven, setFeedbackGiven] = useState(false);\n\n const showdown = require('showdown');\n const converter = new showdown.Converter();\n\n const handleFeedback = async (feedbackType, interactionId) => {\n try {\n const response = await fetch('https://jnhyo3iqg4.execute-api.eu-north-1.amazonaws.com/feedback', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ \n \"interaction_id\": interactionId, \n \"feedback\": feedbackType \n }), // Send interaction ID and feedback text\n });\n console.log('Feedback submitted:', response);\n setFeedbackGiven(true); \n } catch (error) {\n console.error('Error submitting feedback:', error);\n }\n };\n \n // create a session id for the conversation\n useEffect(() => {\n const sessionId = Math.random().toString(36).substring(7);\n setSessionId(sessionId);\n }, []);\n \n useEffect(() => {\n fetchUser();\n }, []);\n\n async function fetchUser() {\n try {\n const currentUser = await getCurrentUser();\n const userAttributes = await fetchUserAttributes();\n setUser({ ...currentUser, ...userAttributes });\n } catch (error) {\n console.error('Error fetching user', error);\n }\n }\n\n const callAPI = async (e) => {\n e.preventDefault();\n setLoading(true); // Show loader\n setAnswer(null); // Reset answer state\n setError(null);\n setFeedbackGiven(false);\n \n \n try {\n const response = await fetch(\"https://jnhyo3iqg4.execute-api.eu-north-1.amazonaws.com/interview\", {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"social_issue\": socialIssue,\n \"geography\": geography,\n \"presentation\": presentation,\n \"purpose\": purpose,\n \"duration\": duration,\n \"to_record\": toRecord,\n \"feedback_interview\": feedbackInterview,\n \"next_steps\": nextSteps,\n \"contact\": contact,\n \"session_id\": sessionId,\n \"user_id\": user.username\n }),\n });\n\n\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n \n const data = await response.json();\n \n if (data.answer) {\n console.log('Is data.answer an object?', typeof data.answer === 'object');\n setAnswer({\n answer: marked(data.answer),\n interaction_id: data.interactionId\n });\n } else {\n setAnswer('Answer field is missing in the response.');\n }\n } catch (error) {\n setAnswer(error.message);\n console.error('Fetch error:', error);\n } finally {\n setLoading(false);\n }\n };\n\n function preprocessText(text) {\n // Remove unwanted line breaks and extra spaces\n return text\n .replace(/\\n\\s*\\n/g, '

    ') // Maintain double line breaks for paragraphs\n .replace(/\\n/g, '
    ');\n }\n\n function copyToClipboard() {\n const answerDiv = document.getElementById('answerDiv');\n const text = answerDiv.innerText; // Extract only the text content\n const textArea = document.createElement('textarea');\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand('copy');\n document.body.removeChild(textArea);\n \n }\n\n const downloadAsPDF = () => {\n const answerDiv = document.getElementById('answerDiv');\n const doc = new jsPDF('p', 'mm', 'a4');\n const pageHeight = doc.internal.pageSize.height;\n const margin = 20;\n const lineHeight = 6; // Adjust line height for smaller font size\n const fontSize = 12; // Set the desired font size\n doc.setFontSize(fontSize);\n let y = margin;\n \n const addTextToPDF = (text) => {\n const lines = doc.splitTextToSize(text, doc.internal.pageSize.width - 2 * margin);\n lines.forEach((line) => {\n if (y + lineHeight > pageHeight - margin) {\n doc.addPage();\n y = margin;\n }\n doc.text(line, margin, y, { maxWidth: doc.internal.pageSize.width - 2 * margin });\n y += lineHeight;\n });\n };\n \n const addTextWithColor = (text, color) => {\n const lines = doc.splitTextToSize(text, doc.internal.pageSize.width - 2 * margin);\n doc.setTextColor(color[0], color[1], color[2]); // Set RGB color\n lines.forEach((line) => {\n if (y + lineHeight > pageHeight - margin) {\n doc.addPage();\n y = margin;\n }\n doc.text(line, margin, y, { maxWidth: doc.internal.pageSize.width - 2 * margin });\n y += lineHeight;\n });\n doc.setTextColor(0, 0, 0); // Reset to black after adding colored text\n };\n \n if (answer && typeof answer === 'object') {\n const text = answer.answer.replace(//gi, '\\n').replace(/<\\/?[^>]+(>|$)/g, \"\");\n \n // Split the text into phases and add color for titles\n const introductionTitle = \"Introduction Phase\";\n const substantiveTitle = \"Substantive Phase\";\n const exitTitle = \"Exit Phase\";\n \n let remainingText = text;\n \n // Add Introduction Phase\n if (remainingText.includes(introductionTitle)) {\n addTextWithColor(introductionTitle, [255, 20, 147]); // Pink color\n remainingText = remainingText.split(introductionTitle)[1];\n }\n \n // Add Substantive Phase\n if (remainingText.includes(substantiveTitle)) {\n addTextToPDF(remainingText.split(substantiveTitle)[0]); // Add text before Substantive Phase\n addTextWithColor(substantiveTitle, [255, 20, 147]); // Pink color\n remainingText = remainingText.split(substantiveTitle)[1];\n }\n \n // Add Exit Phase\n if (remainingText.includes(exitTitle)) {\n addTextToPDF(remainingText.split(exitTitle)[0]); // Add text before Exit Phase\n addTextWithColor(exitTitle, [255, 20, 147]); // Pink color\n remainingText = remainingText.split(exitTitle)[1];\n }\n \n // Add remaining text\n addTextToPDF(remainingText);\n }\n \n doc.save('answer.pdf');\n };\n\n\n\n return (\n
    \n
    \n

    Interview Scripter

    \n \"RFC\n
    \n

    Receive help on how to collect your own data!

    \n
    \n
    \n
    \n \n setSocialIssue(e.target.value)}\n />\n
    \n
    \n \n setGeography(e.target.value)}\n />\n
    \n
    \n \n setPresentation(e.target.value)}\n />\n

    Please present yourself. E.g. Hello, my name is __, and I am the Program Coordinator at __. Our organization is dedicated to __ by __. With __ years of experience in this field, I am passionate about helping __.

    \n
    \n
    \n \n setPurpose(e.target.value)}\n />\n

    Please state the purpose of the interview. E.g. The purpose of this interview is to gather information on __ to help us understand __. I am interested in learning about __ to help me improve __.

    \n
    \n
    \n \n setDuration(e.target.value)}\n />\n

    Please state the duration of the interview. E.g. The interview will take approximately __ minutes.

    \n
    \n
    \n \n setToRecord(e.target.value)}\n >\n \n \n \n \n
    \n
    \n \n setFeedbackInterview(e.target.value)}\n />\n

    Please state if you want any feedback for the interview. E.g. I would like to receive feedback on __.

    \n
    \n
    \n \n setNextSteps(e.target.value)}\n >\n \n \n \n \n {/*

    Please state if there are any next steps planned after the interview. E.g. Our next steps are: 1- Analyzing the feedback received to improve our programs 2- Scheduling follow-up sessions to address any concerns or suggestions 3- Offering additional resources or support based on the feedback

    */}\n
    \n
    \n \n setContact(e.target.value)}\n />\n
    \n
    \n
    \n

    Note: AI-generated content may contain errors. Please verify the information.

    \n
    \n \n
    \n
    \n {loading && (\n
    \n Loading...\n \n
    \n )}\n
    \n {answer && typeof answer === 'object' ? (\n
    \n

    Answer:

    \n
    \n
    \n

    Note: AI-generated content may contain errors. Please verify the information.

    \n
    \n
    \n Copy\n \n \n \n \n \n
    \n \n
    \n {!feedbackGiven ? (\n
    \n
    handleFeedback('Like', answer.interaction_id)}>\n \n
    \n
    handleFeedback('Dislike', answer.interaction_id)}>\n \n
    \n
    \n ) : (\n

    Thank you for your feedback! 😄

    \n )}\n
    \n ) : (\n

    {answer}

    \n )}\n
    \n
    \n );\n };\n\nexport default Interview;","import React, { useState, useEffect } from 'react';\nimport '../App.css';\nimport { getCurrentUser, fetchUserAttributes } from 'aws-amplify/auth';\nimport jsPDF from 'jspdf';\n\nconst Survey = () => {\n const [socialIssue, setSocialIssue] = useState('');\n const [geography, setGeography] = useState('');\n const [org, setOrg] = useState('');\n const [outcome, setOutcome] = useState('');\n const [target_group, setTargetGroup] = useState('');\n const [openness_ratio, setOpennessRatio] = useState('');\n\n const [loading, setLoading] = useState(false);\n const [answer, setAnswer] = useState('');\n const [sessionId, setSessionId] = useState(null);\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [feedbackGiven, setFeedbackGiven] = useState(false);\n\n const showdown = require('showdown');\n const converter = new showdown.Converter();\n\n const handleFeedback = async (feedbackType, interactionId) => {\n try {\n const response = await fetch('https://ax9p2w4vm3.execute-api.eu-north-1.amazonaws.com/dev2/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ \n \"InteractionId\": interactionId, \n \"Feedback\": feedbackType \n }), // Send interaction ID and feedback text\n });\n setFeedbackGiven(true); \n } catch (error) {\n console.error('Error submitting feedback:', error);\n }\n };\n // create a session id for the conversation\n useEffect(() => {\n const sessionId = Math.random().toString(36).substring(7);\n setSessionId(sessionId);\n }, []);\n \n useEffect(() => {\n fetchUser();\n }, []);\n\n async function fetchUser() {\n try {\n const currentUser = await getCurrentUser();\n const userAttributes = await fetchUserAttributes();\n setUser({ ...currentUser, ...userAttributes });\n } catch (error) {\n console.error('Error fetching user', error);\n }\n }\n\n\n const callAPI = async (e) => {\n e.preventDefault();\n //MAKE THE LOADING TRUE ONLY 1 MINUTE\n\n setLoading(true); // Show loader for 1 minute\n //setLoading(true, ); // Show loader\n setAnswer(null); // Reset answer state\n setError(null);\n setFeedbackGiven(false);\n \n \n try {\n const response = await fetch('https://jnhyo3iqg4.execute-api.eu-north-1.amazonaws.com/survey', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ \n \"social_issue\": socialIssue,\n \"geography\": geography,\n \"organisation\": org,\n \"outcome\": outcome,\n \"target_group\": target_group,\n \"openness_ratio\": openness_ratio,\n \"session_id\": sessionId,\n \"user_id\": user.username \n })\n });\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n\n }\n const data = await response.json();\n //const data = JSON.parse(result.body);\n console.log(data);\n console.log(data.answer);\n if (data.answer) {\n setAnswer({\n answer: data.answer,\n interaction_id: data.interactionId\n });\n } else {\n setAnswer('Answer field is missing in the response.');\n }\n } catch (error) {\n setAnswer(error.message);\n console.error('Fetch error:', error);\n } finally {\n setLoading(false);\n }\n };\n function copyToClipboard() {\n const answerDiv = document.getElementById('answerDiv');\n const text = answerDiv.innerText; // Extract only the text content\n const textArea = document.createElement('textarea');\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand('copy');\n document.body.removeChild(textArea);\n \n }\n\n const downloadAsPDF = () => {\n const doc = new jsPDF('p', 'mm', 'a4');\n const pageHeight = doc.internal.pageSize.height;\n const margin = 20;\n const lineHeight = 7; // Line height for text\n const titleFontSize = 16; // Font size for titles\n const regularFontSize = 12; // Font size for regular text\n const titleSpacing = 10; // Space before and after titles\n const sectionSpacing = 5; // Space between sections\n doc.setFontSize(regularFontSize);\n let y = margin;\n \n const addTextToPDF = (text, isTitle = false) => {\n if (isTitle) {\n doc.setFontSize(titleFontSize); // Larger font for titles\n y += titleSpacing; // Space before title\n } else {\n doc.setFontSize(regularFontSize); // Regular font size\n }\n \n if (!text || typeof text !== 'string') return; // Skip if text is invalid\n \n const lines = doc.splitTextToSize(text, doc.internal.pageSize.width - 2 * margin);\n lines.forEach((line) => {\n if (y + lineHeight > pageHeight - margin) {\n doc.addPage();\n y = margin;\n }\n doc.text(line, margin, y, { maxWidth: doc.internal.pageSize.width - 2 * margin });\n y += lineHeight;\n });\n \n if (isTitle) {\n // y += titleSpacing; // Space after title\n } else {\n y += sectionSpacing; // Space after regular text\n }\n };\n \n const addTextWithColor = (text, color) => {\n doc.setTextColor(color[0], color[1], color[2]); // Set RGB color\n addTextToPDF(text, true); // Use `true` to apply title formatting\n doc.setTextColor(0, 0, 0); // Reset to black after adding colored text\n };\n \n const addListToPDF = (items) => {\n items.forEach((item, index) => {\n if (item && item.question) {\n const typeLabel = item.type === 'OPEN' ? 'Open Question:' : 'Closed Question:';\n const listItem = `${index + 1}. ${typeLabel} ${item.question}`;\n addTextToPDF(listItem);\n }\n });\n };\n \n // Check if answer.answer is valid\n if (answer && answer.answer) {\n const survey = answer.answer;\n \n // Add the survey title\n addTextWithColor(survey.survey_name, [255, 20, 147]);\n \n // Add the introduction\n addTextToPDF(survey.intro);\n \n // Add sections with questions\n if (survey.background_questions && survey.background_questions.length > 0) {\n addTextWithColor(\"Background Questions:\", [255, 20, 147]);\n addListToPDF(survey.background_questions);\n }\n \n if (survey.outcome_questions && survey.outcome_questions.length > 0) {\n addTextWithColor(\"Outcome Questions:\", [255, 20, 147]);\n addListToPDF(survey.outcome_questions);\n }\n \n if (survey.satisfaction_questions && survey.satisfaction_questions.length > 0) {\n addTextWithColor(\"Satisfaction Questions:\", [255, 20, 147]);\n addListToPDF(survey.satisfaction_questions);\n }\n \n // Add exit text\n if (survey.exit) {\n addTextWithColor(\"Exit:\", [255, 20, 147]);\n addTextToPDF(survey.exit);\n }\n } else {\n console.error(\"The answer or its properties are not defined.\");\n }\n \n doc.save('survey.pdf');\n };\n\n return (\n
    \n
    \n

    Survey Generator

    \n \"RFC\n
    \n

    Receive help on how to collect your own data via a survey!

    \n
    \n
    \n
    \n \n setSocialIssue(e.target.value)}\n />\n
    \n
    \n \n setGeography(e.target.value)}\n />\n
    \n
    \n \n setOrg(e.target.value)}\n />\n

    Enter the full name of your organization as it is officially registered. This helps identify the organization responsible for the survey or initiative. E.g. Reach For Change.

    \n
    \n
    \n \n setOutcome(e.target.value)}\n />\n

    Describe the main result or effect you aim to achieve through your project or initiative. This should be a clear, measurable goal or result. E.g. Improve literacy rates among children in rural areas by 20%.

    \n
    \n
    \n \n setTargetGroup(e.target.value)}\n />\n

    Specify the demographic or group of individuals your project or initiative is designed to benefit. This could include age groups, gender, socio-economic status, or other characteristics. E.g. Children aged 6-12 from low-income families.

    \n
    \n
    \n \n setOpennessRatio(parseFloat(e.target.value))}\n >\n \n \n \n \n \n

    \n Enter a value between 0 and 1 to indicate the desired balance between open-ended and closed-ended questions in your survey.

    \n • A value of 0 means that all questions will be closed-ended (specific, multiple-choice, or yes/no questions).

    \n • A value of 1 means that all questions will be open-ended (questions that require detailed responses).

    \n • Values in between will result in a mix of both types of questions, proportionally determined by the ratio.\n

    \n
    \n
    \n

    Note: AI-generated content may contain errors. Please verify the information.

    \n
    \n \n
    \n
    \n \n {loading && (\n
    \n Loading...\n \n
    \n )}\n
    \n {answer && typeof answer === 'object' ? (\n
    \n

    Answer:

    \n {answer && (\n
    \n

    {answer.answer.survey_name}

    \n

    {answer.answer.intro}

    \n\n {answer.answer.background_questions && answer.answer.background_questions.length > 0 && (\n
    \n
    Background Questions:
    \n
      \n {answer.answer.background_questions.map((question, index) => (\n
    • \n {question.type === \"OPEN\" ? (\n
      \n Open Question: {question.question}\n
      \n ) : (\n
      \n Closed Question: {question.question}\n
      \n )}\n
    • \n ))}\n
    \n
    \n )}\n\n {answer.answer.outcome_questions && answer.answer.outcome_questions.length > 0 && (\n
    \n
    Outcome Questions:
    \n
      \n {answer.answer.outcome_questions.map((question, index) => (\n
    • \n {question.type === \"OPEN\" ? (\n
      \n Open Question: {question.question}\n
      \n ) : (\n
      \n Closed Question: {question.question}\n
      \n )}\n
    • \n ))}\n
    \n
    \n )}\n\n {answer.answer.satisfaction_questions && answer.answer.satisfaction_questions.length > 0 && (\n
    \n
    Satisfaction Questions:
    \n
      \n {answer.answer.satisfaction_questions.map((question, index) => (\n
    • \n {question.type === \"OPEN\" ? (\n
      \n Open Question: {question.question}\n
      \n ) : (\n
      \n Closed Question: {question.question}\n
      \n )}\n
    • \n ))}\n
    \n
    \n )}\n
    \n

    {answer.answer.exit}

    \n
    \n )}\n
    \n

    Note: AI-generated content may contain errors. Please verify the information.

    \n
    \n
    \n Copy\n \n \n \n \n \n
    \n \n
    \n {!feedbackGiven ? (\n
    \n
    handleFeedback('Like', answer.interaction_id)}>\n \n
    \n
    handleFeedback('Dislike', answer.interaction_id)}>\n \n
    \n
    \n ) : (\n

    Thank you for your feedback! 😄

    \n )}\n
    \n ) : (\n

    {answer}

    \n )}\n
    \n
    \n );\n };\n\nexport default Survey;","export const COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['heic', 'image/heic'],\n ['heif', 'image/heif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\n\n\nexport function toFileWithPath(file: FileWithPath, path?: string): FileWithPath {\n const f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n const {webkitRelativePath} = file;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\nexport interface FileWithPath extends File {\n readonly path?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport async function fromEvent(evt: Event | any): Promise<(FileWithPath | DataTransferItem)[]> {\n if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n } else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n } else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt)\n }\n return [];\n}\n\nfunction isDataTransfer(value: any): value is DataTransfer {\n return isObject(value);\n}\n\nfunction isChangeEvt(value: any): value is Event {\n return isObject(value) && isObject(value.target);\n}\n\nfunction isObject(v: any): v is T {\n return typeof v === 'object' && v !== null\n}\n\nfunction getInputFiles(evt: Event) {\n return fromList((evt.target as HTMLInputElement).files).map(file => toFileWithPath(file));\n}\n\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nasync function getFsHandleFiles(handles: any[]) {\n const files = await Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n}\n\n\nasync function getDataTransferFiles(dt: DataTransfer, type: string) {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList | null): T[] {\n if (items === null) {\n return [];\n }\n\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from \"attr-accept\"; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(\", \")) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string|string[]} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
    \n * \n *

    Drag 'n' drop some files here, or click to select files

    \n *
    \n * )}\n *
    \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: true,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
    \n * \n *

    Drag and drop some files here, or click to select files

    \n *
    \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n display: \"none\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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 && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let 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 {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\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 (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 const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst 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 * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\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|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && 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 *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst 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 const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst 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 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(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 = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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 * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\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 */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n 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 *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\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 *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\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 *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\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: platform.classes.FormData,\n Blob: platform.classes.Blob\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const 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\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\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 const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let 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 const 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","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default 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\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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const 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 withXSRFToken: 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 headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\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\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, 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 const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n 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));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const 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 // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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 (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : 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 const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.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 || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n isStreamResponse && onFinish();\n }, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\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(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(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 config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\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 config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.3\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\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 *\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 (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 *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\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 const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const 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\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _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 const {transitional, paramsSerializer, headers} = config;\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 if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let 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 const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\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,\n 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,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(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, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n 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\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const 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 */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\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\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = 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};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import React, { useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport '../App.css';\nimport axios from 'axios';\n\n// Spinner CSS\nconst spinnerStyle = {\n display: 'none',\n border: '16px solid #f3f3f3',\n borderTop: '16px solid #3498db',\n borderRadius: '50%',\n width: '120px',\n height: '120px',\n animation: 'spin 2s linear infinite',\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n};\n\nconst dropzoneStyle = {\n border: '2px dashed #8f8e8e',\n borderRadius: '4px',\n padding: '20px',\n textAlign: 'center',\n cursor: 'pointer',\n color: '#8f8e8e',\n marginTop: '50px',\n};\n\nconst UploadDocuments = () => {\n const [uploadStatus, setUploadStatus] = useState('');\n const [loading, setLoading] = useState(false);\n\n const { getRootProps, getInputProps } = useDropzone({\n onDrop: async (acceptedFiles) => {\n setUploadStatus('');\n setLoading(true);\n for (const file of acceptedFiles) {\n try {\n // Request a pre-signed URL from your backend\n const response = await axios.post('https://jnhyo3iqg4.execute-api.eu-north-1.amazonaws.com/upload', {\n filename: file.name\n });\n\n const data = response.data;\n const presignedUrl = data['presignedUrl'];\n // console.log('Presigned URL:', presignedUrl);\n\n // Upload the file directly to S3 using the pre-signed URL\n await axios.put(presignedUrl, file, {\n headers: {\n 'Content-Type': file.type,\n }\n });\n setUploadStatus('File uploaded successfully 🗂️.');\n\n const invokeLambda = async () => {\n try {\n const response = await fetch('https://jnhyo3iqg4.execute-api.eu-north-1.amazonaws.com/async_embed', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ \n 'function_name': 'embedDocs',\n 'filename': file.name \n })\n });\n \n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n \n const data = await response.json();\n console.log('Lambda invoked asynchronously:', data);\n } catch (error) {\n console.error('Error invoking Lambda function:', error);\n }\n };\n\n invokeLambda();\n\n } catch (error) {\n console.error('Upload failed:', error);\n setUploadStatus('Upload failed');\n } finally {\n setLoading(false);\n }\n\n }\n }\n });\n\n return (\n
    \n
    \n

    Upload Documents

    \n \"RFC\n
    \n
    \n \n

    Drag and drop some files here, or click to select files

    \n
    \n

    Uploading long files can take a long time, please do not leave or close the page.

    \n {loading &&
    }\n {uploadStatus &&

    {uploadStatus}

    }\n
    \n );\n}\n\nexport default UploadDocuments;","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport JsCookie from 'js-cookie';\nexport class CookieStorage {\n constructor(data = {}) {\n const { path, domain, expires, sameSite, secure } = data;\n this.domain = domain;\n this.path = path || '/';\n this.expires = Object.prototype.hasOwnProperty.call(data, 'expires')\n ? expires\n : 365;\n this.secure = Object.prototype.hasOwnProperty.call(data, 'secure')\n ? secure\n : true;\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!sameSite || !['strict', 'lax', 'none'].includes(sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = sameSite;\n }\n }\n async setItem(key, value) {\n JsCookie.set(key, value, this.getData());\n }\n async getItem(key) {\n const item = JsCookie.get(key);\n return item ?? null;\n }\n async removeItem(key) {\n JsCookie.remove(key, this.getData());\n }\n async clear() {\n const cookie = JsCookie.get();\n const promises = Object.keys(cookie).map(key => this.removeItem(key));\n await Promise.all(promises);\n }\n getData() {\n return {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure,\n ...(this.sameSite && { sameSite: this.sameSite }),\n };\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyErrorCode } from '../types';\nimport { AmplifyError } from './AmplifyError';\nexport class PlatformNotSupportedError extends AmplifyError {\n constructor() {\n super({\n name: AmplifyErrorCode.PlatformNotSupported,\n message: 'Function not supported on current platform',\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PlatformNotSupportedError } from '../errors';\n/**\n * @internal\n */\nexport class KeyValueStorage {\n constructor(storage) {\n this.storage = storage;\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n async setItem(key, value) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.setItem(key, value);\n }\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n async getItem(key) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n return this.storage.getItem(key);\n }\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n async removeItem(key) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.removeItem(key);\n }\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n async clear() {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.clear();\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * @internal\n */\nexport class InMemoryStorage {\n constructor() {\n this.storage = new Map();\n }\n get length() {\n return this.storage.size;\n }\n key(index) {\n if (index > this.length - 1) {\n return null;\n }\n return Array.from(this.storage.keys())[index];\n }\n setItem(key, value) {\n this.storage.set(key, value);\n }\n getItem(key) {\n return this.storage.get(key) ?? null;\n }\n removeItem(key) {\n this.storage.delete(key);\n }\n clear() {\n this.storage.clear();\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DefaultStorage } from './DefaultStorage';\nimport { InMemoryStorage } from './InMemoryStorage';\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { SessionStorage } from './SessionStorage';\nexport { CookieStorage } from './CookieStorage';\nexport const defaultStorage = new DefaultStorage();\nexport const sessionStorage = new SessionStorage();\nexport const sharedInMemoryStorage = new KeyValueStorage(new InMemoryStorage());\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { getLocalStorageWithFallback } from './utils';\n/**\n * @internal\n */\nexport class DefaultStorage extends KeyValueStorage {\n constructor() {\n super(getLocalStorageWithFallback());\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InMemoryStorage } from './InMemoryStorage';\n/**\n * @internal\n * @returns Either a reference to window.localStorage or an in-memory storage as fallback\n */\nexport const getLocalStorageWithFallback = () => typeof window !== 'undefined' && window.localStorage\n ? window.localStorage\n : new InMemoryStorage();\n/**\n * @internal\n * @returns Either a reference to window.sessionStorage or an in-memory storage as fallback\n */\nexport const getSessionStorageWithFallback = () => typeof window !== 'undefined' && window.sessionStorage\n ? window.sessionStorage\n : new InMemoryStorage();\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { getSessionStorageWithFallback } from './utils';\n/**\n * @internal\n */\nexport class SessionStorage extends KeyValueStorage {\n constructor() {\n super(getSessionStorageWithFallback());\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function getUserContextData({ username, userPoolId, userPoolClientId, }) {\n if (typeof window === 'undefined') {\n return undefined;\n }\n const amazonCognitoAdvancedSecurityData = window\n .AmazonCognitoAdvancedSecurityData;\n if (typeof amazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n const advancedSecurityData = amazonCognitoAdvancedSecurityData.getData(username, userPoolId, userPoolClientId);\n if (advancedSecurityData) {\n const userContextData = {\n EncodedData: advancedSecurityData,\n };\n return userContextData;\n }\n return {};\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertTokenProviderConfig, deDupeAsyncFunction, decodeJWT, } from '@aws-amplify/core/internals/utils';\nimport { initiateAuth } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokensWithRefreshToken } from '../utils/types';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getUserContextData } from './userContextData';\nconst refreshAuthTokensFunction = async ({ tokens, authConfig, username, }) => {\n assertTokenProviderConfig(authConfig?.Cognito);\n const region = getRegion(authConfig.Cognito.userPoolId);\n assertAuthTokensWithRefreshToken(tokens);\n const refreshTokenString = tokens.refreshToken;\n const AuthParameters = {\n REFRESH_TOKEN: refreshTokenString,\n };\n if (tokens.deviceMetadata?.deviceKey) {\n AuthParameters.DEVICE_KEY = tokens.deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId: authConfig.Cognito.userPoolId,\n userPoolClientId: authConfig.Cognito.userPoolClientId,\n });\n const { AuthenticationResult } = await initiateAuth({ region }, {\n ClientId: authConfig?.Cognito?.userPoolClientId,\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters,\n UserContextData,\n });\n const accessToken = decodeJWT(AuthenticationResult?.AccessToken ?? '');\n const idToken = AuthenticationResult?.IdToken\n ? decodeJWT(AuthenticationResult.IdToken)\n : undefined;\n const { iat } = accessToken.payload;\n // This should never happen. If it does, it's a bug from the service.\n if (!iat) {\n throw new AuthError({\n name: 'iatNotFoundException',\n message: 'iat not found in access token',\n });\n }\n const clockDrift = iat * 1000 - new Date().getTime();\n return {\n accessToken,\n idToken,\n clockDrift,\n refreshToken: refreshTokenString,\n username,\n };\n};\nexport const refreshAuthTokens = deDupeAsyncFunction(refreshAuthTokensFunction);\nexport const refreshAuthTokensWithoutDedupe = refreshAuthTokensFunction;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * returns in-flight promise if there is one\n *\n * @param asyncFunction - asyncFunction to be deduped.\n * @returns - the return type of the callback\n */\nexport const deDupeAsyncFunction = (asyncFunction) => {\n let inflightPromise;\n return async (...args) => {\n if (inflightPromise)\n return inflightPromise;\n inflightPromise = new Promise((resolve, reject) => {\n asyncFunction(...args)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n })\n .finally(() => {\n inflightPromise = undefined;\n });\n });\n return inflightPromise;\n };\n};\n","export const AuthTokenStorageKeys = {\n accessToken: 'accessToken',\n idToken: 'idToken',\n oidcProvider: 'oidcProvider',\n clockDrift: 'clockDrift',\n refreshToken: 'refreshToken',\n deviceKey: 'deviceKey',\n randomPasswordKey: 'randomPasswordKey',\n deviceGroupKey: 'deviceGroupKey',\n signInDetails: 'signInDetails',\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createAssertionFunction, } from '@aws-amplify/core/internals/utils';\nexport var TokenProviderErrorCode;\n(function (TokenProviderErrorCode) {\n TokenProviderErrorCode[\"InvalidAuthTokens\"] = \"InvalidAuthTokens\";\n})(TokenProviderErrorCode || (TokenProviderErrorCode = {}));\nconst tokenValidationErrorMap = {\n [TokenProviderErrorCode.InvalidAuthTokens]: {\n message: 'Invalid tokens.',\n recoverySuggestion: 'Make sure the tokens are valid.',\n },\n};\nexport const assert = createAssertionFunction(tokenValidationErrorMap);\n","import { assertTokenProviderConfig, decodeJWT, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { AuthTokenStorageKeys, } from './types';\nimport { TokenProviderErrorCode, assert } from './errorHelpers';\nexport class DefaultTokenStore {\n constructor() {\n this.name = 'CognitoIdentityServiceProvider'; // To be backwards compatible with V5, no migration needed\n }\n getKeyValueStorage() {\n if (!this.keyValueStorage) {\n throw new AuthError({\n name: 'KeyValueStorageNotFoundException',\n message: 'KeyValueStorage was not found in TokenStore',\n });\n }\n return this.keyValueStorage;\n }\n setKeyValueStorage(keyValueStorage) {\n this.keyValueStorage = keyValueStorage;\n }\n setAuthConfig(authConfig) {\n this.authConfig = authConfig;\n }\n async loadTokens() {\n // TODO(v6): migration logic should be here\n // Reading V5 tokens old format\n try {\n const authKeys = await this.getAuthKeys();\n const accessTokenString = await this.getKeyValueStorage().getItem(authKeys.accessToken);\n if (!accessTokenString) {\n throw new AuthError({\n name: 'NoSessionFoundException',\n message: 'Auth session was not found. Make sure to call signIn.',\n });\n }\n const accessToken = decodeJWT(accessTokenString);\n const itString = await this.getKeyValueStorage().getItem(authKeys.idToken);\n const idToken = itString ? decodeJWT(itString) : undefined;\n const refreshToken = (await this.getKeyValueStorage().getItem(authKeys.refreshToken)) ??\n undefined;\n const clockDriftString = (await this.getKeyValueStorage().getItem(authKeys.clockDrift)) ?? '0';\n const clockDrift = Number.parseInt(clockDriftString);\n const signInDetails = await this.getKeyValueStorage().getItem(authKeys.signInDetails);\n const tokens = {\n accessToken,\n idToken,\n refreshToken,\n deviceMetadata: (await this.getDeviceMetadata()) ?? undefined,\n clockDrift,\n username: await this.getLastAuthUser(),\n };\n if (signInDetails) {\n tokens.signInDetails = JSON.parse(signInDetails);\n }\n return tokens;\n }\n catch (err) {\n return null;\n }\n }\n async storeTokens(tokens) {\n assert(tokens !== undefined, TokenProviderErrorCode.InvalidAuthTokens);\n await this.clearTokens();\n const lastAuthUser = tokens.username;\n await this.getKeyValueStorage().setItem(this.getLastAuthUserKey(), lastAuthUser);\n const authKeys = await this.getAuthKeys();\n await this.getKeyValueStorage().setItem(authKeys.accessToken, tokens.accessToken.toString());\n if (tokens.idToken) {\n await this.getKeyValueStorage().setItem(authKeys.idToken, tokens.idToken.toString());\n }\n if (tokens.refreshToken) {\n await this.getKeyValueStorage().setItem(authKeys.refreshToken, tokens.refreshToken);\n }\n if (tokens.deviceMetadata) {\n if (tokens.deviceMetadata.deviceKey) {\n await this.getKeyValueStorage().setItem(authKeys.deviceKey, tokens.deviceMetadata.deviceKey);\n }\n if (tokens.deviceMetadata.deviceGroupKey) {\n await this.getKeyValueStorage().setItem(authKeys.deviceGroupKey, tokens.deviceMetadata.deviceGroupKey);\n }\n await this.getKeyValueStorage().setItem(authKeys.randomPasswordKey, tokens.deviceMetadata.randomPassword);\n }\n if (tokens.signInDetails) {\n await this.getKeyValueStorage().setItem(authKeys.signInDetails, JSON.stringify(tokens.signInDetails));\n }\n await this.getKeyValueStorage().setItem(authKeys.clockDrift, `${tokens.clockDrift}`);\n }\n async clearTokens() {\n const authKeys = await this.getAuthKeys();\n // Not calling clear because it can remove data that is not managed by AuthTokenStore\n await Promise.all([\n this.getKeyValueStorage().removeItem(authKeys.accessToken),\n this.getKeyValueStorage().removeItem(authKeys.idToken),\n this.getKeyValueStorage().removeItem(authKeys.clockDrift),\n this.getKeyValueStorage().removeItem(authKeys.refreshToken),\n this.getKeyValueStorage().removeItem(authKeys.signInDetails),\n this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()),\n ]);\n }\n async getDeviceMetadata(username) {\n const authKeys = await this.getAuthKeys(username);\n const deviceKey = await this.getKeyValueStorage().getItem(authKeys.deviceKey);\n const deviceGroupKey = await this.getKeyValueStorage().getItem(authKeys.deviceGroupKey);\n const randomPassword = await this.getKeyValueStorage().getItem(authKeys.randomPasswordKey);\n return randomPassword && deviceGroupKey && deviceKey\n ? {\n deviceKey,\n deviceGroupKey,\n randomPassword,\n }\n : null;\n }\n async clearDeviceMetadata(username) {\n const authKeys = await this.getAuthKeys(username);\n await Promise.all([\n this.getKeyValueStorage().removeItem(authKeys.deviceKey),\n this.getKeyValueStorage().removeItem(authKeys.deviceGroupKey),\n this.getKeyValueStorage().removeItem(authKeys.randomPasswordKey),\n ]);\n }\n async getAuthKeys(username) {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n const lastAuthUser = username ?? (await this.getLastAuthUser());\n return createKeysForAuthStorage(this.name, `${this.authConfig.Cognito.userPoolClientId}.${lastAuthUser}`);\n }\n getLastAuthUserKey() {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n const identifier = this.authConfig.Cognito.userPoolClientId;\n return `${this.name}.${identifier}.LastAuthUser`;\n }\n async getLastAuthUser() {\n const lastAuthUser = (await this.getKeyValueStorage().getItem(this.getLastAuthUserKey())) ??\n 'username';\n return lastAuthUser;\n }\n}\nexport const createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(AuthTokenStorageKeys)(`${provider}`, identifier);\n};\nexport function getAuthStorageKeys(authKeys) {\n const keys = Object.values({ ...authKeys });\n return (prefix, identifier) => keys.reduce((acc, authKey) => ({\n ...acc,\n [authKey]: `${prefix}.${identifier}.${authKey}`,\n }), {});\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const isBrowser = () => typeof window !== 'undefined' && typeof window.document !== 'undefined';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { getAuthStorageKeys } from '../tokenProvider/TokenStore';\nimport { OAuthStorageKeys } from './types';\nconst V5_HOSTED_UI_KEY = 'amplify-signin-with-hostedUI';\nconst name = 'CognitoIdentityServiceProvider';\nexport class DefaultOAuthStore {\n constructor(keyValueStorage) {\n this.keyValueStorage = keyValueStorage;\n }\n async clearOAuthInflightData() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await Promise.all([\n this.keyValueStorage.removeItem(authKeys.inflightOAuth),\n this.keyValueStorage.removeItem(authKeys.oauthPKCE),\n this.keyValueStorage.removeItem(authKeys.oauthState),\n ]);\n }\n async clearOAuthData() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.clearOAuthInflightData();\n await this.keyValueStorage.removeItem(V5_HOSTED_UI_KEY); // remove in case a customer migrated an App from v5 to v6\n return this.keyValueStorage.removeItem(authKeys.oauthSignIn);\n }\n loadOAuthState() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.getItem(authKeys.oauthState);\n }\n storeOAuthState(state) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.setItem(authKeys.oauthState, state);\n }\n loadPKCE() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.getItem(authKeys.oauthPKCE);\n }\n storePKCE(pkce) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.setItem(authKeys.oauthPKCE, pkce);\n }\n setAuthConfig(authConfigParam) {\n this.cognitoConfig = authConfigParam;\n }\n async loadOAuthInFlight() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return ((await this.keyValueStorage.getItem(authKeys.inflightOAuth)) === 'true');\n }\n async storeOAuthInFlight(inflight) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.keyValueStorage.setItem(authKeys.inflightOAuth, `${inflight}`);\n }\n async loadOAuthSignIn() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n const isLegacyHostedUISignIn = await this.keyValueStorage.getItem(V5_HOSTED_UI_KEY);\n const [isOAuthSignIn, preferPrivateSession] = (await this.keyValueStorage.getItem(authKeys.oauthSignIn))?.split(',') ??\n [];\n return {\n isOAuthSignIn: isOAuthSignIn === 'true' || isLegacyHostedUISignIn === 'true',\n preferPrivateSession: preferPrivateSession === 'true',\n };\n }\n async storeOAuthSignIn(oauthSignIn, preferPrivateSession = false) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.keyValueStorage.setItem(authKeys.oauthSignIn, `${oauthSignIn},${preferPrivateSession}`);\n }\n}\nconst createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(OAuthStorageKeys)(provider, identifier);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage } from '@aws-amplify/core';\nimport { DefaultOAuthStore } from '../signInWithRedirectStore';\nexport const oAuthStore = new DefaultOAuthStore(defaultStorage);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst inflightPromises = [];\nexport const addInflightPromise = (resolver) => {\n inflightPromises.push(resolver);\n};\nexport const resolveAndClearInflightPromises = () => {\n while (inflightPromises.length) {\n inflightPromises.pop()?.();\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, assertTokenProviderConfig, isBrowser, isTokenExpired, } from '@aws-amplify/core/internals/utils';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { AuthError } from '../../../errors/AuthError';\nimport { oAuthStore } from '../utils/oauth/oAuthStore';\nimport { addInflightPromise } from '../utils/oauth/inflightPromise';\nexport class TokenOrchestrator {\n constructor() {\n this.waitForInflightOAuth = isBrowser()\n ? async () => {\n if (!(await oAuthStore.loadOAuthInFlight())) {\n return;\n }\n if (this.inflightPromise) {\n return this.inflightPromise;\n }\n // when there is valid oauth config and there is an inflight oauth flow, try\n // to block async calls that require fetching tokens before the oauth flow completes\n // e.g. getCurrentUser, fetchAuthSession etc.\n this.inflightPromise = new Promise((resolve, _reject) => {\n addInflightPromise(resolve);\n });\n return this.inflightPromise;\n }\n : async () => {\n // no-op for non-browser environments\n };\n }\n setAuthConfig(authConfig) {\n oAuthStore.setAuthConfig(authConfig.Cognito);\n this.authConfig = authConfig;\n }\n setTokenRefresher(tokenRefresher) {\n this.tokenRefresher = tokenRefresher;\n }\n setAuthTokenStore(tokenStore) {\n this.tokenStore = tokenStore;\n }\n getTokenStore() {\n if (!this.tokenStore) {\n throw new AuthError({\n name: 'EmptyTokenStoreException',\n message: 'TokenStore not set',\n });\n }\n return this.tokenStore;\n }\n getTokenRefresher() {\n if (!this.tokenRefresher) {\n throw new AuthError({\n name: 'EmptyTokenRefresherException',\n message: 'TokenRefresher not set',\n });\n }\n return this.tokenRefresher;\n }\n async getTokens(options) {\n let tokens;\n try {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n }\n catch (_err) {\n // Token provider not configured\n return null;\n }\n await this.waitForInflightOAuth();\n this.inflightPromise = undefined;\n tokens = await this.getTokenStore().loadTokens();\n const username = await this.getTokenStore().getLastAuthUser();\n if (tokens === null) {\n return null;\n }\n const idTokenExpired = !!tokens?.idToken &&\n isTokenExpired({\n expiresAt: (tokens.idToken?.payload?.exp ?? 0) * 1000,\n clockDrift: tokens.clockDrift ?? 0,\n });\n const accessTokenExpired = isTokenExpired({\n expiresAt: (tokens.accessToken?.payload?.exp ?? 0) * 1000,\n clockDrift: tokens.clockDrift ?? 0,\n });\n if (options?.forceRefresh || idTokenExpired || accessTokenExpired) {\n tokens = await this.refreshTokens({\n tokens,\n username,\n });\n if (tokens === null) {\n return null;\n }\n }\n return {\n accessToken: tokens?.accessToken,\n idToken: tokens?.idToken,\n signInDetails: tokens?.signInDetails,\n };\n }\n async refreshTokens({ tokens, username, }) {\n try {\n const { signInDetails } = tokens;\n const newTokens = await this.getTokenRefresher()({\n tokens,\n authConfig: this.authConfig,\n username,\n });\n newTokens.signInDetails = signInDetails;\n await this.setTokens({ tokens: newTokens });\n Hub.dispatch('auth', { event: 'tokenRefresh' }, 'Auth', AMPLIFY_SYMBOL);\n return newTokens;\n }\n catch (err) {\n return this.handleErrors(err);\n }\n }\n handleErrors(err) {\n assertServiceError(err);\n if (err.message !== 'Network error') {\n // TODO(v6): Check errors on client\n this.clearTokens();\n }\n Hub.dispatch('auth', {\n event: 'tokenRefresh_failure',\n data: { error: err },\n }, 'Auth', AMPLIFY_SYMBOL);\n if (err.name.startsWith('NotAuthorizedException')) {\n return null;\n }\n throw err;\n }\n async setTokens({ tokens }) {\n return this.getTokenStore().storeTokens(tokens);\n }\n async clearTokens() {\n return this.getTokenStore().clearTokens();\n }\n getDeviceMetadata(username) {\n return this.getTokenStore().getDeviceMetadata(username);\n }\n clearDeviceMetadata(username) {\n return this.getTokenStore().clearDeviceMetadata(username);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { CognitoUserPoolsTokenProvider } from './CognitoUserPoolsTokenProvider';\n/**\n * The default provider for the JWT access token and ID token issued from the configured Cognito user pool. It manages\n * the refresh and storage of the tokens. It stores the tokens in `window.localStorage` if available, and falls back to\n * in-memory storage if not.\n */\nexport const cognitoUserPoolsTokenProvider = new CognitoUserPoolsTokenProvider();\nexport const { tokenOrchestrator } = cognitoUserPoolsTokenProvider;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage, } from '@aws-amplify/core';\nimport { refreshAuthTokens } from '../utils/refreshAuthTokens';\nimport { DefaultTokenStore } from './TokenStore';\nimport { TokenOrchestrator } from './TokenOrchestrator';\nexport class CognitoUserPoolsTokenProvider {\n constructor() {\n this.authTokenStore = new DefaultTokenStore();\n this.authTokenStore.setKeyValueStorage(defaultStorage);\n this.tokenOrchestrator = new TokenOrchestrator();\n this.tokenOrchestrator.setAuthTokenStore(this.authTokenStore);\n this.tokenOrchestrator.setTokenRefresher(refreshAuthTokens);\n }\n getTokens({ forceRefresh } = { forceRefresh: false }) {\n return this.tokenOrchestrator.getTokens({ forceRefresh });\n }\n setKeyValueStorage(keyValueStorage) {\n this.authTokenStore.setKeyValueStorage(keyValueStorage);\n }\n setAuthConfig(authConfig) {\n this.authTokenStore.setAuthConfig(authConfig);\n this.tokenOrchestrator.setAuthConfig(authConfig);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const IdentityIdStorageKeys = {\n identityId: 'identityId',\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, } from '@aws-amplify/core';\nimport { assertIdentityPoolIdConfig } from '@aws-amplify/core/internals/utils';\nimport { getAuthStorageKeys } from '../tokenProvider/TokenStore';\nimport { IdentityIdStorageKeys } from './types';\nconst logger = new ConsoleLogger('DefaultIdentityIdStore');\nexport class DefaultIdentityIdStore {\n setAuthConfig(authConfigParam) {\n assertIdentityPoolIdConfig(authConfigParam.Cognito);\n this.authConfig = authConfigParam;\n this._authKeys = createKeysForAuthStorage('Cognito', authConfigParam.Cognito.identityPoolId);\n }\n constructor(keyValueStorage) {\n this._authKeys = {};\n this.keyValueStorage = keyValueStorage;\n }\n async loadIdentityId() {\n assertIdentityPoolIdConfig(this.authConfig?.Cognito);\n try {\n if (this._primaryIdentityId) {\n return {\n id: this._primaryIdentityId,\n type: 'primary',\n };\n }\n else {\n const storedIdentityId = await this.keyValueStorage.getItem(this._authKeys.identityId);\n if (storedIdentityId) {\n return {\n id: storedIdentityId,\n type: 'guest',\n };\n }\n return null;\n }\n }\n catch (err) {\n logger.log('Error getting stored IdentityId.', err);\n return null;\n }\n }\n async storeIdentityId(identity) {\n assertIdentityPoolIdConfig(this.authConfig?.Cognito);\n if (identity.type === 'guest') {\n this.keyValueStorage.setItem(this._authKeys.identityId, identity.id);\n // Clear in-memory storage of primary identityId\n this._primaryIdentityId = undefined;\n }\n else {\n this._primaryIdentityId = identity.id;\n // Clear locally stored guest id\n this.keyValueStorage.removeItem(this._authKeys.identityId);\n }\n }\n async clearIdentityId() {\n this._primaryIdentityId = undefined;\n await this.keyValueStorage.removeItem(this._authKeys.identityId);\n }\n}\nconst createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(IdentityIdStorageKeys)(`com.amplify.${provider}`, identifier);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getDnsSuffix, parseJsonError, unauthenticatedHandler, } from '../../clients';\nimport { composeTransferHandler } from '../../clients/internal/composeTransferHandler';\nimport { getRetryDecider, jitteredBackoff, } from '../../clients/middleware/retry';\nimport { getAmplifyUserAgent } from '../../Platform';\nimport { observeFrameworkChanges } from '../../Platform/detectFramework';\nimport { AmplifyUrl } from '../../utils/amplifyUrl';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'cognito-identity';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new AmplifyUrl(`https://cognito-identity.${region}.${getDnsSuffix(region)}`),\n});\n/**\n * A Cognito Identity-specific middleware that disables caching for all requests.\n */\nconst disableCacheMiddlewareFactory = () => next => async function disableCacheMiddleware(request) {\n request.headers['cache-control'] = 'no-store';\n return next(request);\n};\n/**\n * A Cognito Identity-specific transfer handler that does NOT sign requests, and\n * disables caching.\n *\n * @internal\n */\nexport const cognitoIdentityTransferHandler = composeTransferHandler(unauthenticatedHandler, [disableCacheMiddlewareFactory]);\n/**\n * @internal\n */\nexport const defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n cache: 'no-store',\n};\nobserveFrameworkChanges(() => {\n defaultConfig.userAgentValue = getAmplifyUserAgent();\n});\n/**\n * @internal\n */\nexport const getSharedHeaders = (operation) => ({\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': `AWSCognitoIdentityService.${operation}`,\n});\n/**\n * @internal\n */\nexport const buildHttpRpcRequest = ({ url }, headers, body) => ({\n headers,\n url,\n body,\n method: 'POST',\n});\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nconst getCredentialsForIdentitySerializer = (input, endpoint) => {\n const headers = getSharedHeaders('GetCredentialsForIdentity');\n const body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nconst getCredentialsForIdentityDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n throw error;\n }\n else {\n const body = await parseJsonBody(response);\n return {\n IdentityId: body.IdentityId,\n Credentials: deserializeCredentials(body.Credentials),\n $metadata: parseMetadata(response),\n };\n }\n};\nconst deserializeCredentials = ({ AccessKeyId, SecretKey, SessionToken, Expiration, } = {}) => {\n return {\n AccessKeyId,\n SecretKey,\n SessionToken,\n Expiration: Expiration && new Date(Expiration * 1000),\n };\n};\n/**\n * @internal\n */\nexport const getCredentialsForIdentity = composeServiceApi(cognitoIdentityTransferHandler, getCredentialsForIdentitySerializer, getCredentialsForIdentityDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nconst getIdSerializer = (input, endpoint) => {\n const headers = getSharedHeaders('GetId');\n const body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nconst getIdDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n throw error;\n }\n else {\n const body = await parseJsonBody(response);\n return {\n IdentityId: body.IdentityId,\n $metadata: parseMetadata(response),\n };\n }\n};\n/**\n * @internal\n */\nexport const getId = composeServiceApi(cognitoIdentityTransferHandler, getIdSerializer, getIdDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { decodeJWT } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nexport function formLoginsMap(idToken) {\n const issuer = decodeJWT(idToken).payload.iss;\n const res = {};\n if (!issuer) {\n throw new AuthError({\n name: 'InvalidIdTokenException',\n message: 'Invalid Idtoken.',\n });\n }\n const domainName = issuer.replace(/(^\\w+:|^)\\/\\//, '');\n res[domainName] = idToken;\n return res;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, getId } from '@aws-amplify/core';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { formLoginsMap } from './utils';\nconst logger = new ConsoleLogger('CognitoIdentityIdProvider');\n/**\n * Provides a Cognito identityId\n *\n * @param tokens - The AuthTokens received after SignIn\n * @returns string\n * @throws configuration exceptions: `InvalidIdentityPoolIdException`\n * - Auth errors that may arise from misconfiguration.\n * @throws service exceptions: {@link GetIdException }\n */\nexport async function cognitoIdentityIdProvider({ tokens, authConfig, identityIdStore, }) {\n identityIdStore.setAuthConfig({ Cognito: authConfig });\n // will return null only if there is no identityId cached or if there is an error retrieving it\n let identityId = await identityIdStore.loadIdentityId();\n // Tokens are available so return primary identityId\n if (tokens) {\n // If there is existing primary identityId in-memory return that\n if (identityId && identityId.type === 'primary') {\n return identityId.id;\n }\n else {\n const logins = tokens.idToken\n ? formLoginsMap(tokens.idToken.toString())\n : {};\n const generatedIdentityId = await generateIdentityId(logins, authConfig);\n if (identityId && identityId.id === generatedIdentityId) {\n logger.debug(`The guest identity ${identityId.id} has become the primary identity.`);\n }\n identityId = {\n id: generatedIdentityId,\n type: 'primary',\n };\n }\n }\n else {\n // If there is existing guest identityId cached return that\n if (identityId && identityId.type === 'guest') {\n return identityId.id;\n }\n else {\n identityId = {\n id: await generateIdentityId({}, authConfig),\n type: 'guest',\n };\n }\n }\n // Store in-memory or local storage depending on guest or primary identityId\n identityIdStore.storeIdentityId(identityId);\n return identityId.id;\n}\nasync function generateIdentityId(logins, authConfig) {\n const identityPoolId = authConfig?.identityPoolId;\n const region = getRegionFromIdentityPoolId(identityPoolId);\n // IdentityId is absent so get it using IdentityPoolId with Cognito's GetId API\n const idResult = \n // for a first-time user, this will return a brand new identity\n // for a returning user, this will retrieve the previous identity assocaited with the logins\n (await getId({\n region,\n }, {\n IdentityPoolId: identityPoolId,\n Logins: logins,\n })).IdentityId;\n if (!idResult) {\n throw new AuthError({\n name: 'GetIdResponseException',\n message: 'Received undefined response from getId operation',\n recoverySuggestion: 'Make sure to pass a valid identityPoolId in the configuration.',\n });\n }\n return idResult;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, getCredentialsForIdentity, } from '@aws-amplify/core';\nimport { assertIdentityPoolIdConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertIdTokenInAuthTokens } from '../utils/types';\nimport { cognitoIdentityIdProvider } from './IdentityIdProvider';\nimport { formLoginsMap } from './utils';\nconst logger = new ConsoleLogger('CognitoCredentialsProvider');\nconst CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nexport class CognitoAWSCredentialsAndIdentityIdProvider {\n constructor(identityIdStore) {\n this._nextCredentialsRefresh = 0;\n this._identityIdStore = identityIdStore;\n }\n async clearCredentialsAndIdentityId() {\n logger.debug('Clearing out credentials and identityId');\n this._credentialsAndIdentityId = undefined;\n await this._identityIdStore.clearIdentityId();\n }\n async clearCredentials() {\n logger.debug('Clearing out in-memory credentials');\n this._credentialsAndIdentityId = undefined;\n }\n async getCredentialsAndIdentityId(getCredentialsOptions) {\n const isAuthenticated = getCredentialsOptions.authenticated;\n const { tokens } = getCredentialsOptions;\n const { authConfig } = getCredentialsOptions;\n try {\n assertIdentityPoolIdConfig(authConfig?.Cognito);\n }\n catch {\n // No identity pool configured, skipping\n return;\n }\n if (!isAuthenticated && !authConfig.Cognito.allowGuestAccess) {\n // TODO(V6): return partial result like Native platforms\n return;\n }\n const { forceRefresh } = getCredentialsOptions;\n const tokenHasChanged = this.hasTokenChanged(tokens);\n const identityId = await cognitoIdentityIdProvider({\n tokens,\n authConfig: authConfig.Cognito,\n identityIdStore: this._identityIdStore,\n });\n // Clear cached credentials when forceRefresh is true OR the cache token has changed\n if (forceRefresh || tokenHasChanged) {\n this.clearCredentials();\n }\n if (!isAuthenticated) {\n return this.getGuestCredentials(identityId, authConfig.Cognito);\n }\n else {\n assertIdTokenInAuthTokens(tokens);\n return this.credsForOIDCTokens(authConfig.Cognito, tokens, identityId);\n }\n }\n async getGuestCredentials(identityId, authConfig) {\n // Return existing in-memory cached credentials only if it exists, is not past it's lifetime and is unauthenticated credentials\n if (this._credentialsAndIdentityId &&\n !this.isPastTTL() &&\n this._credentialsAndIdentityId.isAuthenticatedCreds === false) {\n logger.info('returning stored credentials as they neither past TTL nor expired.');\n return this._credentialsAndIdentityId;\n }\n // Clear to discard if any authenticated credentials are set and start with a clean slate\n this.clearCredentials();\n const region = getRegionFromIdentityPoolId(authConfig.identityPoolId);\n // use identityId to obtain guest credentials\n // save credentials in-memory\n // No logins params should be passed for guest creds:\n // https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html\n const clientResult = await getCredentialsForIdentity({ region }, {\n IdentityId: identityId,\n });\n if (clientResult.Credentials &&\n clientResult.Credentials.AccessKeyId &&\n clientResult.Credentials.SecretKey) {\n this._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n const res = {\n credentials: {\n accessKeyId: clientResult.Credentials.AccessKeyId,\n secretAccessKey: clientResult.Credentials.SecretKey,\n sessionToken: clientResult.Credentials.SessionToken,\n expiration: clientResult.Credentials.Expiration,\n },\n identityId,\n };\n const identityIdRes = clientResult.IdentityId;\n if (identityIdRes) {\n res.identityId = identityIdRes;\n this._identityIdStore.storeIdentityId({\n id: identityIdRes,\n type: 'guest',\n });\n }\n this._credentialsAndIdentityId = {\n ...res,\n isAuthenticatedCreds: false,\n };\n return res;\n }\n else {\n throw new AuthError({\n name: 'CredentialsNotFoundException',\n message: `Cognito did not respond with either Credentials, AccessKeyId or SecretKey.`,\n });\n }\n }\n async credsForOIDCTokens(authConfig, authTokens, identityId) {\n if (this._credentialsAndIdentityId &&\n !this.isPastTTL() &&\n this._credentialsAndIdentityId.isAuthenticatedCreds === true) {\n logger.debug('returning stored credentials as they neither past TTL nor expired.');\n return this._credentialsAndIdentityId;\n }\n // Clear to discard if any unauthenticated credentials are set and start with a clean slate\n this.clearCredentials();\n const logins = authTokens.idToken\n ? formLoginsMap(authTokens.idToken.toString())\n : {};\n const region = getRegionFromIdentityPoolId(authConfig.identityPoolId);\n const clientResult = await getCredentialsForIdentity({ region }, {\n IdentityId: identityId,\n Logins: logins,\n });\n if (clientResult.Credentials &&\n clientResult.Credentials.AccessKeyId &&\n clientResult.Credentials.SecretKey) {\n const res = {\n credentials: {\n accessKeyId: clientResult.Credentials.AccessKeyId,\n secretAccessKey: clientResult.Credentials.SecretKey,\n sessionToken: clientResult.Credentials.SessionToken,\n expiration: clientResult.Credentials.Expiration,\n },\n identityId,\n };\n // Store the credentials in-memory along with the expiration\n this._credentialsAndIdentityId = {\n ...res,\n isAuthenticatedCreds: true,\n associatedIdToken: authTokens.idToken?.toString(),\n };\n this._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n const identityIdRes = clientResult.IdentityId;\n if (identityIdRes) {\n res.identityId = identityIdRes;\n this._identityIdStore.storeIdentityId({\n id: identityIdRes,\n type: 'primary',\n });\n }\n return res;\n }\n else {\n throw new AuthError({\n name: 'CredentialsException',\n message: `Cognito did not respond with either Credentials, AccessKeyId or SecretKey.`,\n });\n }\n }\n isPastTTL() {\n return this._nextCredentialsRefresh === undefined\n ? true\n : this._nextCredentialsRefresh <= Date.now();\n }\n hasTokenChanged(tokens) {\n return (!!tokens &&\n !!this._credentialsAndIdentityId?.associatedIdToken &&\n tokens.idToken?.toString() !==\n this._credentialsAndIdentityId.associatedIdToken);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage } from '@aws-amplify/core';\nimport { DefaultIdentityIdStore } from './IdentityIdStore';\nimport { CognitoAWSCredentialsAndIdentityIdProvider } from './credentialsProvider';\n/**\n * Cognito specific implmentation of the CredentialsProvider interface\n * that manages setting and getting of AWS Credentials.\n *\n * @throws configuration expections: `InvalidIdentityPoolIdException`\n * - Auth errors that may arise from misconfiguration.\n * @throws service expections: {@link GetCredentialsForIdentityException}, {@link GetIdException}\n *\n */\nexport const cognitoCredentialsProvider = new CognitoAWSCredentialsAndIdentityIdProvider(new DefaultIdentityIdStore(defaultStorage));\nexport { CognitoAWSCredentialsAndIdentityIdProvider, DefaultIdentityIdStore };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, CookieStorage, defaultStorage, } from '@aws-amplify/core';\nimport { parseAmplifyConfig, } from '@aws-amplify/core/internals/utils';\nimport { cognitoCredentialsProvider, cognitoUserPoolsTokenProvider, } from './auth/cognito';\nexport const DefaultAmplify = {\n /**\n * Configures Amplify with the {@link resourceConfig} and {@link libraryOptions}.\n *\n * @param resourceConfig The {@link ResourcesConfig} object that is typically imported from the\n * `amplifyconfiguration.json` file. It can also be an object literal created inline when calling `Amplify.configure`.\n * @param libraryOptions The {@link LibraryOptions} additional options for the library.\n *\n * @example\n * import config from './amplifyconfiguration.json';\n *\n * Amplify.configure(config);\n */\n configure(resourceConfig, libraryOptions) {\n const resolvedResourceConfig = parseAmplifyConfig(resourceConfig);\n // If no Auth config is provided, no special handling will be required, configure as is.\n // Otherwise, we can assume an Auth config is provided from here on.\n if (!resolvedResourceConfig.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If Auth options are provided, always just configure as is.\n // Otherwise, we can assume no Auth libraryOptions were provided from here on.\n if (libraryOptions?.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If no Auth libraryOptions were previously configured, then always add default providers.\n if (!Amplify.libraryOptions.Auth) {\n cognitoUserPoolsTokenProvider.setAuthConfig(resolvedResourceConfig.Auth);\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions?.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n Amplify.configure(resolvedResourceConfig, {\n ...libraryOptions,\n Auth: {\n tokenProvider: cognitoUserPoolsTokenProvider,\n credentialsProvider: cognitoCredentialsProvider,\n },\n });\n return;\n }\n // At this point, Auth libraryOptions would have been previously configured and no overriding\n // Auth options were given, so we should preserve the currently configured Auth libraryOptions.\n if (libraryOptions) {\n // If ssr is provided through libraryOptions, we should respect the intentional reconfiguration.\n if (libraryOptions.ssr !== undefined) {\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n }\n Amplify.configure(resolvedResourceConfig, {\n Auth: Amplify.libraryOptions.Auth,\n ...libraryOptions,\n });\n return;\n }\n // Finally, if there were no libraryOptions given at all, we should simply not touch the currently\n // configured libraryOptions.\n Amplify.configure(resolvedResourceConfig);\n },\n /**\n * Returns the {@link ResourcesConfig} object passed in as the `resourceConfig` parameter when calling\n * `Amplify.configure`.\n *\n * @returns An {@link ResourcesConfig} object.\n */\n getConfig() {\n return Amplify.getConfig();\n },\n};\n","/**\n * Some libraries may not follow Node ES module spec and could be loaded as CommonJS modules,\n * To ensure the interoperability between ESM and CJS, modules from those libraries have to be loaded via namespace import\n * And sanitized by the function below because unlike ESM namespace, CJS namespace set `module.exports` object on the `default` key\n * https://nodejs.org/api/esm.html#interoperability-with-commonjs\n */\nconst sanitizeNamespaceImport = (namespaceModule) => {\n const sanitizedNamespaceModule = { default: undefined, ...namespaceModule };\n return sanitizedNamespaceModule.default ?? sanitizedNamespaceModule;\n};\n/**\n * Checks if `value` is an Object (non-primitive, non-array, non-function)\n * Will return false for Arrays and functions\n *\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is an object, `false` otherwise\n */\nfunction isObject(value) {\n return value != null && !Array.isArray(value) && typeof value === 'object';\n}\n/**\n * Checks if `value` is a string primitive or object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a string, `false` otherwise\n */\nfunction isString(value) {\n return (typeof value === 'string' ||\n (typeof value === 'object' &&\n Object.prototype.toString.call(value) === '[object String]'));\n}\n/**\n * Checks if `value` is a Map\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Map, `false` otherwise\n */\nfunction isMap(value) {\n return (isObject(value) && Object.prototype.toString.call(value) === '[object Map]');\n}\n/**\n * Checks if `value` is a Set\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a Set, `false` otherwise\n */\nfunction isSet(value) {\n return (isObject(value) && Object.prototype.toString.call(value) === '[object Set]');\n}\n/**\n * Checks if `value` is undefined\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is undefined, `false` otherwise\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n/**\n * Checks if `value` is nullish\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is nullish, `false` otherwise\n */\nfunction isNil(value) {\n return value == null;\n}\n/**\n * Checks if `value` is empty\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nfunction isEmpty(value) {\n if (value === null || value === undefined)\n return true;\n if (isObject(value) && (isMap(value) || isSet(value))) {\n return !value.size;\n }\n if (isObject(value) && (isString(value) || Array.isArray(value))) {\n return !value.length;\n }\n for (const key in value) {\n if (has(value, key)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Checks if `value` is an empty array\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is a empty, `false` otherwise\n */\nfunction isEmptyArray(value) {\n return Array.isArray(value) && isEmpty(value);\n}\n/**\n * Checks if all members of the `values` param are empty arrays\n *\n * @param {unknown} value The values to check\n * @returns {boolean} Returns `true` if all members of `values` are empty, `false` otherwise\n */\nfunction areEmptyArrays(...values) {\n return values.every(isEmptyArray);\n}\n/**\n * Checks if `value` is an empty object\n *\n * @param {unknown} value The value to check\n * @returns {boolean} Returns `true` if `value` is empty, `false` otherwise\n */\nfunction isEmptyObject(value) {\n return isObject(value) && isEmpty(value);\n}\n/**\n * Checks if all members of the `values` param are empty objects\n *\n * @param {unknown} values The values to check\n * @returns {boolean} Returns `true` if all members of the `values` param are empty, `false` otherwise\n */\nfunction areEmptyObjects(...values) {\n return values.every(isEmptyObject);\n}\n/**\n * Capitalizes `value` and its return type\n *\n * @param {string} value string to capitalize\n * @returns {string} capitalized string\n */\nfunction capitalize(value) {\n return (isString(value) ? value.charAt(0).toUpperCase() + value.slice(1) : '');\n}\n/**\n * Checks if `key` is a direct property of `value`\n *\n * @param {unknown} value `object` potentially containing property\n * @param {string} key property key\n * @returns whether `key` param is a property of the `obj` param\n */\nfunction has(value, key) {\n return value != null && Object.prototype.hasOwnProperty.call(value, key);\n}\n/**\n * Checks if `value` is a function\n *\n * @param {unknown} value param to check\n * @returns {boolean} whether `value` is a function\n */\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * This helper function creates modifier class names that are used for our flat BEM styling\n * it takes in a base and modifier and returns the modified class if a modifier was passed in and null otherwise\n * @param base The base class of the output\n * @param modifier The modifier to add onto the base\n * @returns the modified class name or empty string\n */\nconst classNameModifier = (base, modifier) => {\n return modifier ? `${base}--${modifier}` : '';\n};\n/**\n * This helper function creates modified class names that are used for our flat BEM styling\n * it takes in a base, modifier, and flag and returns the modified class name if the flag is true and null if the flag is false\n * @param base\n * @param modifier\n * @param flag\n * @returns the modified class name or empty string\n */\nconst classNameModifierByFlag = (base, modifier, flag) => {\n return flag ? `${base}--${modifier}` : '';\n};\n/**\n * `isFunction` but types the param with its function signature\n *\n * @param {unknown} value param to check\n * @returns {boolean} whether `value` is a function\n */\nfunction isTypedFunction(value) {\n return isFunction(value);\n}\n/**\n * Similar to `Array.join`, with an optional callback/template param\n * for formatting returned string values\n *\n * @param {string[]} values string array\n * @param {(value: string) => string} template callback format param\n * @returns formatted string array\n */\nfunction templateJoin(values, template) {\n return values.reduce((acc, curr) => `${acc}${isString(curr) ? template(curr) : ''}`, '');\n}\n/**\n * A function that does nothing\n *\n * @param {any[]} _ accepts any parameters\n * @returns nothing\n */\nfunction noop(..._) {\n return;\n}\n/**\n * @param {string} groupName name of group\n * @param events string values related to group\n */\nfunction groupLog(groupName, ...events) {\n const hasEvents = !!events?.length;\n if (hasEvents) {\n // eslint-disable-next-line no-console\n console.groupCollapsed(groupName);\n events?.forEach((event) => {\n // eslint-disable-next-line no-console\n console.log(event);\n });\n // eslint-disable-next-line no-console\n console.groupEnd();\n }\n else {\n // eslint-disable-next-line no-console\n console.log(groupName);\n }\n}\n\nexport { areEmptyArrays, areEmptyObjects, capitalize, classNameModifier, classNameModifierByFlag, groupLog, has, isEmpty, isEmptyObject, isFunction, isMap, isNil, isObject, isSet, isString, isTypedFunction, isUndefined, noop, sanitizeNamespaceImport, templateJoin };\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import { useRef, useCallback } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport useConstant from './useConstant';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { getServiceSnapshot, isInterpreterStateEqual, isService } from './utils';\nfunction identity(a) {\n return a;\n}\nexport function isActorWithState(actorRef) {\n return 'state' in actorRef;\n}\nfunction isDeferredActor(actorRef) {\n return 'deferred' in actorRef;\n}\nfunction defaultGetSnapshot(actorRef) {\n return 'getSnapshot' in actorRef\n ? isService(actorRef)\n ? getServiceSnapshot(actorRef)\n : actorRef.getSnapshot()\n : isActorWithState(actorRef)\n ? actorRef.state\n : undefined;\n}\nexport function useActor(actorRef, getSnapshot) {\n if (getSnapshot === void 0) { getSnapshot = defaultGetSnapshot; }\n var actorRefRef = useRef(actorRef);\n var deferredEventsRef = useRef([]);\n var subscribe = useCallback(function (handleStoreChange) {\n var unsubscribe = actorRef.subscribe(handleStoreChange).unsubscribe;\n return unsubscribe;\n }, [actorRef]);\n var boundGetSnapshot = useCallback(function () { return getSnapshot(actorRef); }, [actorRef, getSnapshot]);\n var isEqual = useCallback(function (prevState, nextState) {\n if (isService(actorRef)) {\n return isInterpreterStateEqual(actorRef, prevState, nextState);\n }\n return prevState === nextState;\n }, [actorRef]);\n var storeSnapshot = useSyncExternalStoreWithSelector(subscribe, boundGetSnapshot, boundGetSnapshot, identity, isEqual);\n var send = useConstant(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var event = args[0];\n if (process.env.NODE_ENV !== 'production' && args.length > 1) {\n console.warn(\"Unexpected payload: \".concat(JSON.stringify(args[1]), \". Only a single event object can be sent to actor send() functions.\"));\n }\n var currentActorRef = actorRefRef.current;\n // If the previous actor is a deferred actor,\n // queue the events so that they can be replayed\n // on the non-deferred actor.\n if (isDeferredActor(currentActorRef) && currentActorRef.deferred) {\n deferredEventsRef.current.push(event);\n }\n else {\n currentActorRef.send(event);\n }\n }; });\n useIsomorphicLayoutEffect(function () {\n actorRefRef.current = actorRef;\n // Dequeue deferred events from the previous deferred actorRef\n while (deferredEventsRef.current.length > 0) {\n var deferredEvent = deferredEventsRef.current.shift();\n actorRef.send(deferredEvent);\n }\n }, [actorRef]);\n return [storeSnapshot, send];\n}\n","import { useCallback, useRef } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { isActorWithState } from './useActor';\nimport { getServiceSnapshot, isService } from './utils';\nvar defaultCompare = function (a, b) { return a === b; };\nvar defaultGetSnapshot = function (a, initialStateCacheRef) {\n if (isService(a)) {\n // A status of 0 = interpreter not started\n if (a.status === 0 && initialStateCacheRef.current) {\n return initialStateCacheRef.current;\n }\n var snapshot = getServiceSnapshot(a);\n initialStateCacheRef.current = a.status === 0 ? snapshot : null;\n return snapshot;\n }\n return isActorWithState(a) ? a.state : undefined;\n};\nexport function useSelector(actor, selector, compare, getSnapshot) {\n if (compare === void 0) { compare = defaultCompare; }\n var initialStateCacheRef = useRef(null);\n var subscribe = useCallback(function (handleStoreChange) {\n var unsubscribe = actor.subscribe(handleStoreChange).unsubscribe;\n return unsubscribe;\n }, [actor]);\n var boundGetSnapshot = useCallback(function () {\n if (getSnapshot) {\n return getSnapshot(actor);\n }\n return defaultGetSnapshot(actor, initialStateCacheRef);\n }, [actor, getSnapshot]);\n var selectedSnapshot = useSyncExternalStoreWithSelector(subscribe, boundGetSnapshot, boundGetSnapshot, selector, compare);\n return selectedSnapshot;\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { InterpreterStatus } from 'xstate';\nexport function partition(items, predicate) {\n var e_1, _a;\n var _b = __read([[], []], 2), truthy = _b[0], falsy = _b[1];\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n if (predicate(item)) {\n truthy.push(item);\n }\n else {\n falsy.push(item);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [truthy, falsy];\n}\nexport function getServiceSnapshot(service) {\n return service.status !== 0\n ? service.getSnapshot()\n : service.machine.initialState;\n}\n// From https://github.com/reduxjs/react-redux/blob/master/src/utils/shallowEqual.ts\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n else {\n return x !== x && y !== y;\n }\n}\nexport function shallowEqual(objA, objB) {\n if (is(objA, objB))\n return true;\n if (typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length)\n return false;\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||\n !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport function isService(actor) {\n return 'state' in actor && 'machine' in actor;\n}\nexport function isInterpreterStateEqual(service, prevState, nextState) {\n if (service.status === InterpreterStatus.NotStarted) {\n return true;\n }\n // Only change the current state if:\n // - the incoming state is the \"live\" initial state (since it might have new actors)\n // - OR the incoming state actually changed.\n //\n // The \"live\" initial state will have .changed === undefined.\n var initialStateChanged = nextState.changed === undefined &&\n (Object.keys(nextState.children).length > 0 ||\n typeof prevState.changed === 'boolean');\n return !(nextState.changed || initialStateChanged);\n}\n","/**\n * This file contains helpers that lets you easily access current actor's state\n * and context.\n */\n/**\n * Get the state of current actor. This is useful for checking which screen\n * to render: e.g. `getActorState(state).matches('confirmSignUp.edit').\n */\nconst getActorState = (state) => {\n return state.context.actorRef?.getSnapshot();\n};\n/**\n * Get the context of current actor. Useful for getting any nested context\n * like remoteError.\n */\nconst getActorContext = (state) => {\n return getActorState(state)?.context;\n};\n\nexport { getActorContext, getActorState };\n","import { getActorContext, getActorState } from './actor.mjs';\nimport { NAVIGABLE_ROUTE_EVENT } from './constants.mjs';\nimport { getRoute } from './getRoute.mjs';\n\n/**\n * This file contains helpers that translates xstate internals to more\n * understandable authenticator contexts. We provide these contexts with\n * `useAuthenticator` hook/composable/service.\n */\n/**\n * Creates public facing auth helpers that abstracts out xstate implementation\n * detail. Each framework implementation can export these helpers so that\n * developers can send events without having to learn internals.\n *\n * ```\n * const [state, send] = useActor(...);\n * const { submit } = getSendEventAliases(send);\n * submit({ username, password})\n * ```\n */\nconst getSendEventAliases = (send) => {\n const sendToMachine = (type) => {\n // TODO If these were created during the creation of the machine & provider,\n // then invalid transitions could be caught via https://xstate.js.org/docs/guides/states.html#state-can-event\n return (data) => send({ type, data });\n };\n return {\n initializeMachine: sendToMachine('INIT'),\n resendCode: sendToMachine('RESEND'),\n signOut: sendToMachine('SIGN_OUT'),\n submitForm: sendToMachine('SUBMIT'),\n updateForm: sendToMachine('CHANGE'),\n updateBlur: sendToMachine('BLUR'),\n // Actions that don't immediately invoke a service but instead transition to a screen\n // are prefixed with `to*`\n toFederatedSignIn: sendToMachine('FEDERATED_SIGN_IN'),\n toForgotPassword: sendToMachine('FORGOT_PASSWORD'),\n toSignIn: sendToMachine('SIGN_IN'),\n toSignUp: sendToMachine('SIGN_UP'),\n skipVerification: sendToMachine('SKIP'),\n };\n};\nconst getNextSendEventAliases = (send) => {\n const { toFederatedSignIn, submitForm, resendCode, skipVerification } = getSendEventAliases(send);\n return {\n handleSubmit: submitForm,\n resendConfirmationCode: resendCode,\n // manual \"route\" navigation\n setRoute: (route) => send({ type: NAVIGABLE_ROUTE_EVENT[route] }),\n skipAttributeVerification: skipVerification,\n toFederatedSignIn,\n };\n};\nconst getServiceContextFacade = (state) => {\n const actorContext = (getActorContext(state) ?? {});\n const { challengeName, codeDeliveryDetails, remoteError: error, validationError: validationErrors, totpSecretCode = null, unverifiedUserAttributes, username, } = actorContext;\n const { socialProviders = [] } = state.context?.config ?? {};\n // check for user in actorContext prior to state context. actorContext is more \"up to date\",\n // but is not available on all states\n const user = actorContext?.user ?? state.context?.user;\n const hasValidationErrors = !!(validationErrors && Object.keys(validationErrors).length > 0);\n const actorState = getActorState(state);\n const isPending = state.hasTag('pending') || actorState?.hasTag('pending');\n const route = getRoute(state, actorState);\n // Auth status represents the current state of the auth flow\n // The `configuring` state is used to indicate when the xState machine is loading\n const authStatus = ((route) => {\n switch (route) {\n case 'idle':\n case 'setup':\n return 'configuring';\n case 'authenticated':\n return 'authenticated';\n default:\n return 'unauthenticated';\n }\n })(route);\n const facade = {\n authStatus,\n challengeName,\n codeDeliveryDetails,\n error,\n hasValidationErrors,\n isPending,\n route,\n socialProviders,\n totpSecretCode,\n unverifiedUserAttributes,\n user,\n username,\n validationErrors,\n // @v6-migration-note\n // While most of the properties\n // on `AuthenticatorServiceContextFacade` can resolve to `undefined`, updating\n // the interface requires material changes in consumers (namely `useAuthenticator`)\n // which will have implications on the UI layer as typeguards and non-null checks\n // are required to pass type checking. As the `Authenticator` is behaving as expected\n // with the `AuthenticatorServiceContextFacade` interface, prefer to cast\n };\n return facade;\n};\nconst getNextServiceContextFacade = (state) => {\n const actorContext = (getActorContext(state) ?? {});\n const { challengeName, codeDeliveryDetails, remoteError: errorMessage, totpSecretCode, unverifiedUserAttributes, username, } = actorContext;\n const { socialProviders: federatedProviders, loginMechanisms } = state.context?.config ?? {};\n const loginMechanism = loginMechanisms?.[0];\n const actorState = getActorState(state);\n const isPending = state.hasTag('pending') || actorState?.hasTag('pending');\n // @todo-migration remove this cast for Authenticator.Next\n const route = getRoute(state, actorState);\n return {\n challengeName,\n codeDeliveryDetails,\n errorMessage,\n federatedProviders,\n isPending,\n loginMechanism,\n route,\n totpSecretCode,\n unverifiedUserAttributes,\n username,\n };\n};\nconst getServiceFacade = ({ send, state, }) => {\n const sendEventAliases = getSendEventAliases(send);\n const serviceContext = getServiceContextFacade(state);\n return {\n ...sendEventAliases,\n ...serviceContext,\n };\n};\nconst getNextServiceFacade = ({ send, state, }) => ({\n ...getNextSendEventAliases(send),\n ...getNextServiceContextFacade(state),\n});\n\nexport { getNextServiceContextFacade, getNextServiceFacade, getSendEventAliases, getServiceContextFacade, getServiceFacade };\n","const getRoute = (state, actorState) => {\n // 'federatedSignIn' exists as a state on both the 'signInActor' and 'signUpActor',\n // match against the `actorState` initially to determine if the federated sign in flow\n // has begun, then which actor has begun the flow and return the corresponding `route`\n if (actorState?.matches('federatedSignIn')) {\n if (state.matches('signUpActor')) {\n return 'signUp';\n }\n if (state.matches('signInActor')) {\n return 'signIn';\n }\n }\n switch (true) {\n case state.matches('idle'):\n return 'idle';\n case state.matches('setup'):\n return 'setup';\n case state.matches('signOut'):\n return 'signOut';\n case state.matches('authenticated'):\n return 'authenticated';\n case actorState?.matches('confirmSignUp'):\n case actorState?.matches('resendSignUpCode'):\n return 'confirmSignUp';\n case actorState?.matches('confirmSignIn'):\n return 'confirmSignIn';\n case actorState?.matches('setupTotp.edit'):\n case actorState?.matches('setupTotp.submit'):\n return 'setupTotp';\n case actorState?.matches('signIn'):\n return 'signIn';\n case actorState?.matches('signUp'):\n case actorState?.matches('autoSignIn'):\n return 'signUp';\n case actorState?.matches('forceChangePassword'):\n return 'forceNewPassword';\n case actorState?.matches('forgotPassword'):\n return 'forgotPassword';\n case actorState?.matches('confirmResetPassword'):\n return 'confirmResetPassword';\n case actorState?.matches('selectUserAttributes'):\n return 'verifyUser';\n case actorState?.matches('confirmVerifyUserAttribute'):\n return 'confirmVerifyUser';\n case state.matches('getCurrentUser'):\n case actorState?.matches('fetchUserAttributes'):\n /**\n * This route is needed for autoSignIn to capture both the\n * autoSignIn.pending and the resolved states when the\n * signIn actor is running.\n */\n return 'transition';\n default:\n return null;\n }\n};\n\nexport { getRoute };\n","import React__default from 'react';\n\n/**\n * AuthenticatorContext serves static reference to the auth machine service.\n *\n * https://xstate.js.org/docs/recipes/react.html#context-provider\n */\nconst AuthenticatorContext = React__default.createContext(null);\n\nexport { AuthenticatorContext };\n","const USE_AUTHENTICATOR_ERROR = '`useAuthenticator` must be used inside an `Authenticator.Provider`.';\n\nexport { USE_AUTHENTICATOR_ERROR };\n","/** Array of auth fields that we supply defaults with */\nconst signUpFieldsWithDefault = [\n 'birthdate',\n 'email',\n 'family_name',\n 'given_name',\n 'middle_name',\n 'name',\n 'nickname',\n 'phone_number',\n 'preferred_username',\n 'profile',\n 'website',\n];\n/** Array of auth fields that we do not supply defaults with */\nconst signUpFieldsWithoutDefault = [\n 'address',\n 'gender',\n 'locale',\n 'picture',\n 'updated_at',\n 'zoneinfo',\n];\n/** Array of known login mechanisms */\nconst LoginMechanismArray = [\n 'username',\n 'email',\n 'phone_number',\n];\nconst authFieldsWithDefaults = [\n ...LoginMechanismArray,\n ...signUpFieldsWithDefault,\n 'confirmation_code',\n 'password',\n 'confirm_password',\n];\nconst isAuthFieldsWithDefaults = (field) => {\n return authFieldsWithDefaults.includes(field);\n};\n\nexport { LoginMechanismArray, authFieldsWithDefaults, isAuthFieldsWithDefaults, signUpFieldsWithDefault, signUpFieldsWithoutDefault };\n","const countryDialCodes = [\n '+1',\n '+7',\n '+20',\n '+27',\n '+30',\n '+31',\n '+32',\n '+33',\n '+34',\n '+36',\n '+39',\n '+40',\n '+41',\n '+43',\n '+44',\n '+45',\n '+46',\n '+47',\n '+48',\n '+49',\n '+51',\n '+52',\n '+53',\n '+54',\n '+55',\n '+56',\n '+57',\n '+58',\n '+60',\n '+61',\n '+62',\n '+63',\n '+64',\n '+65',\n '+66',\n '+81',\n '+82',\n '+84',\n '+86',\n '+90',\n '+91',\n '+92',\n '+93',\n '+94',\n '+95',\n '+98',\n '+212',\n '+213',\n '+216',\n '+218',\n '+220',\n '+221',\n '+222',\n '+223',\n '+224',\n '+225',\n '+226',\n '+227',\n '+228',\n '+229',\n '+230',\n '+231',\n '+232',\n '+233',\n '+234',\n '+235',\n '+236',\n '+237',\n '+238',\n '+239',\n '+240',\n '+241',\n '+242',\n '+243',\n '+244',\n '+245',\n '+246',\n '+248',\n '+249',\n '+250',\n '+251',\n '+252',\n '+253',\n '+254',\n '+255',\n '+256',\n '+257',\n '+258',\n '+260',\n '+261',\n '+262',\n '+263',\n '+264',\n '+265',\n '+266',\n '+267',\n '+268',\n '+269',\n '+290',\n '+291',\n '+297',\n '+298',\n '+299',\n '+345',\n '+350',\n '+351',\n '+352',\n '+353',\n '+354',\n '+355',\n '+356',\n '+357',\n '+358',\n '+359',\n '+370',\n '+371',\n '+372',\n '+373',\n '+374',\n '+375',\n '+376',\n '+377',\n '+378',\n '+379',\n '+380',\n '+381',\n '+382',\n '+385',\n '+386',\n '+387',\n '+389',\n '+420',\n '+421',\n '+423',\n '+500',\n '+501',\n '+502',\n '+503',\n '+504',\n '+505',\n '+506',\n '+507',\n '+508',\n '+509',\n '+537',\n '+590',\n '+591',\n '+593',\n '+594',\n '+595',\n '+596',\n '+597',\n '+598',\n '+599',\n '+670',\n '+672',\n '+673',\n '+674',\n '+675',\n '+676',\n '+677',\n '+678',\n '+679',\n '+680',\n '+681',\n '+682',\n '+683',\n '+685',\n '+686',\n '+687',\n '+688',\n '+689',\n '+690',\n '+691',\n '+692',\n '+850',\n '+852',\n '+853',\n '+855',\n '+856',\n '+872',\n '+880',\n '+886',\n '+960',\n '+961',\n '+962',\n '+963',\n '+964',\n '+965',\n '+966',\n '+967',\n '+968',\n '+970',\n '+971',\n '+972',\n '+973',\n '+974',\n '+975',\n '+976',\n '+977',\n '+992',\n '+993',\n '+994',\n '+995',\n '+996',\n '+998',\n];\n\nexport { countryDialCodes };\n","import { countryDialCodes } from '../../i18n/country-dial-codes.mjs';\nimport 'aws-amplify/utils';\n\n/**\n * This file contains helpers related to forms and input attributes.\n */\nconst defaultFormFieldOptions = {\n birthdate: {\n label: 'Birthdate',\n placeholder: 'Enter your Birthdate',\n type: 'date',\n autocomplete: 'bday',\n isRequired: true,\n },\n confirmation_code: {\n label: 'Confirmation Code',\n placeholder: 'Enter your Confirmation Code',\n type: 'text',\n autocomplete: 'one-time-code',\n isRequired: true,\n },\n confirm_password: {\n label: 'Confirm Password',\n placeholder: 'Please confirm your Password',\n type: 'password',\n autocomplete: 'new-password',\n isRequired: true,\n },\n email: {\n label: 'Email',\n placeholder: 'Enter your Email',\n type: 'email',\n autocomplete: 'username',\n isRequired: true,\n },\n family_name: {\n label: 'Family Name',\n placeholder: 'Enter your Family Name',\n type: 'text',\n autocomplete: 'family-name',\n isRequired: true,\n },\n given_name: {\n label: 'Given Name',\n placeholder: 'Enter your Given Name',\n type: 'text',\n autocomplete: 'given-name',\n isRequired: true,\n },\n middle_name: {\n label: 'Middle Name',\n placeholder: 'Enter your Middle Name',\n type: 'text',\n autocomplete: 'additional-name',\n isRequired: true,\n },\n name: {\n label: 'Name',\n placeholder: 'Enter your Name',\n type: 'text',\n autocomplete: 'name',\n isRequired: true,\n },\n nickname: {\n label: 'Nickname',\n placeholder: 'Enter your Nickname',\n type: 'text',\n autocomplete: 'tel',\n isRequired: true,\n },\n password: {\n label: 'Password',\n placeholder: 'Enter your Password',\n type: 'password',\n autocomplete: 'new-password',\n isRequired: true,\n },\n phone_number: {\n label: 'Phone Number',\n placeholder: 'Enter your Phone Number',\n type: 'tel',\n autocomplete: 'tel',\n dialCode: '+1',\n dialCodeList: countryDialCodes,\n isRequired: true,\n },\n preferred_username: {\n label: 'Preferred Username',\n placeholder: 'Enter your Preferred Username',\n type: 'text',\n isRequired: true,\n },\n profile: {\n label: 'Profile',\n placeholder: 'Add your Profile',\n type: 'url',\n autocomplete: 'url',\n isRequired: true,\n },\n website: {\n label: 'Website',\n placeholder: 'Add your Website',\n type: 'url',\n autocomplete: 'url',\n isRequired: true,\n },\n username: {\n label: 'Username',\n placeholder: 'Enter your Username',\n type: 'text',\n autocomplete: 'username',\n isRequired: true,\n },\n};\n/**\n * List of special characters that Cognito allows.\n *\n * Adapted from https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html\n */\n// prettier-ignore\nconst ALLOWED_SPECIAL_CHARACTERS = [\n '^', '$', '*', '.', '[', ']',\n '{', '}', '(', ')', '?', '\"',\n '!', '@', '#', '%', '&', '/',\n '\\\\', ',', '>', '<', \"'\", ':',\n ';', '|', '_', '~', '`', '=',\n '+', '-', ' '\n];\n/**\n * Email validation regex\n *\n * source: HTML5 spec https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\n */\nconst emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n+ * map navigable route keys to auth event names\n+ */\nconst NAVIGABLE_ROUTE_EVENT = {\n forgotPassword: 'FORGOT_PASSWORD',\n signIn: 'SIGN_IN',\n signUp: 'SIGN_UP',\n};\n\nexport { ALLOWED_SPECIAL_CHARACTERS, NAVIGABLE_ROUTE_EVENT, defaultFormFieldOptions, emailRegex };\n","import '../../types/authenticator/user.mjs';\nimport { authFieldsWithDefaults } from '../../types/authenticator/attributes.mjs';\n\nconst getFormDataFromEvent = (event) => {\n const formData = new FormData(event.target);\n return Object.fromEntries(formData);\n};\nconst setFormOrder = (formOverrides, fieldNames) => {\n let orderedKeys = [];\n if (formOverrides) {\n orderedKeys = Object.keys(formOverrides)\n .reduce((prev, key) => {\n // reduce to array that can be sorted\n prev.push([key, formOverrides[key]?.order]);\n return prev;\n }, [])\n .sort((a, b) => \n //sort them based on order\n a[1] - b[1]) // returned just key\n .filter((a) => a[1] !== undefined)\n .map((a) => a[0]);\n }\n // remove duplicates\n return Array.from(new Set([...orderedKeys, ...fieldNames]));\n};\nconst isAuthFieldWithDefaults = (field) => {\n return authFieldsWithDefaults.includes(field);\n};\nconst isArray = (val) => {\n return Array.isArray(val);\n};\nconst getErrors = (errors) => {\n if (!errors)\n return null;\n if (isArray(errors)) {\n return errors;\n }\n else {\n return [errors];\n }\n};\n\nexport { getErrors, getFormDataFromEvent, isAuthFieldWithDefaults, setFormOrder };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nconst logger = new ConsoleLogger('I18n');\n/**\n * Language translation utility.\n */\nexport class I18n {\n constructor() {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n }\n /**\n * Sets the default language from the configuration when required.\n */\n setDefaultLanguage() {\n // Default to window language if not set in instance\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n setLanguage(lang) {\n this._lang = lang;\n }\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n get(key, defVal = undefined) {\n this.setDefaultLanguage();\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n const lang = this._lang;\n let val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n getByLanguage(key, language, defVal = null) {\n if (!language) {\n return defVal;\n }\n const langDict = this._dict[language];\n if (!langDict) {\n return defVal;\n }\n return langDict[key];\n }\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n putVocabulariesForLanguage(language, vocabularies) {\n let langDict = this._dict[language];\n if (!langDict) {\n langDict = this._dict[language] = {};\n }\n this._dict[language] = { ...langDict, ...vocabularies };\n }\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n putVocabularies(vocabularies) {\n Object.keys(vocabularies).forEach(key => {\n this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createAssertionFunction } from '../errors';\nexport var I18nErrorCode;\n(function (I18nErrorCode) {\n I18nErrorCode[\"NotConfigured\"] = \"NotConfigured\";\n})(I18nErrorCode || (I18nErrorCode = {}));\nconst i18nErrorMap = {\n [I18nErrorCode.NotConfigured]: {\n message: 'i18n is not configured.',\n },\n};\nexport const assert = createAssertionFunction(i18nErrorMap);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nimport { I18n as I18nClass } from './I18n';\nimport { I18nErrorCode, assert } from './errorHelpers';\nconst logger = new ConsoleLogger('I18n');\nlet _config = { language: null };\nlet _i18n = null;\n/**\n * Export I18n APIs\n */\nexport class I18n {\n /**\n * @static\n * @method\n * Configure I18n part\n * @param {Object} config - Configuration of the I18n\n */\n static configure(config) {\n logger.debug('configure I18n');\n if (!config) {\n return _config;\n }\n _config = Object.assign({}, _config, config.I18n || config);\n I18n.createInstance();\n return _config;\n }\n static getModuleName() {\n return 'I18n';\n }\n /**\n * @static\n * @method\n * Create an instance of I18n for the library\n */\n static createInstance() {\n logger.debug('create I18n instance');\n if (_i18n) {\n return;\n }\n _i18n = new I18nClass();\n }\n /**\n * @static @method\n * Explicitly setting language\n * @param {String} lang\n */\n static setLanguage(lang) {\n I18n.checkConfig();\n assert(!!_i18n, I18nErrorCode.NotConfigured);\n _i18n.setLanguage(lang);\n }\n /**\n * @static @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n static get(key, defVal) {\n if (!I18n.checkConfig()) {\n return typeof defVal === 'undefined' ? key : defVal;\n }\n assert(!!_i18n, I18nErrorCode.NotConfigured);\n return _i18n.get(key, defVal);\n }\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n static putVocabulariesForLanguage(language, vocabularies) {\n I18n.checkConfig();\n assert(!!_i18n, I18nErrorCode.NotConfigured);\n _i18n.putVocabulariesForLanguage(language, vocabularies);\n }\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n static putVocabularies(vocabularies) {\n I18n.checkConfig();\n assert(!!_i18n, I18nErrorCode.NotConfigured);\n _i18n.putVocabularies(vocabularies);\n }\n static checkConfig() {\n if (!_i18n) {\n I18n.createInstance();\n }\n return true;\n }\n}\n// Create an instance of I18n in the static class\nI18n.createInstance();\n","const deDict = {\n 'Account recovery requires verified contact information': 'Zurücksetzen des Accounts benötigt einen verifizierten Account',\n 'Add your Profile': 'Ihr Profil hinzufügen',\n 'Add your Website': 'Ihre Website hinzufügen',\n 'Back to Sign In': 'Zurück zur Anmeldung',\n 'Change Password': 'Passwort ändern',\n Changing: 'Ändern von',\n Code: 'Code',\n 'Confirm Password': 'Passwort bestätigen',\n 'Please confirm your Password': 'Bitte bestätigen Sie Ihr Passwort',\n 'Confirm Sign Up': 'Registrierung bestätigen',\n 'Confirm SMS Code': 'SMS-Code bestätigen',\n 'Confirm TOTP Code': 'TOTP-Code bestätigen',\n Confirm: 'Bestätigen',\n 'Confirmation Code': 'Bestätigungs-Code',\n Confirming: 'Wird bestätigt',\n 'Create a new account': 'Einen neuen Account erstellen',\n 'Create Account': 'Account erstellen',\n 'Creating Account': 'Account wird erstellt',\n 'Dismiss alert': 'Warnung verwerfen',\n Email: 'Email',\n 'Enter your Birthdate': 'Geben Sie Ihr Geburtsdatum ein',\n 'Enter your code': 'Geben Sie Ihren Code ein',\n 'Enter your Confirmation Code': 'Geben Sie Ihren Bestätigungs-Code ein',\n 'Enter your Email': 'Geben Sie Ihre E-Mail ein',\n 'Enter your Family Name': 'Geben Sie Ihren Nachnamen ein',\n 'Enter your Given Name': 'Geben Sie Ihren Vornamen ein',\n 'Enter your Middle Name': 'Geben Sie Ihren zweiten Vornamen ein',\n 'Enter your Name': 'Geben Sie Ihren Namen ein',\n 'Enter your Nickname': 'Geben Sie Ihren Spitznamen ein',\n 'Enter your Password': 'Geben Sie Ihr Passwort ein',\n 'Enter your password': 'Geben Sie Ihr Passwort ein',\n 'Enter your email': 'Geben Sie Ihre e-mail ein',\n 'Enter your phone number': 'Geben Sie Ihre Telefonnummer ein',\n 'Enter your Preferred Username': 'Geben Sie Ihren bevorzugten Benutzernamen ein',\n 'Enter your username': 'Geben Sie Ihren Benutzernamen ein',\n 'Forgot password?': 'Passwort vergessen?',\n 'Forgot your password?': 'Passwort vergessen? ',\n 'Hide password': 'Passwort verbergen',\n 'It may take a minute to arrive': 'Es kann eine Minute dauern, bis er ankommt',\n Loading: 'Wird geladen',\n 'New password': 'Neues Passwort',\n or: 'oder',\n Password: 'Passwort',\n 'Phone Number': 'Telefonnummer',\n 'Resend Code': 'Code erneut senden',\n 'Reset your Password': 'Zurücksetzen des Passworts',\n 'Reset your password': 'Zurücksetzen des passworts',\n 'Send code': 'Code senden',\n 'Send Code': 'Code senden',\n Sending: 'Wird gesendet',\n 'Setup TOTP': 'TOTP einrichten',\n 'Show password': 'Passwort anzeigen',\n 'Sign in to your account': 'Melden Sie sich mit Ihrem Account an',\n 'Sign In with Amazon': 'Mit Amazon anmelden',\n 'Sign In with Apple': 'Mit Apple anmelden',\n 'Sign In with Facebook': 'Mit Facebook anmelden',\n 'Sign In with Google': 'Mit Google anmelden',\n 'Sign in': 'Anmelden',\n 'Sign In': 'Anmelden',\n 'Signing in': 'Wird angemeldet',\n Skip: 'Überspringen',\n Submit: 'Abschicken',\n Submitting: 'Wird gesendet',\n Username: 'Benutzername',\n 'Verify Contact': 'Kontakt verifizieren',\n Verify: 'Verifizieren',\n 'We Emailed You': 'Email wurde versendet',\n 'We Sent A Code': 'Wir haben einen Code gesendet',\n 'We Texted You': 'Wir haben Ihnen eine SMS gesendet',\n 'Your code is on the way. To log in, enter the code we emailed to': 'Ihr Bestätigungscode ist unterwegs. Um sich einzuloggen geben Sie den Code ein, den wir per E-Mail verschickt haben',\n 'Your code is on the way. To log in, enter the code we sent you': 'Ihr Code ist unterwegs. Um sich anzumelden, geben Sie den Code ein, den wir Ihnen gesendet haben',\n 'Your code is on the way. To log in, enter the code we texted to': 'Ihr Bestätigungscode ist unterwegs. Um sich einzuloggen geben Sie den Code ein, den wir per SMS verschickt haben',\n // Additional translations provided by customers\n 'An account with the given email already exists.': 'Ein Account mit dieser Email existiert bereits.',\n 'Confirm a Code': 'Code bestätigen',\n 'Confirm Sign In': 'Anmeldung bestätigen',\n 'Create account': 'Hier registrieren',\n 'Sign Up with Facebook': 'Mit Facebook registrieren',\n 'Sign Up with Google': 'Mit Google registrieren',\n 'Forgot Password': 'Passwort vergessen',\n 'Have an account? ': 'Schon registriert? ',\n 'Incorrect username or password': 'Falscher Benutzername oder falsches Passwort',\n 'Invalid password format': 'Ungültiges Passwort-Format',\n 'Invalid phone number format': `Ungültiges Telefonummern-Format. Benutze eine Nummer im Format: +12345678900`,\n 'It may take a minute to arrive.': 'Es könnte eine Minute dauern, bis der Code eintrifft.',\n 'Lost your code? ': 'Code verloren? ',\n 'New Password': 'Neues Passwort',\n 'No account? ': 'Kein Account? ',\n 'Password attempts exceeded': 'Die maximale Anzahl der fehlerhaften Anmeldeversuche wurde erreicht',\n 'Reset password': 'Passwort zurücksetzen',\n 'Reset Password': 'Passwort Zurücksetzen',\n 'Sign Out': 'Abmelden',\n 'Sign Up': 'Registrieren',\n 'User already exists': 'Dieser Benutzer existiert bereits',\n 'User does not exist': 'Dieser Benutzer existiert nicht',\n 'Username cannot be empty': 'Benutzername darf nicht leer sein',\n};\n\nexport { deDict };\n","import { I18n } from 'aws-amplify/utils';\nimport { defaultTexts, deDict, enDict, esDict, frDict, idDict, itDict, jaDict, krDict, nbDict, nlDict, plDict, ptDict, zhDict, svDict, trDict, ruDict, heDict, uaDict } from './dictionaries/index.mjs';\n\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n/**\n * Contains translatable strings that authenticator provides by default. Customers\n * can use this to add custom vocabularies:\n *\n * ```\n * I18n.putVocabulariesForLanguage(\"en\", {\n * [DefaultTexts.SIGN_IN]: \"Custom Sign In Text\",\n * [DefaultTexts.SIGN_IN_BUTTON]: \"Custom Click Here to Sign In\"\n * });\n * ```\n */\nconst DefaultTexts = { ...defaultTexts };\n/**\n * This helper type checks that given phrase is one of the texts @aws-amplify/ui\n * provides by default. This enables vscode autocompletion to help catch typos\n * during development.\n *\n * You can also use translate to handle custom strings or dynamic content.\n */\nfunction translate(phrase) {\n return I18n.get(phrase);\n}\n/**\n * Whether I18n has a translation entry for given phrase\n */\nfunction hasTranslation(phrase) {\n return I18n.get(phrase) !== phrase;\n}\nconst translations = {\n de: deDict,\n en: enDict,\n es: esDict,\n fr: frDict,\n id: idDict,\n it: itDict,\n ja: jaDict,\n // TODO: remove kr in next major release\n kr: krDict,\n ko: krDict,\n nb: nbDict,\n nl: nlDict,\n pl: plDict,\n pt: ptDict,\n zh: zhDict,\n sv: svDict,\n tr: trDict,\n ru: ruDict,\n he: heDict,\n ua: uaDict,\n};\n\nexport { DefaultTexts, hasTranslation, translate, translations };\n","import { deDict as deDict$1 } from './authenticator/de.mjs';\nimport { enDict as enDict$1 } from './authenticator/en.mjs';\nimport { esDict as esDict$1 } from './authenticator/es.mjs';\nimport { frDict as frDict$1 } from './authenticator/fr.mjs';\nimport { itDict as itDict$1 } from './authenticator/it.mjs';\nimport { jaDict as jaDict$1 } from './authenticator/ja.mjs';\nimport { krDict as krDict$1 } from './authenticator/kr.mjs';\nimport { nbDict as nbDict$1 } from './authenticator/nb.mjs';\nimport { nlDict as nlDict$1 } from './authenticator/nl.mjs';\nimport { plDict as plDict$1 } from './authenticator/pl.mjs';\nimport { ptDict as ptDict$1 } from './authenticator/pt.mjs';\nimport { zhDict as zhDict$1 } from './authenticator/zh.mjs';\nimport { svDict as svDict$1 } from './authenticator/sv.mjs';\nimport { idDict as idDict$1 } from './authenticator/id.mjs';\nimport { trDict as trDict$1 } from './authenticator/tr.mjs';\nimport { ruDict as ruDict$1 } from './authenticator/ru.mjs';\nimport { heDict as heDict$1 } from './authenticator/he.mjs';\nimport { uaDict as uaDict$1 } from './authenticator/ua.mjs';\nimport { defaultTexts as defaultTexts$1 } from './authenticator/defaultTexts.mjs';\n\n//merge all the new module translations in respective locale constants\nconst deDict = { ...deDict$1 };\nconst enDict = {\n ...enDict$1,\n};\nconst esDict = { ...esDict$1 };\nconst frDict = { ...frDict$1 };\nconst itDict = { ...itDict$1 };\nconst jaDict = { ...jaDict$1 };\nconst krDict = { ...krDict$1 };\nconst nbDict = { ...nbDict$1 };\nconst nlDict = { ...nlDict$1 };\nconst plDict = { ...plDict$1 };\nconst ptDict = { ...ptDict$1 };\nconst zhDict = { ...zhDict$1 };\nconst svDict = { ...svDict$1 };\nconst idDict = { ...idDict$1 };\nconst trDict = { ...trDict$1 };\nconst ruDict = { ...ruDict$1 };\nconst heDict = { ...heDict$1 };\nconst uaDict = { ...uaDict$1 };\nconst defaultTexts = {\n ...defaultTexts$1,\n // new module related default texts goes here\n};\n\nexport { deDict, defaultTexts, enDict, esDict, frDict, heDict, idDict, itDict, jaDict, krDict, nbDict, nlDict, plDict, ptDict, ruDict, svDict, trDict, uaDict, zhDict };\n","const defaultTexts = {\n ADD_PROFILE: 'Add your Profile',\n ADD_WEBSITE: 'Add your Website',\n BACK_SIGN_IN: 'Back to Sign In',\n BIRTHDATE: 'Birthdate',\n CHANGE_PASSWORD: 'Change Password',\n CHANGING_PASSWORD: 'Changing',\n CODE: 'Code',\n CODE_ARRIVAL: 'It may take a minute to arrive',\n CODE_EMAILED: 'Your code is on the way. To log in, enter the code we emailed to',\n CODE_SENT: 'Your code is on the way. To log in, enter the code we sent you',\n CODE_TEXTED: 'Your code is on the way. To log in, enter the code we texted to',\n CONFIRM_PASSWORD: 'Confirm Password',\n CONFIRM_PASSWORD_PLACEHOLDER: 'Please confirm your Password',\n CONFIRM_RESET_PASSWORD_HEADING: 'Reset your Password',\n CONFIRM_SIGNUP_HEADING: 'Confirm Sign Up',\n CONFIRM_SMS: 'Confirm SMS Code',\n // If challenge name is not returned\n CONFIRM_MFA_DEFAULT: 'Confirm MFA Code',\n CONFIRM_TOTP: 'Confirm TOTP Code',\n CONFIRM: 'Confirm',\n CONFIRMATION_CODE: 'Confirmation Code',\n CONFIRMING: 'Confirming',\n CREATE_ACCOUNT: 'Create Account',\n CREATING_ACCOUNT: 'Creating Account',\n EMAIL_ADDRESS: 'Email',\n ENTER_BIRTHDATE: 'Enter your Birthdate',\n ENTER_CODE: 'Enter your code',\n ENTER_CONFIRMATION_CODE: 'Enter your Confirmation Code',\n ENTER_EMAIL: 'Enter your Email',\n ENTER_FAMILY_NAME: 'Enter your Family Name',\n ENTER_GIVEN_NAME: 'Enter your Given Name',\n ENTER_MIDDLE_NAME: 'Enter your Middle Name',\n ENTER_NAME: 'Enter your Name',\n ENTER_NICK_NAME: 'Enter your Nickname',\n ENTER_PASSWORD: 'Enter your Password',\n ENTER_PHONE_NUMBER: 'Enter your Phone Number',\n ENTER_PREFERRED_USERNAME: 'Enter your Preferred Username',\n ENTER_USERNAME: 'Enter your username',\n FAMILY_NAME: 'Family Name',\n GIVEN_NAME: 'Given Name',\n FORGOT_PASSWORD: 'Forgot Password?',\n FORGOT_YOUR_PASSWORD: 'Forgot your password?',\n HIDE_PASSWORD: 'Hide password',\n LOADING: 'Loading',\n LOGIN_NAME: 'Username',\n MIDDLE_NAME: 'Middle Name',\n NAME: 'Name',\n NICKNAME: 'Nickname',\n NEW_PASSWORD: 'New password',\n OR: 'or',\n PASSWORD: 'Password',\n PHONE_NUMBER: 'Phone Number',\n PREFERRED_USERNAME: 'Preferred Username',\n PROFILE: 'Profile',\n RESEND_CODE: 'Resend Code',\n RESET_PASSWORD_HEADING: 'Reset your password',\n RESET_PASSWORD: 'Reset Password',\n SEND_CODE: 'Send code',\n SENDING: 'Sending',\n SETUP_TOTP: 'Setup TOTP',\n SHOW_PASSWORD: 'Show password',\n SIGN_IN_BUTTON: 'Sign in',\n SIGN_IN_TAB: 'Sign In',\n SIGN_IN_WITH_AMAZON: 'Sign In with Amazon',\n SIGN_IN_WITH_APPLE: 'Sign In with Apple',\n SIGN_IN_WITH_FACEBOOK: 'Sign In with Facebook',\n SIGN_IN_WITH_GOOGLE: 'Sign In with Google',\n SIGN_IN: 'Sign in to your account',\n SIGN_UP_BUTTON: 'Create a new account',\n SIGNING_IN_BUTTON: 'Signing in',\n SKIP: 'Skip',\n SUBMIT: 'Submit',\n SUBMITTING: 'Submitting',\n UPPERCASE_COPY: 'COPY',\n VERIFY_CONTACT: 'Verify Contact',\n VERIFY_HEADING: 'Account recovery requires verified contact information',\n VERIFY: 'Verify',\n WE_EMAILED: 'We Emailed You',\n WE_SENT_CODE: 'We Sent A Code',\n WE_TEXTED: 'We Texted You',\n WEBSITE: 'Website',\n};\n\nexport { defaultTexts };\n","import { translate } from '../../../i18n/translations.mjs';\n\nconst getPrimaryAlias = (state) => {\n const loginMechanisms = state?.context.config?.loginMechanisms;\n /**\n * @migration this is where we grab only the first index of `aws_cognito_username_attributes`\n */\n const [primaryAlias] = loginMechanisms ?? ['username'];\n return primaryAlias;\n};\n/** Applies translations to label and placeholder */\nconst applyTranslation = (formFields) => {\n const newFormFields = { ...formFields };\n for (const [name, options] of Object.entries(formFields)) {\n const { label, placeholder } = options;\n newFormFields[name] = {\n ...options,\n label: label ? translate(label) : undefined,\n placeholder: placeholder ? translate(placeholder) : undefined,\n };\n }\n return newFormFields;\n};\n/** Sorts formFields according to their `order`. */\nconst sortFormFields = (formFields) => {\n return Object.entries(formFields)\n .sort((a, b) => {\n const orderA = a[1].order || Number.MAX_VALUE;\n const orderB = b[1].order || Number.MAX_VALUE;\n return orderA - orderB;\n })\n .filter((formFieldEntry) => formFieldEntry[1] !== undefined);\n};\n\nexport { applyTranslation, getPrimaryAlias, sortFormFields };\n","import { getActorState } from '../actor.mjs';\nimport { defaultFormFieldOptions } from '../constants.mjs';\nimport { isAuthFieldWithDefaults } from '../form.mjs';\nimport { getPrimaryAlias } from './utils.mjs';\n\n/**\n * This file contains helpers that generate default formFields for each screen\n */\nconst DEFAULT_COUNTRY_CODE = '+1';\n/** Helper function that gets the default formField for given field name */\nconst getDefaultFormField = (fieldName) => {\n let options = defaultFormFieldOptions[fieldName];\n const { type } = options;\n if (type === 'tel') {\n options = { ...options, dialCode: DEFAULT_COUNTRY_CODE };\n }\n return options;\n};\n// Helper function that returns default form field for configured primary alias\nconst getAliasDefaultFormField = (state) => {\n const primaryAlias = getPrimaryAlias(state);\n return {\n ...getDefaultFormField(primaryAlias),\n autocomplete: 'username',\n };\n};\n/** Reusable confirmation code form fields. */\nconst getConfirmationCodeFormFields = (state) => ({\n confirmation_code: {\n ...getDefaultFormField('confirmation_code'),\n label: 'Code *',\n placeholder: 'Code',\n },\n});\nconst getSignInFormFields = (state) => ({\n username: { ...getAliasDefaultFormField(state) },\n password: {\n ...getDefaultFormField('password'),\n autocomplete: 'current-password',\n },\n});\nconst getSignUpFormFields = (state) => {\n const { loginMechanisms, signUpAttributes } = state.context.config;\n const primaryAlias = getPrimaryAlias(state);\n /**\n * @migration signUp Fields created here\n */\n const fieldNames = Array.from(new Set([\n ...loginMechanisms,\n 'password',\n 'confirm_password',\n ...signUpAttributes,\n ]));\n const formField = {};\n for (const fieldName of fieldNames) {\n if (isAuthFieldWithDefaults(fieldName)) {\n const fieldAttrs = fieldName === primaryAlias\n ? getAliasDefaultFormField(state)\n : getDefaultFormField(fieldName);\n formField[fieldName] = { ...fieldAttrs };\n }\n else {\n // There's a `custom:*` attribute or one we don't already have an implementation for\n console.debug(`Authenticator does not have a default implementation for ${fieldName}. Customize SignUp FormFields to add your own.`);\n }\n }\n return formField;\n};\nconst getConfirmSignUpFormFields = (state) => ({\n confirmation_code: {\n ...getDefaultFormField('confirmation_code'),\n placeholder: 'Enter your code',\n },\n});\nconst getForgotPasswordFormFields = (state) => {\n const primaryAlias = getPrimaryAlias(state);\n const { label } = defaultFormFieldOptions[primaryAlias];\n return {\n username: {\n ...getAliasDefaultFormField(state),\n label: `Enter your ${label.toLowerCase()}`,\n placeholder: `Enter your ${label.toLowerCase()}`,\n },\n };\n};\nconst getConfirmResetPasswordFormFields = (state) => ({\n ...getConfirmationCodeFormFields(),\n password: {\n ...getDefaultFormField('password'),\n label: 'New Password',\n placeholder: 'New Password',\n },\n confirm_password: {\n ...getDefaultFormField('confirm_password'),\n label: 'Confirm Password',\n placeholder: 'Confirm Password',\n },\n});\nconst getForceNewPasswordFormFields = (state) => {\n const actorState = getActorState(state);\n const { missingAttributes } = actorState.context;\n const fieldNames = Array.from(new Set([\n 'password',\n 'confirm_password',\n ...(missingAttributes ?? []),\n ]));\n const formField = {};\n for (const fieldName of fieldNames) {\n if (isAuthFieldWithDefaults(fieldName)) {\n formField[fieldName] = { ...getDefaultFormField(fieldName) };\n }\n else {\n // There's a `custom:*` attribute or one we don't already have an implementation for\n console.debug(`Authenticator does not have a default implementation for ${fieldName}. Customize ForceNewPassword FormFields to add your own.`);\n }\n }\n return formField;\n};\n/** Collect all the defaultFormFields getters */\nconst defaultFormFieldsGetters = {\n signIn: getSignInFormFields,\n signUp: getSignUpFormFields,\n confirmSignUp: getConfirmSignUpFormFields,\n confirmSignIn: getConfirmationCodeFormFields,\n forceNewPassword: getForceNewPasswordFormFields,\n forgotPassword: getForgotPasswordFormFields,\n confirmResetPassword: getConfirmResetPasswordFormFields,\n confirmVerifyUser: getConfirmationCodeFormFields,\n setupTotp: getConfirmationCodeFormFields,\n};\n\nexport { DEFAULT_COUNTRY_CODE, defaultFormFieldsGetters, getAliasDefaultFormField };\n","import '../../../types/authenticator/user.mjs';\nimport { isAuthFieldsWithDefaults } from '../../../types/authenticator/attributes.mjs';\nimport { getActorContext } from '../actor.mjs';\nimport { defaultFormFieldOptions } from '../constants.mjs';\nimport { defaultFormFieldsGetters, getAliasDefaultFormField } from './defaults.mjs';\nimport { applyTranslation, sortFormFields } from './utils.mjs';\n\n// Gets the default formFields for given route\nconst getDefaultFormFields = (route, state) => {\n const formFieldGetter = defaultFormFieldsGetters[route];\n return formFieldGetter(state);\n};\n// Gets custom formFields, and applies default values\nconst getCustomFormFields = (route, state) => {\n const customFormFields = getActorContext(state)?.formFields?.[route];\n if (!customFormFields || Object.keys(customFormFields).length === 0) {\n return {};\n }\n return Object.entries(customFormFields).reduce((acc, [fieldName, customOptions]) => {\n if ((route === 'signIn' || route === 'forgotPassword') &&\n fieldName === 'username') {\n // Unlike other screens, `signIn` and `forgotPassword` screens default login\n // alias field names to \"username\", even if it's a phone number or email.\n // In this case, we get the default formFieldOptions based on loginMechanism.\n const defaultOptions = getAliasDefaultFormField(state);\n // apply default to fill any gaps that are not present in customOptions\n const mergedOptions = { ...defaultOptions, ...customOptions };\n return { ...acc, [fieldName]: mergedOptions };\n }\n else if (isAuthFieldsWithDefaults(fieldName)) {\n // if this field is a known auth attribute that we have defaults for,\n // apply defaults to customOptions.\n const defaultOptions = defaultFormFieldOptions[fieldName];\n const mergedOptions = { ...defaultOptions, ...customOptions };\n return { ...acc, [fieldName]: mergedOptions };\n }\n else {\n // if this is not a known field, use customOptions as is.\n return { ...acc, [fieldName]: customOptions };\n }\n }, {});\n};\nconst getFormFields = (route, state) => {\n const defaultFormFields = getDefaultFormFields(route, state);\n const customFormFields = getCustomFormFields(route, state);\n const formFields = { ...defaultFormFields, ...customFormFields };\n delete formFields['QR'];\n return applyTranslation(formFields);\n};\nconst removeOrderKeys = (formFields) => formFields.map((field) => {\n const key = field[0];\n // Drop order key to prevent passing to form field UI components\n const values = { ...field[1], order: undefined };\n return [key, values];\n});\n/** Calls `getFormFields` above, then sorts it into an indexed array */\nconst getSortedFormFields = (route, state) => {\n const formFields = getFormFields(route, state);\n return removeOrderKeys(sortFormFields(formFields));\n};\n\nexport { getCustomFormFields, getDefaultFormFields, getFormFields, getSortedFormFields, removeOrderKeys };\n","const COMPONENT_ROUTE_KEYS = [\n 'confirmResetPassword',\n 'confirmSignIn',\n 'confirmSignUp',\n 'confirmVerifyUser',\n 'forceNewPassword',\n 'forgotPassword',\n 'setupTotp',\n 'signIn',\n 'signUp',\n 'verifyUser',\n];\nconst COMPONENT_ROUTE_NAMES = [\n 'ConfirmResetPassword',\n 'ConfirmSignIn',\n 'ConfirmSignUp',\n 'ConfirmVerifyUser',\n 'ForceNewPassword',\n 'ForgotPassword',\n 'SetupTotp',\n 'SignIn',\n 'SignUp',\n 'VerifyUser',\n];\n\nexport { COMPONENT_ROUTE_KEYS, COMPONENT_ROUTE_NAMES };\n","import { getActorContext, getSortedFormFields, isString, areEmptyArrays, areEmptyObjects } from '@aws-amplify/ui';\nimport { isComponentRouteKey } from '../utils.mjs';\n\nconst defaultComparator = () => false;\n/**\n * Does an ordering and shallow comparison of each array value,\n * plus a value equality check for empty objects and arrays.\n */\nfunction areSelectorDepsEqual(currentDeps, nextDeps) {\n if (currentDeps.length !== nextDeps.length) {\n return false;\n }\n return currentDeps.every((currentDep, index) => {\n const nextDep = nextDeps[index];\n if (areEmptyArrays(currentDep, nextDep) ||\n areEmptyObjects(currentDep, nextDep)) {\n return true;\n }\n return currentDep === nextDep;\n });\n}\nconst getComparator = (selector) => (currentFacade, nextFacade) => {\n const currentSelectorDeps = selector(currentFacade);\n const nextSelectorDeps = selector(nextFacade);\n // Shallow compare the array values\n return areSelectorDepsEqual(currentSelectorDeps, nextSelectorDeps);\n};\nconst getQRFields = (state) => ({\n ...getActorContext(state)?.formFields?.setupTotp?.QR,\n});\nconst flattenFormFields = (fields) => fields.flatMap(([name, options]) => ({ name, ...options }));\nconst convertContactMethodsToFields = (unverifiedUserAttributes) => {\n return (unverifiedUserAttributes &&\n Object.entries(unverifiedUserAttributes).map(([name, value]) => {\n const valueIsString = isString(value);\n if (!valueIsString || !name) {\n return {};\n }\n return { name, label: value, type: 'radio', value };\n }));\n};\n/**\n * Retrieves default and custom (RWA only, to be updated) form field values from state machine\n * for subcomponent routes that render fields\n */\nconst getMachineFields = (route, state, unverifiedUserAttributes) => {\n if (isComponentRouteKey(route)) {\n return route === 'verifyUser'\n ? convertContactMethodsToFields(unverifiedUserAttributes)\n : flattenFormFields(getSortedFormFields(route, state));\n }\n return [];\n};\n\nexport { areSelectorDepsEqual, defaultComparator, getComparator, getMachineFields, getQRFields };\n","import { COMPONENT_ROUTE_KEYS, COMPONENT_ROUTE_NAMES } from './constants.mjs';\n\nconst isComponentRouteKey = (route) => COMPONENT_ROUTE_KEYS.some((componentRoute) => componentRoute === route);\nfunction resolveAuthenticatorComponents(defaults, overrides) {\n if (!overrides) {\n return defaults;\n }\n return COMPONENT_ROUTE_NAMES.reduce((components, route) => {\n const Default = defaults[route];\n const Override = overrides[route];\n if (typeof Override !== 'function') {\n return { ...components, [route]: Default };\n }\n const { Footer, FormFields, Header } = Default;\n // cast to allow assigning of component slots\n const Component = Override;\n Component.Footer = Footer;\n Component.FormFields = FormFields;\n Component.Header = Header;\n return { ...components, [route]: Component };\n }, {});\n}\n\nexport { isComponentRouteKey, resolveAuthenticatorComponents };\n","import React__default, { useCallback } from 'react';\nimport { useSelector } from '@xstate/react';\nimport { getServiceFacade } from '@aws-amplify/ui';\nimport 'aws-amplify/auth';\nimport { AuthenticatorContext } from '../../context/AuthenticatorContext.mjs';\nimport { USE_AUTHENTICATOR_ERROR } from './constants.mjs';\nimport { getQRFields, getMachineFields, getComparator, defaultComparator } from './utils.mjs';\n\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/connected-components/authenticator/headless#useauthenticator-hook)\n */\nfunction useAuthenticator(selector) {\n const context = React__default.useContext(AuthenticatorContext);\n if (!context) {\n throw new Error(USE_AUTHENTICATOR_ERROR);\n }\n const { service } = context;\n const { send } = service;\n const xstateSelector = useCallback((state) => ({ ...getServiceFacade({ send, state }) }), [send]);\n const comparator = selector ? getComparator(selector) : defaultComparator;\n // the purpose of `context.authStatus`is to intentionally override `facade.authStatus`. `facade.authStatus` does\n // not update on external sign in events (for example when a user is not using the `Authenticator`).\n const { authStatus } = context;\n const facade = useSelector(service, xstateSelector, comparator);\n const { route, totpSecretCode, unverifiedUserAttributes, user, ...rest } = facade;\n // do not memoize output. `service.getSnapshot` reference remains stable preventing\n // `fields` from updating with current form state on value changes\n const serviceSnapshot = service.getSnapshot();\n // legacy `QRFields` values only used for SetupTotp page to retrieve issuer information, will be removed in future\n const QRFields = route === 'setupTotp' ? getQRFields(serviceSnapshot) : null;\n // legacy `formFields` values required until form state is removed from state machine\n const fields = getMachineFields(route, serviceSnapshot, unverifiedUserAttributes);\n return {\n ...rest,\n authStatus,\n route,\n totpSecretCode,\n unverifiedUserAttributes,\n user,\n /** @deprecated For internal use only */\n fields,\n QRFields,\n };\n}\n\nexport { useAuthenticator as default };\n","import React__default from 'react';\nimport useAuthenticator from '../useAuthenticator/useAuthenticator.mjs';\n\n// only select `route` from machine context\nconst routeSelector = ({ route }) => [route];\nfunction useAuthenticatorInitMachine(data) {\n const { route, initializeMachine } = useAuthenticator(routeSelector);\n const hasInitialized = React__default.useRef(false);\n React__default.useEffect(() => {\n if (!hasInitialized.current && route === 'setup') {\n initializeMachine(data);\n hasInitialized.current = true;\n }\n }, [initializeMachine, route, data]);\n}\n\nexport { useAuthenticatorInitMachine as default, routeSelector };\n","import { AuthAction, Category, InAppMessagingAction, GeoAction, StorageAction } from '@aws-amplify/core/internals/utils';\n\nconst ACCOUNT_SETTINGS_INPUT_BASE = {\n apis: [AuthAction.DeleteUser, AuthAction.UpdatePassword],\n category: Category.Auth,\n};\nconst AUTHENTICATOR_INPUT_BASE = {\n apis: [\n AuthAction.SignUp,\n AuthAction.ConfirmSignUp,\n AuthAction.ResendSignUpCode,\n AuthAction.SignIn,\n AuthAction.ConfirmSignIn,\n AuthAction.FetchUserAttributes,\n AuthAction.SignOut,\n AuthAction.ResetPassword,\n AuthAction.ConfirmResetPassword,\n AuthAction.SignInWithRedirect,\n ],\n category: Category.Auth,\n};\nconst IN_APP_MESSAGING_INPUT_BASE = {\n apis: [InAppMessagingAction.NotifyMessageInteraction],\n category: Category.InAppMessaging,\n};\nconst LOCATION_SEARCH_INPUT_BASE = {\n category: Category.Geo,\n apis: [\n GeoAction.SearchByText,\n GeoAction.SearchForSuggestions,\n GeoAction.SearchByPlaceId,\n ],\n};\nconst MAP_VIEW_INPUT_BASE = {\n category: Category.Geo,\n apis: [],\n};\nconst STORAGE_MANAGER_INPUT_BASE = {\n apis: [StorageAction.UploadData],\n category: Category.Storage,\n};\n\nexport { ACCOUNT_SETTINGS_INPUT_BASE, AUTHENTICATOR_INPUT_BASE, IN_APP_MESSAGING_INPUT_BASE, LOCATION_SEARCH_INPUT_BASE, MAP_VIEW_INPUT_BASE, STORAGE_MANAGER_INPUT_BASE };\n","import { setCustomUserAgent } from '@aws-amplify/core/internals/utils';\nimport { STORAGE_MANAGER_INPUT_BASE, MAP_VIEW_INPUT_BASE, LOCATION_SEARCH_INPUT_BASE, IN_APP_MESSAGING_INPUT_BASE, ACCOUNT_SETTINGS_INPUT_BASE, AUTHENTICATOR_INPUT_BASE } from './constants.mjs';\nimport { noop } from '../utils.mjs';\n\n/**\n * @example\n * ```ts\n * // set user agent options\n * const clear = setUserAgent(input);\n *\n * // clear user agent options\n * clear();\n * ```\n */\nconst setUserAgent = ({ componentName, packageName, version, }) => {\n const packageData = [`ui-${packageName}`, version];\n switch (componentName) {\n case 'Authenticator': {\n setCustomUserAgent({\n ...AUTHENTICATOR_INPUT_BASE,\n additionalDetails: [[componentName], packageData],\n });\n break;\n }\n case 'ChangePassword':\n case 'DeleteUser': {\n setCustomUserAgent({\n ...ACCOUNT_SETTINGS_INPUT_BASE,\n additionalDetails: [['AccountSettings'], packageData],\n });\n break;\n }\n case 'InAppMessaging': {\n setCustomUserAgent({\n ...IN_APP_MESSAGING_INPUT_BASE,\n additionalDetails: [[componentName], packageData],\n });\n break;\n }\n case 'LocationSearch': {\n setCustomUserAgent({\n ...LOCATION_SEARCH_INPUT_BASE,\n additionalDetails: [[componentName], packageData],\n });\n break;\n }\n case 'MapView': {\n setCustomUserAgent({\n ...MAP_VIEW_INPUT_BASE,\n additionalDetails: [[componentName], packageData],\n });\n break;\n }\n case 'StorageManager': {\n setCustomUserAgent({\n ...STORAGE_MANAGER_INPUT_BASE,\n additionalDetails: [[componentName], packageData],\n });\n break;\n }\n }\n return noop;\n};\n\nexport { setUserAgent };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nexport { __assign, __read, __rest, __spreadArray, __values };\n","var ActionTypes;\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n ActionTypes[\"Choose\"] = \"xstate.choose\";\n})(ActionTypes || (ActionTypes = {}));\n\nvar SpecialTargets;\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets || (SpecialTargets = {}));\n\nexport { ActionTypes, SpecialTargets };\n","var STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\n\nexport { DEFAULT_GUARD_TYPE, EMPTY_ACTIVITY_MAP, STATE_DELIMITER, TARGETLESS_KEY };\n","import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';\nimport { SpecialTargets } from './types.js';\nimport { raise, send } from './actionTypes.js';\nimport { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nvar _a;\nfunction keys(value) {\n return Object.keys(value);\n}\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return Object.keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\".concat(event) : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\nfunction getActionType(action) {\n try {\n return isString(action) || typeof action === 'number' ? \"\".concat(action) : isFunction(action) ? action.name : action.type;\n } catch (e) {\n throw new Error('Actions must be strings or objects with a string action.type property.');\n }\n}\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\".concat(stateId, \"' is not a valid state path.\"));\n }\n}\nfunction isStateLike(state) {\n return typeof state === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = Object.keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = __values(Object.keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nvar path = function (props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2.return)) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(Object.keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\nfunction pathsToStateValue(paths) {\n var e_4, _a;\n\n var result = {};\n\n if (paths && paths.length === 1 && paths[0].length === 1) {\n return paths[0][0];\n }\n\n try {\n for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var currentPath = paths_1_1.value;\n var marker = result; // tslint:disable-next-line:prefer-for-of\n\n for (var i = 0; i < currentPath.length; i++) {\n var subPath = currentPath[i];\n\n if (i === currentPath.length - 2) {\n marker[subPath] = currentPath[i + 1];\n break;\n }\n\n marker[subPath] = marker[subPath] || {};\n marker = marker[subPath];\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return result;\n}\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, __spreadArray([], __read(array), false));\n}\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = __values(Object.keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || typeof value === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\nfunction isBehavior(value) {\n return value !== null && typeof value === 'object' && 'transition' in value && typeof value.transition === 'function';\n}\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = __read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\nfunction updateContext(context, _event, assignActions, state) {\n if (!IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = __values(Object.keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\nvar warn = function () {};\n\nif (!IS_PRODUCTION) {\n warn = function (condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \".concat(message)];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}(); // TODO: to be removed in v5, left it out just to minimize the scope of the change and maintain compatibility with older versions of integration paackages\n\nvar interopSymbols = (_a = {}, _a[symbolObservable] = function () {\n return this;\n}, _a[Symbol.observable] = function () {\n return this;\n}, _a);\nfunction isMachine(value) {\n return !!value && '__xstatenode' in value;\n}\nfunction isActor(value) {\n return !!value && typeof value.send === 'function';\n}\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({\n type: event\n }, payload);\n }\n\n return event;\n}\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return __assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return __assign(__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\".concat(originalError.stack, \"'\") : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\".concat(id, \"', error was '\").concat(originalError, \"'.\").concat(originalStackTrace));\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\".concat(currentError.stack, \"'\") : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\".concat(id, \"'. \") + \"Original error: '\".concat(originalError, \"'. \").concat(originalStackTrace, \" Current error is '\").concat(currentError, \"'.\").concat(stackTrace));\n }\n }\n}\nfunction evaluateGuard(machine, guard, context, _event, state) {\n var guards = machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === DEFAULT_GUARD_TYPE) {\n return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);\n }\n\n var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\".concat(guard.type, \"' is not implemented on machine '\").concat(machine.id, \"'.\"));\n }\n\n return condFn(context, _event.data, guardMeta);\n}\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n return {\n type: src\n };\n }\n\n return src;\n}\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n var noop = function () {};\n\n var isObserver = typeof nextHandler === 'object';\n var self = isObserver ? nextHandler : null;\n return {\n next: ((isObserver ? nextHandler.next : nextHandler) || noop).bind(self),\n error: ((isObserver ? nextHandler.error : errorHandler) || noop).bind(self),\n complete: ((isObserver ? nextHandler.complete : completionHandler) || noop).bind(self)\n };\n}\nfunction createInvokeId(stateNodeId, index) {\n return \"\".concat(stateNodeId, \":invocation[\").concat(index, \"]\");\n}\nfunction isRaisableAction(action) {\n return (action.type === raise || action.type === send && action.to === SpecialTargets.Internal) && typeof action.delay !== 'number';\n}\n\nexport { createInvokeId, evaluateGuard, flatten, getActionType, getEventType, interopSymbols, isActor, isArray, isBehavior, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isRaisableAction, isStateLike, isString, keys, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, pathsToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toInvokeSource, toObserver, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };\n","import { ActionTypes } from './types.js';\n\nvar start = ActionTypes.Start;\nvar stop = ActionTypes.Stop;\nvar raise = ActionTypes.Raise;\nvar send = ActionTypes.Send;\nvar cancel = ActionTypes.Cancel;\nvar nullEvent = ActionTypes.NullEvent;\nvar assign = ActionTypes.Assign;\nvar after = ActionTypes.After;\nvar doneState = ActionTypes.DoneState;\nvar log = ActionTypes.Log;\nvar init = ActionTypes.Init;\nvar invoke = ActionTypes.Invoke;\nvar errorExecution = ActionTypes.ErrorExecution;\nvar errorPlatform = ActionTypes.ErrorPlatform;\nvar error = ActionTypes.ErrorCustom;\nvar update = ActionTypes.Update;\nvar choose = ActionTypes.Choose;\nvar pure = ActionTypes.Pure;\n\nexport { after, assign, cancel, choose, doneState, error, errorExecution, errorPlatform, init, invoke, log, nullEvent, pure, raise, send, start, stop, update };\n","var IS_PRODUCTION = process.env.NODE_ENV === 'production';\n\nexport { IS_PRODUCTION };\n","import { __values, __spreadArray, __read } from './_virtual/_tslib.js';\nimport { flatten } from './utils.js';\n\nvar isLeafNode = function (stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\nfunction getAllChildren(stateNode) {\n return Object.keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\nfunction getChildren(stateNode) {\n return getAllChildren(stateNode).filter(function (sn) {\n return sn.type !== 'history';\n });\n}\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = __values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1.return)) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = __values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, __values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2.return)) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = __values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3.return)) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = __values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4.return)) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\nfunction nextEvents(configuration) {\n return __spreadArray([], __read(new Set(flatten(__spreadArray([], __read(configuration.map(function (sn) {\n return sn.ownEvents;\n })), false)))), false);\n}\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\nfunction getMeta(configuration) {\n if (configuration === void 0) {\n configuration = [];\n }\n\n return configuration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n}\nfunction getTagsFromConfiguration(configuration) {\n return new Set(flatten(configuration.map(function (sn) {\n return sn.tags;\n })));\n}\n\nexport { getAdjList, getAllChildren, getAllStateNodes, getChildren, getConfiguration, getMeta, getTagsFromConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };\n","import { __assign, __spreadArray, __read, __values } from './_virtual/_tslib.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { init, raise as raise$1, send as send$1, update, log as log$1, cancel as cancel$1, assign as assign$1, error as error$1, stop as stop$1, pure as pure$1, choose as choose$1 } from './actionTypes.js';\nimport * as actionTypes from './actionTypes.js';\nexport { actionTypes };\nimport { toSCXMLEvent, isString, isFunction, toEventObject, getEventType, updateContext, flatten, isArray, toArray, toGuard, evaluateGuard, warn } from './utils.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nvar initEvent = /*#__PURE__*/toSCXMLEvent({\n type: init\n});\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = __assign(__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var actionType = exec.type || action.type;\n actionObject = __assign(__assign(__assign({}, exec), action), {\n type: actionType\n });\n } else {\n actionObject = action;\n }\n }\n\n return actionObject;\n}\nvar toActionObjects = function (action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({\n id: isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\nfunction raise(event, options) {\n return {\n type: raise$1,\n event: typeof event === 'function' ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options === null || options === void 0 ? void 0 : options.id\n };\n}\nfunction resolveRaise(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n };\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n return __assign(__assign({}, action), {\n type: raise$1,\n _event: resolvedEvent,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @deprecated Use the `sendTo(...)` action creator instead.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: send$1,\n event: isFunction(event) ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n // TODO: don't auto-generate IDs here like that\n // there is too big chance of the ID collision\n id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)\n };\n}\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return __assign(__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an event to an actor.\r\n *\r\n * @param actor The `ActorRef` to send the event to.\r\n * @param event The event to send, or an expression that evaluates to the event to send\r\n * @param options Send action options\r\n * @returns An XState send action object\r\n */\n\nfunction sendTo(actor, event, options) {\n return send(event, __assign(__assign({}, options), {\n to: actor\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\nfunction sendUpdate() {\n return sendParent(update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: function (_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function (context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: log$1,\n label: label,\n expr: expr\n };\n}\nvar resolveLog = function (action, ctx, _event) {\n return __assign(__assign({}, action), {\n value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\nvar cancel = function (sendId) {\n return {\n type: cancel$1,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param actorRef The activity to stop.\r\n */\n\nfunction stop(actorRef) {\n var activity = isFunction(actorRef) ? actorRef : toActivityDefinition(actorRef);\n return {\n type: ActionTypes.Stop,\n activity: activity,\n exec: undefined\n };\n}\nfunction resolveStop(action, context, _event) {\n var actorRefOrString = isFunction(action.activity) ? action.activity(context, _event.data) : action.activity;\n var resolvedActorRef = typeof actorRefOrString === 'string' ? {\n id: actorRefOrString\n } : actorRefOrString;\n var actionObject = {\n type: ActionTypes.Stop,\n activity: resolvedActorRef\n };\n return actionObject;\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\nvar assign = function (assignment) {\n return {\n type: assign$1,\n assignment: assignment\n };\n};\nfunction isActionObject(action) {\n return typeof action === 'object' && 'type' in action;\n}\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\".concat(id) : '';\n return \"\".concat(ActionTypes.After, \"(\").concat(delayRef, \")\").concat(idSuffix);\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\nfunction done(id, data) {\n var type = \"\".concat(ActionTypes.DoneState, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\nfunction doneInvoke(id, data) {\n var type = \"\".concat(ActionTypes.DoneInvoke, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction error(id, data) {\n var type = \"\".concat(ActionTypes.ErrorPlatform, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction pure(getActions) {\n return {\n type: ActionTypes.Pure,\n get: getActions\n };\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction forwardTo(target, options) {\n if (!IS_PRODUCTION && (!target || typeof target === 'function')) {\n var originalTarget_1 = target;\n\n target = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var resolvedTarget = typeof originalTarget_1 === 'function' ? originalTarget_1.apply(void 0, __spreadArray([], __read(args), false)) : originalTarget_1;\n\n if (!resolvedTarget) {\n throw new Error(\"Attempted to forward event to undefined actor. This risks an infinite loop in the sender.\");\n }\n\n return resolvedTarget;\n };\n }\n\n return send(function (_, event) {\n return event;\n }, __assign(__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: error$1,\n data: isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\nfunction choose(conds) {\n return {\n type: ActionTypes.Choose,\n conds: conds\n };\n}\n\nvar pluckAssigns = function (actionBlocks) {\n var e_1, _a;\n\n var assignActions = [];\n\n try {\n for (var actionBlocks_1 = __values(actionBlocks), actionBlocks_1_1 = actionBlocks_1.next(); !actionBlocks_1_1.done; actionBlocks_1_1 = actionBlocks_1.next()) {\n var block = actionBlocks_1_1.value;\n var i = 0;\n\n while (i < block.actions.length) {\n if (block.actions[i].type === assign$1) {\n assignActions.push(block.actions[i]);\n block.actions.splice(i, 1);\n continue;\n }\n\n i++;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (actionBlocks_1_1 && !actionBlocks_1_1.done && (_a = actionBlocks_1.return)) _a.call(actionBlocks_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return assignActions;\n};\n\nfunction resolveActions(machine, currentState, currentContext, _event, actionBlocks, predictableExec, preserveActionOrder) {\n if (preserveActionOrder === void 0) {\n preserveActionOrder = false;\n }\n\n var assignActions = preserveActionOrder ? [] : pluckAssigns(actionBlocks);\n var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var preservedContexts = preserveActionOrder ? [currentContext] : undefined;\n var deferredToBlockEnd = [];\n\n function handleAction(blockType, actionObject) {\n var _a;\n\n switch (actionObject.type) {\n case raise$1:\n {\n var raisedAction = resolveRaise(actionObject, updatedContext, _event, machine.options.delays);\n\n if (predictableExec && typeof raisedAction.delay === 'number') {\n predictableExec(raisedAction, updatedContext, _event);\n }\n\n return raisedAction;\n }\n\n case send$1:\n var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!IS_PRODUCTION) {\n var configuredDelay = actionObject.delay; // warn after resolving as we can create better contextual message here\n\n warn(!isString(configuredDelay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\".concat(configuredDelay, \"' was found on machine '\").concat(machine.id, \"'\"));\n }\n\n if (predictableExec && sendAction.to !== SpecialTargets.Internal) {\n if (blockType === 'entry') {\n deferredToBlockEnd.push(sendAction);\n } else {\n predictableExec(sendAction, updatedContext, _event);\n }\n }\n\n return sendAction;\n\n case log$1:\n {\n var resolved = resolveLog(actionObject, updatedContext, _event);\n predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, updatedContext, _event);\n return resolved;\n }\n\n case choose$1:\n {\n var chooseAction = actionObject;\n var matchedActions = (_a = chooseAction.conds.find(function (condition) {\n var guard = toGuard(condition.cond, machine.options.guards);\n return !guard || evaluateGuard(machine, guard, updatedContext, _event, !predictableExec ? currentState : undefined);\n })) === null || _a === void 0 ? void 0 : _a.actions;\n\n if (!matchedActions) {\n return [];\n }\n\n var _b = __read(resolveActions(machine, currentState, updatedContext, _event, [{\n type: blockType,\n actions: toActionObjects(toArray(matchedActions), machine.options.actions)\n }], predictableExec, preserveActionOrder), 2),\n resolvedActionsFromChoose = _b[0],\n resolvedContextFromChoose = _b[1];\n\n updatedContext = resolvedContextFromChoose;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromChoose;\n }\n\n case pure$1:\n {\n var matchedActions = actionObject.get(updatedContext, _event.data);\n\n if (!matchedActions) {\n return [];\n }\n\n var _c = __read(resolveActions(machine, currentState, updatedContext, _event, [{\n type: blockType,\n actions: toActionObjects(toArray(matchedActions), machine.options.actions)\n }], predictableExec, preserveActionOrder), 2),\n resolvedActionsFromPure = _c[0],\n resolvedContext = _c[1];\n\n updatedContext = resolvedContext;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromPure;\n }\n\n case stop$1:\n {\n var resolved = resolveStop(actionObject, updatedContext, _event);\n predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, currentContext, _event);\n return resolved;\n }\n\n case assign$1:\n {\n updatedContext = updateContext(updatedContext, _event, [actionObject], !predictableExec ? currentState : undefined);\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n break;\n }\n\n default:\n var resolvedActionObject = toActionObject(actionObject, machine.options.actions);\n var exec_1 = resolvedActionObject.exec;\n\n if (predictableExec) {\n predictableExec(resolvedActionObject, updatedContext, _event);\n } else if (exec_1 && preservedContexts) {\n var contextIndex_1 = preservedContexts.length - 1;\n\n var wrapped = __assign(__assign({}, resolvedActionObject), {\n exec: function (_ctx) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n exec_1.apply(void 0, __spreadArray([preservedContexts[contextIndex_1]], __read(args), false));\n }\n });\n\n resolvedActionObject = wrapped;\n }\n\n return resolvedActionObject;\n }\n }\n\n function processBlock(block) {\n var e_2, _a;\n\n var resolvedActions = [];\n\n try {\n for (var _b = __values(block.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n var resolved = handleAction(block.type, action);\n\n if (resolved) {\n resolvedActions = resolvedActions.concat(resolved);\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n deferredToBlockEnd.forEach(function (action) {\n predictableExec(action, updatedContext, _event);\n });\n deferredToBlockEnd.length = 0;\n return resolvedActions;\n }\n\n var resolvedActions = flatten(actionBlocks.map(processBlock));\n return [resolvedActions, updatedContext];\n}\n\nexport { after, assign, cancel, choose, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, isActionObject, log, pure, raise, resolveActions, resolveLog, resolveRaise, resolveSend, resolveStop, respond, send, sendParent, sendTo, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };\n","import { __assign, __spreadArray, __read, __rest } from './_virtual/_tslib.js';\nimport { EMPTY_ACTIVITY_MAP } from './constants.js';\nimport { isString, matchesState, warn } from './utils.js';\nimport { getMeta, nextEvents } from './stateUtils.js';\nimport { initEvent } from './actions.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (isString(a) || isString(b)) {\n return a === b;\n }\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\nfunction isStateConfig(state) {\n if (typeof state !== 'object' || state === null) {\n return false;\n }\n\n return 'value' in state && '_event' in state;\n}\n/**\r\n * @deprecated Use `isStateConfig(object)` or `state instanceof State` instead.\r\n */\n\nvar isState = isStateConfig;\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = __assign(__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n var _this = this;\n\n var _a;\n\n this.actions = [];\n this.activities = EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || EMPTY_ACTIVITY_MAP;\n this.meta = getMeta(config.configuration);\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n this.tags = (_a = Array.isArray(config.tags) ? new Set(config.tags) : config.tags) !== null && _a !== void 0 ? _a : new Set();\n this.machine = config.machine;\n Object.defineProperty(this, 'nextEvents', {\n get: function () {\n return nextEvents(_this.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = Object.keys(stateValue);\n return valueKeys.concat.apply(valueKeys, __spreadArray([], __read(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n })), false));\n };\n\n State.prototype.toJSON = function () {\n var _a = this;\n _a.configuration;\n _a.transitions;\n var tags = _a.tags;\n _a.machine;\n var jsonValues = __rest(_a, [\"configuration\", \"transitions\", \"tags\", \"machine\"]);\n\n return __assign(__assign({}, jsonValues), {\n tags: Array.from(tags)\n });\n };\n\n State.prototype.matches = function (parentStateValue) {\n return matchesState(parentStateValue, this.value);\n };\n /**\r\n * Whether the current state configuration has a state node with the specified `tag`.\r\n * @param tag\r\n */\n\n\n State.prototype.hasTag = function (tag) {\n return this.tags.has(tag);\n };\n /**\r\n * Determines whether sending the `event` will cause a non-forbidden transition\r\n * to be selected, even if the transitions have no actions nor\r\n * change the state value.\r\n *\r\n * @param event The event to test\r\n * @returns Whether the event will cause a transition\r\n */\n\n\n State.prototype.can = function (event) {\n var _a;\n\n if (IS_PRODUCTION) {\n warn(!!this.machine, \"state.can(...) used outside of a machine-created State object; this will always return false.\");\n }\n\n var transitionData = (_a = this.machine) === null || _a === void 0 ? void 0 : _a.getTransitionData(this, event);\n return !!(transitionData === null || transitionData === void 0 ? void 0 : transitionData.transitions.length) && // Check that at least one transition is not forbidden\n transitionData.transitions.some(function (t) {\n return t.target !== undefined || t.actions.length;\n });\n };\n\n return State;\n}();\n\nexport { State, bindActionToState, isState, isStateConfig, stateValuesEqual };\n","import { __assign } from './_virtual/_tslib.js';\n\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = __assign(__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };\n","/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n */\nvar serviceStack = [];\nvar provide = function (service, fn) {\n serviceStack.push(service);\n var result = fn(service);\n serviceStack.pop();\n return result;\n};\nvar consume = function (fn) {\n return fn(serviceStack[serviceStack.length - 1]);\n};\n\nexport { consume, provide };\n","import { __assign } from './_virtual/_tslib.js';\nimport { symbolObservable, toInvokeSource, mapContext, isMachine } from './utils.js';\nimport { provide } from './serviceScope.js';\n\nfunction createNullActor(id) {\n var _a;\n\n return _a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a;\n}\n/**\r\n * Creates a deferred actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\nfunction createInvocableActor(invokeDefinition, machine, context, _event) {\n var _a;\n\n var invokeSrc = toInvokeSource(invokeDefinition.src);\n var serviceCreator = (_a = machine === null || machine === void 0 ? void 0 : machine.options.services) === null || _a === void 0 ? void 0 : _a[invokeSrc.type];\n var resolvedData = invokeDefinition.data ? mapContext(invokeDefinition.data, context, _event) : undefined;\n var tempActor = serviceCreator ? createDeferredActor(serviceCreator, invokeDefinition.id, resolvedData) : createNullActor(invokeDefinition.id); // @ts-ignore\n\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\nfunction createDeferredActor(entity, id, data) {\n var tempActor = createNullActor(id); // @ts-ignore\n\n tempActor.deferred = true;\n\n if (isMachine(entity)) {\n // \"mute\" the existing service scope so potential spawned actors within the `.initialState` stay deferred here\n var initialState_1 = tempActor.state = provide(undefined, function () {\n return (data ? entity.withContext(data) : entity).initialState;\n });\n\n tempActor.getSnapshot = function () {\n return initialState_1;\n };\n }\n\n return tempActor;\n}\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\nfunction isSpawnedActor(item) {\n return isActor(item) && 'id' in item;\n} // TODO: refactor the return type, this could be written in a better way but it's best to avoid unneccessary breaking changes now\n\nfunction toActorRef(actorRefLike) {\n var _a;\n\n return __assign((_a = {\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n id: 'anonymous',\n getSnapshot: function () {\n return undefined;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a), actorRefLike);\n}\n\nexport { createDeferredActor, createInvocableActor, createNullActor, isActor, isSpawnedActor, toActorRef };\n","var children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function () {\n return \"x:\".concat(sessionIdIndex++);\n },\n register: function (id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function (id) {\n return children.get(id);\n },\n free: function (id) {\n children.delete(id);\n }\n};\n\nexport { registry };\n","import { IS_PRODUCTION } from './environment.js';\n\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (!IS_PRODUCTION) {\n console.warn('XState could not find a global object in this environment. Please let the maintainers know and raise an issue here: https://github.com/statelyai/xstate/issues');\n }\n}\n\nfunction getDevTools() {\n var global = getGlobal();\n\n if (global && '__xstate__' in global) {\n return global.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (!getGlobal()) {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexport { getGlobal, registerService };\n","import { error, doneInvoke } from './actions.js';\nimport { toActorRef } from './Actor.js';\nimport { toObserver } from './utils.js';\n\n/**\r\n * Returns an actor behavior from a reducer and its initial state.\r\n *\r\n * @param transition The pure reducer that returns the next state given the current state and event.\r\n * @param initialState The initial state of the reducer.\r\n * @returns An actor behavior\r\n */\n\nfunction fromReducer(transition, initialState) {\n return {\n transition: transition,\n initialState: initialState\n };\n}\nfunction fromPromise(promiseFn) {\n var initialState = {\n error: undefined,\n data: undefined,\n status: 'pending'\n };\n return {\n transition: function (state, event, _a) {\n var parent = _a.parent,\n id = _a.id,\n observers = _a.observers;\n\n switch (event.type) {\n case 'fulfill':\n parent === null || parent === void 0 ? void 0 : parent.send(doneInvoke(id, event.data));\n return {\n error: undefined,\n data: event.data,\n status: 'fulfilled'\n };\n\n case 'reject':\n parent === null || parent === void 0 ? void 0 : parent.send(error(id, event.error));\n observers.forEach(function (observer) {\n observer.error(event.error);\n });\n return {\n error: event.error,\n data: undefined,\n status: 'rejected'\n };\n\n default:\n return state;\n }\n },\n initialState: initialState,\n start: function (_a) {\n var self = _a.self;\n promiseFn().then(function (data) {\n self.send({\n type: 'fulfill',\n data: data\n });\n }, function (reason) {\n self.send({\n type: 'reject',\n error: reason\n });\n });\n return initialState;\n }\n };\n}\nfunction spawnBehavior(behavior, options) {\n if (options === void 0) {\n options = {};\n }\n\n var state = behavior.initialState;\n var observers = new Set();\n var mailbox = [];\n var flushing = false;\n\n var flush = function () {\n if (flushing) {\n return;\n }\n\n flushing = true;\n\n while (mailbox.length > 0) {\n var event_1 = mailbox.shift();\n state = behavior.transition(state, event_1, actorCtx);\n observers.forEach(function (observer) {\n return observer.next(state);\n });\n }\n\n flushing = false;\n };\n\n var actor = toActorRef({\n id: options.id,\n send: function (event) {\n mailbox.push(event);\n flush();\n },\n getSnapshot: function () {\n return state;\n },\n subscribe: function (next, handleError, complete) {\n var observer = toObserver(next, handleError, complete);\n observers.add(observer);\n observer.next(state);\n return {\n unsubscribe: function () {\n observers.delete(observer);\n }\n };\n }\n });\n var actorCtx = {\n parent: options.parent,\n self: actor,\n id: options.id || 'anonymous',\n observers: observers\n };\n state = behavior.start ? behavior.start(actorCtx) : state;\n return actor;\n}\n\nexport { fromPromise, fromReducer, spawnBehavior };\n","import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { isStateConfig, State, bindActionToState } from './State.js';\nimport { errorPlatform, update, error as error$1, log, stop, start, cancel, send, raise } from './actionTypes.js';\nimport { initEvent, doneInvoke, toActionObjects, resolveActions, error, getActionFunction } from './actions.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { warn, mapContext, toObserver, isFunction, toSCXMLEvent, flatten, isRaisableAction, isPromiseLike, isObservable, isMachine, isBehavior, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, isActor, toInvokeSource, uniqueId } from './utils.js';\nimport { Scheduler } from './scheduler.js';\nimport { createDeferredActor, isSpawnedActor } from './Actor.js';\nimport { registry } from './registry.js';\nimport { getGlobal, registerService } from './devTools.js';\nimport { provide, consume } from './serviceScope.js';\nimport { spawnBehavior } from './behaviors.js';\n\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\nvar InterpreterStatus;\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(InterpreterStatus || (InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n var _this = this;\n\n this.machine = machine;\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this.status = InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n this._outgoingQueue = [];\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = toSCXMLEvent(toEventObject(event, payload));\n\n if (_this.status === InterpreterStatus.Stopped) {\n // do nothing\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\".concat(_event.name, \"\\\" was sent to stopped service \\\"\").concat(_this.machine.id, \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \").concat(JSON.stringify(_event.data)));\n }\n\n return _this.state;\n }\n\n if (_this.status !== InterpreterStatus.Running && !_this.options.deferEvents) {\n throw new Error(\"Event \\\"\".concat(_event.name, \"\\\" was sent to uninitialized service \\\"\").concat(_this.machine.id // tslint:disable-next-line:max-line-length\n , \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \").concat(JSON.stringify(_event.data)));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this._nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to, immediate) {\n var isParent = _this.parent && (to === SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : isString(to) ? to === SpecialTargets.Internal ? _this : _this.children.get(to) || registry.get(to) : isActor(to) ? to : undefined;\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\".concat(to, \"' from service '\").concat(_this.id, \"'.\"));\n } // tslint:disable-next-line:no-console\n\n\n if (!IS_PRODUCTION) {\n warn(false, \"Service '\".concat(_this.id, \"' has no parent: unable to send event \").concat(event.type));\n }\n\n return;\n }\n\n if ('machine' in target) {\n // perhaps those events should be rejected in the parent\n // but atm it doesn't have easy access to all of the information that is required to do it reliably\n if (_this.status !== InterpreterStatus.Stopped || _this.parent !== target || // we need to send events to the parent from exit handlers of a machine that reached its final state\n _this.state.done) {\n // Send SCXML events to machines\n var scxmlEvent = __assign(__assign({}, event), {\n name: event.name === error$1 ? \"\".concat(error(_this.id)) : event.name,\n origin: _this.sessionId\n });\n\n if (!immediate && _this.machine.config.predictableActionArguments) {\n _this._outgoingQueue.push([target, scxmlEvent]);\n } else {\n target.send(scxmlEvent);\n }\n }\n } else {\n // Send normal events to other targets\n if (!immediate && _this.machine.config.predictableActionArguments) {\n _this._outgoingQueue.push([target, event.data]);\n } else {\n target.send(event.data);\n }\n }\n };\n\n this._exec = function (action, context, _event, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = _this.machine.options.actions;\n }\n\n var actionOrExec = action.exec || getActionFunction(action.type, actionFunctionMap);\n var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, !_this.machine.config.predictableActionArguments ? {\n action: action,\n state: _this.state,\n _event: _event\n } : {\n action: action,\n _event: _event\n });\n } catch (err) {\n if (_this.parent) {\n _this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case raise:\n {\n // if raise action reached the interpreter then it's a delayed one\n var sendAction_1 = action;\n\n _this.defer(sendAction_1);\n\n break;\n }\n\n case send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n _this.defer(sendAction);\n\n return;\n } else {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to, _event === initEvent);\n } else {\n _this.send(sendAction._event);\n }\n }\n\n break;\n\n case cancel:\n _this.cancel(action.sendId);\n\n break;\n\n case start:\n {\n if (_this.status !== InterpreterStatus.Running) {\n return;\n }\n\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if ( // in v4 with `predictableActionArguments` invokes are called eagerly when the `this.state` still points to the previous state\n !_this.machine.config.predictableActionArguments && !_this.state.activities[activity.id || activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === ActionTypes.Invoke) {\n var invokeSource = toInvokeSource(activity.src);\n var serviceCreator = _this.machine.options.services ? _this.machine.options.services[invokeSource.type] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!IS_PRODUCTION) {\n warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\".concat(activity.src, \"' in in machine '\").concat(_this.machine.id, \"'). \") + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"No service found for invocation '\".concat(activity.src, \"' in machine '\").concat(_this.machine.id, \"'.\"));\n }\n\n return;\n }\n\n var resolvedData = data ? mapContext(data, context, _event) : undefined;\n\n if (typeof serviceCreator === 'string') {\n // TODO: warn\n return;\n }\n\n var source = isFunction(serviceCreator) ? serviceCreator(context, _event.data, {\n data: resolvedData,\n src: invokeSource,\n meta: activity.meta\n }) : serviceCreator;\n\n if (!source) {\n // TODO: warn?\n return;\n }\n\n var options = void 0;\n\n if (isMachine(source)) {\n source = resolvedData ? source.withContext(resolvedData) : source;\n options = {\n autoForward: autoForward\n };\n }\n\n _this.spawn(source, id, options);\n } else {\n _this.spawnActivity(activity);\n }\n\n break;\n }\n\n case stop:\n {\n _this.stopChild(action.activity.id);\n\n break;\n }\n\n case log:\n var _a = action,\n label = _a.label,\n value = _a.value;\n\n if (label) {\n _this.logger(label, value);\n } else {\n _this.logger(value);\n }\n\n break;\n\n default:\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for action type '\".concat(action.type, \"'\"));\n }\n\n break;\n }\n };\n\n var resolvedOptions = __assign(__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function () {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return provide(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n /**\r\n * @deprecated Use `.getSnapshot()` instead.\r\n */\n get: function () {\n if (!IS_PRODUCTION) {\n warn(this.status !== InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\".concat(this.id, \"'. Make sure the service is started first.\"));\n }\n\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = __values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if ((!this.machine.config.predictableActionArguments || // this is currently required to execute initial actions as the `initialState` gets cached\n // we can't just recompute it (and execute actions while doing so) because we try to preserve identity of actors created within initial assigns\n _event === initEvent) && this.options.execute) {\n this.execute(this.state);\n } else {\n var item = void 0;\n\n while (item = this._outgoingQueue.shift()) {\n item[0].send(item[1]);\n }\n } // Update children\n\n\n this.children.forEach(function (child) {\n _this.state.children[child.id] = child;\n }); // Dev tools\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = __values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = __values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = __values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n if (this.state.done) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.doneData ? mapContext(finalChildStateNode.doneData, state.context, _event) : undefined;\n this._doneEvent = doneInvoke(this.id, doneData);\n\n try {\n for (var _l = __values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(this._doneEvent);\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this._stop();\n\n this._stopChildren();\n\n registry.free(this.sessionId);\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this.status === InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, _, // TODO: error listener\n completeListener) {\n var _this = this;\n\n var observer = toObserver(nextListenerOrObserver, _, completeListener);\n this.listeners.add(observer.next); // Send current state to listener\n\n if (this.status !== InterpreterStatus.NotStarted) {\n observer.next(this.state);\n }\n\n var completeOnce = function () {\n _this.doneListeners.delete(completeOnce);\n\n _this.stopListeners.delete(completeOnce);\n\n observer.complete();\n };\n\n if (this.status === InterpreterStatus.Stopped) {\n observer.complete();\n } else {\n this.onDone(completeOnce);\n this.onStop(completeOnce);\n }\n\n return {\n unsubscribe: function () {\n _this.listeners.delete(observer.next);\n\n _this.doneListeners.delete(completeOnce);\n\n _this.stopListeners.delete(completeOnce);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n if (this.status === InterpreterStatus.Stopped && this._doneEvent) {\n listener(this._doneEvent);\n } else {\n this.doneListeners.add(listener);\n }\n\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners.delete(listener);\n this.eventListeners.delete(listener);\n this.sendListeners.delete(listener);\n this.stopListeners.delete(listener);\n this.doneListeners.delete(listener);\n this.contextListeners.delete(listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this.status === InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n } // yes, it's a hack but we need the related cache to be populated for some things to work (like delayed transitions)\n // this is usually called by `machine.getInitialState` but if we rehydrate from a state we might bypass this call\n // we also don't want to call this method here as it resolves the full initial state which might involve calling assign actions\n // and that could potentially lead to some unwanted side-effects (even such as creating some rogue actors)\n\n\n this.machine._init();\n\n registry.register(this.sessionId, this);\n this.initialized = true;\n this.status = InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : provide(this, function () {\n return isStateConfig(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, initEvent);\n });\n return this;\n };\n\n Interpreter.prototype._stopChildren = function () {\n // TODO: think about converting those to actions\n this.children.forEach(function (child) {\n if (isFunction(child.stop)) {\n child.stop();\n }\n });\n this.children.clear();\n };\n\n Interpreter.prototype._stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n try {\n for (var _f = __values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners.delete(listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = __values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners.delete(listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = __values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners.delete(listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = __values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners.delete(listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n if (!this.initialized) {\n // Interpreter already stopped; do nothing\n return this;\n }\n\n this.initialized = false;\n this.status = InterpreterStatus.Stopped;\n this._initialState = undefined;\n\n try {\n // we are going to stop within the current sync frame\n // so we can safely just cancel this here as nothing async should be fired anyway\n for (var _p = __values(Object.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n } // clear everything that might be enqueued\n\n\n this.scheduler.clear();\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n // TODO: add warning for stopping non-root interpreters\n var _this = this; // grab the current scheduler as it will be replaced in _stop\n\n\n var scheduler = this.scheduler;\n\n this._stop(); // let what is currently processed to be finished\n\n\n scheduler.schedule(function () {\n var _a;\n\n if ((_a = _this._state) === null || _a === void 0 ? void 0 : _a.done) {\n return;\n } // it feels weird to handle this here but we need to handle this even slightly \"out of band\"\n\n\n var _event = toSCXMLEvent({\n type: 'xstate.stop'\n });\n\n var nextState = provide(_this, function () {\n var exitActions = flatten(__spreadArray([], __read(_this.state.configuration), false).sort(function (a, b) {\n return b.order - a.order;\n }).map(function (stateNode) {\n return toActionObjects(stateNode.onExit, _this.machine.options.actions);\n }));\n\n var _a = __read(resolveActions(_this.machine, _this.state, _this.state.context, _event, [{\n type: 'exit',\n actions: exitActions\n }], _this.machine.config.predictableActionArguments ? _this._exec : undefined, _this.machine.config.predictableActionArguments || _this.machine.config.preserveActionOrder), 2),\n resolvedActions = _a[0],\n updatedContext = _a[1];\n\n var newState = new State({\n value: _this.state.value,\n context: updatedContext,\n _event: _event,\n _sessionid: _this.sessionId,\n historyValue: undefined,\n history: _this.state,\n actions: resolvedActions.filter(function (action) {\n return !isRaisableAction(action);\n }),\n activities: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {},\n done: _this.state.done,\n tags: _this.state.tags,\n machine: _this.machine\n });\n newState.changed = true;\n return newState;\n });\n\n _this.update(nextState, _event);\n\n _this._stopChildren();\n\n registry.free(_this.sessionId);\n });\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this.status === InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"\".concat(events.length, \" event(s) were sent to uninitialized service \\\"\").concat(this.machine.id, \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \").concat(JSON.stringify(event)));\n }\n } else if (this.status !== InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n \"\".concat(events.length, \" event(s) were sent to uninitialized service \\\"\").concat(this.machine.id, \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\"));\n }\n\n if (!events.length) {\n return;\n }\n\n var exec = !!this.machine.config.predictableActionArguments && this._exec;\n this.scheduler.schedule(function () {\n var e_11, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function (event_1) {\n var _event = toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = provide(_this, function () {\n return _this.machine.transition(nextState, _event, undefined, exec || undefined);\n });\n batchedActions.push.apply(batchedActions, __spreadArray([], __read(_this.machine.config.predictableActionArguments ? nextState.actions : nextState.actions.map(function (a) {\n return bindActionToState(a, nextState);\n })), false));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n\n Interpreter.prototype._nextState = function (event, exec) {\n var _this = this;\n\n if (exec === void 0) {\n exec = !!this.machine.config.predictableActionArguments && this._exec;\n }\n\n var _event = toSCXMLEvent(event);\n\n if (_event.name.indexOf(errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = provide(this, function () {\n return _this.machine.transition(_this.state, _event, undefined, exec || undefined);\n });\n return nextState;\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n return this._nextState(event, false);\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_12, _a;\n\n try {\n for (var _b = __values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\".concat(event, \"' from interpreter '\").concat(this.id, \"' to nonexistant child '\").concat(id, \"'.\"));\n }\n\n child.send(event);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n var timerId = this.clock.setTimeout(function () {\n if ('to' in sendAction && sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to, true);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n\n if (sendAction.id) {\n this.delayedEventsMap[sendAction.id] = timerId;\n }\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = this.machine.options.actions;\n }\n\n this._exec(action, state.context, state._event, actionFunctionMap);\n };\n\n Interpreter.prototype.removeChild = function (childId) {\n var _a;\n\n this.children.delete(childId);\n this.forwardTo.delete(childId); // this.state might not exist at the time this is called,\n // such as when a child is added then removed while initializing the state\n\n (_a = this.state) === null || _a === void 0 ? true : delete _a.children[childId];\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.removeChild(childId);\n\n if (isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (this.status !== InterpreterStatus.Running) {\n return createDeferredActor(entity, name);\n }\n\n if (isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (isSpawnedActor(entity)) {\n return this.spawnActor(entity, name);\n } else if (isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (isMachine(entity)) {\n return this.spawnMachine(entity, __assign(__assign({}, options), {\n id: name\n }));\n } else if (isBehavior(entity)) {\n return this.spawnBehavior(entity, name);\n } else {\n throw new Error(\"Unable to spawn entity \\\"\".concat(name, \"\\\" of type \\\"\").concat(typeof entity, \"\\\".\"));\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, __assign(__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n childService.onDone(function (doneEvent) {\n _this.removeChild(childService.id);\n\n _this.send(toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n return actor;\n };\n\n Interpreter.prototype.spawnBehavior = function (behavior, id) {\n var actorRef = spawnBehavior(behavior, {\n id: id,\n parent: this\n });\n this.children.set(id, actorRef);\n return actorRef;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _a;\n\n var _this = this;\n\n var canceled = false;\n var resolvedData;\n promise.then(function (response) {\n if (!canceled) {\n resolvedData = response;\n\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n _this.removeChild(id);\n\n var errorEvent = error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n var observer = toObserver(next, handleError, complete);\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n observer.next(response);\n\n if (unsubscribed) {\n return;\n }\n\n observer.complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n observer.error(err);\n });\n return {\n unsubscribe: function () {\n return unsubscribed = true;\n }\n };\n },\n stop: function () {\n canceled = true;\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return resolvedData;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _a;\n\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n var emitted;\n\n var receive = function (e) {\n emitted = e;\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(toSCXMLEvent(e, {\n origin: id\n }));\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(error(id, err));\n }\n\n if (isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = (_a = {\n id: id,\n send: function (event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function (next) {\n var observer = toObserver(next);\n listeners.add(observer.next);\n return {\n unsubscribe: function () {\n listeners.delete(observer.next);\n }\n };\n },\n stop: function () {\n canceled = true;\n\n if (isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return emitted;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _a;\n\n var _this = this;\n\n var emitted;\n var subscription = source.subscribe(function (value) {\n emitted = value;\n\n _this.send(toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(error(id, err), {\n origin: id\n }));\n }, function () {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id), {\n origin: id\n }));\n });\n var actor = (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function () {\n return subscription.unsubscribe();\n },\n getSnapshot: function () {\n return emitted;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor, name) {\n this.children.set(name, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for activity '\".concat(activity.type, \"'\"));\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n var _a;\n\n this.children.set(id, (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a));\n };\n\n Interpreter.prototype.attachDev = function () {\n var global = getGlobal();\n\n if (this.options.devTools && global) {\n if (global.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = typeof this.options.devTools === 'object' ? this.options.devTools : undefined;\n this.devTools = global.__REDUX_DEVTOOLS_EXTENSION__.connect(__assign(__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function (state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: __assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[symbolObservable] = function () {\n return this;\n };\n\n Interpreter.prototype.getSnapshot = function () {\n if (this.status === InterpreterStatus.NotStarted) {\n return this.initialState;\n }\n\n return this._state;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function (fn, ms) {\n return setTimeout(fn, ms);\n },\n clearTimeout: function (id) {\n return clearTimeout(id);\n }\n },\n logger: /*#__PURE__*/console.log.bind(console),\n devTools: false\n };\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar resolveSpawnOptions = function (nameOrOptions) {\n if (isString(nameOrOptions)) {\n return __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return __assign(__assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return consume(function (service) {\n if (!IS_PRODUCTION) {\n var isLazyEntity = isMachine(entity) || isFunction(entity);\n warn(!!service || isLazyEntity, \"Attempted to spawn an Actor (ID: \\\"\".concat(isMachine(entity) ? entity.id : 'undefined', \"\\\") outside of a service. This will have no effect.\"));\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return createDeferredActor(entity, resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexport { Interpreter, InterpreterStatus, interpret, spawn };\n","import * as React from 'react';\nexport default function useConstant(fn) {\n var ref = React.useRef();\n if (!ref.current) {\n ref.current = { v: fn() };\n }\n return ref.current.v;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { useEffect, useState } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { interpret, InterpreterStatus, State, toObserver } from 'xstate';\nimport useConstant from './useConstant';\nexport function useIdleInterpreter(getMachine, options) {\n var machine = useConstant(function () {\n return typeof getMachine === 'function' ? getMachine() : getMachine;\n });\n if (process.env.NODE_ENV !== 'production' &&\n typeof getMachine !== 'function') {\n var _a = __read(useState(machine), 1), initialMachine = _a[0];\n if (getMachine !== initialMachine) {\n console.warn('Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\\n' +\n 'Please make sure that you pass the same Machine as argument each time.');\n }\n }\n var context = options.context, guards = options.guards, actions = options.actions, activities = options.activities, services = options.services, delays = options.delays, rehydratedState = options.state, interpreterOptions = __rest(options, [\"context\", \"guards\", \"actions\", \"activities\", \"services\", \"delays\", \"state\"]);\n var service = useConstant(function () {\n var machineConfig = {\n context: context,\n guards: guards,\n actions: actions,\n activities: activities,\n services: services,\n delays: delays\n };\n var machineWithConfig = machine.withConfig(machineConfig, function () { return (__assign(__assign({}, machine.context), context)); });\n return interpret(machineWithConfig, interpreterOptions);\n });\n // Make sure options are kept updated when they change.\n // This mutation assignment is safe because the service instance is only used\n // in one place -- this hook's caller.\n useIsomorphicLayoutEffect(function () {\n Object.assign(service.machine.options.actions, actions);\n Object.assign(service.machine.options.guards, guards);\n Object.assign(service.machine.options.activities, activities);\n Object.assign(service.machine.options.services, services);\n Object.assign(service.machine.options.delays, delays);\n }, [actions, guards, activities, services, delays]);\n return service;\n}\nexport function useInterpret(getMachine) {\n var _a = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n _a[_i - 1] = arguments[_i];\n }\n var _b = __read(_a, 2), _c = _b[0], options = _c === void 0 ? {} : _c, observerOrListener = _b[1];\n var service = useIdleInterpreter(getMachine, options);\n useEffect(function () {\n if (!observerOrListener) {\n return;\n }\n var sub = service.subscribe(toObserver(observerOrListener));\n return function () {\n sub.unsubscribe();\n };\n }, [observerOrListener]);\n useEffect(function () {\n var rehydratedState = options.state;\n service.start(rehydratedState ? State.create(rehydratedState) : undefined);\n return function () {\n service.stop();\n service.status = InterpreterStatus.NotStarted;\n };\n }, []);\n return service;\n}\n","import { Hub } from 'aws-amplify/utils';\nimport '@aws-amplify/core/internals/utils';\nimport '../../utils/setUserAgent/constants.mjs';\nimport { isFunction } from '../../utils/utils.mjs';\n\n/**\n * Handles Amplify JS Auth hub events, by forwarding hub events as appropriate\n * xstate events.\n */\nconst defaultAuthHubHandler = ({ payload }, service, options) => {\n const { event } = payload;\n const { send } = service;\n const { onSignIn, onSignOut } = options ?? {};\n switch (event) {\n case 'signedIn': {\n if (isFunction(onSignIn)) {\n onSignIn(payload);\n }\n break;\n }\n case 'signInWithRedirect': {\n send('SIGN_IN_WITH_REDIRECT');\n break;\n }\n case 'signedOut':\n case 'tokenRefresh_failure': {\n if (event === 'signedOut' && isFunction(onSignOut)) {\n onSignOut();\n }\n send('SIGN_OUT');\n break;\n }\n }\n};\n/**\n * Listens to external auth Hub events and sends corresponding event to\n * the `service.send` of interest\n *\n * @param service - contains state machine `send` function\n * @param handler - auth event handler\n * @returns function that unsubscribes to the hub evenmt\n */\nconst listenToAuthHub = (service, handler = defaultAuthHubHandler) => {\n const eventHandler = (data) => handler(data, service);\n return Hub.listen('auth', eventHandler, 'authenticator-hub-handler');\n};\n\nexport { defaultAuthHubHandler, listenToAuthHub };\n","import { __assign, __rest } from './_virtual/_tslib.js';\nimport './types.js';\nimport { invoke } from './actionTypes.js';\nimport './utils.js';\nimport './environment.js';\n\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n var simpleSrc = {\n type: src\n };\n\n simpleSrc.toString = function () {\n return src;\n }; // v4 compat - TODO: remove in v5\n\n\n return simpleSrc;\n }\n\n return src;\n}\nfunction toInvokeDefinition(invokeConfig) {\n return __assign(__assign({\n type: invoke\n }, invokeConfig), {\n toJSON: function () {\n invokeConfig.onDone;\n invokeConfig.onError;\n var invokeDef = __rest(invokeConfig, [\"onDone\", \"onError\"]);\n\n return __assign(__assign({}, invokeDef), {\n type: invoke,\n src: toInvokeSource(invokeConfig.src)\n });\n }\n });\n}\n\nexport { toInvokeDefinition, toInvokeSource };\n","import { __assign, __spreadArray, __read, __values, __rest } from './_virtual/_tslib.js';\nimport { isFunction, mapValues, isArray, flatten, toArray, toStateValue, isString, getEventType, toSCXMLEvent, matchesState, path, evaluateGuard, mapContext, isRaisableAction, pathToStateValue, isBuiltInEvent, partition, updateHistoryValue, toStatePath, mapFilterValues, warn, toStatePaths, nestedPath, normalizeTarget, toGuard, toTransitionConfigArray, isMachine, createInvokeId } from './utils.js';\nimport { State, stateValuesEqual } from './State.js';\nimport { start as start$1, stop as stop$1, invoke, update, nullEvent } from './actionTypes.js';\nimport { done, start, toActionObjects, raise, stop, resolveActions, doneInvoke, error, toActionObject, toActivityDefinition, after, send, cancel, initEvent } from './actions.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { STATE_DELIMITER } from './constants.js';\nimport { getAllStateNodes, getConfiguration, isInFinalState, getTagsFromConfiguration, has, getChildren, getValue, isLeafNode, getAllChildren } from './stateUtils.js';\nimport { createInvocableActor } from './Actor.js';\nimport { toInvokeDefinition } from './invokeUtils.js';\n\nvar NULL_EVENT = '';\nvar STATE_IDENTIFIER = '#';\nvar WILDCARD = '*';\nvar EMPTY_OBJECT = {};\n\nvar isStateId = function (str) {\n return str[0] === STATE_IDENTIFIER;\n};\n\nvar createDefaultOptions = function () {\n return {\n actions: {},\n guards: {},\n services: {},\n activities: {},\n delays: {}\n };\n};\n\nvar validateArrayifiedTransitions = function (stateNode, event, transitions) {\n var hasNonLastUnguardedTarget = transitions.slice(0, -1).some(function (transition) {\n return !('cond' in transition) && !('in' in transition) && (isString(transition.target) || isMachine(transition.target));\n });\n var eventText = event === NULL_EVENT ? 'the transient event' : \"event '\".concat(event, \"'\");\n warn(!hasNonLastUnguardedTarget, \"One or more transitions for \".concat(eventText, \" on state '\").concat(stateNode.id, \"' are unreachable. \") + \"Make sure that the default transition is the last one defined.\");\n};\n\nvar StateNode =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function StateNode(\n /**\r\n * The raw config used to create the machine.\r\n */\n config, options,\n /**\r\n * The initial extended state\r\n */\n _context, // TODO: this is unsafe, but we're removing it in v5 anyway\n _stateInfo) {\n if (_context === void 0) {\n _context = 'context' in config ? config.context : undefined;\n }\n\n var _this = this;\n\n var _a;\n\n this.config = config;\n this._context = _context;\n /**\r\n * The order this state node appears. Corresponds to the implicit SCXML document order.\r\n */\n\n this.order = -1;\n this.__xstatenode = true;\n this.__cache = {\n events: undefined,\n relativeValue: new Map(),\n initialStateValue: undefined,\n initialState: undefined,\n on: undefined,\n transitions: undefined,\n candidates: {},\n delayedTransitions: undefined\n };\n this.idMap = {};\n this.tags = [];\n this.options = Object.assign(createDefaultOptions(), options);\n this.parent = _stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.parent;\n this.key = this.config.key || (_stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.key) || this.config.id || '(machine)';\n this.machine = this.parent ? this.parent.machine : this;\n this.path = this.parent ? this.parent.path.concat(this.key) : [];\n this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : STATE_DELIMITER);\n this.id = this.config.id || __spreadArray([this.machine.key], __read(this.path), false).join(this.delimiter);\n this.version = this.parent ? this.parent.version : this.config.version;\n this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && Object.keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');\n this.schema = this.parent ? this.machine.schema : (_a = this.config.schema) !== null && _a !== void 0 ? _a : {};\n this.description = this.config.description;\n\n if (!IS_PRODUCTION) {\n warn(!('parallel' in this.config), \"The \\\"parallel\\\" property is deprecated and will be removed in version 4.1. \".concat(this.config.parallel ? \"Replace with `type: 'parallel'`\" : \"Use `type: '\".concat(this.type, \"'`\"), \" in the config for state node '\").concat(this.id, \"' instead.\"));\n }\n\n this.initial = this.config.initial;\n this.states = this.config.states ? mapValues(this.config.states, function (stateConfig, key) {\n var _a;\n\n var stateNode = new StateNode(stateConfig, {}, undefined, {\n parent: _this,\n key: key\n });\n Object.assign(_this.idMap, __assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));\n return stateNode;\n }) : EMPTY_OBJECT; // Document order\n\n var order = 0;\n\n function dfs(stateNode) {\n var e_1, _a;\n\n stateNode.order = order++;\n\n try {\n for (var _b = __values(getAllChildren(stateNode)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n dfs(child);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n dfs(this); // History config\n\n this.history = this.config.history === true ? 'shallow' : this.config.history || false;\n this._transient = !!this.config.always || (!this.config.on ? false : Array.isArray(this.config.on) ? this.config.on.some(function (_a) {\n var event = _a.event;\n return event === NULL_EVENT;\n }) : NULL_EVENT in this.config.on);\n this.strict = !!this.config.strict; // TODO: deprecate (entry)\n\n this.onEntry = toArray(this.config.entry || this.config.onEntry).map(function (action) {\n return toActionObject(action);\n }); // TODO: deprecate (exit)\n\n this.onExit = toArray(this.config.exit || this.config.onExit).map(function (action) {\n return toActionObject(action);\n });\n this.meta = this.config.meta;\n this.doneData = this.type === 'final' ? this.config.data : undefined;\n this.invoke = toArray(this.config.invoke).map(function (invokeConfig, i) {\n var _a, _b;\n\n if (isMachine(invokeConfig)) {\n var invokeId = createInvokeId(_this.id, i);\n _this.machine.options.services = __assign((_a = {}, _a[invokeId] = invokeConfig, _a), _this.machine.options.services);\n return toInvokeDefinition({\n src: invokeId,\n id: invokeId\n });\n } else if (isString(invokeConfig.src)) {\n var invokeId = invokeConfig.id || createInvokeId(_this.id, i);\n return toInvokeDefinition(__assign(__assign({}, invokeConfig), {\n id: invokeId,\n src: invokeConfig.src\n }));\n } else if (isMachine(invokeConfig.src) || isFunction(invokeConfig.src)) {\n var invokeId = invokeConfig.id || createInvokeId(_this.id, i);\n _this.machine.options.services = __assign((_b = {}, _b[invokeId] = invokeConfig.src, _b), _this.machine.options.services);\n return toInvokeDefinition(__assign(__assign({\n id: invokeId\n }, invokeConfig), {\n src: invokeId\n }));\n } else {\n var invokeSource = invokeConfig.src;\n return toInvokeDefinition(__assign(__assign({\n id: createInvokeId(_this.id, i)\n }, invokeConfig), {\n src: invokeSource\n }));\n }\n });\n this.activities = toArray(this.config.activities).concat(this.invoke).map(function (activity) {\n return toActivityDefinition(activity);\n });\n this.transition = this.transition.bind(this);\n this.tags = toArray(this.config.tags); // TODO: this is the real fix for initialization once\n // state node getters are deprecated\n // if (!this.parent) {\n // this._init();\n // }\n }\n\n StateNode.prototype._init = function () {\n if (this.__cache.transitions) {\n return;\n }\n\n getAllStateNodes(this).forEach(function (stateNode) {\n return stateNode.on;\n });\n };\n /**\r\n * Clones this state machine with custom options and context.\r\n *\r\n * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.\r\n * @param context Custom context (will override predefined context)\r\n */\n\n\n StateNode.prototype.withConfig = function (options, context) {\n var _a = this.options,\n actions = _a.actions,\n activities = _a.activities,\n guards = _a.guards,\n services = _a.services,\n delays = _a.delays;\n return new StateNode(this.config, {\n actions: __assign(__assign({}, actions), options.actions),\n activities: __assign(__assign({}, activities), options.activities),\n guards: __assign(__assign({}, guards), options.guards),\n services: __assign(__assign({}, services), options.services),\n delays: __assign(__assign({}, delays), options.delays)\n }, context !== null && context !== void 0 ? context : this.context);\n };\n /**\r\n * Clones this state machine with custom context.\r\n *\r\n * @param context Custom context (will override predefined context, not recursive)\r\n */\n\n\n StateNode.prototype.withContext = function (context) {\n return new StateNode(this.config, this.options, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"context\", {\n get: function () {\n return isFunction(this._context) ? this._context() : this._context;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"definition\", {\n /**\r\n * The well-structured state node definition.\r\n */\n get: function () {\n return {\n id: this.id,\n key: this.key,\n version: this.version,\n context: this.context,\n type: this.type,\n initial: this.initial,\n history: this.history,\n states: mapValues(this.states, function (state) {\n return state.definition;\n }),\n on: this.on,\n transitions: this.transitions,\n entry: this.onEntry,\n exit: this.onExit,\n activities: this.activities || [],\n meta: this.meta,\n order: this.order || -1,\n data: this.doneData,\n invoke: this.invoke,\n description: this.description,\n tags: this.tags\n };\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.toJSON = function () {\n return this.definition;\n };\n\n Object.defineProperty(StateNode.prototype, \"on\", {\n /**\r\n * The mapping of events to transitions.\r\n */\n get: function () {\n if (this.__cache.on) {\n return this.__cache.on;\n }\n\n var transitions = this.transitions;\n return this.__cache.on = transitions.reduce(function (map, transition) {\n map[transition.eventType] = map[transition.eventType] || [];\n map[transition.eventType].push(transition);\n return map;\n }, {});\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"after\", {\n get: function () {\n return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"transitions\", {\n /**\r\n * All the transitions that can be taken from this state node.\r\n */\n get: function () {\n return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.getCandidates = function (eventName) {\n if (this.__cache.candidates[eventName]) {\n return this.__cache.candidates[eventName];\n }\n\n var transient = eventName === NULL_EVENT;\n var candidates = this.transitions.filter(function (transition) {\n var sameEventType = transition.eventType === eventName; // null events should only match against eventless transitions\n\n return transient ? sameEventType : sameEventType || transition.eventType === WILDCARD;\n });\n this.__cache.candidates[eventName] = candidates;\n return candidates;\n };\n /**\r\n * All delayed transitions from the config.\r\n */\n\n\n StateNode.prototype.getDelayedTransitions = function () {\n var _this = this;\n\n var afterConfig = this.config.after;\n\n if (!afterConfig) {\n return [];\n }\n\n var mutateEntryExit = function (delay, i) {\n var delayRef = isFunction(delay) ? \"\".concat(_this.id, \":delay[\").concat(i, \"]\") : delay;\n var eventType = after(delayRef, _this.id);\n\n _this.onEntry.push(send(eventType, {\n delay: delay\n }));\n\n _this.onExit.push(cancel(eventType));\n\n return eventType;\n };\n\n var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {\n var eventType = mutateEntryExit(transition.delay, i);\n return __assign(__assign({}, transition), {\n event: eventType\n });\n }) : flatten(Object.keys(afterConfig).map(function (delay, i) {\n var configTransition = afterConfig[delay];\n var resolvedTransition = isString(configTransition) ? {\n target: configTransition\n } : configTransition;\n var resolvedDelay = !isNaN(+delay) ? +delay : delay;\n var eventType = mutateEntryExit(resolvedDelay, i);\n return toArray(resolvedTransition).map(function (transition) {\n return __assign(__assign({}, transition), {\n event: eventType,\n delay: resolvedDelay\n });\n });\n }));\n return delayedTransitions.map(function (delayedTransition) {\n var delay = delayedTransition.delay;\n return __assign(__assign({}, _this.formatTransition(delayedTransition)), {\n delay: delay\n });\n });\n };\n /**\r\n * Returns the state nodes represented by the current state value.\r\n *\r\n * @param state The state value or State instance\r\n */\n\n\n StateNode.prototype.getStateNodes = function (state) {\n var _a;\n\n var _this = this;\n\n if (!state) {\n return [];\n }\n\n var stateValue = state instanceof State ? state.value : toStateValue(state, this.delimiter);\n\n if (isString(stateValue)) {\n var initialStateValue = this.getStateNode(stateValue).initial;\n return initialStateValue !== undefined ? this.getStateNodes((_a = {}, _a[stateValue] = initialStateValue, _a)) : [this, this.states[stateValue]];\n }\n\n var subStateKeys = Object.keys(stateValue);\n var subStateNodes = [this];\n subStateNodes.push.apply(subStateNodes, __spreadArray([], __read(flatten(subStateKeys.map(function (subStateKey) {\n return _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);\n }))), false));\n return subStateNodes;\n };\n /**\r\n * Returns `true` if this state node explicitly handles the given event.\r\n *\r\n * @param event The event in question\r\n */\n\n\n StateNode.prototype.handles = function (event) {\n var eventType = getEventType(event);\n return this.events.includes(eventType);\n };\n /**\r\n * Resolves the given `state` to a new `State` instance relative to this machine.\r\n *\r\n * This ensures that `.events` and `.nextEvents` represent the correct values.\r\n *\r\n * @param state The state to resolve\r\n */\n\n\n StateNode.prototype.resolveState = function (state) {\n var stateFromConfig = state instanceof State ? state : State.create(state);\n var configuration = Array.from(getConfiguration([], this.getStateNodes(stateFromConfig.value)));\n return new State(__assign(__assign({}, stateFromConfig), {\n value: this.resolve(stateFromConfig.value),\n configuration: configuration,\n done: isInFinalState(configuration, this),\n tags: getTagsFromConfiguration(configuration),\n machine: this.machine\n }));\n };\n\n StateNode.prototype.transitionLeafNode = function (stateValue, state, _event) {\n var stateNode = this.getStateNode(stateValue);\n var next = stateNode.next(state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionCompoundNode = function (stateValue, state, _event) {\n var subStateKeys = Object.keys(stateValue);\n var stateNode = this.getStateNode(subStateKeys[0]);\n\n var next = stateNode._transition(stateValue[subStateKeys[0]], state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionParallelNode = function (stateValue, state, _event) {\n var e_2, _a;\n\n var transitionMap = {};\n\n try {\n for (var _b = __values(Object.keys(stateValue)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var subStateKey = _c.value;\n var subStateValue = stateValue[subStateKey];\n\n if (!subStateValue) {\n continue;\n }\n\n var subStateNode = this.getStateNode(subStateKey);\n\n var next = subStateNode._transition(subStateValue, state, _event);\n\n if (next) {\n transitionMap[subStateKey] = next;\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n var stateTransitions = Object.keys(transitionMap).map(function (key) {\n return transitionMap[key];\n });\n var enabledTransitions = flatten(stateTransitions.map(function (st) {\n return st.transitions;\n }));\n var willTransition = stateTransitions.some(function (st) {\n return st.transitions.length > 0;\n });\n\n if (!willTransition) {\n return this.next(state, _event);\n }\n\n var configuration = flatten(Object.keys(transitionMap).map(function (key) {\n return transitionMap[key].configuration;\n }));\n return {\n transitions: enabledTransitions,\n exitSet: flatten(stateTransitions.map(function (t) {\n return t.exitSet;\n })),\n configuration: configuration,\n source: state,\n actions: flatten(Object.keys(transitionMap).map(function (key) {\n return transitionMap[key].actions;\n }))\n };\n };\n\n StateNode.prototype._transition = function (stateValue, state, _event) {\n // leaf node\n if (isString(stateValue)) {\n return this.transitionLeafNode(stateValue, state, _event);\n } // hierarchical node\n\n\n if (Object.keys(stateValue).length === 1) {\n return this.transitionCompoundNode(stateValue, state, _event);\n } // orthogonal node\n\n\n return this.transitionParallelNode(stateValue, state, _event);\n };\n\n StateNode.prototype.getTransitionData = function (state, event) {\n return this._transition(state.value, state, toSCXMLEvent(event));\n };\n\n StateNode.prototype.next = function (state, _event) {\n var e_3, _a;\n\n var _this = this;\n\n var eventName = _event.name;\n var actions = [];\n var nextStateNodes = [];\n var selectedTransition;\n\n try {\n for (var _b = __values(this.getCandidates(eventName)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var candidate = _c.value;\n var cond = candidate.cond,\n stateIn = candidate.in;\n var resolvedContext = state.context;\n var isInState = stateIn ? isString(stateIn) && isStateId(stateIn) ? // Check if in state by ID\n state.matches(toStateValue(this.getStateNodeById(stateIn).path, this.delimiter)) : // Check if in state by relative grandparent\n matchesState(toStateValue(stateIn, this.delimiter), path(this.path.slice(0, -2))(state.value)) : true;\n var guardPassed = false;\n\n try {\n guardPassed = !cond || evaluateGuard(this.machine, cond, resolvedContext, _event, state);\n } catch (err) {\n throw new Error(\"Unable to evaluate guard '\".concat(cond.name || cond.type, \"' in transition for event '\").concat(eventName, \"' in state node '\").concat(this.id, \"':\\n\").concat(err.message));\n }\n\n if (guardPassed && isInState) {\n if (candidate.target !== undefined) {\n nextStateNodes = candidate.target;\n }\n\n actions.push.apply(actions, __spreadArray([], __read(candidate.actions), false));\n selectedTransition = candidate;\n break;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n if (!selectedTransition) {\n return undefined;\n }\n\n if (!nextStateNodes.length) {\n return {\n transitions: [selectedTransition],\n exitSet: [],\n configuration: state.value ? [this] : [],\n source: state,\n actions: actions\n };\n }\n\n var allNextStateNodes = flatten(nextStateNodes.map(function (stateNode) {\n return _this.getRelativeStateNodes(stateNode, state.historyValue);\n }));\n var isInternal = !!selectedTransition.internal;\n return {\n transitions: [selectedTransition],\n exitSet: isInternal ? [] : flatten(nextStateNodes.map(function (targetNode) {\n return _this.getPotentiallyReenteringNodes(targetNode);\n })),\n configuration: allNextStateNodes,\n source: state,\n actions: actions\n };\n }; // even though the name of this function mentions reentry nodes\n // we are pushing its result into `exitSet`\n // that's because what we exit might be reentered (it's an invariant of reentrancy)\n\n\n StateNode.prototype.getPotentiallyReenteringNodes = function (targetNode) {\n if (this.order < targetNode.order) {\n return [this];\n }\n\n var nodes = [];\n var marker = this;\n var possibleAncestor = targetNode;\n\n while (marker && marker !== possibleAncestor) {\n nodes.push(marker);\n marker = marker.parent;\n }\n\n if (marker !== possibleAncestor) {\n // we never got to `possibleAncestor`, therefore the initial `marker` \"escapes\" it\n // it's in a different part of the tree so no states will be reentered for such an external transition\n return [];\n }\n\n nodes.push(possibleAncestor);\n return nodes;\n };\n\n StateNode.prototype.getActions = function (resolvedConfig, isDone, transition, currentContext, _event, prevState, predictableExec) {\n var e_4, _a, e_5, _b;\n\n var _this = this;\n\n var prevConfig = prevState ? getConfiguration([], this.getStateNodes(prevState.value)) : [];\n var entrySet = new Set();\n\n try {\n for (var _c = __values(Array.from(resolvedConfig).sort(function (a, b) {\n return a.order - b.order;\n })), _d = _c.next(); !_d.done; _d = _c.next()) {\n var sn = _d.value;\n\n if (!has(prevConfig, sn) || has(transition.exitSet, sn) || sn.parent && entrySet.has(sn.parent)) {\n entrySet.add(sn);\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n try {\n for (var prevConfig_1 = __values(prevConfig), prevConfig_1_1 = prevConfig_1.next(); !prevConfig_1_1.done; prevConfig_1_1 = prevConfig_1.next()) {\n var sn = prevConfig_1_1.value;\n\n if (!has(resolvedConfig, sn) || has(transition.exitSet, sn.parent)) {\n transition.exitSet.push(sn);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (prevConfig_1_1 && !prevConfig_1_1.done && (_b = prevConfig_1.return)) _b.call(prevConfig_1);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n transition.exitSet.sort(function (a, b) {\n return b.order - a.order;\n });\n var entryStates = Array.from(entrySet).sort(function (a, b) {\n return a.order - b.order;\n });\n var exitStates = new Set(transition.exitSet);\n var doneEvents = flatten(entryStates.map(function (sn) {\n var events = [];\n\n if (sn.type !== 'final') {\n return events;\n }\n\n var parent = sn.parent;\n\n if (!parent.parent) {\n return events;\n }\n\n events.push(done(sn.id, sn.doneData), // TODO: deprecate - final states should not emit done events for their own state.\n done(parent.id, sn.doneData ? mapContext(sn.doneData, currentContext, _event) : undefined));\n var grandparent = parent.parent;\n\n if (grandparent.type === 'parallel') {\n if (getChildren(grandparent).every(function (parentNode) {\n return isInFinalState(transition.configuration, parentNode);\n })) {\n events.push(done(grandparent.id));\n }\n }\n\n return events;\n }));\n var entryActions = entryStates.map(function (stateNode) {\n var entryActions = stateNode.onEntry;\n var invokeActions = stateNode.activities.map(function (activity) {\n return start(activity);\n });\n return {\n type: 'entry',\n actions: toActionObjects(predictableExec ? __spreadArray(__spreadArray([], __read(entryActions), false), __read(invokeActions), false) : __spreadArray(__spreadArray([], __read(invokeActions), false), __read(entryActions), false), _this.machine.options.actions)\n };\n }).concat({\n type: 'state_done',\n actions: doneEvents.map(function (event) {\n return raise(event);\n })\n });\n var exitActions = Array.from(exitStates).map(function (stateNode) {\n return {\n type: 'exit',\n actions: toActionObjects(__spreadArray(__spreadArray([], __read(stateNode.onExit), false), __read(stateNode.activities.map(function (activity) {\n return stop(activity);\n })), false), _this.machine.options.actions)\n };\n });\n var actions = exitActions.concat({\n type: 'transition',\n actions: toActionObjects(transition.actions, this.machine.options.actions)\n }).concat(entryActions);\n\n if (isDone) {\n var stopActions = toActionObjects(flatten(__spreadArray([], __read(resolvedConfig), false).sort(function (a, b) {\n return b.order - a.order;\n }).map(function (stateNode) {\n return stateNode.onExit;\n })), this.machine.options.actions).filter(function (action) {\n return !isRaisableAction(action);\n });\n return actions.concat({\n type: 'stop',\n actions: stopActions\n });\n }\n\n return actions;\n };\n /**\r\n * Determines the next state given the current `state` and sent `event`.\r\n *\r\n * @param state The current State instance or state value\r\n * @param event The event that was sent at the current state\r\n * @param context The current context (extended state) of the current state\r\n */\n\n\n StateNode.prototype.transition = function (state, event, context, exec) {\n if (state === void 0) {\n state = this.initialState;\n }\n\n var _event = toSCXMLEvent(event);\n\n var currentState;\n\n if (state instanceof State) {\n currentState = context === undefined ? state : this.resolveState(State.from(state, context));\n } else {\n var resolvedStateValue = isString(state) ? this.resolve(pathToStateValue(this.getResolvedPath(state))) : this.resolve(state);\n var resolvedContext = context !== null && context !== void 0 ? context : this.machine.context;\n currentState = this.resolveState(State.from(resolvedStateValue, resolvedContext));\n }\n\n if (!IS_PRODUCTION && _event.name === WILDCARD) {\n throw new Error(\"An event cannot have the wildcard type ('\".concat(WILDCARD, \"')\"));\n }\n\n if (this.strict) {\n if (!this.events.includes(_event.name) && !isBuiltInEvent(_event.name)) {\n throw new Error(\"Machine '\".concat(this.id, \"' does not accept event '\").concat(_event.name, \"'\"));\n }\n }\n\n var stateTransition = this._transition(currentState.value, currentState, _event) || {\n transitions: [],\n configuration: [],\n exitSet: [],\n source: currentState,\n actions: []\n };\n var prevConfig = getConfiguration([], this.getStateNodes(currentState.value));\n var resolvedConfig = stateTransition.configuration.length ? getConfiguration(prevConfig, stateTransition.configuration) : prevConfig;\n stateTransition.configuration = __spreadArray([], __read(resolvedConfig), false);\n return this.resolveTransition(stateTransition, currentState, currentState.context, exec, _event);\n };\n\n StateNode.prototype.resolveRaisedTransition = function (state, _event, originalEvent, predictableExec) {\n var _a;\n\n var currentActions = state.actions;\n state = this.transition(state, _event, undefined, predictableExec); // Save original event to state\n // TODO: this should be the raised event! Delete in V5 (breaking)\n\n state._event = originalEvent;\n state.event = originalEvent.data;\n\n (_a = state.actions).unshift.apply(_a, __spreadArray([], __read(currentActions), false));\n\n return state;\n };\n\n StateNode.prototype.resolveTransition = function (stateTransition, currentState, context, predictableExec, _event) {\n var e_6, _a, e_7, _b;\n\n var _this = this;\n\n if (_event === void 0) {\n _event = initEvent;\n }\n\n var configuration = stateTransition.configuration; // Transition will \"apply\" if:\n // - this is the initial state (there is no current state)\n // - OR there are transitions\n\n var willTransition = !currentState || stateTransition.transitions.length > 0;\n var resolvedConfiguration = willTransition ? stateTransition.configuration : currentState ? currentState.configuration : [];\n var isDone = isInFinalState(resolvedConfiguration, this);\n var resolvedStateValue = willTransition ? getValue(this.machine, configuration) : undefined;\n var historyValue = currentState ? currentState.historyValue ? currentState.historyValue : stateTransition.source ? this.machine.historyValue(currentState.value) : undefined : undefined;\n var actionBlocks = this.getActions(new Set(resolvedConfiguration), isDone, stateTransition, context, _event, currentState, predictableExec);\n var activities = currentState ? __assign({}, currentState.activities) : {};\n\n try {\n for (var actionBlocks_1 = __values(actionBlocks), actionBlocks_1_1 = actionBlocks_1.next(); !actionBlocks_1_1.done; actionBlocks_1_1 = actionBlocks_1.next()) {\n var block = actionBlocks_1_1.value;\n\n try {\n for (var _c = (e_7 = void 0, __values(block.actions)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var action = _d.value;\n\n if (action.type === start$1) {\n activities[action.activity.id || action.activity.type] = action;\n } else if (action.type === stop$1) {\n activities[action.activity.id || action.activity.type] = false;\n }\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (actionBlocks_1_1 && !actionBlocks_1_1.done && (_a = actionBlocks_1.return)) _a.call(actionBlocks_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n var _e = __read(resolveActions(this, currentState, context, _event, actionBlocks, predictableExec, this.machine.config.predictableActionArguments || this.machine.config.preserveActionOrder), 2),\n resolvedActions = _e[0],\n updatedContext = _e[1];\n\n var _f = __read(partition(resolvedActions, isRaisableAction), 2),\n raisedEvents = _f[0],\n nonRaisedActions = _f[1];\n\n var invokeActions = resolvedActions.filter(function (action) {\n var _a;\n\n return action.type === start$1 && ((_a = action.activity) === null || _a === void 0 ? void 0 : _a.type) === invoke;\n });\n var children = invokeActions.reduce(function (acc, action) {\n acc[action.activity.id] = createInvocableActor(action.activity, _this.machine, updatedContext, _event);\n return acc;\n }, currentState ? __assign({}, currentState.children) : {});\n var nextState = new State({\n value: resolvedStateValue || currentState.value,\n context: updatedContext,\n _event: _event,\n // Persist _sessionid between states\n _sessionid: currentState ? currentState._sessionid : null,\n historyValue: resolvedStateValue ? historyValue ? updateHistoryValue(historyValue, resolvedStateValue) : undefined : currentState ? currentState.historyValue : undefined,\n history: !resolvedStateValue || stateTransition.source ? currentState : undefined,\n actions: resolvedStateValue ? nonRaisedActions : [],\n activities: resolvedStateValue ? activities : currentState ? currentState.activities : {},\n events: [],\n configuration: resolvedConfiguration,\n transitions: stateTransition.transitions,\n children: children,\n done: isDone,\n tags: getTagsFromConfiguration(resolvedConfiguration),\n machine: this\n });\n var didUpdateContext = context !== updatedContext;\n nextState.changed = _event.name === update || didUpdateContext; // Dispose of penultimate histories to prevent memory leaks\n\n var history = nextState.history;\n\n if (history) {\n delete history.history;\n } // There are transient transitions if the machine is not in a final state\n // and if some of the state nodes have transient (\"always\") transitions.\n\n\n var hasAlwaysTransitions = !isDone && (this._transient || configuration.some(function (stateNode) {\n return stateNode._transient;\n })); // If there are no enabled transitions, check if there are transient transitions.\n // If there are transient transitions, continue checking for more transitions\n // because an transient transition should be triggered even if there are no\n // enabled transitions.\n //\n // If we're already working on an transient transition then stop to prevent an infinite loop.\n //\n // Otherwise, if there are no enabled nor transient transitions, we are done.\n\n if (!willTransition && (!hasAlwaysTransitions || _event.name === NULL_EVENT)) {\n return nextState;\n }\n\n var maybeNextState = nextState;\n\n if (!isDone) {\n if (hasAlwaysTransitions) {\n maybeNextState = this.resolveRaisedTransition(maybeNextState, {\n type: nullEvent\n }, _event, predictableExec);\n }\n\n while (raisedEvents.length) {\n var raisedEvent = raisedEvents.shift();\n maybeNextState = this.resolveRaisedTransition(maybeNextState, raisedEvent._event, _event, predictableExec);\n }\n } // Detect if state changed\n\n\n var changed = maybeNextState.changed || (history ? !!maybeNextState.actions.length || didUpdateContext || typeof history.value !== typeof maybeNextState.value || !stateValuesEqual(maybeNextState.value, history.value) : undefined);\n maybeNextState.changed = changed; // Preserve original history after raised events\n\n maybeNextState.history = history;\n return maybeNextState;\n };\n /**\r\n * Returns the child state node from its relative `stateKey`, or throws.\r\n */\n\n\n StateNode.prototype.getStateNode = function (stateKey) {\n if (isStateId(stateKey)) {\n return this.machine.getStateNodeById(stateKey);\n }\n\n if (!this.states) {\n throw new Error(\"Unable to retrieve child state '\".concat(stateKey, \"' from '\").concat(this.id, \"'; no child states exist.\"));\n }\n\n var result = this.states[stateKey];\n\n if (!result) {\n throw new Error(\"Child state '\".concat(stateKey, \"' does not exist on '\").concat(this.id, \"'\"));\n }\n\n return result;\n };\n /**\r\n * Returns the state node with the given `stateId`, or throws.\r\n *\r\n * @param stateId The state ID. The prefix \"#\" is removed.\r\n */\n\n\n StateNode.prototype.getStateNodeById = function (stateId) {\n var resolvedStateId = isStateId(stateId) ? stateId.slice(STATE_IDENTIFIER.length) : stateId;\n\n if (resolvedStateId === this.id) {\n return this;\n }\n\n var stateNode = this.machine.idMap[resolvedStateId];\n\n if (!stateNode) {\n throw new Error(\"Child state node '#\".concat(resolvedStateId, \"' does not exist on machine '\").concat(this.id, \"'\"));\n }\n\n return stateNode;\n };\n /**\r\n * Returns the relative state node from the given `statePath`, or throws.\r\n *\r\n * @param statePath The string or string array relative path to the state node.\r\n */\n\n\n StateNode.prototype.getStateNodeByPath = function (statePath) {\n if (typeof statePath === 'string' && isStateId(statePath)) {\n try {\n return this.getStateNodeById(statePath.slice(1));\n } catch (e) {// try individual paths\n // throw e;\n }\n }\n\n var arrayStatePath = toStatePath(statePath, this.delimiter).slice();\n var currentStateNode = this;\n\n while (arrayStatePath.length) {\n var key = arrayStatePath.shift();\n\n if (!key.length) {\n break;\n }\n\n currentStateNode = currentStateNode.getStateNode(key);\n }\n\n return currentStateNode;\n };\n /**\r\n * Resolves a partial state value with its full representation in this machine.\r\n *\r\n * @param stateValue The partial state value to resolve.\r\n */\n\n\n StateNode.prototype.resolve = function (stateValue) {\n var _a;\n\n var _this = this;\n\n if (!stateValue) {\n return this.initialStateValue || EMPTY_OBJECT; // TODO: type-specific properties\n }\n\n switch (this.type) {\n case 'parallel':\n return mapValues(this.initialStateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(stateValue[subStateKey] || subStateValue) : EMPTY_OBJECT;\n });\n\n case 'compound':\n if (isString(stateValue)) {\n var subStateNode = this.getStateNode(stateValue);\n\n if (subStateNode.type === 'parallel' || subStateNode.type === 'compound') {\n return _a = {}, _a[stateValue] = subStateNode.initialStateValue, _a;\n }\n\n return stateValue;\n }\n\n if (!Object.keys(stateValue).length) {\n return this.initialStateValue || {};\n }\n\n return mapValues(stateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(subStateValue) : EMPTY_OBJECT;\n });\n\n default:\n return stateValue || EMPTY_OBJECT;\n }\n };\n\n StateNode.prototype.getResolvedPath = function (stateIdentifier) {\n if (isStateId(stateIdentifier)) {\n var stateNode = this.machine.idMap[stateIdentifier.slice(STATE_IDENTIFIER.length)];\n\n if (!stateNode) {\n throw new Error(\"Unable to find state node '\".concat(stateIdentifier, \"'\"));\n }\n\n return stateNode.path;\n }\n\n return toStatePath(stateIdentifier, this.delimiter);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateValue\", {\n get: function () {\n var _a;\n\n if (this.__cache.initialStateValue) {\n return this.__cache.initialStateValue;\n }\n\n var initialStateValue;\n\n if (this.type === 'parallel') {\n initialStateValue = mapFilterValues(this.states, function (state) {\n return state.initialStateValue || EMPTY_OBJECT;\n }, function (stateNode) {\n return !(stateNode.type === 'history');\n });\n } else if (this.initial !== undefined) {\n if (!this.states[this.initial]) {\n throw new Error(\"Initial state '\".concat(this.initial, \"' not found on '\").concat(this.key, \"'\"));\n }\n\n initialStateValue = isLeafNode(this.states[this.initial]) ? this.initial : (_a = {}, _a[this.initial] = this.states[this.initial].initialStateValue, _a);\n } else {\n // The finite state value of a machine without child states is just an empty object\n initialStateValue = {};\n }\n\n this.__cache.initialStateValue = initialStateValue;\n return this.__cache.initialStateValue;\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.getInitialState = function (stateValue, context) {\n this._init(); // TODO: this should be in the constructor (see note in constructor)\n\n\n var configuration = this.getStateNodes(stateValue);\n return this.resolveTransition({\n configuration: configuration,\n exitSet: [],\n transitions: [],\n source: undefined,\n actions: []\n }, undefined, context !== null && context !== void 0 ? context : this.machine.context, undefined);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialState\", {\n /**\r\n * The initial State instance, which includes all actions to be executed from\r\n * entering the initial state.\r\n */\n get: function () {\n var initialStateValue = this.initialStateValue;\n\n if (!initialStateValue) {\n throw new Error(\"Cannot retrieve initial state from simple state '\".concat(this.id, \"'.\"));\n }\n\n return this.getInitialState(initialStateValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"target\", {\n /**\r\n * The target state value of the history state node, if it exists. This represents the\r\n * default state value to transition to if no history value exists yet.\r\n */\n get: function () {\n var target;\n\n if (this.type === 'history') {\n var historyConfig = this.config;\n\n if (isString(historyConfig.target)) {\n target = isStateId(historyConfig.target) ? pathToStateValue(this.machine.getStateNodeById(historyConfig.target).path.slice(this.path.length - 1)) : historyConfig.target;\n } else {\n target = historyConfig.target;\n }\n }\n\n return target;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Returns the leaf nodes from a state path relative to this state node.\r\n *\r\n * @param relativeStateId The relative state path to retrieve the state nodes\r\n * @param history The previous state to retrieve history\r\n * @param resolve Whether state nodes should resolve to initial child state nodes\r\n */\n\n StateNode.prototype.getRelativeStateNodes = function (relativeStateId, historyValue, resolve) {\n if (resolve === void 0) {\n resolve = true;\n }\n\n return resolve ? relativeStateId.type === 'history' ? relativeStateId.resolveHistory(historyValue) : relativeStateId.initialStateNodes : [relativeStateId];\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateNodes\", {\n get: function () {\n var _this = this;\n\n if (isLeafNode(this)) {\n return [this];\n } // Case when state node is compound but no initial state is defined\n\n\n if (this.type === 'compound' && !this.initial) {\n if (!IS_PRODUCTION) {\n warn(false, \"Compound state node '\".concat(this.id, \"' has no initial state.\"));\n }\n\n return [this];\n }\n\n var initialStateNodePaths = toStatePaths(this.initialStateValue);\n return flatten(initialStateNodePaths.map(function (initialPath) {\n return _this.getFromRelativePath(initialPath);\n }));\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Retrieves state nodes from a relative path to this state node.\r\n *\r\n * @param relativePath The relative path from this state node\r\n * @param historyValue\r\n */\n\n StateNode.prototype.getFromRelativePath = function (relativePath) {\n if (!relativePath.length) {\n return [this];\n }\n\n var _a = __read(relativePath),\n stateKey = _a[0],\n childStatePath = _a.slice(1);\n\n if (!this.states) {\n throw new Error(\"Cannot retrieve subPath '\".concat(stateKey, \"' from node with no states\"));\n }\n\n var childStateNode = this.getStateNode(stateKey);\n\n if (childStateNode.type === 'history') {\n return childStateNode.resolveHistory();\n }\n\n if (!this.states[stateKey]) {\n throw new Error(\"Child state '\".concat(stateKey, \"' does not exist on '\").concat(this.id, \"'\"));\n }\n\n return this.states[stateKey].getFromRelativePath(childStatePath);\n };\n\n StateNode.prototype.historyValue = function (relativeStateValue) {\n if (!Object.keys(this.states).length) {\n return undefined;\n }\n\n return {\n current: relativeStateValue || this.initialStateValue,\n states: mapFilterValues(this.states, function (stateNode, key) {\n if (!relativeStateValue) {\n return stateNode.historyValue();\n }\n\n var subStateValue = isString(relativeStateValue) ? undefined : relativeStateValue[key];\n return stateNode.historyValue(subStateValue || stateNode.initialStateValue);\n }, function (stateNode) {\n return !stateNode.history;\n })\n };\n };\n /**\r\n * Resolves to the historical value(s) of the parent state node,\r\n * represented by state nodes.\r\n *\r\n * @param historyValue\r\n */\n\n\n StateNode.prototype.resolveHistory = function (historyValue) {\n var _this = this;\n\n if (this.type !== 'history') {\n return [this];\n }\n\n var parent = this.parent;\n\n if (!historyValue) {\n var historyTarget = this.target;\n return historyTarget ? flatten(toStatePaths(historyTarget).map(function (relativeChildPath) {\n return parent.getFromRelativePath(relativeChildPath);\n })) : parent.initialStateNodes;\n }\n\n var subHistoryValue = nestedPath(parent.path, 'states')(historyValue).current;\n\n if (isString(subHistoryValue)) {\n return [parent.getStateNode(subHistoryValue)];\n }\n\n return flatten(toStatePaths(subHistoryValue).map(function (subStatePath) {\n return _this.history === 'deep' ? parent.getFromRelativePath(subStatePath) : [parent.states[subStatePath[0]]];\n }));\n };\n\n Object.defineProperty(StateNode.prototype, \"stateIds\", {\n /**\r\n * All the state node IDs of this state node and its descendant state nodes.\r\n */\n get: function () {\n var _this = this;\n\n var childStateIds = flatten(Object.keys(this.states).map(function (stateKey) {\n return _this.states[stateKey].stateIds;\n }));\n return [this.id].concat(childStateIds);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"events\", {\n /**\r\n * All the event types accepted by this state node and its descendants.\r\n */\n get: function () {\n var e_8, _a, e_9, _b;\n\n if (this.__cache.events) {\n return this.__cache.events;\n }\n\n var states = this.states;\n var events = new Set(this.ownEvents);\n\n if (states) {\n try {\n for (var _c = __values(Object.keys(states)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var stateId = _d.value;\n var state = states[stateId];\n\n if (state.states) {\n try {\n for (var _e = (e_9 = void 0, __values(state.events)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var event_1 = _f.value;\n events.add(\"\".concat(event_1));\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n }\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n }\n\n return this.__cache.events = Array.from(events);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"ownEvents\", {\n /**\r\n * All the events that have transitions directly from this state node.\r\n *\r\n * Excludes any inert events.\r\n */\n get: function () {\n var events = new Set(this.transitions.filter(function (transition) {\n return !(!transition.target && !transition.actions.length && transition.internal);\n }).map(function (transition) {\n return transition.eventType;\n }));\n return Array.from(events);\n },\n enumerable: false,\n configurable: true\n });\n\n StateNode.prototype.resolveTarget = function (_target) {\n var _this = this;\n\n if (_target === undefined) {\n // an undefined target signals that the state node should not transition from that state when receiving that event\n return undefined;\n }\n\n return _target.map(function (target) {\n if (!isString(target)) {\n return target;\n }\n\n var isInternalTarget = target[0] === _this.delimiter; // If internal target is defined on machine,\n // do not include machine key on target\n\n if (isInternalTarget && !_this.parent) {\n return _this.getStateNodeByPath(target.slice(1));\n }\n\n var resolvedTarget = isInternalTarget ? _this.key + target : target;\n\n if (_this.parent) {\n try {\n var targetStateNode = _this.parent.getStateNodeByPath(resolvedTarget);\n\n return targetStateNode;\n } catch (err) {\n throw new Error(\"Invalid transition definition for state node '\".concat(_this.id, \"':\\n\").concat(err.message));\n }\n } else {\n return _this.getStateNodeByPath(resolvedTarget);\n }\n });\n };\n\n StateNode.prototype.formatTransition = function (transitionConfig) {\n var _this = this;\n\n var normalizedTarget = normalizeTarget(transitionConfig.target);\n var internal = 'internal' in transitionConfig ? transitionConfig.internal : normalizedTarget ? normalizedTarget.some(function (_target) {\n return isString(_target) && _target[0] === _this.delimiter;\n }) : true;\n var guards = this.machine.options.guards;\n var target = this.resolveTarget(normalizedTarget);\n\n var transition = __assign(__assign({}, transitionConfig), {\n actions: toActionObjects(toArray(transitionConfig.actions)),\n cond: toGuard(transitionConfig.cond, guards),\n target: target,\n source: this,\n internal: internal,\n eventType: transitionConfig.event,\n toJSON: function () {\n return __assign(__assign({}, transition), {\n target: transition.target ? transition.target.map(function (t) {\n return \"#\".concat(t.id);\n }) : undefined,\n source: \"#\".concat(_this.id)\n });\n }\n });\n\n return transition;\n };\n\n StateNode.prototype.formatTransitions = function () {\n var e_10, _a;\n\n var _this = this;\n\n var onConfig;\n\n if (!this.config.on) {\n onConfig = [];\n } else if (Array.isArray(this.config.on)) {\n onConfig = this.config.on;\n } else {\n var _b = this.config.on,\n _c = WILDCARD,\n _d = _b[_c],\n wildcardConfigs = _d === void 0 ? [] : _d,\n strictTransitionConfigs_1 = __rest(_b, [typeof _c === \"symbol\" ? _c : _c + \"\"]);\n\n onConfig = flatten(Object.keys(strictTransitionConfigs_1).map(function (key) {\n if (!IS_PRODUCTION && key === NULL_EVENT) {\n warn(false, \"Empty string transition configs (e.g., `{ on: { '': ... }}`) for transient transitions are deprecated. Specify the transition in the `{ always: ... }` property instead. \" + \"Please check the `on` configuration for \\\"#\".concat(_this.id, \"\\\".\"));\n }\n\n var transitionConfigArray = toTransitionConfigArray(key, strictTransitionConfigs_1[key]);\n\n if (!IS_PRODUCTION) {\n validateArrayifiedTransitions(_this, key, transitionConfigArray);\n }\n\n return transitionConfigArray;\n }).concat(toTransitionConfigArray(WILDCARD, wildcardConfigs)));\n }\n\n var eventlessConfig = this.config.always ? toTransitionConfigArray('', this.config.always) : [];\n var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];\n\n if (!IS_PRODUCTION) {\n warn(!(this.config.onDone && !this.parent), \"Root nodes cannot have an \\\".onDone\\\" transition. Please check the config of \\\"\".concat(this.id, \"\\\".\"));\n }\n\n var invokeConfig = flatten(this.invoke.map(function (invokeDef) {\n var settleTransitions = [];\n\n if (invokeDef.onDone) {\n settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone)), false));\n }\n\n if (invokeDef.onError) {\n settleTransitions.push.apply(settleTransitions, __spreadArray([], __read(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError)), false));\n }\n\n return settleTransitions;\n }));\n var delayedTransitions = this.after;\n var formattedTransitions = flatten(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(doneConfig), false), __read(invokeConfig), false), __read(onConfig), false), __read(eventlessConfig), false).map(function (transitionConfig) {\n return toArray(transitionConfig).map(function (transition) {\n return _this.formatTransition(transition);\n });\n }));\n\n try {\n for (var delayedTransitions_1 = __values(delayedTransitions), delayedTransitions_1_1 = delayedTransitions_1.next(); !delayedTransitions_1_1.done; delayedTransitions_1_1 = delayedTransitions_1.next()) {\n var delayedTransition = delayedTransitions_1_1.value;\n formattedTransitions.push(delayedTransition);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (delayedTransitions_1_1 && !delayedTransitions_1_1.done && (_a = delayedTransitions_1.return)) _a.call(delayedTransitions_1);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n\n return formattedTransitions;\n };\n\n return StateNode;\n}();\n\nexport { StateNode };\n","import { StateNode } from './StateNode.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nvar warned = false;\nfunction Machine(config, options, initialContext) {\n if (initialContext === void 0) {\n initialContext = config.context;\n }\n\n return new StateNode(config, options, initialContext);\n}\nfunction createMachine(config, options) {\n if (!IS_PRODUCTION && !('predictableActionArguments' in config) && !warned) {\n warned = true;\n console.warn('It is highly recommended to set `predictableActionArguments` to `true` when using `createMachine`. https://xstate.js.org/docs/guides/actions.html');\n }\n\n return new StateNode(config, options);\n}\n\nexport { Machine, createMachine };\n","import { assign as assign$1, cancel as cancel$1, send as send$1, sendTo as sendTo$1, sendParent as sendParent$1, sendUpdate as sendUpdate$1, forwardTo as forwardTo$1, doneInvoke as doneInvoke$1, raise as raise$1, log as log$1, pure as pure$1, choose as choose$1, stop as stop$1 } from './actions.js';\nimport * as actions from './actions.js';\nexport { actions };\nexport { toActorRef } from './Actor.js';\nexport { Interpreter, InterpreterStatus, interpret, spawn } from './interpreter.js';\nexport { Machine, createMachine } from './Machine.js';\nexport { mapState } from './mapState.js';\nexport { matchState } from './match.js';\nexport { createSchema, t } from './schema.js';\nexport { State } from './State.js';\nexport { StateNode } from './StateNode.js';\nexport { spawnBehavior } from './behaviors.js';\nexport { ActionTypes, SpecialTargets } from './types.js';\nexport { matchesState, toEventObject, toObserver, toSCXMLEvent } from './utils.js';\n\nvar assign = assign$1,\n cancel = cancel$1,\n send = send$1,\n sendTo = sendTo$1,\n sendParent = sendParent$1,\n sendUpdate = sendUpdate$1,\n forwardTo = forwardTo$1,\n doneInvoke = doneInvoke$1,\n raise = raise$1,\n log = log$1,\n pure = pure$1,\n choose = choose$1,\n stop = stop$1;\n\nexport { assign, cancel, choose, doneInvoke, forwardTo, log, pure, raise, send, sendParent, sendTo, sendUpdate, stop };\n","import pickBy from 'lodash/pickBy.js';\nimport '@aws-amplify/core/internals/utils';\nimport '../../utils/setUserAgent/constants.mjs';\nimport { isString } from '../../utils/utils.mjs';\n\n// default `autoSignIn` flag is `true`\nconst DEFAULT_AUTO_SIGN_IN = true;\nconst EMPTY_STRING = '';\nconst sanitizePhoneNumber = (dialCode, phoneNumber) => `${dialCode}${phoneNumber}`.replace(/[^A-Z0-9+]/gi, '');\nconst selectUserAttributes = (_, key) => {\n // Allowlist of Cognito User Pool Attributes (from OpenID Connect specification)\n // See: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html\n switch (key) {\n case 'address':\n case 'birthdate':\n case 'email':\n case 'family_name':\n case 'gender':\n case 'given_name':\n case 'locale':\n case 'middle_name':\n case 'name':\n case 'nickname':\n case 'phone_number':\n case 'picture':\n case 'preferred_username':\n case 'profile':\n case 'updated_at':\n case 'website':\n case 'zoneinfo':\n return true;\n // Otherwise, it's a custom attribute\n default:\n return key.startsWith('custom:');\n }\n};\nconst getUserAttributes = (formValues) => {\n const { phone_number, ...userAttributes } = pickBy(formValues, selectUserAttributes);\n // only include `phone_number` attribute in `userAttributes` if it has a value\n if (isString(phone_number) && phone_number !== EMPTY_STRING) {\n const { country_code } = formValues;\n return {\n ...userAttributes,\n phone_number: sanitizePhoneNumber(country_code, phone_number),\n };\n }\n return userAttributes;\n};\nconst getSignUpInput = (username, formValues, loginMechanism) => {\n const { password, ...values } = formValues;\n const attributes = getUserAttributes(values);\n const options = {\n autoSignIn: DEFAULT_AUTO_SIGN_IN,\n userAttributes: {\n // use `username` value for `phone_number`\n ...(loginMechanism === 'phone_number'\n ? { ...attributes, phone_number: username }\n : attributes),\n },\n };\n return { username, password, options };\n};\nconst getUsernameSignUp = ({ formValues, loginMechanisms, }) => {\n const loginMechanism = loginMechanisms[0];\n if (loginMechanism === 'phone_number') {\n const { country_code, phone_number } = formValues;\n return sanitizePhoneNumber(country_code, phone_number);\n }\n return formValues[loginMechanism];\n};\n\nexport { getSignUpInput, getUserAttributes, getUsernameSignUp, sanitizePhoneNumber };\n","import { actions } from 'xstate';\nimport 'aws-amplify/utils';\nimport '@aws-amplify/core/internals/utils';\nimport '../../utils/setUserAgent/constants.mjs';\nimport '../../types/authenticator/user.mjs';\nimport '../../types/authenticator/attributes.mjs';\nimport { trimValues } from '../../helpers/authenticator/utils.mjs';\nimport '../../helpers/accountSettings/utils.mjs';\nimport 'aws-amplify';\nimport { sanitizePhoneNumber, getUsernameSignUp } from './utils.mjs';\n\nconst { assign } = actions;\nconst clearActorDoneData = assign({ actorDoneData: undefined });\nconst clearChallengeName = assign({ challengeName: undefined });\nconst clearMissingAttributes = assign({ missingAttributes: undefined });\nconst clearError = assign({ remoteError: undefined });\nconst clearFormValues = assign({ formValues: {} });\nconst clearTouched = assign({ touched: {} });\nconst clearUser = assign({ user: undefined });\nconst clearValidationError = assign({ validationError: {} });\n/**\n * \"set\" actions\n */\nconst setTotpSecretCode = assign({\n totpSecretCode: (_, { data }) => {\n const { sharedSecret } = (data.nextStep?.totpSetupDetails ??\n {});\n return sharedSecret;\n },\n});\nconst setSignInStep = assign({ step: 'SIGN_IN' });\nconst setShouldVerifyUserAttributeStep = assign({\n step: 'SHOULD_CONFIRM_USER_ATTRIBUTE',\n});\nconst setConfirmAttributeCompleteStep = assign({\n step: 'CONFIRM_ATTRIBUTE_COMPLETE',\n});\n// map v6 `signInStep` to v5 `challengeName`\nconst setChallengeName = assign({\n challengeName: (_, { data }) => {\n const { signInStep } = data.nextStep;\n return signInStep === 'CONFIRM_SIGN_IN_WITH_SMS_CODE'\n ? 'SMS_MFA'\n : signInStep === 'CONFIRM_SIGN_IN_WITH_TOTP_CODE'\n ? 'SOFTWARE_TOKEN_MFA'\n : undefined;\n },\n});\nconst setUsernameForgotPassword = assign({\n username: ({ formValues, loginMechanisms }) => {\n const loginMechanism = loginMechanisms[0];\n const { username, country_code } = formValues;\n if (loginMechanism === 'phone_number') {\n // forgot password `formValues` uses `username` for base phone number value\n // prefix `country_code` for full `username`\n return sanitizePhoneNumber(country_code, username);\n }\n // default username field for loginMechanism === 'email' is \"username\" for SignIn\n return username;\n },\n});\nconst setUsernameSignUp = assign({ username: getUsernameSignUp });\nconst setUsernameSignIn = assign({\n username: ({ formValues, loginMechanisms }) => {\n const loginMechanism = loginMechanisms[0];\n const { username, country_code } = formValues;\n if (loginMechanism === 'phone_number') {\n // sign in `formValues` uses `username` for base phone number value\n // prefix `country_code` for full `username`\n return sanitizePhoneNumber(country_code, username);\n }\n // return `email` and `username`\n return username;\n },\n});\nconst setNextSignInStep = assign({\n step: (_, { data }) => data.nextStep.signInStep === 'DONE'\n ? 'SIGN_IN_COMPLETE'\n : data.nextStep.signInStep,\n});\nconst setNextSignUpStep = assign({\n step: (_, { data }) => data.nextStep.signUpStep === 'DONE'\n ? 'SIGN_UP_COMPLETE'\n : data.nextStep.signUpStep,\n});\nconst setNextResetPasswordStep = assign({\n step: (_, { data }) => data.nextStep.resetPasswordStep === 'DONE'\n ? 'RESET_PASSWORD_COMPLETE'\n : data.nextStep.resetPasswordStep,\n});\nconst setMissingAttributes = assign({\n missingAttributes: (_, { data }) => data.nextStep?.missingAttributes,\n});\nconst setFieldErrors = assign({\n validationError: (_, { data }) => data,\n});\nconst setRemoteError = assign({\n remoteError: (_, { data }) => {\n if (data.name === 'NoUserPoolError') {\n return `Configuration error (see console) – please contact the administrator`;\n }\n return data?.message || data;\n },\n});\nconst setUser = assign({ user: (_, { data }) => data });\nconst resolveCodeDeliveryDetails = (details) => ({\n Destination: details.destination,\n DeliveryMedium: details.deliveryMedium,\n AttributeName: details.attributName,\n});\nconst setCodeDeliveryDetails = assign({\n codeDeliveryDetails: (_, { data }) => {\n if (data\n ?.nextStep?.codeDeliveryDetails) {\n return resolveCodeDeliveryDetails(data\n .nextStep.codeDeliveryDetails);\n }\n return resolveCodeDeliveryDetails(data);\n },\n});\nconst handleInput = assign({\n formValues: (context, { data }) => {\n const { name, value } = data;\n return { ...context['formValues'], [name]: value };\n },\n});\nconst handleSubmit = assign({\n formValues: (context, { data }) => \n // do not trim password\n trimValues({ ...context['formValues'], ...data }, 'password'),\n});\nconst handleBlur = assign({\n touched: (context, { data }) => ({\n ...context['touched'],\n [data.name]: true,\n }),\n});\nconst setUnverifiedUserAttributes = assign({\n unverifiedUserAttributes: (_, { data }) => {\n const { email, phone_number } = data;\n const unverifiedUserAttributes = {\n ...(email && { email }),\n ...(phone_number && { phone_number }),\n };\n return unverifiedUserAttributes;\n },\n});\nconst clearSelectedUserAttribute = assign({ selectedUserAttribute: undefined });\nconst setSelectedUserAttribute = assign({\n selectedUserAttribute: (context) => context.formValues?.unverifiedAttr,\n});\n// Maps to unexposed `ConfirmSignUpSignUpStep`\nconst setConfirmSignUpSignUpStep = assign({ step: 'CONFIRM_SIGN_UP' });\nconst ACTIONS = {\n clearActorDoneData,\n clearChallengeName,\n clearError,\n clearFormValues,\n clearMissingAttributes,\n clearSelectedUserAttribute,\n clearTouched,\n clearUser,\n clearValidationError,\n handleBlur,\n handleInput,\n handleSubmit,\n setChallengeName,\n setCodeDeliveryDetails,\n setFieldErrors,\n setMissingAttributes,\n setNextResetPasswordStep,\n setNextSignInStep,\n setNextSignUpStep,\n setRemoteError,\n setConfirmAttributeCompleteStep,\n setConfirmSignUpSignUpStep,\n setShouldVerifyUserAttributeStep,\n setSelectedUserAttribute,\n setSignInStep,\n setTotpSecretCode,\n setUser,\n setUnverifiedUserAttributes,\n setUsernameForgotPassword,\n setUsernameSignIn,\n setUsernameSignUp,\n};\n\nexport { ACTIONS as default };\n","import { ALLOWED_SPECIAL_CHARACTERS, emailRegex } from './constants.mjs';\n\n// replaces all characters in a string with '*', except for the first and last char\nconst censorAllButFirstAndLast = (value) => {\n const split = value.trim().split('');\n for (let i = 0; i < split.length; i++) {\n if (i > 0 && i < split.length - 1) {\n split[i] = '*';\n }\n }\n return split.join('');\n};\n// censors all but the last four characters of a phone number\nconst censorPhoneNumber = (val) => {\n if (val.length < 4) {\n return val;\n }\n const split = val.split('');\n for (let i = 0; i < split.length - 4; i++) {\n split[i] = '*';\n }\n return split.join('');\n};\n// censors all but the first and last of the name of an email and keeps domain\nconst censorEmail = (val) => {\n const splitEmail = val.split('@');\n const censoredName = censorAllButFirstAndLast(splitEmail[0]);\n return `${censoredName}@${splitEmail[1]}`;\n};\n// based on the ContactMethod type, returns a censored contact value\nconst censorContactMethod = (type, value) => {\n return type === 'Phone Number'\n ? censorPhoneNumber(value)\n : censorEmail(value);\n};\nconst hasSpecialChars = (password) => ALLOWED_SPECIAL_CHARACTERS.some((char) => password.includes(char));\nconst getTotpCodeURL = (issuer, username, secret) => encodeURI(`otpauth://totp/${issuer}:${username}?secret=${secret}&issuer=${issuer}`);\nfunction trimValues(values, ...ignored) {\n return Object.entries(values).reduce((acc, [name, value]) => ({\n ...acc,\n [name]: ignored.includes(name) ? value : value?.trim(),\n }), {});\n}\nconst isValidEmail = (value) => {\n if (!value)\n return false;\n return emailRegex.test(value);\n};\n\nexport { censorAllButFirstAndLast, censorContactMethod, censorEmail, censorPhoneNumber, getTotpCodeURL, hasSpecialChars, isValidEmail, trimValues };\n","const SIGN_IN_STEP_MFA_CONFIRMATION = [\n 'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n 'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n];\n// response next step guards\nconst shouldConfirmSignInWithNewPassword = (_, { data }) => data?.nextStep.signInStep ===\n 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED';\nconst shouldResetPasswordFromSignIn = (_, { data }) => data?.nextStep?.signInStep === 'RESET_PASSWORD';\nconst shouldConfirmSignUpFromSignIn = (_, { data }) => data?.nextStep.signInStep === 'CONFIRM_SIGN_UP';\nconst shouldAutoSignIn = (_, { data }) => data?.nextStep.signUpStep === 'COMPLETE_AUTO_SIGN_IN';\nconst hasCompletedSignIn = (_, { data }) => data?.nextStep.signInStep === 'DONE';\nconst hasCompletedSignUp = (_, { data }) => data?.nextStep.signUpStep === 'DONE';\nconst hasCompletedResetPassword = (_, { data }) => data?.nextStep.resetPasswordStep === 'DONE';\n// actor done guards read `step` from actor exit event\nconst hasCompletedAttributeConfirmation = (_, { data }) => data?.step === 'CONFIRM_ATTRIBUTE_COMPLETE';\nconst isConfirmUserAttributeStep = (_, { data }) => data?.step === 'CONFIRM_ATTRIBUTE_WITH_CODE';\nconst isShouldConfirmUserAttributeStep = (_, { data }) => data?.step === 'SHOULD_CONFIRM_USER_ATTRIBUTE';\nconst isResetPasswordStep = (_, { data }) => data?.step === 'RESET_PASSWORD';\nconst isConfirmSignUpStep = (_, { data }) => data?.step === 'CONFIRM_SIGN_UP';\n// actor entry guards read `step` from actor context\nconst shouldConfirmSignIn = ({ step }) => SIGN_IN_STEP_MFA_CONFIRMATION.includes(step);\nconst shouldSetupTotp = ({ step }) => step === 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP';\nconst shouldResetPassword = ({ step }) => step === 'RESET_PASSWORD';\nconst shouldConfirmResetPassword = ({ step }) => step === 'CONFIRM_RESET_PASSWORD_WITH_CODE';\nconst shouldConfirmSignUp = ({ step }) => step === 'CONFIRM_SIGN_UP';\n// miscellaneous guards\nconst shouldVerifyAttribute = (_, { data }) => {\n const { phone_number_verified, email_verified } = data;\n // email/phone_verified is returned as a string\n const emailNotVerified = email_verified === undefined || email_verified === 'false';\n const phoneNotVerified = phone_number_verified === undefined || phone_number_verified === 'false';\n // only request verification if both email and phone are not verified\n return emailNotVerified && phoneNotVerified;\n};\n/**\n * This guard covers an edge case that exists in the current state of the UI.\n * As of now, our ConfirmSignUp screen only supports showing an input for a\n * confirmation code. However, a Cognito UserPool can instead verify users\n * through a link that gets emailed to them. If a user verifies through the\n * link and then they click on the \"Resend Code\" button, they will get an error\n * saying that the user has already been confirmed. If we encounter that error,\n * we want to just funnel them through the rest of the flow. In the future, we will\n * want to update our UI to support both confirmation codes and links.\n *\n * https://github.com/aws-amplify/amplify-ui/issues/219\n */\nconst isUserAlreadyConfirmed = (_, { data }) => data.message === 'User is already confirmed.';\nconst GUARDS = {\n hasCompletedAttributeConfirmation,\n hasCompletedResetPassword,\n hasCompletedSignIn,\n hasCompletedSignUp,\n isConfirmSignUpStep,\n isConfirmUserAttributeStep,\n isResetPasswordStep,\n isShouldConfirmUserAttributeStep,\n isUserAlreadyConfirmed,\n shouldAutoSignIn,\n shouldConfirmResetPassword,\n shouldConfirmSignIn,\n shouldConfirmSignInWithNewPassword,\n shouldConfirmSignUp,\n shouldConfirmSignUpFromSignIn,\n shouldResetPassword,\n shouldResetPasswordFromSignIn,\n shouldSetupTotp,\n shouldVerifyAttribute,\n};\n\nexport { GUARDS as default };\n","import merge from 'lodash/merge.js';\nimport '@aws-amplify/core/internals/utils';\nimport '../utils/setUserAgent/constants.mjs';\nimport { isEmpty } from '../utils/utils.mjs';\n\n// Runs all validators given. Resolves if there are no error. Rejects otherwise.\nconst runValidators = async (formData, touchData, passwordSettings, validators) => {\n const errors = await Promise.all(validators.map((validator) => validator(formData, touchData, passwordSettings)));\n const mergedError = merge({}, ...errors);\n if (isEmpty(mergedError)) {\n // no errors were found\n return Promise.resolve();\n }\n else {\n return Promise.reject(mergedError);\n }\n};\n\nexport { runValidators };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getBtoa } from '../../globalHelpers';\nimport { bytesToString } from './bytesToString';\nexport const base64Encoder = {\n convert(input, { urlSafe } = { urlSafe: false }) {\n const inputStr = typeof input === 'string' ? input : bytesToString(input);\n const encodedStr = getBtoa()(inputStr);\n // see details about the char replacing at https://datatracker.ietf.org/doc/html/rfc4648#section-5\n return urlSafe\n ? encodedStr.replace(/\\+/g, '-').replace(/\\//g, '_')\n : encodedStr;\n },\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function bytesToString(input) {\n return Array.from(input, byte => String.fromCodePoint(byte)).join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Retrieves the device name using the User-Agent Client Hints API if available,\n * falling back to the traditional userAgent string if not.\n *\n * @returns {Promise} A promise that resolves with a string representing the device name.\n *\n * Example Output:\n * navigator.userAgentData:\n * 'macOS 14.2.1 arm macOS Not A(Brand/99.0.0.0;Google Chrome/121.0.6167.160;Chromium/121.0.6167.160'\n * navigator.userAgent:\n * 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0'\n */\nexport const getDeviceName = async () => {\n const { userAgentData } = navigator;\n if (!userAgentData)\n return navigator.userAgent;\n const { platform = '', platformVersion = '', model = '', architecture = '', fullVersionList = [], } = await userAgentData.getHighEntropyValues([\n 'platform',\n 'platformVersion',\n 'architecture',\n 'model',\n 'fullVersionList',\n ]);\n const versionList = fullVersionList\n .map((v) => `${v.brand}/${v.version}`)\n .join(';');\n const deviceName = [\n platform,\n platformVersion,\n architecture,\n model,\n platform,\n versionList,\n ]\n .filter(value => value)\n .join(' ');\n return deviceName;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AssociateSoftwareTokenException;\n(function (AssociateSoftwareTokenException) {\n AssociateSoftwareTokenException[\"ConcurrentModificationException\"] = \"ConcurrentModificationException\";\n AssociateSoftwareTokenException[\"ForbiddenException\"] = \"ForbiddenException\";\n AssociateSoftwareTokenException[\"InternalErrorException\"] = \"InternalErrorException\";\n AssociateSoftwareTokenException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n AssociateSoftwareTokenException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n AssociateSoftwareTokenException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n AssociateSoftwareTokenException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n})(AssociateSoftwareTokenException || (AssociateSoftwareTokenException = {}));\nexport var ChangePasswordException;\n(function (ChangePasswordException) {\n ChangePasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ChangePasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ChangePasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ChangePasswordException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ChangePasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ChangePasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ChangePasswordException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ChangePasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ChangePasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ChangePasswordException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ChangePasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ChangePasswordException || (ChangePasswordException = {}));\nexport var ConfirmDeviceException;\n(function (ConfirmDeviceException) {\n ConfirmDeviceException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmDeviceException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmDeviceException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmDeviceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmDeviceException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ConfirmDeviceException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ConfirmDeviceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmDeviceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ConfirmDeviceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmDeviceException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmDeviceException[\"UsernameExistsException\"] = \"UsernameExistsException\";\n ConfirmDeviceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ConfirmDeviceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmDeviceException || (ConfirmDeviceException = {}));\nexport var ConfirmForgotPasswordException;\n(function (ConfirmForgotPasswordException) {\n ConfirmForgotPasswordException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n ConfirmForgotPasswordException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n ConfirmForgotPasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmForgotPasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmForgotPasswordException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmForgotPasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmForgotPasswordException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ConfirmForgotPasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ConfirmForgotPasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmForgotPasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmForgotPasswordException[\"TooManyFailedAttemptsException\"] = \"TooManyFailedAttemptsException\";\n ConfirmForgotPasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmForgotPasswordException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ConfirmForgotPasswordException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ConfirmForgotPasswordException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ConfirmForgotPasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmForgotPasswordException || (ConfirmForgotPasswordException = {}));\nexport var ConfirmSignUpException;\n(function (ConfirmSignUpException) {\n ConfirmSignUpException[\"AliasExistsException\"] = \"AliasExistsException\";\n ConfirmSignUpException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n ConfirmSignUpException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n ConfirmSignUpException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmSignUpException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmSignUpException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmSignUpException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmSignUpException[\"LimitExceededException\"] = \"LimitExceededException\";\n ConfirmSignUpException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmSignUpException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmSignUpException[\"TooManyFailedAttemptsException\"] = \"TooManyFailedAttemptsException\";\n ConfirmSignUpException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmSignUpException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ConfirmSignUpException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ConfirmSignUpException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmSignUpException || (ConfirmSignUpException = {}));\nexport var DeleteUserAttributesException;\n(function (DeleteUserAttributesException) {\n DeleteUserAttributesException[\"ForbiddenException\"] = \"ForbiddenException\";\n DeleteUserAttributesException[\"InternalErrorException\"] = \"InternalErrorException\";\n DeleteUserAttributesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n DeleteUserAttributesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n DeleteUserAttributesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n DeleteUserAttributesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n DeleteUserAttributesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n DeleteUserAttributesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n DeleteUserAttributesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(DeleteUserAttributesException || (DeleteUserAttributesException = {}));\nexport var DeleteUserException;\n(function (DeleteUserException) {\n DeleteUserException[\"ForbiddenException\"] = \"ForbiddenException\";\n DeleteUserException[\"InternalErrorException\"] = \"InternalErrorException\";\n DeleteUserException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n DeleteUserException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n DeleteUserException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n DeleteUserException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n DeleteUserException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n DeleteUserException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n DeleteUserException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(DeleteUserException || (DeleteUserException = {}));\nexport var ForgetDeviceException;\n(function (ForgetDeviceException) {\n ForgetDeviceException[\"ForbiddenException\"] = \"ForbiddenException\";\n ForgetDeviceException[\"InternalErrorException\"] = \"InternalErrorException\";\n ForgetDeviceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ForgetDeviceException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ForgetDeviceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ForgetDeviceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ForgetDeviceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ForgetDeviceException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ForgetDeviceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ForgetDeviceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ForgetDeviceException || (ForgetDeviceException = {}));\nexport var ForgotPasswordException;\n(function (ForgotPasswordException) {\n ForgotPasswordException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n ForgotPasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ForgotPasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ForgotPasswordException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n ForgotPasswordException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ForgotPasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ForgotPasswordException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n ForgotPasswordException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n ForgotPasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ForgotPasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ForgotPasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ForgotPasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ForgotPasswordException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ForgotPasswordException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ForgotPasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ForgotPasswordException || (ForgotPasswordException = {}));\nexport var GetUserException;\n(function (GetUserException) {\n GetUserException[\"ForbiddenException\"] = \"ForbiddenException\";\n GetUserException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetUserException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetUserException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetUserException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GetUserException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetUserException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GetUserException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n GetUserException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(GetUserException || (GetUserException = {}));\nexport var GetIdException;\n(function (GetIdException) {\n GetIdException[\"ExternalServiceException\"] = \"ExternalServiceException\";\n GetIdException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetIdException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetIdException[\"LimitExceededException\"] = \"LimitExceededException\";\n GetIdException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetIdException[\"ResourceConflictException\"] = \"ResourceConflictException\";\n GetIdException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetIdException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n})(GetIdException || (GetIdException = {}));\nexport var GetCredentialsForIdentityException;\n(function (GetCredentialsForIdentityException) {\n GetCredentialsForIdentityException[\"ExternalServiceException\"] = \"ExternalServiceException\";\n GetCredentialsForIdentityException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetCredentialsForIdentityException[\"InvalidIdentityPoolConfigurationException\"] = \"InvalidIdentityPoolConfigurationException\";\n GetCredentialsForIdentityException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetCredentialsForIdentityException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetCredentialsForIdentityException[\"ResourceConflictException\"] = \"ResourceConflictException\";\n GetCredentialsForIdentityException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetCredentialsForIdentityException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n})(GetCredentialsForIdentityException || (GetCredentialsForIdentityException = {}));\nexport var GetUserAttributeVerificationException;\n(function (GetUserAttributeVerificationException) {\n GetUserAttributeVerificationException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n GetUserAttributeVerificationException[\"ForbiddenException\"] = \"ForbiddenException\";\n GetUserAttributeVerificationException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetUserAttributeVerificationException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n GetUserAttributeVerificationException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n GetUserAttributeVerificationException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetUserAttributeVerificationException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n GetUserAttributeVerificationException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n GetUserAttributeVerificationException[\"LimitExceededException\"] = \"LimitExceededException\";\n GetUserAttributeVerificationException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetUserAttributeVerificationException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GetUserAttributeVerificationException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetUserAttributeVerificationException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GetUserAttributeVerificationException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n GetUserAttributeVerificationException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n GetUserAttributeVerificationException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n GetUserAttributeVerificationException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(GetUserAttributeVerificationException || (GetUserAttributeVerificationException = {}));\nexport var GlobalSignOutException;\n(function (GlobalSignOutException) {\n GlobalSignOutException[\"ForbiddenException\"] = \"ForbiddenException\";\n GlobalSignOutException[\"InternalErrorException\"] = \"InternalErrorException\";\n GlobalSignOutException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GlobalSignOutException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GlobalSignOutException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GlobalSignOutException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GlobalSignOutException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GlobalSignOutException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n})(GlobalSignOutException || (GlobalSignOutException = {}));\nexport var InitiateAuthException;\n(function (InitiateAuthException) {\n InitiateAuthException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n InitiateAuthException[\"ForbiddenException\"] = \"ForbiddenException\";\n InitiateAuthException[\"InternalErrorException\"] = \"InternalErrorException\";\n InitiateAuthException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n InitiateAuthException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n InitiateAuthException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n InitiateAuthException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n InitiateAuthException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n InitiateAuthException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n InitiateAuthException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n InitiateAuthException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n InitiateAuthException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n InitiateAuthException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n InitiateAuthException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n InitiateAuthException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(InitiateAuthException || (InitiateAuthException = {}));\nexport var ResendConfirmationException;\n(function (ResendConfirmationException) {\n ResendConfirmationException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n ResendConfirmationException[\"ForbiddenException\"] = \"ForbiddenException\";\n ResendConfirmationException[\"InternalErrorException\"] = \"InternalErrorException\";\n ResendConfirmationException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n ResendConfirmationException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ResendConfirmationException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ResendConfirmationException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n ResendConfirmationException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n ResendConfirmationException[\"LimitExceededException\"] = \"LimitExceededException\";\n ResendConfirmationException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ResendConfirmationException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ResendConfirmationException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ResendConfirmationException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ResendConfirmationException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ResendConfirmationException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ResendConfirmationException || (ResendConfirmationException = {}));\nexport var RespondToAuthChallengeException;\n(function (RespondToAuthChallengeException) {\n RespondToAuthChallengeException[\"AliasExistsException\"] = \"AliasExistsException\";\n RespondToAuthChallengeException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n RespondToAuthChallengeException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n RespondToAuthChallengeException[\"ForbiddenException\"] = \"ForbiddenException\";\n RespondToAuthChallengeException[\"InternalErrorException\"] = \"InternalErrorException\";\n RespondToAuthChallengeException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n RespondToAuthChallengeException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n RespondToAuthChallengeException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n RespondToAuthChallengeException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n RespondToAuthChallengeException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n RespondToAuthChallengeException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n RespondToAuthChallengeException[\"MFAMethodNotFoundException\"] = \"MFAMethodNotFoundException\";\n RespondToAuthChallengeException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n RespondToAuthChallengeException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n RespondToAuthChallengeException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n RespondToAuthChallengeException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n RespondToAuthChallengeException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n RespondToAuthChallengeException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n RespondToAuthChallengeException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n RespondToAuthChallengeException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n RespondToAuthChallengeException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(RespondToAuthChallengeException || (RespondToAuthChallengeException = {}));\nexport var SetUserMFAPreferenceException;\n(function (SetUserMFAPreferenceException) {\n SetUserMFAPreferenceException[\"ForbiddenException\"] = \"ForbiddenException\";\n SetUserMFAPreferenceException[\"InternalErrorException\"] = \"InternalErrorException\";\n SetUserMFAPreferenceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n SetUserMFAPreferenceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n SetUserMFAPreferenceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n SetUserMFAPreferenceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n SetUserMFAPreferenceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n SetUserMFAPreferenceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(SetUserMFAPreferenceException || (SetUserMFAPreferenceException = {}));\nexport var SignUpException;\n(function (SignUpException) {\n SignUpException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n SignUpException[\"InternalErrorException\"] = \"InternalErrorException\";\n SignUpException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n SignUpException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n SignUpException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n SignUpException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n SignUpException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n SignUpException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n SignUpException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n SignUpException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n SignUpException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n SignUpException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n SignUpException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n SignUpException[\"UsernameExistsException\"] = \"UsernameExistsException\";\n})(SignUpException || (SignUpException = {}));\nexport var UpdateUserAttributesException;\n(function (UpdateUserAttributesException) {\n UpdateUserAttributesException[\"AliasExistsException\"] = \"AliasExistsException\";\n UpdateUserAttributesException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n UpdateUserAttributesException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n UpdateUserAttributesException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n UpdateUserAttributesException[\"ForbiddenException\"] = \"ForbiddenException\";\n UpdateUserAttributesException[\"InternalErrorException\"] = \"InternalErrorException\";\n UpdateUserAttributesException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n UpdateUserAttributesException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n UpdateUserAttributesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n UpdateUserAttributesException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n UpdateUserAttributesException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n UpdateUserAttributesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n UpdateUserAttributesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n UpdateUserAttributesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n UpdateUserAttributesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n UpdateUserAttributesException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n UpdateUserAttributesException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n UpdateUserAttributesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n UpdateUserAttributesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(UpdateUserAttributesException || (UpdateUserAttributesException = {}));\nexport var VerifySoftwareTokenException;\n(function (VerifySoftwareTokenException) {\n VerifySoftwareTokenException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n VerifySoftwareTokenException[\"EnableSoftwareTokenMFAException\"] = \"EnableSoftwareTokenMFAException\";\n VerifySoftwareTokenException[\"ForbiddenException\"] = \"ForbiddenException\";\n VerifySoftwareTokenException[\"InternalErrorException\"] = \"InternalErrorException\";\n VerifySoftwareTokenException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n VerifySoftwareTokenException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n VerifySoftwareTokenException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n VerifySoftwareTokenException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n VerifySoftwareTokenException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n VerifySoftwareTokenException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n VerifySoftwareTokenException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n VerifySoftwareTokenException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n VerifySoftwareTokenException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(VerifySoftwareTokenException || (VerifySoftwareTokenException = {}));\nexport var VerifyUserAttributeException;\n(function (VerifyUserAttributeException) {\n VerifyUserAttributeException[\"AliasExistsException\"] = \"AliasExistsException\";\n VerifyUserAttributeException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n VerifyUserAttributeException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n VerifyUserAttributeException[\"ForbiddenException\"] = \"ForbiddenException\";\n VerifyUserAttributeException[\"InternalErrorException\"] = \"InternalErrorException\";\n VerifyUserAttributeException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n VerifyUserAttributeException[\"LimitExceededException\"] = \"LimitExceededException\";\n VerifyUserAttributeException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n VerifyUserAttributeException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n VerifyUserAttributeException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n VerifyUserAttributeException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n VerifyUserAttributeException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n VerifyUserAttributeException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(VerifyUserAttributeException || (VerifyUserAttributeException = {}));\nexport var UpdateDeviceStatusException;\n(function (UpdateDeviceStatusException) {\n UpdateDeviceStatusException[\"ForbiddenException\"] = \"ForbiddenException\";\n UpdateDeviceStatusException[\"InternalErrorException\"] = \"InternalErrorException\";\n UpdateDeviceStatusException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n UpdateDeviceStatusException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n UpdateDeviceStatusException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n UpdateDeviceStatusException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n UpdateDeviceStatusException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n UpdateDeviceStatusException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n UpdateDeviceStatusException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n UpdateDeviceStatusException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(UpdateDeviceStatusException || (UpdateDeviceStatusException = {}));\nexport var ListDevicesException;\n(function (ListDevicesException) {\n ListDevicesException[\"ForbiddenException\"] = \"ForbiddenException\";\n ListDevicesException[\"InternalErrorException\"] = \"InternalErrorException\";\n ListDevicesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ListDevicesException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ListDevicesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ListDevicesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ListDevicesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ListDevicesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ListDevicesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ListDevicesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ListDevicesException || (ListDevicesException = {}));\nexport const SETUP_TOTP_EXCEPTION = 'SetUpTOTPException';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AuthValidationErrorCode;\n(function (AuthValidationErrorCode) {\n AuthValidationErrorCode[\"EmptySignInUsername\"] = \"EmptySignInUsername\";\n AuthValidationErrorCode[\"EmptySignInPassword\"] = \"EmptySignInPassword\";\n AuthValidationErrorCode[\"CustomAuthSignInPassword\"] = \"CustomAuthSignInPassword\";\n AuthValidationErrorCode[\"EmptySignUpUsername\"] = \"EmptySignUpUsername\";\n AuthValidationErrorCode[\"EmptySignUpPassword\"] = \"EmptySignUpPassword\";\n AuthValidationErrorCode[\"EmptyConfirmSignUpUsername\"] = \"EmptyConfirmSignUpUsername\";\n AuthValidationErrorCode[\"EmptyConfirmSignUpCode\"] = \"EmptyConfirmSignUpCode\";\n AuthValidationErrorCode[\"EmptyResendSignUpCodeUsername\"] = \"EmptyresendSignUpCodeUsername\";\n AuthValidationErrorCode[\"EmptyChallengeResponse\"] = \"EmptyChallengeResponse\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordUsername\"] = \"EmptyConfirmResetPasswordUsername\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordNewPassword\"] = \"EmptyConfirmResetPasswordNewPassword\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordConfirmationCode\"] = \"EmptyConfirmResetPasswordConfirmationCode\";\n AuthValidationErrorCode[\"EmptyResetPasswordUsername\"] = \"EmptyResetPasswordUsername\";\n AuthValidationErrorCode[\"EmptyVerifyTOTPSetupCode\"] = \"EmptyVerifyTOTPSetupCode\";\n AuthValidationErrorCode[\"EmptyConfirmUserAttributeCode\"] = \"EmptyConfirmUserAttributeCode\";\n AuthValidationErrorCode[\"IncorrectMFAMethod\"] = \"IncorrectMFAMethod\";\n AuthValidationErrorCode[\"EmptyUpdatePassword\"] = \"EmptyUpdatePassword\";\n})(AuthValidationErrorCode || (AuthValidationErrorCode = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthValidationErrorCode } from '../errors/types/validation';\nexport const validationErrorMap = {\n [AuthValidationErrorCode.EmptyChallengeResponse]: {\n message: 'challengeResponse is required to confirmSignIn',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordUsername]: {\n message: 'username is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyConfirmSignUpCode]: {\n message: 'code is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyConfirmSignUpUsername]: {\n message: 'username is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordConfirmationCode]: {\n message: 'confirmationCode is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordNewPassword]: {\n message: 'newPassword is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyResendSignUpCodeUsername]: {\n message: 'username is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyResetPasswordUsername]: {\n message: 'username is required to resetPassword',\n },\n [AuthValidationErrorCode.EmptySignInPassword]: {\n message: 'password is required to signIn',\n },\n [AuthValidationErrorCode.EmptySignInUsername]: {\n message: 'username is required to signIn',\n },\n [AuthValidationErrorCode.EmptySignUpPassword]: {\n message: 'password is required to signUp',\n },\n [AuthValidationErrorCode.EmptySignUpUsername]: {\n message: 'username is required to signUp',\n },\n [AuthValidationErrorCode.CustomAuthSignInPassword]: {\n message: 'A password is not needed when signing in with CUSTOM_WITHOUT_SRP',\n recoverySuggestion: 'Do not include a password in your signIn call.',\n },\n [AuthValidationErrorCode.IncorrectMFAMethod]: {\n message: 'Incorrect MFA method was chosen. It should be either SMS or TOTP',\n recoverySuggestion: 'Try to pass TOTP or SMS as the challengeResponse',\n },\n [AuthValidationErrorCode.EmptyVerifyTOTPSetupCode]: {\n message: 'code is required to verifyTotpSetup',\n },\n [AuthValidationErrorCode.EmptyUpdatePassword]: {\n message: 'oldPassword and newPassword are required to changePassword',\n },\n [AuthValidationErrorCode.EmptyConfirmUserAttributeCode]: {\n message: 'confirmation code is required to confirmUserAttribute',\n },\n};\n// TODO: delete this code when the Auth class is removed.\nexport var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n AuthErrorStrings[\"OAUTH_ERROR\"] = \"Couldn't finish OAuth flow, check your User Pool HostedUI settings\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\nexport var AuthErrorCodes;\n(function (AuthErrorCodes) {\n AuthErrorCodes[\"SignInException\"] = \"SignInException\";\n AuthErrorCodes[\"OAuthSignInError\"] = \"OAuthSignInException\";\n})(AuthErrorCodes || (AuthErrorCodes = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { validationErrorMap } from '../../common/AuthErrorStrings';\nimport { AuthError } from '../AuthError';\nexport function assertValidationError(assertion, name) {\n const { message, recoverySuggestion } = validationErrorMap[name];\n if (!assertion) {\n throw new AuthError({ name, message, recoverySuggestion });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst signInReducer = (state, action) => {\n switch (action.type) {\n case 'SET_SIGN_IN_SESSION':\n return {\n ...state,\n signInSession: action.value,\n };\n case 'SET_SIGN_IN_STATE':\n return {\n ...action.value,\n };\n case 'SET_CHALLENGE_NAME':\n return {\n ...state,\n challengeName: action.value,\n };\n case 'SET_USERNAME':\n return {\n ...state,\n username: action.value,\n };\n case 'SET_INITIAL_STATE':\n return defaultState();\n default:\n return state;\n }\n};\nfunction defaultState() {\n return {\n username: undefined,\n challengeName: undefined,\n signInSession: undefined,\n };\n}\nconst createStore = reducer => {\n let currentState = reducer(defaultState(), { type: 'SET_INITIAL_STATE' });\n return {\n getState: () => currentState,\n dispatch: action => {\n currentState = reducer(currentState, action);\n },\n };\n};\nexport const signInStore = createStore(signInReducer);\nexport function setActiveSignInState(state) {\n signInStore.dispatch({\n type: 'SET_SIGN_IN_STATE',\n value: state,\n });\n}\nexport function cleanActiveSignInState() {\n signInStore.dispatch({ type: 'SET_INITIAL_STATE' });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const textEncoder = {\n convert(input) {\n return new TextEncoder().encode(input);\n },\n};\n","/* eslint-disable */\n// @ts-nocheck -> BigInteger is already a vended utility\n// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\nexport default BigInteger;\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null)\n this.fromString(a, b);\n}\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null, null);\n}\n// Bits per digit\nlet dbits;\n// JavaScript engine analysis\nconst canary = 0xdeadbeefcafe;\nconst j_lm = (canary & 0xffffff) === 0xefcafe;\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n const v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n const xl = x & 0x7fff;\n const xh = x >> 15;\n while (--n >= 0) {\n let l = this[i] & 0x7fff;\n const h = this[i++] >> 15;\n const m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n const xl = x & 0x3fff;\n const xh = x >> 14;\n while (--n >= 0) {\n let l = this[i] & 0x3fff;\n const h = this[i++] >> 14;\n const m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nconst inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName === 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if (inBrowser && j_lm && navigator.appName !== 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nconst BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nconst BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nconst BI_RC = [];\nlet rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n const c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (let i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0)\n this[0] = x;\n else if (x < -1)\n this[0] = x + this.DV;\n else\n this.t = 0;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n const r = nbi();\n r.fromInt(i);\n return r;\n}\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n let k;\n if (b === 16)\n k = 4;\n else if (b === 8)\n k = 3;\n else if (b === 2)\n k = 1;\n else if (b === 32)\n k = 5;\n else if (b === 4)\n k = 2;\n else\n throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n let i = s.length;\n let mi = false;\n let sh = 0;\n while (--i >= 0) {\n const x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) === '-')\n mi = true;\n continue;\n }\n mi = false;\n if (sh === 0)\n this[this.t++] = x;\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = x >> (this.DB - sh);\n }\n else\n this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB)\n sh -= this.DB;\n }\n this.clamp();\n if (mi)\n BigInteger.ZERO.subTo(this, this);\n}\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n const c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0)\n return '-' + this.negate().toString(b);\n let k;\n if (b == 16)\n k = 4;\n else if (b === 8)\n k = 3;\n else if (b === 2)\n k = 1;\n else if (b === 32)\n k = 5;\n else if (b === 4)\n k = 2;\n else\n throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n const km = (1 << k) - 1;\n let d;\n let m = false;\n let r = '';\n let i = this.t;\n let p = this.DB - ((i * this.DB) % k);\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n// (public) -this\nfunction bnNegate() {\n const r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n let r = this.s - a.s;\n if (r != 0)\n return r;\n let i = this.t;\n r = i - a.t;\n if (r != 0)\n return this.s < 0 ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n let r = 1;\n let t;\n if ((t = x >>> 16) !== 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) !== 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) !== 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) !== 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) !== 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0)\n return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n}\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n let i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (let i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n const bs = n % this.DB;\n const cbs = this.DB - bs;\n const bm = (1 << cbs) - 1;\n const ds = Math.floor(n / this.DB);\n let c = (this.s << bs) & this.DM;\n let i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n const ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n const bs = n % this.DB;\n const cbs = this.DB - bs;\n const bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (let i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0)\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n let i = 0;\n let c = 0;\n const m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1)\n r[i++] = this.DV + c;\n else if (c > 0)\n r[i++] = c;\n r.t = i;\n r.clamp();\n}\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n const x = this.abs();\n const y = a.abs();\n let i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s !== a.s)\n BigInteger.ZERO.subTo(r, r);\n}\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n const x = this.abs();\n let i = (r.t = 2 * x.t);\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n const c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0)\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n const pm = m.abs();\n if (pm.t <= 0)\n return;\n const pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null)\n q.fromInt(0);\n if (r != null)\n this.copyTo(r);\n return;\n }\n if (r === null)\n r = nbi();\n const y = nbi();\n const ts = this.s;\n const ms = m.s;\n const nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n const ys = y.t;\n const y0 = y[ys - 1];\n if (y0 === 0)\n return;\n const yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n const d1 = this.FV / yt;\n const d2 = (1 << this.F1) / yt;\n const e = 1 << this.F2;\n let i = r.t;\n let j = i - ys;\n const t = q === null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n let qd = r[--i] === y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd)\n r.subTo(t, r);\n }\n }\n if (q !== null) {\n r.drShiftTo(ys, q);\n if (ts !== ms)\n BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0)\n r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0)\n BigInteger.ZERO.subTo(r, r);\n}\n// (public) this mod a\nfunction bnMod(a) {\n const r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n a.subTo(r, r);\n return r;\n}\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1)\n return 0;\n const x = this[0];\n if ((x & 1) === 0)\n return 0;\n let y = x & 3;\n // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf;\n // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff;\n // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - ((x * y) % this.DV))) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) === 0;\n}\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n let i = 0;\n let c = 0;\n const m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0)\n r[i++] = c;\n else if (c < -1)\n r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n// (public) this + a\nfunction bnAdd(a) {\n const r = nbi();\n this.addTo(a, r);\n return r;\n}\n// (public) this - a\nfunction bnSubtract(a) {\n const r = nbi();\n this.subTo(a, r);\n return r;\n}\n// (public) this * a\nfunction bnMultiply(a) {\n const r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n// (public) this / a\nfunction bnDivide(a) {\n const r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n}\n// xR mod m\nfunction montConvert(x) {\n const r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n this.m.subTo(r, r);\n return r;\n}\n// x/R mod m\nfunction montRevert(x) {\n const r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (let i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n let j = x[i] & 0x7fff;\n const u0 = (j * this.mpl +\n (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0)\n x.subTo(this.m, x);\n}\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n let i = e.bitLength();\n let k;\n let r = nbv(1);\n const z = new Montgomery(m);\n if (i <= 0)\n return r;\n else if (i < 18)\n k = 1;\n else if (i < 48)\n k = 3;\n else if (i < 144)\n k = 4;\n else if (i < 768)\n k = 5;\n else\n k = 6;\n // precomputation\n const g = [];\n let n = 3;\n const k1 = k - 1;\n const km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n const g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n let j = e.t - 1;\n let w;\n let is1 = true;\n let r2 = nbi();\n let t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1)\n w = (e[j] >> (i - k1)) & km;\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0)\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n n = k;\n while ((w & 1) === 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0)\n z.sqrTo(r, r2);\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) === 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n const result = z.revert(r);\n callback(null, result);\n return result;\n}\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * @internal\n */\nexport const calculateS = async ({ a, g, k, x, B, N, U, }) => {\n return new Promise((resolve, reject) => {\n g.modPow(x, N, (outerErr, outerResult) => {\n if (outerErr) {\n reject(outerErr);\n return;\n }\n B.subtract(k.multiply(outerResult)).modPow(a.add(U.multiply(x)), N, (innerErr, innerResult) => {\n if (innerErr) {\n reject(innerErr);\n return;\n }\n resolve(innerResult.mod(N));\n });\n });\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const INIT_N = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' +\n '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' +\n 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' +\n 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' +\n 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' +\n 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' +\n '83655D23DCA3AD961C62F356208552BB9ED529077096966D' +\n '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' +\n 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' +\n 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' +\n '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' +\n 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' +\n 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' +\n 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' +\n 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' +\n '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nexport const SHORT_TO_HEX = {};\nexport const HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { HEX_TO_SHORT } from './constants';\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport const getBytesFromHex = (encoded) => {\n if (encoded.length % 2 !== 0) {\n throw new Error('Hex encoded strings must have an even number length');\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SHORT_TO_HEX } from './constants';\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport const getHexFromBytes = (bytes) => {\n let out = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { getHexFromBytes } from './getHexFromBytes';\n/**\n * Calculate a hash from a `SourceData`\n * @param {SourceData} data Value to hash.\n * @returns {string} Hex-encoded hash.\n * @private\n */\nexport const getHashFromData = (data) => {\n const sha256 = new Sha256();\n sha256.update(data);\n const hashedData = sha256.digestSync();\n const hashHexFromUint8 = getHexFromBytes(hashedData);\n return new Array(64 - hashHexFromUint8.length).join('0') + hashHexFromUint8;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getBytesFromHex } from './getBytesFromHex';\nimport { getHashFromData } from './getHashFromData';\n/**\n * Calculate a hash from a hex string\n * @param {string} hexStr Value to hash.\n * @returns {string} Hex-encoded hash.\n * @private\n */\nexport const getHashFromHex = (hexStr) => getHashFromData(getBytesFromHex(hexStr));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from './BigInteger';\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nconst HEX_MSB_REGEX = /^[89a-f]/i;\n/**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {AuthBigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */\nexport const getPaddedHex = (bigInt) => {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n const isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n /* Get a hex string for abs(bigInt) */\n let hexStr = bigInt.abs().toString(16);\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? `0${hexStr}` : hexStr;\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? `00${hexStr}` : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n const invertedNibbles = hexStr\n .split('')\n .map((x) => {\n const invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n })\n .join('');\n /* After flipping the bits, add one to get the 2's complement representation */\n const flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n\n Any sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n\n This only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { cryptoSecureRandomInt } from './cryptoSecureRandomInt';\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n const { words } = wordArray;\n const { sigBytes } = wordArray;\n // Convert\n const hexChars = [];\n for (let i = 0; i < sigBytes; i++) {\n const bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nexport class WordArray {\n constructor(words, sigBytes) {\n this.words = [];\n let Words = words;\n Words = this.words = Words || [];\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n }\n else {\n this.sigBytes = Words.length * 4;\n }\n }\n random(nBytes) {\n const words = [];\n for (let i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n }\n toString() {\n return hexStringify(this);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCrypto } from './globalHelpers';\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport function cryptoSecureRandomInt() {\n const crypto = getCrypto();\n const randomResult = crypto.getRandomValues(new Uint32Array(1))[0];\n return randomResult;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { WordArray } from '@aws-amplify/core/internals/utils';\nimport { getBytesFromHex } from './getBytesFromHex';\n/**\n * Returns a Uint8Array with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Uint8Array} fixed-length sequence of random bytes\n */\nexport const getRandomBytes = (nBytes) => {\n const str = new WordArray().random(nBytes).toString();\n return getBytesFromHex(str);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../../../errors/AuthError';\nimport { textEncoder } from '../../textEncoder';\nimport { BigInteger } from '../BigInteger';\nimport { calculateS, calculateU } from '../calculate';\nimport { getBytesFromHex } from '../getBytesFromHex';\nimport { getHashFromData } from '../getHashFromData';\nimport { getHashFromHex } from '../getHashFromHex';\nimport { getHexFromBytes } from '../getHexFromBytes';\nimport { getHkdfKey } from '../getHkdfKey';\nimport { getPaddedHex } from '../getPaddedHex';\nimport { getRandomBytes } from '../getRandomBytes';\nimport { getRandomString } from '../getRandomString';\n/** @class */\nexport default class AuthenticationHelper {\n constructor({ userPoolName, a, g, A, N, }) {\n this.encoder = textEncoder;\n this.userPoolName = userPoolName;\n this.a = a;\n this.g = g;\n this.A = A;\n this.N = N;\n this.k = new BigInteger(getHashFromHex(`${getPaddedHex(N)}${getPaddedHex(g)}`), 16);\n }\n /**\n * @returns {string} Generated random value included in password hash.\n */\n getRandomPassword() {\n if (!this.randomPassword) {\n throw new AuthError({\n name: 'EmptyBigIntegerRandomPassword',\n message: 'random password is empty',\n });\n }\n return this.randomPassword;\n }\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n getSaltToHashDevices() {\n if (!this.saltToHashDevices) {\n throw new AuthError({\n name: 'EmptyBigIntegersaltToHashDevices',\n message: 'saltToHashDevices is empty',\n });\n }\n return this.saltToHashDevices;\n }\n /**\n * @returns {string} Value used to verify devices.\n */\n getVerifierDevices() {\n if (!this.verifierDevices) {\n throw new AuthError({\n name: 'EmptyBigIntegerVerifierDevices',\n message: 'verifyDevices is empty',\n });\n }\n return this.verifierDevices;\n }\n /**\n * Generate salts and compute verifier.\n *\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n *\n * @returns {Promise}\n */\n async generateHashDevice(deviceGroupKey, username) {\n this.randomPassword = getRandomString();\n const combinedString = `${deviceGroupKey}${username}:${this.randomPassword}`;\n const hashedString = getHashFromData(combinedString);\n const hexRandom = getHexFromBytes(getRandomBytes(16));\n // The random hex will be unambiguously represented as a postive integer\n this.saltToHashDevices = getPaddedHex(new BigInteger(hexRandom, 16));\n return new Promise((resolve, reject) => {\n this.g.modPow(new BigInteger(getHashFromHex(this.saltToHashDevices + hashedString), 16), this.N, (err, result) => {\n if (err) {\n reject(err);\n return;\n }\n this.verifierDevices = getPaddedHex(result);\n resolve();\n });\n });\n }\n /**\n * Calculates the final HKDF key based on computed S value, computed U value and the key\n *\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {AuthBigInteger} B Server B value.\n * @param {AuthBigInteger} salt Generated salt.\n */\n async getPasswordAuthenticationKey({ username, password, serverBValue, salt, }) {\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n const U = calculateU({\n A: this.A,\n B: serverBValue,\n });\n const usernamePassword = `${this.userPoolName}${username}:${password}`;\n const usernamePasswordHash = getHashFromData(usernamePassword);\n const x = new BigInteger(getHashFromHex(getPaddedHex(salt) + usernamePasswordHash), 16);\n const S = await calculateS({\n a: this.a,\n g: this.g,\n k: this.k,\n x,\n B: serverBValue,\n N: this.N,\n U,\n });\n const context = this.encoder.convert('Caldera Derived Key');\n const spacer = this.encoder.convert(String.fromCharCode(1));\n const info = new Uint8Array(context.byteLength + spacer.byteLength);\n info.set(context, 0);\n info.set(spacer, context.byteLength);\n const hkdfKey = getHkdfKey(getBytesFromHex(getPaddedHex(S)), getBytesFromHex(getPaddedHex(U)), info);\n return hkdfKey;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { base64Encoder } from '@aws-amplify/core/internals/utils';\nimport { getRandomBytes } from './getRandomBytes';\n/**\n * Helper function to generate a random string\n * @returns {string} a random value.\n *\n * @internal\n */\nexport const getRandomString = () => base64Encoder.convert(getRandomBytes(40));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from '../BigInteger';\nimport { getHashFromHex } from '../getHashFromHex';\nimport { getPaddedHex } from '../getPaddedHex';\n/**\n * @internal\n */\nexport const calculateU = ({ A, B, }) => {\n const U = new BigInteger(getHashFromHex(getPaddedHex(A) + getPaddedHex(B)), 16);\n if (U.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n return U;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\n/**\n * Standard HKDF algorithm.\n *\n * @param {Uint8Array} ikm Input key material.\n * @param {Uint8Array} salt Salt value.\n * @param {Uint8Array} info Context and application specific info.\n *\n * @returns {Uint8Array} Strong key material.\n *\n * @internal\n */\nexport const getHkdfKey = (ikm, salt, info) => {\n const awsCryptoHash = new Sha256(salt);\n awsCryptoHash.update(ikm);\n const resultFromAWSCryptoPrk = awsCryptoHash.digestSync();\n const awsCryptoHashHmac = new Sha256(resultFromAWSCryptoPrk);\n awsCryptoHashHmac.update(info);\n const resultFromAWSCryptoHmac = awsCryptoHashHmac.digestSync();\n const hashHexFromAWSCrypto = resultFromAWSCryptoHmac;\n return hashHexFromAWSCrypto.slice(0, 16);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from '../BigInteger';\n/**\n * @internal\n */\nexport const calculateA = async ({ a, g, N, }) => {\n return new Promise((resolve, reject) => {\n g.modPow(a, N, (err, A) => {\n if (err) {\n reject(err);\n return;\n }\n if (A.mod(N).equals(BigInteger.ZERO)) {\n reject(new Error('Illegal parameter. A mod N cannot be 0.'));\n return;\n }\n resolve(A);\n });\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthenticationHelper } from './AuthenticationHelper';\nimport { BigInteger } from './BigInteger';\nimport { calculateA } from './calculate';\nimport { INIT_N } from './constants';\nimport { getHexFromBytes } from './getHexFromBytes';\nimport { getRandomBytes } from './getRandomBytes';\n/**\n * Returns a new {@link AuthenticationHelper} instance with randomly generated BigInteger seed\n *\n * @param userPoolName Cognito user pool name.\n * @returns An {@link AuthenticationHelper} instance.\n *\n * @internal\n */\nexport const getAuthenticationHelper = async (userPoolName) => {\n const N = new BigInteger(INIT_N, 16);\n const g = new BigInteger('2', 16);\n const a = generateRandomBigInteger();\n const A = await calculateA({ a, g, N });\n return new AuthenticationHelper({ userPoolName, a, g, A, N });\n};\n/**\n * Generates a random BigInteger.\n *\n * @returns {BigInteger} a random value.\n */\nconst generateRandomBigInteger = () => {\n // This will be interpreted as a postive 128-bit integer\n const hexRandom = getHexFromBytes(getRandomBytes(128));\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n return new BigInteger(hexRandom, 16);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst MONTH_NAMES = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\nconst WEEK_NAMES = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nexport const getNowString = () => {\n const now = new Date();\n const weekDay = WEEK_NAMES[now.getUTCDay()];\n const month = MONTH_NAMES[now.getUTCMonth()];\n const day = now.getUTCDate();\n let hours = now.getUTCHours();\n if (hours < 10) {\n hours = `0${hours}`;\n }\n let minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n let seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n const year = now.getUTCFullYear();\n // ddd MMM D HH:mm:ss UTC YYYY\n const dateNow = `${weekDay} ${month} ${day} ${hours}:${minutes}:${seconds} UTC ${year}`;\n return dateNow;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { base64Decoder, base64Encoder, } from '@aws-amplify/core/internals/utils';\nimport { textEncoder } from '../textEncoder';\nexport const getSignatureString = ({ userPoolName, username, challengeParameters, dateNow, hkdf, }) => {\n const bufUPIDaToB = textEncoder.convert(userPoolName);\n const bufUNaToB = textEncoder.convert(username);\n const bufSBaToB = urlB64ToUint8Array(challengeParameters.SECRET_BLOCK);\n const bufDNaToB = textEncoder.convert(dateNow);\n const bufConcat = new Uint8Array(bufUPIDaToB.byteLength +\n bufUNaToB.byteLength +\n bufSBaToB.byteLength +\n bufDNaToB.byteLength);\n bufConcat.set(bufUPIDaToB, 0);\n bufConcat.set(bufUNaToB, bufUPIDaToB.byteLength);\n bufConcat.set(bufSBaToB, bufUPIDaToB.byteLength + bufUNaToB.byteLength);\n bufConcat.set(bufDNaToB, bufUPIDaToB.byteLength + bufUNaToB.byteLength + bufSBaToB.byteLength);\n const awsCryptoHash = new Sha256(hkdf);\n awsCryptoHash.update(bufConcat);\n const resultFromAWSCrypto = awsCryptoHash.digestSync();\n const signatureString = base64Encoder.convert(resultFromAWSCrypto);\n return signatureString;\n};\nconst urlB64ToUint8Array = (base64String) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n const rawData = base64Decoder.convert(base64);\n const outputArray = new Uint8Array(rawData.length);\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AmplifyUrl, AuthAction, assertTokenProviderConfig, base64Encoder, getDeviceName, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { InitiateAuthException } from '../types/errors';\nimport { AuthErrorCodes } from '../../../common/AuthErrorStrings';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { USER_ALREADY_AUTHENTICATED_EXCEPTION } from '../../../errors/constants';\nimport { getCurrentUser } from '../apis/getCurrentUser';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { signInStore } from './signInStore';\nimport { associateSoftwareToken, confirmDevice, initiateAuth, respondToAuthChallenge, verifySoftwareToken, } from './clients/CognitoIdentityProvider';\nimport { getRegion } from './clients/CognitoIdentityProvider/utils';\nimport { assertDeviceMetadata } from './types';\nimport { getAuthenticationHelper, getBytesFromHex, getNowString, getSignatureString, } from './srp';\nimport { BigInteger } from './srp/BigInteger';\nimport { getUserContextData } from './userContextData';\nconst USER_ATTRIBUTES = 'userAttributes.';\nexport async function handleCustomChallenge({ challengeResponse, clientMetadata, session, username, config, tokenOrchestrator, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n ANSWER: challengeResponse,\n };\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH') {\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n }\n return response;\n}\nexport async function handleMFASetupChallenge({ challengeResponse, username, clientMetadata, session, deviceName, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n };\n const { Session } = await verifySoftwareToken({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, {\n UserCode: challengeResponse,\n Session: session,\n FriendlyDeviceName: deviceName,\n });\n signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n return respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReq);\n}\nexport async function handleSelectMFATypeChallenge({ challengeResponse, username, clientMetadata, session, config, }) {\n const { userPoolId, userPoolClientId } = config;\n assertValidationError(challengeResponse === 'TOTP' || challengeResponse === 'SMS', AuthValidationErrorCode.IncorrectMFAMethod);\n const challengeResponses = {\n USERNAME: username,\n ANSWER: mapMfaType(challengeResponse),\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleSMSMFAChallenge({ challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n SMS_MFA_CODE: challengeResponse,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SMS_MFA',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleSoftwareTokenMFAChallenge({ challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n SOFTWARE_TOKEN_MFA_CODE: challengeResponse,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SOFTWARE_TOKEN_MFA',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleCompleteNewPasswordChallenge({ challengeResponse, clientMetadata, session, username, requiredAttributes, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n ...createAttributes(requiredAttributes),\n NEW_PASSWORD: challengeResponse,\n USERNAME: username,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleUserPasswordAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId } = config;\n const authParameters = {\n USERNAME: username,\n PASSWORD: password,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ??\n response.ChallengeParameters?.USER_ID_FOR_SRP ??\n username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function handleUserSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_SRP_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const resp = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const { ChallengeParameters: challengeParameters, Session: session } = resp;\n const activeUsername = challengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nexport async function handleCustomAuthFlowWithoutSRP(username, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId } = config;\n const authParameters = {\n USERNAME: username,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function handleCustomSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n assertTokenProviderConfig(config);\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n CHALLENGE_NAME: 'SRP_A',\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const { ChallengeParameters: challengeParameters, Session: session } = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = challengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nasync function handleDeviceSRPAuth({ username, config, clientMetadata, session, tokenOrchestrator, }) {\n const { userPoolId } = config;\n const clientId = config.userPoolClientId;\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n assertDeviceMetadata(deviceMetadata);\n const authenticationHelper = await getAuthenticationHelper(deviceMetadata.deviceGroupKey);\n const challengeResponses = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n DEVICE_KEY: deviceMetadata.deviceKey,\n };\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: clientId,\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n };\n const { ChallengeParameters: respondedChallengeParameters, Session } = await respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n return handleDevicePasswordVerifier(username, respondedChallengeParameters, clientMetadata, Session, authenticationHelper, config, tokenOrchestrator);\n}\nasync function handleDevicePasswordVerifier(username, challengeParameters, clientMetadata, session, authenticationHelper, { userPoolId, userPoolClientId }, tokenOrchestrator) {\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n assertDeviceMetadata(deviceMetadata);\n const serverBValue = new BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger(challengeParameters?.SALT, 16);\n const { deviceKey } = deviceMetadata;\n const { deviceGroupKey } = deviceMetadata;\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username: deviceMetadata.deviceKey,\n password: deviceMetadata.randomPassword,\n serverBValue,\n salt,\n });\n const dateNow = getNowString();\n const challengeResponses = {\n USERNAME: challengeParameters?.USERNAME ?? username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: getSignatureString({\n username: deviceKey,\n userPoolName: deviceGroupKey,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n DEVICE_KEY: deviceKey,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: userPoolClientId,\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n UserContextData,\n };\n return respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n}\nexport async function handlePasswordVerifierChallenge(password, challengeParameters, clientMetadata, session, authenticationHelper, config, tokenOrchestrator) {\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const serverBValue = new BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger(challengeParameters?.SALT, 16);\n const username = challengeParameters?.USER_ID_FOR_SRP;\n if (!username)\n throw new AuthError({\n name: 'EmptyUserIdForSRPException',\n message: 'USER_ID_FOR_SRP was not found in challengeParameters',\n });\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username,\n password,\n serverBValue,\n salt,\n });\n const dateNow = getNowString();\n const challengeResponses = {\n USERNAME: username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: getSignatureString({\n username,\n userPoolName,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function getSignInResult(params) {\n const { challengeName, challengeParameters } = params;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n switch (challengeName) {\n case 'CUSTOM_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE',\n additionalInfo: challengeParameters,\n },\n };\n case 'MFA_SETUP': {\n const { signInSession, username } = signInStore.getState();\n if (!isMFATypeEnabled(challengeParameters, 'TOTP'))\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: `Cannot initiate MFA setup from available types: ${getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_SETUP))}`,\n });\n const { Session, SecretCode: secretCode } = await associateSoftwareToken({ region: getRegion(authConfig.userPoolId) }, {\n Session: signInSession,\n });\n signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP',\n totpSetupDetails: getTOTPSetupDetails(secretCode, username),\n },\n };\n }\n case 'NEW_PASSWORD_REQUIRED':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n missingAttributes: parseAttributes(challengeParameters.requiredAttributes),\n },\n };\n case 'SELECT_MFA_TYPE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n allowedMFATypes: getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_CHOOSE)),\n },\n };\n case 'SMS_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'SOFTWARE_TOKEN_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n },\n };\n case 'ADMIN_NO_SRP_AUTH':\n break;\n case 'DEVICE_PASSWORD_VERIFIER':\n break;\n case 'DEVICE_SRP_AUTH':\n break;\n case 'PASSWORD_VERIFIER':\n break;\n }\n // TODO: remove this error message for production apps\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: 'An error occurred during the sign in process. ' +\n `${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexport function getTOTPSetupDetails(secretCode, username) {\n return {\n sharedSecret: secretCode,\n getSetupUri: (appName, accountName) => {\n const totpUri = `otpauth://totp/${appName}:${accountName ?? username}?secret=${secretCode}&issuer=${appName}`;\n return new AmplifyUrl(totpUri);\n },\n };\n}\nexport function getSignInResultFromError(errorName) {\n if (errorName === InitiateAuthException.PasswordResetRequiredException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'RESET_PASSWORD' },\n };\n }\n else if (errorName === InitiateAuthException.UserNotConfirmedException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'CONFIRM_SIGN_UP' },\n };\n }\n}\nexport function parseAttributes(attributes) {\n if (!attributes)\n return [];\n const parsedAttributes = JSON.parse(attributes).map(att => att.includes(USER_ATTRIBUTES) ? att.replace(USER_ATTRIBUTES, '') : att);\n return parsedAttributes;\n}\nexport function createAttributes(attributes) {\n if (!attributes)\n return {};\n const newAttributes = {};\n Object.entries(attributes).forEach(([key, value]) => {\n if (value)\n newAttributes[`${USER_ATTRIBUTES}${key}`] = value;\n });\n return newAttributes;\n}\nexport async function handleChallengeName(username, challengeName, session, challengeResponse, config, tokenOrchestrator, clientMetadata, options) {\n const userAttributes = options?.userAttributes;\n const deviceName = options?.friendlyDeviceName;\n switch (challengeName) {\n case 'SMS_MFA':\n return handleSMSMFAChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'SELECT_MFA_TYPE':\n return handleSelectMFATypeChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'MFA_SETUP':\n return handleMFASetupChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n deviceName,\n config,\n });\n case 'NEW_PASSWORD_REQUIRED':\n return handleCompleteNewPasswordChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n requiredAttributes: userAttributes,\n config,\n });\n case 'CUSTOM_CHALLENGE':\n return retryOnResourceNotFoundException(handleCustomChallenge, [\n {\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n tokenOrchestrator,\n },\n ], username, tokenOrchestrator);\n case 'SOFTWARE_TOKEN_MFA':\n return handleSoftwareTokenMFAChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n }\n // TODO: remove this error message for production apps\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: `An error occurred during the sign in process. \n\t\t${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexport function mapMfaType(mfa) {\n let mfaType = 'SMS_MFA';\n if (mfa === 'TOTP')\n mfaType = 'SOFTWARE_TOKEN_MFA';\n return mfaType;\n}\nexport function getMFAType(type) {\n if (type === 'SMS_MFA')\n return 'SMS';\n if (type === 'SOFTWARE_TOKEN_MFA')\n return 'TOTP';\n // TODO: log warning for unknown MFA type\n}\nexport function getMFATypes(types) {\n if (!types)\n return undefined;\n return types.map(getMFAType).filter(Boolean);\n}\nexport function parseMFATypes(mfa) {\n if (!mfa)\n return [];\n return JSON.parse(mfa);\n}\nexport function isMFATypeEnabled(challengeParams, mfaType) {\n const { MFAS_CAN_SETUP } = challengeParams;\n const mfaTypes = getMFATypes(parseMFATypes(MFAS_CAN_SETUP));\n if (!mfaTypes)\n return false;\n return mfaTypes.includes(mfaType);\n}\nexport async function assertUserNotAuthenticated() {\n let authUser;\n try {\n authUser = await getCurrentUser();\n }\n catch (error) { }\n if (authUser && authUser.userId && authUser.username) {\n throw new AuthError({\n name: USER_ALREADY_AUTHENTICATED_EXCEPTION,\n message: 'There is already a signed in user.',\n recoverySuggestion: 'Call signOut before calling signIn again.',\n });\n }\n}\n/**\n * This function is used to kick off the device management flow.\n *\n * If an error is thrown while generating a hash device or calling the `ConfirmDevice`\n * client, then this API will ignore the error and return undefined. Otherwise the authentication\n * flow will not complete and the user won't be able to be signed in.\n *\n * @returns DeviceMetadata | undefined\n */\nexport async function getNewDeviceMetatada(userPoolId, newDeviceMetadata, accessToken) {\n if (!newDeviceMetadata)\n return undefined;\n const userPoolName = userPoolId.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const deviceKey = newDeviceMetadata?.DeviceKey;\n const deviceGroupKey = newDeviceMetadata?.DeviceGroupKey;\n try {\n await authenticationHelper.generateHashDevice(deviceGroupKey ?? '', deviceKey ?? '');\n }\n catch (errGenHash) {\n // TODO: log error here\n return undefined;\n }\n const deviceSecretVerifierConfig = {\n Salt: base64Encoder.convert(getBytesFromHex(authenticationHelper.getSaltToHashDevices())),\n PasswordVerifier: base64Encoder.convert(getBytesFromHex(authenticationHelper.getVerifierDevices())),\n };\n const randomPassword = authenticationHelper.getRandomPassword();\n try {\n await confirmDevice({ region: getRegion(userPoolId) }, {\n AccessToken: accessToken,\n DeviceName: await getDeviceName(),\n DeviceKey: newDeviceMetadata?.DeviceKey,\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n });\n return {\n deviceKey,\n deviceGroupKey,\n randomPassword,\n };\n }\n catch (error) {\n // TODO: log error here\n return undefined;\n }\n}\n/**\n * It will retry the function if the error is a `ResourceNotFoundException` and\n * will clean the device keys stored in the storage mechanism.\n *\n */\nexport async function retryOnResourceNotFoundException(func, args, username, tokenOrchestrator) {\n try {\n return await func(...args);\n }\n catch (error) {\n if (error instanceof AuthError &&\n error.name === 'ResourceNotFoundException' &&\n error.message.includes('Device does not exist.')) {\n await tokenOrchestrator.clearDeviceMetadata(username);\n return func(...args);\n }\n throw error;\n }\n}\nexport function setActiveSignInUsername(username) {\n const { dispatch } = signInStore;\n dispatch({ type: 'SET_USERNAME', value: username });\n}\nexport function getActiveSignInUsername(username) {\n const state = signInStore.getState();\n return state.username ?? username;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError, decodeJWT } from '@aws-amplify/core/internals/utils';\nimport { tokenOrchestrator } from './tokenProvider';\nexport async function cacheCognitoTokens(AuthenticationResult) {\n if (AuthenticationResult.AccessToken) {\n const accessToken = decodeJWT(AuthenticationResult.AccessToken);\n const accessTokenIssuedAtInMillis = (accessToken.payload.iat || 0) * 1000;\n const currentTime = new Date().getTime();\n const clockDrift = accessTokenIssuedAtInMillis > 0\n ? accessTokenIssuedAtInMillis - currentTime\n : 0;\n let idToken;\n let refreshToken;\n let deviceMetadata;\n if (AuthenticationResult.RefreshToken) {\n refreshToken = AuthenticationResult.RefreshToken;\n }\n if (AuthenticationResult.IdToken) {\n idToken = decodeJWT(AuthenticationResult.IdToken);\n }\n if (AuthenticationResult?.NewDeviceMetadata) {\n deviceMetadata = AuthenticationResult.NewDeviceMetadata;\n }\n const tokens = {\n accessToken,\n idToken,\n refreshToken,\n clockDrift,\n deviceMetadata,\n username: AuthenticationResult.username,\n };\n if (AuthenticationResult?.signInDetails) {\n tokens.signInDetails = AuthenticationResult.signInDetails;\n }\n await tokenOrchestrator.setTokens({\n tokens,\n });\n }\n else {\n // This would be a service error\n throw new AmplifyError({\n message: 'Invalid tokens',\n name: 'InvalidTokens',\n recoverySuggestion: 'Check Cognito UserPool settings',\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nimport { getCurrentUser } from '../apis/getCurrentUser';\nimport { UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION, USER_UNAUTHENTICATED_EXCEPTION, } from '../../../errors/constants';\nimport { AuthError } from '../../../errors/AuthError';\nexport const ERROR_MESSAGE = 'Unable to get user session following successful sign-in.';\nexport const dispatchSignedInHubEvent = async () => {\n try {\n Hub.dispatch('auth', {\n event: 'signedIn',\n data: await getCurrentUser(),\n }, 'Auth', AMPLIFY_SYMBOL);\n }\n catch (error) {\n if (error.name === USER_UNAUTHENTICATED_EXCEPTION) {\n throw new AuthError({\n name: UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION,\n message: ERROR_MESSAGE,\n recoverySuggestion: 'This most likely is due to auth tokens not being persisted. If you are using cookie store, please ensure cookies can be correctly set from your server.',\n });\n }\n throw error;\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleCustomSRPAuthFlow, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using a custom authentication flow with SRP\n *\n * @param input - The SignInWithCustomSRPAuthInput object\n * @returns SignInWithCustomSRPAuthOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException } - Cognito\n * service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithCustomSRPAuth(input) {\n const { username, password, options } = input;\n const signInDetails = {\n loginId: username,\n authFlowType: 'CUSTOM_WITH_SRP',\n };\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: handledChallengeName, ChallengeParameters: handledChallengeParameters, AuthenticationResult, Session, } = await handleCustomSRPAuthFlow(username, password, metadata, authConfig, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: handledChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n cleanActiveSignInState();\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: handledChallengeName,\n challengeParameters: handledChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleUserSRPAuthFlow, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in\n *\n * @param input - The SignInWithSRPInput object\n * @returns SignInWithSRPOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException } - Cognito service errors\n * thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithSRP(input) {\n const { username, password } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signInDetails = {\n loginId: username,\n authFlowType: 'USER_SRP_AUTH',\n };\n assertTokenProviderConfig(authConfig);\n const clientMetaData = input.options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: handledChallengeName, ChallengeParameters: handledChallengeParameters, AuthenticationResult, Session, } = await handleUserSRPAuthFlow(username, password, clientMetaData, authConfig, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: handledChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n cleanActiveSignInState();\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: handledChallengeName,\n challengeParameters: handledChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertUserNotAuthenticated } from '../utils/signInHelpers';\nimport { signInWithCustomAuth } from './signInWithCustomAuth';\nimport { signInWithCustomSRPAuth } from './signInWithCustomSRPAuth';\nimport { signInWithSRP } from './signInWithSRP';\nimport { signInWithUserPassword } from './signInWithUserPassword';\n/**\n * Signs a user in\n *\n * @param input - The SignInInput object\n * @returns SignInOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException }\n * - Cognito service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signIn(input) {\n const authFlowType = input.options?.authFlowType;\n await assertUserNotAuthenticated();\n switch (authFlowType) {\n case 'USER_SRP_AUTH':\n return signInWithSRP(input);\n case 'USER_PASSWORD_AUTH':\n return signInWithUserPassword(input);\n case 'CUSTOM_WITHOUT_SRP':\n return signInWithCustomAuth(input);\n case 'CUSTOM_WITH_SRP':\n return signInWithCustomSRPAuth(input);\n default:\n return signInWithSRP(input);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleUserPasswordAuthFlow, retryOnResourceNotFoundException, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using USER_PASSWORD_AUTH AuthFlowType\n *\n * @param input - The SignInWithUserPasswordInput object\n * @returns SignInWithUserPasswordOutput\n * @throws service: {@link InitiateAuthException } - Cognito service error thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithUserPassword(input) {\n const { username, password, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signInDetails = {\n loginId: username,\n authFlowType: 'USER_PASSWORD_AUTH',\n };\n assertTokenProviderConfig(authConfig);\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: retiredChallengeName, ChallengeParameters: retriedChallengeParameters, AuthenticationResult, Session, } = await retryOnResourceNotFoundException(handleUserPasswordAuthFlow, [username, password, metadata, authConfig, tokenOrchestrator], username, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: retiredChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n await cacheCognitoTokens({\n ...AuthenticationResult,\n username: activeUsername,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n cleanActiveSignInState();\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: retiredChallengeName,\n challengeParameters: retriedChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleCustomAuthFlowWithoutSRP, retryOnResourceNotFoundException, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using a custom authentication flow without password\n *\n * @param input - The SignInWithCustomAuthInput object\n * @returns AuthSignInResult\n * @throws service: {@link InitiateAuthException } - Cognito service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws SignInWithCustomAuthOutput - Thrown when the token provider config is invalid.\n */\nexport async function signInWithCustomAuth(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { username, password, options } = input;\n const signInDetails = {\n loginId: username,\n authFlowType: 'CUSTOM_WITHOUT_SRP',\n };\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!password, AuthValidationErrorCode.CustomAuthSignInPassword);\n try {\n const { ChallengeName: retriedChallengeName, ChallengeParameters: retiredChallengeParameters, AuthenticationResult, Session, } = await retryOnResourceNotFoundException(handleCustomAuthFlowWithoutSRP, [username, metadata, authConfig, tokenOrchestrator], username, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: retriedChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n cleanActiveSignInState();\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: retriedChallengeName,\n challengeParameters: retiredChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../errors/AuthError';\nimport { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants';\nconst initialAutoSignIn = async () => {\n throw new AuthError({\n name: AUTO_SIGN_IN_EXCEPTION,\n message: 'The autoSignIn flow has not started, or has been cancelled/completed.',\n recoverySuggestion: 'Please try to use the signIn API or log out before starting a new autoSignIn flow.',\n });\n};\n/**\n * Signs a user in automatically after finishing the sign-up process.\n *\n * This API will automatically sign a user in if the autoSignIn flow has been completed in the following cases:\n * - User confirmed their account with a verification code sent to their phone or email (default option).\n * - User confirmed their account with a verification link sent to their phone or email. In order to\n * enable this option you need to go to the Amazon Cognito [console](https://aws.amazon.com/pm/cognito),\n * look for your userpool, then go to the `Messaging` tab and enable `link` mode inside the `Verification message` option.\n * Finally you need to define the `signUpVerificationMethod` in your `Auth` config.\n *\n * @example\n * ```typescript\n * Amplify.configure({\n * Auth: {\n * Cognito: {\n * ...cognitoConfig,\n * signUpVerificationMethod: \"link\" // the default value is \"code\"\n * }\n *\t}});\n * ```\n *\n * @throws AutoSignInException - Thrown when the autoSignIn flow has not started, or has been cancelled/completed.\n * @returns The signInOutput.\n *\n * @example\n * ```typescript\n * // handleSignUp.ts\n * async function handleSignUp(\n * username:string,\n * password:string\n * ){\n * try {\n * const { nextStep } = await signUp({\n * username,\n * password,\n * options: {\n * userAttributes:{ email:'email@email.com'},\n * autoSignIn: true // This enables the auto sign-in flow.\n * },\n * });\n *\n * handleSignUpStep(nextStep);\n *\n * } catch (error) {\n * console.log(error);\n * }\n * }\n *\n * // handleConfirmSignUp.ts\n * async function handleConfirmSignUp(username:string, confirmationCode:string) {\n * try {\n * const { nextStep } = await confirmSignUp({\n * username,\n * confirmationCode,\n * });\n *\n * handleSignUpStep(nextStep);\n * } catch (error) {\n * console.log(error);\n * }\n * }\n *\n * // signUpUtils.ts\n * async function handleSignUpStep( step: SignUpOutput[\"nextStep\"]) {\n * switch (step.signUpStep) {\n * case \"CONFIRM_SIGN_UP\":\n *\n * // Redirect end-user to confirm-sign up screen.\n *\n * case \"COMPLETE_AUTO_SIGN_IN\":\n *\t const codeDeliveryDetails = step.codeDeliveryDetails;\n * if (codeDeliveryDetails) {\n * // Redirect user to confirm-sign-up with link screen.\n * }\n * const signInOutput = await autoSignIn();\n * // handle sign-in steps\n * }\n *\n * ```\n */\n// TODO(Eslint): can this be refactored not using `let` on exported member?\n// eslint-disable-next-line import/no-mutable-exports\nexport let autoSignIn = initialAutoSignIn;\n/**\n * Sets the context of autoSignIn at run time.\n * @internal\n */\nexport function setAutoSignIn(callback) {\n autoSignIn = callback;\n}\n/**\n * Resets the context\n *\n * @internal\n */\nexport function resetAutoSignIn() {\n autoSignIn = initialAutoSignIn;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { HubInternal } from '@aws-amplify/core/internals/utils';\nimport { signIn } from '../apis/signIn';\nimport { AuthError } from '../../../errors/AuthError';\nimport { resetAutoSignIn, setAutoSignIn } from '../apis/autoSignIn';\nimport { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants';\nconst MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\nexport function handleCodeAutoSignIn(signInInput) {\n const stopHubListener = HubInternal.listen('auth-internal', async ({ payload }) => {\n switch (payload.event) {\n case 'confirmSignUp': {\n const response = payload.data;\n if (response?.isSignUpComplete) {\n HubInternal.dispatch('auth-internal', {\n event: 'autoSignIn',\n });\n setAutoSignIn(autoSignInWithCode(signInInput));\n stopHubListener();\n }\n }\n }\n });\n // This will stop the listener if confirmSignUp is not resolved.\n const timeOutId = setTimeout(() => {\n stopHubListener();\n setAutoSignInStarted(false);\n clearTimeout(timeOutId);\n resetAutoSignIn();\n }, MAX_AUTOSIGNIN_POLLING_MS);\n}\nfunction debounce(fun, delay) {\n let timer;\n return (args) => {\n if (!timer) {\n fun(...args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, delay);\n };\n}\nfunction handleAutoSignInWithLink(signInInput, resolve, reject) {\n const start = Date.now();\n const autoSignInPollingIntervalId = setInterval(async () => {\n const elapsedTime = Date.now() - start;\n const maxTime = MAX_AUTOSIGNIN_POLLING_MS;\n if (elapsedTime > maxTime) {\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n reject(new AuthError({\n name: AUTO_SIGN_IN_EXCEPTION,\n message: 'The account was not confirmed on time.',\n recoverySuggestion: 'Try to verify your account by clicking the link sent your email or phone and then login manually.',\n }));\n resetAutoSignIn();\n }\n else {\n try {\n const signInOutput = await signIn(signInInput);\n if (signInOutput.nextStep.signInStep !== 'CONFIRM_SIGN_UP') {\n resolve(signInOutput);\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n resetAutoSignIn();\n }\n }\n catch (error) {\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n reject(error);\n resetAutoSignIn();\n }\n }\n }, 5000);\n}\nconst debouncedAutoSignInWithLink = debounce(handleAutoSignInWithLink, 300);\nconst debouncedAutoSignWithCodeOrUserConfirmed = debounce(handleAutoSignInWithCodeOrUserConfirmed, 300);\nlet autoSignInStarted = false;\nlet usernameUsedForAutoSignIn;\nexport function setUsernameUsedForAutoSignIn(username) {\n usernameUsedForAutoSignIn = username;\n}\nexport function isAutoSignInUserUsingConfirmSignUp(username) {\n return usernameUsedForAutoSignIn === username;\n}\nexport function isAutoSignInStarted() {\n return autoSignInStarted;\n}\nexport function setAutoSignInStarted(value) {\n if (value === false) {\n setUsernameUsedForAutoSignIn(undefined);\n }\n autoSignInStarted = value;\n}\nexport function isSignUpComplete(output) {\n return !!output.UserConfirmed;\n}\nexport function autoSignInWhenUserIsConfirmedWithLink(signInInput) {\n return async () => {\n return new Promise((resolve, reject) => {\n debouncedAutoSignInWithLink([signInInput, resolve, reject]);\n });\n };\n}\nasync function handleAutoSignInWithCodeOrUserConfirmed(signInInput, resolve, reject) {\n try {\n const output = await signIn(signInInput);\n resolve(output);\n resetAutoSignIn();\n }\n catch (error) {\n reject(error);\n resetAutoSignIn();\n }\n}\nfunction autoSignInWithCode(signInInput) {\n return async () => {\n return new Promise((resolve, reject) => {\n debouncedAutoSignWithCodeOrUserConfirmed([signInInput, resolve, reject]);\n });\n };\n}\nexport const autoSignInUserConfirmed = autoSignInWithCode;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { cleanActiveSignInState, setActiveSignInState, signInStore, } from '../utils/signInStore';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleChallengeName, } from '../utils/signInHelpers';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { AuthErrorCodes } from '../../../common/AuthErrorStrings';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Continues or completes the sign in process when required by the initial call to `signIn`.\n *\n * @param input - The ConfirmSignInInput object\n * @returns ConfirmSignInOutput\n * @throws -{@link VerifySoftwareTokenException }:\n * Thrown due to an invalid MFA token.\n * @throws -{@link RespondToAuthChallengeException }:\n * Thrown due to an invalid auth challenge response.\n * @throws -{@link AssociateSoftwareTokenException}:\n * Thrown due to a service error during the MFA setup process.\n * @throws -{@link AuthValidationErrorCode }:\n * Thrown when `challengeResponse` is not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmSignIn(input) {\n const { challengeResponse, options } = input;\n const { username, challengeName, signInSession, signInDetails } = signInStore.getState();\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const clientMetaData = options?.clientMetadata;\n assertValidationError(!!challengeResponse, AuthValidationErrorCode.EmptyChallengeResponse);\n if (!username || !challengeName || !signInSession)\n // TODO: remove this error message for production apps\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: `\n\t\t\tAn error occurred during the sign in process. \n\t\t\t\n\t\t\tThis most likely occurred due to:\n\t\t\t1. signIn was not called before confirmSignIn.\n\t\t\t2. signIn threw an exception.\n\t\t\t3. page was refreshed during the sign in flow.\n\t\t\t`,\n recoverySuggestion: 'Make sure a successful call to signIn is made before calling confirmSignIn' +\n 'and that the page is not refreshed until the sign in process is done.',\n });\n try {\n const { Session, ChallengeName: handledChallengeName, AuthenticationResult, ChallengeParameters: handledChallengeParameters, } = await handleChallengeName(username, challengeName, signInSession, challengeResponse, authConfig, tokenOrchestrator, clientMetaData, options);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username,\n challengeName: handledChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n cleanActiveSignInState();\n await cacheCognitoTokens({\n username,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: handledChallengeName,\n challengeParameters: handledChallengeParameters,\n });\n }\n catch (error) {\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { forgotPassword } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Resets a user's password.\n *\n * @param input - The ResetPasswordInput object.\n * @returns ResetPasswordOutput\n * @throws -{@link ForgotPasswordException }\n * Thrown due to an invalid confirmation code or password.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty username.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n **/\nexport async function resetPassword(input) {\n const { username } = input;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyResetPasswordUsername);\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolClientId, userPoolId } = authConfig;\n const clientMetadata = input.options?.clientMetadata;\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const res = await forgotPassword({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ResetPassword),\n }, {\n Username: username,\n ClientMetadata: clientMetadata,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n const codeDeliveryDetails = res.CodeDeliveryDetails;\n return {\n isPasswordReset: false,\n nextStep: {\n resetPasswordStep: 'CONFIRM_RESET_PASSWORD_WITH_CODE',\n codeDeliveryDetails: {\n deliveryMedium: codeDeliveryDetails?.DeliveryMedium,\n destination: codeDeliveryDetails?.Destination,\n attributeName: codeDeliveryDetails?.AttributeName,\n },\n },\n };\n}\n","import { Amplify } from 'aws-amplify';\nimport { getCurrentUser, signIn, signUp, confirmSignIn, confirmSignUp, confirmResetPassword, resetPassword } from 'aws-amplify/auth';\nimport 'aws-amplify/utils';\nimport '@aws-amplify/core/internals/utils';\nimport '../../utils/setUserAgent/constants.mjs';\nimport '../../types/authenticator/user.mjs';\nimport '../../types/authenticator/attributes.mjs';\nimport { hasSpecialChars } from '../../helpers/authenticator/utils.mjs';\nimport '../../helpers/accountSettings/utils.mjs';\n\n// Cognito does not allow a password length less then 8 characters\nconst DEFAULT_COGNITO_PASSWORD_MIN_LENGTH = 8;\nconst isInvalidUserAtributes = (userAttributes) => Array.isArray(userAttributes);\nconst parseUserAttributes = (userAttributes) => {\n if (!userAttributes) {\n return undefined;\n }\n // `aws-amplify` versions <= 6.0.5 return an array of `userAttributes` rather than an object\n if (isInvalidUserAtributes(userAttributes)) {\n return Object.entries(userAttributes).map(([_, value]) => Object.keys(value)[0]);\n }\n return Object.keys(userAttributes);\n};\nconst defaultServices = {\n async getAmplifyConfig() {\n const result = Amplify.getConfig();\n const cliConfig = result.Auth?.Cognito;\n const { loginWith, userAttributes } = result.Auth?.Cognito ?? {};\n const parsedLoginMechanisms = loginWith\n ? Object.entries(loginWith)\n .filter(([key, _value]) => key !== 'oauth')\n .filter(([_key, value]) => !!value)\n .map((keyValueArray) => {\n return keyValueArray[0] === 'phone' // the key for phone_number is phone in getConfig but everywhere else we treat is as phone_number\n ? 'phone_number'\n : keyValueArray[0];\n })\n : undefined;\n const parsedSignupAttributes = parseUserAttributes(userAttributes);\n const parsedSocialProviders = loginWith?.oauth?.providers\n ? loginWith.oauth.providers?.map((provider) => provider.toString().toLowerCase())\n : undefined;\n return {\n ...cliConfig,\n loginMechanisms: parsedLoginMechanisms,\n signUpAttributes: parsedSignupAttributes,\n socialProviders: parsedSocialProviders,\n };\n },\n getCurrentUser,\n handleSignIn: signIn,\n handleSignUp: signUp,\n handleConfirmSignIn: confirmSignIn,\n handleConfirmSignUp: confirmSignUp,\n handleForgotPasswordSubmit: confirmResetPassword,\n handleForgotPassword: resetPassword,\n // Validation hooks for overriding\n async validateCustomSignUp(formData, touchData) { },\n async validateFormPassword(formData, touchData, passwordSettings) {\n const { password } = formData;\n const { password: touched_password } = touchData;\n /**\n * If the password is not touched,\n * or if the password settings are not set, we don't need to validate it.\n */\n if (!touched_password || !passwordSettings)\n return null;\n const password_complexity = [];\n const policyMinLength = passwordSettings.minLength ?? DEFAULT_COGNITO_PASSWORD_MIN_LENGTH;\n if (password.length < policyMinLength) {\n password_complexity.push(`Password must have at least ${policyMinLength} characters`);\n }\n if (passwordSettings.requireLowercase && !/[a-z]/.test(password))\n password_complexity.push('Password must have lower case letters');\n if (passwordSettings.requireUppercase && !/[A-Z]/.test(password))\n password_complexity.push('Password must have upper case letters');\n if (passwordSettings.requireNumbers && !/[0-9]/.test(password))\n password_complexity.push('Password must have numbers');\n // https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-policies.html\n if (passwordSettings.requireSpecialCharacters && !hasSpecialChars(password))\n password_complexity.push('Password must have special characters');\n /**\n * Only return an error if there is at least one error.\n */\n return password_complexity.length !== 0\n ? { password: password_complexity }\n : null;\n },\n async validateConfirmPassword(formData, touchData) {\n const { password, confirm_password } = formData;\n const { confirm_password: touched_confirm_password, password: touched_password, } = touchData;\n if (!password && !confirm_password) {\n // these inputs are clean, don't complain yet\n return null;\n }\n else if ((password || confirm_password) &&\n password !== confirm_password &&\n ((touched_confirm_password && touched_password) ||\n (password?.length >= 6 && confirm_password?.length >= 6))) {\n // Only return an error if both fields have text entered,\n // the passwords do not match, and the fields have been\n // touched or the password and confirm password is longer then or equal to 6.\n return {\n confirm_password: 'Your passwords must match',\n };\n }\n },\n async validatePreferredUsername(formData, touchData) { },\n};\n\nexport { defaultServices };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { signUp as signUpClient } from '../utils/clients/CognitoIdentityProvider';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { toAttributeType } from '../utils/apiHelpers';\nimport { autoSignInUserConfirmed, autoSignInWhenUserIsConfirmedWithLink, handleCodeAutoSignIn, isAutoSignInStarted, isSignUpComplete, setAutoSignInStarted, setUsernameUsedForAutoSignIn, } from '../utils/signUpHelpers';\nimport { getUserContextData } from '../utils/userContextData';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { setAutoSignIn } from './autoSignIn';\n/**\n * Creates a user\n *\n * @param input - The SignUpInput object\n * @returns SignUpOutput\n * @throws service: {@link SignUpException } - Cognito service errors thrown during the sign-up process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signUp(input) {\n const { username, password, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signUpVerificationMethod = authConfig?.signUpVerificationMethod ?? 'code';\n const { clientMetadata, validationData, autoSignIn } = input.options ?? {};\n assertTokenProviderConfig(authConfig);\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignUpUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignUpPassword);\n const signInServiceOptions = typeof autoSignIn !== 'boolean' ? autoSignIn : undefined;\n const signInInput = {\n username,\n options: signInServiceOptions,\n };\n // if the authFlowType is 'CUSTOM_WITHOUT_SRP' then we don't include the password\n if (signInServiceOptions?.authFlowType !== 'CUSTOM_WITHOUT_SRP') {\n signInInput.password = password;\n }\n if (signInServiceOptions || autoSignIn === true) {\n setUsernameUsedForAutoSignIn(username);\n setAutoSignInStarted(true);\n }\n const { userPoolId, userPoolClientId } = authConfig;\n const clientOutput = await signUpClient({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignUp),\n }, {\n Username: username,\n Password: password,\n UserAttributes: options?.userAttributes && toAttributeType(options?.userAttributes),\n ClientMetadata: clientMetadata,\n ValidationData: validationData && toAttributeType(validationData),\n ClientId: userPoolClientId,\n UserContextData: getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n }),\n });\n const { UserSub, CodeDeliveryDetails } = clientOutput;\n if (isSignUpComplete(clientOutput) && isAutoSignInStarted()) {\n setAutoSignIn(autoSignInUserConfirmed(signInInput));\n return {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n },\n userId: UserSub,\n };\n }\n else if (isSignUpComplete(clientOutput) && !isAutoSignInStarted()) {\n return {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'DONE',\n },\n userId: UserSub,\n };\n }\n else if (!isSignUpComplete(clientOutput) &&\n isAutoSignInStarted() &&\n signUpVerificationMethod === 'code') {\n handleCodeAutoSignIn(signInInput);\n }\n else if (!isSignUpComplete(clientOutput) &&\n isAutoSignInStarted() &&\n signUpVerificationMethod === 'link') {\n setAutoSignIn(autoSignInWhenUserIsConfirmedWithLink(signInInput));\n return {\n isSignUpComplete: false,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n codeDeliveryDetails: {\n deliveryMedium: CodeDeliveryDetails?.DeliveryMedium,\n destination: CodeDeliveryDetails?.Destination,\n attributeName: CodeDeliveryDetails?.AttributeName,\n },\n },\n userId: UserSub,\n };\n }\n return {\n isSignUpComplete: false,\n nextStep: {\n signUpStep: 'CONFIRM_SIGN_UP',\n codeDeliveryDetails: {\n deliveryMedium: CodeDeliveryDetails?.DeliveryMedium,\n destination: CodeDeliveryDetails?.Destination,\n attributeName: CodeDeliveryDetails?.AttributeName,\n },\n },\n userId: UserSub,\n };\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, HubInternal, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { confirmSignUp as confirmSignUpClient } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { isAutoSignInStarted, isAutoSignInUserUsingConfirmSignUp, setAutoSignInStarted, } from '../utils/signUpHelpers';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Confirms a new user account.\n *\n * @param input - The ConfirmSignUpInput object.\n * @returns ConfirmSignUpOutput\n * @throws -{@link ConfirmSignUpException }\n * Thrown due to an invalid confirmation code.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty confirmation code\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmSignUp(input) {\n const { username, confirmationCode, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolId, userPoolClientId } = authConfig;\n const clientMetadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyConfirmSignUpUsername);\n assertValidationError(!!confirmationCode, AuthValidationErrorCode.EmptyConfirmSignUpCode);\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n await confirmSignUpClient({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignUp),\n }, {\n Username: username,\n ConfirmationCode: confirmationCode,\n ClientMetadata: clientMetadata,\n ForceAliasCreation: options?.forceAliasCreation,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n return new Promise((resolve, reject) => {\n try {\n const signUpOut = {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'DONE',\n },\n };\n if (!isAutoSignInStarted() ||\n !isAutoSignInUserUsingConfirmSignUp(username)) {\n resolve(signUpOut);\n return;\n }\n const stopListener = HubInternal.listen('auth-internal', ({ payload }) => {\n switch (payload.event) {\n case 'autoSignIn':\n resolve({\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n },\n });\n setAutoSignInStarted(false);\n stopListener();\n }\n });\n HubInternal.dispatch('auth-internal', {\n event: 'confirmSignUp',\n data: signUpOut,\n });\n }\n catch (error) {\n reject(error);\n }\n });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { confirmForgotPassword } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Confirms the new password and verification code to reset the password.\n *\n * @param input - The ConfirmResetPasswordInput object.\n * @throws -{@link ConfirmForgotPasswordException }\n * Thrown due to an invalid confirmation code or password.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty confirmation code, password or username.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmResetPassword(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolClientId, userPoolId } = authConfig;\n const { username, newPassword } = input;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyConfirmResetPasswordUsername);\n assertValidationError(!!newPassword, AuthValidationErrorCode.EmptyConfirmResetPasswordNewPassword);\n const code = input.confirmationCode;\n assertValidationError(!!code, AuthValidationErrorCode.EmptyConfirmResetPasswordConfirmationCode);\n const metadata = input.options?.clientMetadata;\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n await confirmForgotPassword({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmResetPassword),\n }, {\n Username: username,\n ConfirmationCode: code,\n Password: newPassword,\n ClientMetadata: metadata,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { resendConfirmationCode } from '../utils/clients/CognitoIdentityProvider';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Resend the confirmation code while signing up\n *\n * @param input - The ResendSignUpCodeInput object\n * @returns ResendSignUpCodeOutput\n * @throws service: {@link ResendConfirmationException } - Cognito service errors thrown when resending the code.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown either username are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function resendSignUpCode(input) {\n const { username } = input;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignUpUsername);\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolClientId, userPoolId } = authConfig;\n const clientMetadata = input.options?.clientMetadata;\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const { CodeDeliveryDetails } = await resendConfirmationCode({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ResendSignUpCode),\n }, {\n Username: username,\n ClientMetadata: clientMetadata,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n const { DeliveryMedium, AttributeName, Destination } = {\n ...CodeDeliveryDetails,\n };\n return {\n destination: Destination,\n deliveryMedium: DeliveryMedium,\n attributeName: AttributeName\n ? AttributeName\n : undefined,\n };\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// TODO: delete this module when the Auth class is removed.\nimport { ConsoleLogger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nconst logger = new ConsoleLogger('AuthError');\nexport class AuthError extends Error {\n constructor(type) {\n const { message, log } = authErrorMessages[type];\n super(message);\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n this.constructor = AuthError;\n Object.setPrototypeOf(this, AuthError.prototype);\n this.name = 'AuthError';\n this.log = log || message;\n logger.error(this.log);\n }\n}\nexport class NoUserPoolError extends AuthError {\n constructor(type) {\n super(type);\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n this.constructor = NoUserPoolError;\n Object.setPrototypeOf(this, NoUserPoolError.prototype);\n this.name = 'NoUserPoolError';\n }\n}\nexport const authErrorMessages = {\n oauthSignInError: {\n message: AuthErrorStrings.OAUTH_ERROR,\n log: 'Make sure Cognito Hosted UI has been configured correctly',\n },\n noConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: `\n Error: Amplify has not been configured correctly.\n This error is typically caused by one of the following scenarios:\n\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\n \n 2. There might be multiple conflicting versions of amplify packages in your node_modules.\n\t\t\t\tRefer to our docs site for help upgrading Amplify packages (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js)\n `,\n },\n missingAuthConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: `\n Error: Amplify has not been configured correctly. \n The configuration object is missing required auth properties.\n This error is typically caused by one of the following scenarios:\n\n 1. Did you run \\`amplify push\\` after adding auth via \\`amplify add auth\\`?\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\n\n 2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.\n `,\n },\n emptyUsername: {\n message: AuthErrorStrings.EMPTY_USERNAME,\n },\n // TODO: should include a list of valid sign-in types\n invalidUsername: {\n message: AuthErrorStrings.INVALID_USERNAME,\n },\n emptyPassword: {\n message: AuthErrorStrings.EMPTY_PASSWORD,\n },\n emptyCode: {\n message: AuthErrorStrings.EMPTY_CODE,\n },\n signUpError: {\n message: AuthErrorStrings.SIGN_UP_ERROR,\n log: 'The first parameter should either be non-null string or object',\n },\n noMFA: {\n message: AuthErrorStrings.NO_MFA,\n },\n invalidMFA: {\n message: AuthErrorStrings.INVALID_MFA,\n },\n emptyChallengeResponse: {\n message: AuthErrorStrings.EMPTY_CHALLENGE,\n },\n noUserSession: {\n message: AuthErrorStrings.NO_USER_SESSION,\n },\n deviceConfig: {\n message: AuthErrorStrings.DEVICE_CONFIG,\n },\n networkError: {\n message: AuthErrorStrings.NETWORK_ERROR,\n },\n autoSignInError: {\n message: AuthErrorStrings.AUTOSIGNIN_ERROR,\n },\n default: {\n message: AuthErrorStrings.DEFAULT_MSG,\n },\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { authErrorMessages } from '../../../../Errors';\nimport { AuthErrorCodes } from '../../../../common/AuthErrorStrings';\nimport { AuthError } from '../../../../errors/AuthError';\nexport const createOAuthError = (message, recoverySuggestion) => new AuthError({\n message: message ?? 'An error has occurred during the oauth process.',\n name: AuthErrorCodes.OAuthSignInError,\n recoverySuggestion: recoverySuggestion ?? authErrorMessages.oauthSignInError.log,\n});\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AuthErrorTypes;\n(function (AuthErrorTypes) {\n AuthErrorTypes[\"NoConfig\"] = \"noConfig\";\n AuthErrorTypes[\"MissingAuthConfig\"] = \"missingAuthConfig\";\n AuthErrorTypes[\"EmptyUsername\"] = \"emptyUsername\";\n AuthErrorTypes[\"InvalidUsername\"] = \"invalidUsername\";\n AuthErrorTypes[\"EmptyPassword\"] = \"emptyPassword\";\n AuthErrorTypes[\"EmptyCode\"] = \"emptyCode\";\n AuthErrorTypes[\"SignUpError\"] = \"signUpError\";\n AuthErrorTypes[\"NoMFA\"] = \"noMFA\";\n AuthErrorTypes[\"InvalidMFA\"] = \"invalidMFA\";\n AuthErrorTypes[\"EmptyChallengeResponse\"] = \"emptyChallengeResponse\";\n AuthErrorTypes[\"NoUserSession\"] = \"noUserSession\";\n AuthErrorTypes[\"Default\"] = \"default\";\n AuthErrorTypes[\"DeviceConfig\"] = \"deviceConfig\";\n AuthErrorTypes[\"NetworkError\"] = \"networkError\";\n AuthErrorTypes[\"AutoSignInError\"] = \"autoSignInError\";\n AuthErrorTypes[\"OAuthSignInError\"] = \"oauthSignInError\";\n})(AuthErrorTypes || (AuthErrorTypes = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../../errors/AuthError';\nimport { AuthErrorTypes } from '../../../../types/Auth';\nimport { oAuthStore } from './oAuthStore';\nexport const flowCancelledMessage = '`signInWithRedirect` has been canceled.';\nexport const validationFailedMessage = 'An error occurred while validating the state.';\nexport const validationRecoverySuggestion = 'Try to initiate an OAuth flow from Amplify';\nexport const validateState = async (state) => {\n const savedState = await oAuthStore.loadOAuthState();\n // This is because savedState only exists if the flow was initiated by Amplify\n const validatedState = state === savedState ? savedState : undefined;\n if (!validatedState) {\n throw new AuthError({\n name: AuthErrorTypes.OAuthSignInError,\n message: state === null ? flowCancelledMessage : validationFailedMessage,\n recoverySuggestion: state === null ? undefined : validationRecoverySuggestion,\n });\n }\n return validatedState;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AMPLIFY_SYMBOL, AmplifyUrl, USER_AGENT_HEADER, urlSafeDecode, } from '@aws-amplify/core/internals/utils';\nimport { Hub, decodeJWT } from '@aws-amplify/core';\nimport { cacheCognitoTokens } from '../../tokenProvider/cacheTokens';\nimport { dispatchSignedInHubEvent } from '../dispatchSignedInHubEvent';\nimport { createOAuthError } from './createOAuthError';\nimport { resolveAndClearInflightPromises } from './inflightPromise';\nimport { validateState } from './validateState';\nimport { oAuthStore } from './oAuthStore';\nexport const completeOAuthFlow = async ({ currentUrl, userAgentValue, clientId, redirectUri, responseType, domain, preferPrivateSession, }) => {\n const urlParams = new AmplifyUrl(currentUrl);\n const error = urlParams.searchParams.get('error');\n const errorMessage = urlParams.searchParams.get('error_description');\n if (error) {\n throw createOAuthError(errorMessage ?? error);\n }\n if (responseType === 'code') {\n return handleCodeFlow({\n currentUrl,\n userAgentValue,\n clientId,\n redirectUri,\n domain,\n preferPrivateSession,\n });\n }\n return handleImplicitFlow({\n currentUrl,\n redirectUri,\n preferPrivateSession,\n });\n};\nconst handleCodeFlow = async ({ currentUrl, userAgentValue, clientId, redirectUri, domain, preferPrivateSession, }) => {\n /* Convert URL into an object with parameters as keys\n{ redirect_uri: 'http://localhost:3000/', response_type: 'code', ...} */\n const url = new AmplifyUrl(currentUrl);\n const code = url.searchParams.get('code');\n const state = url.searchParams.get('state');\n // if `code` or `state` is not presented in the redirect url, most likely\n // that the end user cancelled the inflight oauth flow by:\n // 1. clicking the back button of browser\n // 2. closing the provider hosted UI page and coming back to the app\n if (!code || !state) {\n throw createOAuthError('User cancelled OAuth flow.');\n }\n // may throw error is being caught in attemptCompleteOAuthFlow.ts\n const validatedState = await validateState(state);\n const oAuthTokenEndpoint = 'https://' + domain + '/oauth2/token';\n // TODO(v6): check hub events\n // dispatchAuthEvent(\n // \t'codeFlow',\n // \t{},\n // \t`Retrieving tokens from ${oAuthTokenEndpoint}`\n // );\n const codeVerifier = await oAuthStore.loadPKCE();\n const oAuthTokenBody = {\n grant_type: 'authorization_code',\n code,\n client_id: clientId,\n redirect_uri: redirectUri,\n ...(codeVerifier ? { code_verifier: codeVerifier } : {}),\n };\n const body = Object.entries(oAuthTokenBody)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n .join('&');\n const { access_token, refresh_token: refreshToken, id_token, error, error_message: errorMessage, token_type, expires_in, } = await (await fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n [USER_AGENT_HEADER]: userAgentValue,\n },\n body,\n })).json();\n if (error) {\n // error is being caught in attemptCompleteOAuthFlow.ts\n throw createOAuthError(errorMessage ?? error);\n }\n const username = (access_token && decodeJWT(access_token).payload.username) ?? 'username';\n await cacheCognitoTokens({\n username,\n AccessToken: access_token,\n IdToken: id_token,\n RefreshToken: refreshToken,\n TokenType: token_type,\n ExpiresIn: expires_in,\n });\n return completeFlow({\n redirectUri,\n state: validatedState,\n preferPrivateSession,\n });\n};\nconst handleImplicitFlow = async ({ currentUrl, redirectUri, preferPrivateSession, }) => {\n // hash is `null` if `#` doesn't exist on URL\n const url = new AmplifyUrl(currentUrl);\n const { id_token, access_token, state, token_type, expires_in, error_description, error, } = (url.hash ?? '#')\n .substring(1) // Remove # from returned code\n .split('&')\n .map(pairings => pairings.split('='))\n .reduce((accum, [k, v]) => ({ ...accum, [k]: v }), {\n id_token: undefined,\n access_token: undefined,\n state: undefined,\n token_type: undefined,\n expires_in: undefined,\n error_description: undefined,\n error: undefined,\n });\n if (error) {\n throw createOAuthError(error_description ?? error);\n }\n if (!access_token) {\n // error is being caught in attemptCompleteOAuthFlow.ts\n throw createOAuthError('No access token returned from OAuth flow.');\n }\n const validatedState = await validateState(state);\n const username = (access_token && decodeJWT(access_token).payload.username) ?? 'username';\n await cacheCognitoTokens({\n username,\n AccessToken: access_token,\n IdToken: id_token,\n TokenType: token_type,\n ExpiresIn: expires_in,\n });\n return completeFlow({\n redirectUri,\n state: validatedState,\n preferPrivateSession,\n });\n};\nconst completeFlow = async ({ redirectUri, state, preferPrivateSession, }) => {\n await oAuthStore.clearOAuthData();\n await oAuthStore.storeOAuthSignIn(true, preferPrivateSession);\n // this should be called before any call that involves `fetchAuthSession`\n // e.g. `getCurrentUser()` below, so it allows every inflight async calls to\n // `fetchAuthSession` can be resolved\n resolveAndClearInflightPromises();\n if (isCustomState(state)) {\n Hub.dispatch('auth', {\n event: 'customOAuthState',\n data: urlSafeDecode(getCustomState(state)),\n }, 'Auth', AMPLIFY_SYMBOL);\n }\n Hub.dispatch('auth', { event: 'signInWithRedirect' }, 'Auth', AMPLIFY_SYMBOL);\n await dispatchSignedInHubEvent();\n clearHistory(redirectUri);\n};\nconst isCustomState = (state) => {\n return /-/.test(state);\n};\nconst getCustomState = (state) => {\n return state.split('-').splice(1).join('-');\n};\nconst clearHistory = (redirectUri) => {\n if (typeof window !== 'undefined' && typeof window.history !== 'undefined') {\n window.history.replaceState(window.history.state, '', redirectUri);\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function urlSafeDecode(hex) {\n const matchArr = hex.match(/.{2}/g) || [];\n return matchArr.map(char => String.fromCharCode(parseInt(char, 16))).join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { invalidOriginException, invalidRedirectException, } from '../../../../errors/constants';\n/** @internal */\nexport function getRedirectUrl(redirects) {\n const redirectUrlFromTheSameOrigin = redirects?.find(isSameOriginAndPathName) ??\n redirects?.find(isTheSameDomain);\n const redirectUrlFromDifferentOrigin = redirects?.find(isHttps) ?? redirects?.find(isHttp);\n if (redirectUrlFromTheSameOrigin) {\n return redirectUrlFromTheSameOrigin;\n }\n else if (redirectUrlFromDifferentOrigin) {\n throw invalidOriginException;\n }\n throw invalidRedirectException;\n}\n// origin + pathname => https://example.com/app\nconst isSameOriginAndPathName = (redirect) => redirect.startsWith(String(window.location.origin + window.location.pathname ?? '/'));\n// domain => outlook.live.com, github.com\nconst isTheSameDomain = (redirect) => redirect.includes(String(window.location.hostname));\nconst isHttp = (redirect) => redirect.startsWith('http://');\nconst isHttps = (redirect) => redirect.startsWith('https://');\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nimport { oAuthStore } from './oAuthStore';\nimport { resolveAndClearInflightPromises } from './inflightPromise';\nexport const handleFailure = async (error) => {\n resolveAndClearInflightPromises();\n await oAuthStore.clearOAuthInflightData();\n Hub.dispatch('auth', { event: 'signInWithRedirect_failure', data: { error } }, 'Auth', AMPLIFY_SYMBOL);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthAction, assertOAuthConfig, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { getAuthUserAgentValue } from '../../../../utils';\nimport { oAuthStore } from './oAuthStore';\nimport { completeOAuthFlow } from './completeOAuthFlow';\nimport { getRedirectUrl } from './getRedirectUrl';\nimport { handleFailure } from './handleFailure';\nexport const attemptCompleteOAuthFlow = async (authConfig) => {\n try {\n assertTokenProviderConfig(authConfig);\n assertOAuthConfig(authConfig);\n oAuthStore.setAuthConfig(authConfig);\n }\n catch (_) {\n // no-op\n // This should not happen as Amplify singleton checks the oauth config key\n // unless the oauth config object doesn't contain required properties\n return;\n }\n // No inflight OAuth\n if (!(await oAuthStore.loadOAuthInFlight())) {\n return;\n }\n try {\n const currentUrl = window.location.href;\n const { loginWith, userPoolClientId } = authConfig;\n const { domain, redirectSignIn, responseType } = loginWith.oauth;\n const redirectUri = getRedirectUrl(redirectSignIn);\n await completeOAuthFlow({\n currentUrl,\n clientId: userPoolClientId,\n domain,\n redirectUri,\n responseType,\n userAgentValue: getAuthUserAgentValue(AuthAction.SignInWithRedirect),\n });\n }\n catch (err) {\n await handleFailure(err);\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { ADD_OAUTH_LISTENER, isBrowser, } from '@aws-amplify/core/internals/utils';\nimport { attemptCompleteOAuthFlow } from './attemptCompleteOAuthFlow';\n// attach the side effect for handling the completion of an inflight oauth flow\n// this side effect works only on Web\nisBrowser() &&\n (() => {\n // add the listener to the singleton for triggering\n Amplify[ADD_OAUTH_LISTENER](attemptCompleteOAuthFlow);\n })();\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const cognitoHostedUIIdentityProviderMap = {\n Google: 'Google',\n Facebook: 'Facebook',\n Amazon: 'LoginWithAmazon',\n Apple: 'SignInWithApple',\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const openAuthSession = async (url) => {\n if (!window?.location) {\n return;\n }\n // enforce HTTPS\n window.location.href = url.replace('http://', 'https://');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { base64Encoder, getCrypto } from '@aws-amplify/core/internals/utils';\nconst CODE_VERIFIER_CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n/**\n *\n * @param length Desired length of the code verifier.\n *\n * **NOTE:** According to the [RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.1)\n * A code verifier must be with a length >= 43 and <= 128.\n *\n * @returns An object that contains the generated `codeVerifier` and a method\n * `toCodeChallenge` to generate the code challenge from the `codeVerifier`\n * following the spec of [RFC 7636](https://datatracker.ietf.org/doc/html/rfc7636#section-4.2).\n */\nexport const generateCodeVerifier = (length) => {\n const randomBytes = new Uint8Array(length);\n getCrypto().getRandomValues(randomBytes);\n let value = '';\n let codeChallenge;\n for (const byte of randomBytes) {\n value += CODE_VERIFIER_CHARSET.charAt(byte % CODE_VERIFIER_CHARSET.length);\n }\n return {\n value,\n method: 'S256',\n toCodeChallenge() {\n if (codeChallenge) {\n return codeChallenge;\n }\n codeChallenge = generateCodeChallenge(value);\n return codeChallenge;\n },\n };\n};\nfunction generateCodeChallenge(codeVerifier) {\n const awsCryptoHash = new Sha256();\n awsCryptoHash.update(codeVerifier);\n const codeChallenge = removePaddingChar(base64Encoder.convert(awsCryptoHash.digestSync(), { urlSafe: true }));\n return codeChallenge;\n}\nfunction removePaddingChar(base64Encoded) {\n return base64Encoded.replace(/=/g, '');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const generateRandomString = (length) => {\n const STATE_CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let result = '';\n for (let i = 0; i < length; i++) {\n result += STATE_CHARSET.charAt(Math.floor(Math.random() * STATE_CHARSET.length));\n }\n return result;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { generateRandomString } from '@aws-amplify/core/internals/utils';\nexport const generateState = () => {\n return generateRandomString(32);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertOAuthConfig, assertTokenProviderConfig, isBrowser, urlSafeEncode, } from '@aws-amplify/core/internals/utils';\nimport '../utils/oauth/enableOAuthListener';\nimport { cognitoHostedUIIdentityProviderMap } from '../types/models';\nimport { getAuthUserAgentValue, openAuthSession } from '../../../utils';\nimport { assertUserNotAuthenticated } from '../utils/signInHelpers';\nimport { completeOAuthFlow, generateCodeVerifier, generateState, getRedirectUrl, handleFailure, oAuthStore, } from '../utils/oauth';\nimport { createOAuthError } from '../utils/oauth/createOAuthError';\nimport { listenForOAuthFlowCancellation } from '../utils/oauth/cancelOAuthFlow';\n/**\n * Signs in a user with OAuth. Redirects the application to an Identity Provider.\n *\n * @param input - The SignInWithRedirectInput object, if empty it will redirect to Cognito HostedUI\n *\n * @throws AuthTokenConfigException - Thrown when the user pool config is invalid.\n * @throws OAuthNotConfigureException - Thrown when the oauth config is invalid.\n */\nexport async function signInWithRedirect(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n assertOAuthConfig(authConfig);\n oAuthStore.setAuthConfig(authConfig);\n await assertUserNotAuthenticated();\n let provider = 'COGNITO'; // Default\n if (typeof input?.provider === 'string') {\n provider = cognitoHostedUIIdentityProviderMap[input.provider];\n }\n else if (input?.provider?.custom) {\n provider = input.provider.custom;\n }\n return oauthSignIn({\n oauthConfig: authConfig.loginWith.oauth,\n clientId: authConfig.userPoolClientId,\n provider,\n customState: input?.customState,\n preferPrivateSession: input?.options?.preferPrivateSession,\n });\n}\nconst oauthSignIn = async ({ oauthConfig, provider, clientId, customState, preferPrivateSession, }) => {\n const { domain, redirectSignIn, responseType, scopes } = oauthConfig;\n const randomState = generateState();\n /* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito\n single-encodes/decodes url on first sign in and double-encodes/decodes url\n when user already signed in. Using encodeURIComponent, Base32, Base64 add\n characters % or = which on further encoding becomes unsafe. '=' create issue\n for parsing query params.\n Refer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n const state = customState\n ? `${randomState}-${urlSafeEncode(customState)}`\n : randomState;\n const { value, method, toCodeChallenge } = generateCodeVerifier(128);\n const redirectUri = getRedirectUrl(oauthConfig.redirectSignIn);\n if (isBrowser())\n oAuthStore.storeOAuthInFlight(true);\n oAuthStore.storeOAuthState(state);\n oAuthStore.storePKCE(value);\n const queryString = Object.entries({\n redirect_uri: redirectUri,\n response_type: responseType,\n client_id: clientId,\n identity_provider: provider,\n scope: scopes.join(' '),\n state,\n ...(responseType === 'code' && {\n code_challenge: toCodeChallenge(),\n code_challenge_method: method,\n }),\n })\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)\n .join('&');\n // TODO(v6): use URL object instead\n const oAuthUrl = `https://${domain}/oauth2/authorize?${queryString}`;\n // this will only take effect in the following scenarios:\n // 1. the user cancels the OAuth flow on web via back button, and\n // 2. when bfcache is enabled\n listenForOAuthFlowCancellation(oAuthStore);\n // the following is effective only in react-native as openAuthSession resolves only in react-native\n const { type, error, url } = (await openAuthSession(oAuthUrl, redirectSignIn, preferPrivateSession)) ??\n {};\n try {\n if (type === 'error') {\n throw createOAuthError(String(error));\n }\n if (type === 'success' && url) {\n await completeOAuthFlow({\n currentUrl: url,\n clientId,\n domain,\n redirectUri,\n responseType,\n userAgentValue: getAuthUserAgentValue(AuthAction.SignInWithRedirect),\n preferPrivateSession,\n });\n }\n }\n catch (err) {\n await handleFailure(err);\n // rethrow the error so it can be caught by `await signInWithRedirect()` in react-native\n throw err;\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function urlSafeEncode(str) {\n return str\n .split('')\n .map(char => char.charCodeAt(0).toString(16).padStart(2, '0'))\n .join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createOAuthError } from './createOAuthError';\nimport { handleFailure } from './handleFailure';\nexport const listenForOAuthFlowCancellation = (store) => {\n async function handleCancelOAuthFlow(event) {\n const isBfcache = event.persisted;\n if (isBfcache && (await store.loadOAuthInFlight())) {\n const error = createOAuthError('User cancelled OAuth flow.');\n await handleFailure(error);\n }\n window.removeEventListener('pageshow', handleCancelOAuthFlow);\n }\n window.addEventListener('pageshow', handleCancelOAuthFlow);\n};\n","const getFederatedSignInState = (target) => ({\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'signInWithRedirect',\n onDone: { target },\n onError: { actions: 'setRemoteError', target },\n },\n});\n\nexport { getFederatedSignInState };\n","import { createMachine, sendUpdate } from 'xstate';\nimport { fetchUserAttributes, resetPassword, resendSignUpCode, confirmSignIn, signInWithRedirect } from 'aws-amplify/auth';\nimport { runValidators } from '../../../validators/index.mjs';\nimport ACTIONS from '../actions.mjs';\nimport { defaultServices } from '../defaultServices.mjs';\nimport GUARDS from '../guards.mjs';\nimport { getFederatedSignInState } from './utils.mjs';\n\nconst handleSignInResponse = {\n onDone: [\n {\n cond: 'hasCompletedSignIn',\n actions: 'setNextSignInStep',\n target: '#signInActor.fetchUserAttributes',\n },\n {\n cond: 'shouldConfirmSignInWithNewPassword',\n actions: ['setMissingAttributes', 'setNextSignInStep'],\n target: '#signInActor.forceChangePassword',\n },\n {\n cond: 'shouldResetPasswordFromSignIn',\n actions: 'setNextSignInStep',\n target: '#signInActor.resetPassword',\n },\n {\n cond: 'shouldConfirmSignUpFromSignIn',\n actions: 'setNextSignInStep',\n target: '#signInActor.resendSignUpCode',\n },\n {\n actions: [\n 'setChallengeName',\n 'setMissingAttributes',\n 'setNextSignInStep',\n 'setTotpSecretCode',\n ],\n target: '#signInActor.init',\n },\n ],\n onError: { actions: 'setRemoteError', target: 'edit' },\n};\nconst handleFetchUserAttributesResponse = {\n onDone: [\n {\n cond: 'shouldVerifyAttribute',\n actions: [\n 'setShouldVerifyUserAttributeStep',\n 'setUnverifiedUserAttributes',\n ],\n target: '#signInActor.resolved',\n },\n {\n actions: 'setConfirmAttributeCompleteStep',\n target: '#signInActor.resolved',\n },\n ],\n onError: {\n actions: 'setConfirmAttributeCompleteStep',\n target: '#signInActor.resolved',\n },\n};\nfunction signInActor({ services }) {\n return createMachine({\n id: 'signInActor',\n initial: 'init',\n predictableActionArguments: true,\n states: {\n init: {\n always: [\n {\n cond: 'shouldConfirmSignIn',\n target: 'confirmSignIn',\n },\n {\n cond: 'shouldSetupTotp',\n target: 'setupTotp',\n },\n {\n cond: ({ step }) => step === 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n actions: 'setActorDoneData',\n target: 'forceChangePassword',\n },\n { target: 'signIn' },\n ],\n },\n federatedSignIn: getFederatedSignInState('signIn'),\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n ...handleFetchUserAttributesResponse,\n },\n },\n resendSignUpCode: {\n invoke: {\n src: 'handleResendSignUpCode',\n onDone: {\n actions: 'setCodeDeliveryDetails',\n target: '#signInActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: '#signInActor.signIn',\n },\n },\n },\n resetPassword: {\n invoke: {\n src: 'resetPassword',\n onDone: [\n {\n actions: 'setCodeDeliveryDetails',\n target: '#signInActor.resolved',\n },\n ],\n onError: { actions: ['setRemoteError', 'sendUpdate'] },\n },\n },\n signIn: {\n initial: 'edit',\n exit: 'clearTouched',\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n CHANGE: { actions: 'handleInput' },\n FEDERATED_SIGN_IN: { target: '#signInActor.federatedSignIn' },\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate', 'setUsernameSignIn'],\n exit: 'clearFormValues',\n invoke: { src: 'handleSignIn', ...handleSignInResponse },\n },\n },\n },\n confirmSignIn: {\n initial: 'edit',\n exit: [\n 'clearChallengeName',\n 'clearFormValues',\n 'clearError',\n 'clearTouched',\n ],\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'confirmSignIn',\n ...handleSignInResponse,\n },\n },\n },\n },\n forceChangePassword: {\n entry: 'sendUpdate',\n type: 'parallel',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: 'sendUpdate' },\n invalid: { entry: 'sendUpdate' },\n },\n on: {\n SIGN_IN: {\n actions: 'setSignInStep',\n target: '#signInActor.resolved',\n },\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submit: {\n initial: 'edit',\n entry: 'clearError',\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n },\n },\n validate: {\n entry: 'sendUpdate',\n invoke: {\n src: 'validateFields',\n onDone: {\n actions: 'clearValidationError',\n target: 'pending',\n },\n onError: { actions: 'setFieldErrors', target: 'edit' },\n },\n },\n pending: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: {\n src: 'handleForceChangePassword',\n ...handleSignInResponse,\n },\n },\n },\n },\n },\n },\n setupTotp: {\n initial: 'edit',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SIGN_IN: '#signInActor.signIn',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError'],\n invoke: { src: 'confirmSignIn', ...handleSignInResponse },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context) => ({\n codeDeliveryDetails: context.codeDeliveryDetails,\n remoteError: context.remoteError,\n step: context.step,\n unverifiedUserAttributes: context.unverifiedUserAttributes,\n username: context.username,\n }),\n },\n },\n }, {\n // sendUpdate is a HOC\n actions: { ...ACTIONS, sendUpdate: sendUpdate() },\n guards: GUARDS,\n services: {\n async fetchUserAttributes() {\n return fetchUserAttributes();\n },\n resetPassword({ username }) {\n return resetPassword({ username });\n },\n handleResendSignUpCode({ username }) {\n return resendSignUpCode({ username });\n },\n handleSignIn({ formValues, username }) {\n const { password } = formValues;\n return services.handleSignIn({ username, password });\n },\n confirmSignIn({ formValues }) {\n const { confirmation_code: challengeResponse } = formValues;\n return services.handleConfirmSignIn({ challengeResponse });\n },\n async handleForceChangePassword({ formValues }) {\n let { password: challengeResponse, phone_number, country_code, \n // destructure and toss UI confirm_password field\n // to prevent error from sending to confirmSignIn\n confirm_password, ...userAttributes } = formValues;\n let phoneNumberWithCountryCode;\n if (phone_number) {\n phoneNumberWithCountryCode =\n `${country_code}${phone_number}`.replace(/[^A-Z0-9+]/gi, '');\n userAttributes = {\n ...userAttributes,\n phone_number: phoneNumberWithCountryCode,\n };\n }\n const input = {\n challengeResponse,\n options: { userAttributes },\n };\n return confirmSignIn(input);\n },\n signInWithRedirect(_, { data }) {\n return signInWithRedirect(data);\n },\n async validateFields(context) {\n return runValidators(context.formValues, context.touched, context.passwordSettings, [\n defaultServices.validateFormPassword,\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n });\n}\n\nexport { signInActor };\n","import { createMachine, sendUpdate } from 'xstate';\nimport { autoSignIn, fetchUserAttributes, resendSignUpCode, signInWithRedirect } from 'aws-amplify/auth';\nimport { getSignUpInput } from '../utils.mjs';\nimport { runValidators } from '../../../validators/index.mjs';\nimport ACTIONS from '../actions.mjs';\nimport GUARDS from '../guards.mjs';\nimport { getFederatedSignInState } from './utils.mjs';\n\nconst handleResetPasswordResponse = {\n onDone: [\n { actions: 'setCodeDeliveryDetails', target: '#signUpActor.resolved' },\n ],\n onError: { actions: ['setRemoteError', 'sendUpdate'] },\n};\nconst handleAutoSignInResponse = {\n onDone: [\n {\n cond: 'hasCompletedSignIn',\n actions: 'setNextSignInStep',\n target: '#signUpActor.fetchUserAttributes',\n },\n {\n cond: 'shouldConfirmSignInWithNewPassword',\n actions: 'setNextSignInStep',\n target: '#signUpActor.resolved',\n },\n {\n cond: 'shouldResetPasswordFromSignIn',\n actions: 'setNextSignInStep',\n target: '#signUpActor.resetPassword',\n },\n {\n cond: 'shouldConfirmSignUpFromSignIn',\n actions: 'setNextSignInStep',\n target: '#signUpActor.resendSignUpCode',\n },\n {\n actions: [\n 'setNextSignInStep',\n 'setChallengeName',\n 'setMissingAttributes',\n 'setTotpSecretCode',\n ],\n target: '#signUpActor.resolved',\n },\n ],\n onError: {\n actions: 'setRemoteError',\n target: '#signUpActor.resolved',\n },\n};\nconst handleFetchUserAttributesResponse = {\n onDone: [\n {\n cond: 'shouldVerifyAttribute',\n actions: [\n 'setShouldVerifyUserAttributeStep',\n 'setUnverifiedUserAttributes',\n ],\n target: '#signUpActor.resolved',\n },\n {\n actions: 'setConfirmAttributeCompleteStep',\n target: '#signUpActor.resolved',\n },\n ],\n onError: {\n actions: 'setConfirmAttributeCompleteStep',\n target: '#signUpActor.resolved',\n },\n};\nfunction signUpActor({ services }) {\n return createMachine({\n id: 'signUpActor',\n initial: 'init',\n predictableActionArguments: true,\n states: {\n init: {\n always: [\n { cond: 'shouldConfirmSignUp', target: 'confirmSignUp' },\n { target: 'signUp' },\n ],\n },\n autoSignIn: {\n tags: 'pending',\n invoke: { src: 'autoSignIn', ...handleAutoSignInResponse },\n },\n fetchUserAttributes: {\n invoke: {\n src: 'fetchUserAttributes',\n ...handleFetchUserAttributesResponse,\n },\n },\n federatedSignIn: getFederatedSignInState('signUp'),\n resetPassword: {\n invoke: { src: 'resetPassword', ...handleResetPasswordResponse },\n },\n resendSignUpCode: {\n tags: 'pending',\n entry: 'sendUpdate',\n exit: 'sendUpdate',\n invoke: {\n src: 'resendSignUpCode',\n onDone: {\n actions: ['setCodeDeliveryDetails', 'sendUpdate'],\n target: '#signUpActor.confirmSignUp',\n },\n onError: [\n {\n cond: 'isUserAlreadyConfirmed',\n target: '#signUpActor.resolved',\n },\n { actions: ['setRemoteError', 'sendUpdate'] },\n ],\n },\n },\n signUp: {\n type: 'parallel',\n exit: 'clearTouched',\n on: {\n FEDERATED_SIGN_IN: { target: 'federatedSignIn' },\n },\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateSignUp',\n onDone: {\n actions: 'clearValidationError',\n target: 'valid',\n },\n onError: { actions: 'setFieldErrors', target: 'invalid' },\n },\n },\n valid: { entry: 'sendUpdate' },\n invalid: { entry: 'sendUpdate' },\n },\n on: {\n BLUR: { actions: 'handleBlur', target: '.pending' },\n CHANGE: { actions: 'handleInput', target: '.pending' },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: ['sendUpdate'],\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n },\n },\n validate: {\n entry: 'sendUpdate',\n invoke: {\n src: 'validateSignUp',\n onDone: {\n target: 'handleSignUp',\n actions: 'clearValidationError',\n },\n onError: { actions: 'setFieldErrors', target: 'idle' },\n },\n },\n handleSignUp: {\n tags: 'pending',\n entry: ['setUsernameSignUp', 'clearError'],\n exit: 'sendUpdate',\n invoke: {\n src: 'handleSignUp',\n onDone: [\n {\n cond: 'hasCompletedSignUp',\n actions: 'setNextSignUpStep',\n target: '#signUpActor.resolved',\n },\n {\n cond: 'shouldAutoSignIn',\n actions: 'setNextSignUpStep',\n target: '#signUpActor.autoSignIn',\n },\n {\n actions: [\n 'setCodeDeliveryDetails',\n 'setNextSignUpStep',\n ],\n target: '#signUpActor.init',\n },\n ],\n onError: {\n actions: ['sendUpdate', 'setRemoteError'],\n target: 'idle',\n },\n },\n },\n },\n },\n },\n },\n confirmSignUp: {\n initial: 'edit',\n entry: 'sendUpdate',\n states: {\n edit: {\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n RESEND: '#signUpActor.resendSignUpCode',\n },\n },\n submit: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'confirmSignUp',\n onDone: [\n {\n cond: 'shouldAutoSignIn',\n actions: ['setNextSignUpStep', 'clearFormValues'],\n target: '#signUpActor.autoSignIn',\n },\n {\n actions: 'setNextSignUpStep',\n target: '#signUpActor.init',\n },\n ],\n onError: {\n actions: ['setRemoteError', 'sendUpdate'],\n target: 'edit',\n },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: (context) => ({\n challengeName: context.challengeName,\n missingAttributes: context.missingAttributes,\n remoteError: context.remoteError,\n step: context.step,\n totpSecretCode: context.totpSecretCode,\n username: context.username,\n unverifiedUserAttributes: context.unverifiedUserAttributes,\n }),\n },\n },\n }, {\n // sendUpdate is a HOC\n actions: { ...ACTIONS, sendUpdate: sendUpdate() },\n guards: GUARDS,\n services: {\n autoSignIn() {\n return autoSignIn();\n },\n async fetchUserAttributes() {\n return fetchUserAttributes();\n },\n confirmSignUp({ formValues, username }) {\n const { confirmation_code: confirmationCode } = formValues;\n const input = { username, confirmationCode };\n return services.handleConfirmSignUp(input);\n },\n resendSignUpCode({ username }) {\n return resendSignUpCode({ username });\n },\n signInWithRedirect(_, { data }) {\n return signInWithRedirect(data);\n },\n handleSignUp(context) {\n const { formValues, loginMechanisms, username } = context;\n const loginMechanism = loginMechanisms[0];\n const input = getSignUpInput(username, formValues, loginMechanism);\n return services.handleSignUp(input);\n },\n async validateSignUp(context) {\n // This needs to exist in the machine to reference new `services`\n return runValidators(context.formValues, context.touched, context.passwordSettings, [\n // Validation of password\n services.validateFormPassword,\n // Validation for default form fields\n services.validateConfirmPassword,\n services.validatePreferredUsername,\n // Validation for any custom Sign Up fields\n services.validateCustomSignUp,\n ]);\n },\n },\n });\n}\n\nexport { signUpActor };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '../Amplify';\nexport function clearCredentials() {\n return Amplify.Auth.clearCredentials();\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, clearCredentials } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nimport { tokenOrchestrator } from '../../tokenProvider';\nexport const completeOAuthSignOut = async (store) => {\n await store.clearOAuthData();\n tokenOrchestrator.clearTokens();\n await clearCredentials();\n Hub.dispatch('auth', { event: 'signedOut' }, 'Auth', AMPLIFY_SYMBOL);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { completeOAuthSignOut } from './completeOAuthSignOut';\nimport { oAuthSignOutRedirect } from './oAuthSignOutRedirect';\nexport const handleOAuthSignOut = async (cognitoConfig, store) => {\n const { isOAuthSignIn } = await store.loadOAuthSignIn();\n // Clear everything before attempting to visted logout endpoint since the current application\n // state could be wiped away on redirect\n await completeOAuthSignOut(store);\n if (isOAuthSignIn) {\n // On web, this will always end up being a void action\n return oAuthSignOutRedirect(cognitoConfig);\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertOAuthConfig } from '@aws-amplify/core/internals/utils';\nimport { openAuthSession } from '../../../../utils';\nimport { getRedirectUrl } from './getRedirectUrl';\nexport const oAuthSignOutRedirect = async (authConfig, preferPrivateSession = false) => {\n assertOAuthConfig(authConfig);\n const { loginWith, userPoolClientId } = authConfig;\n const { domain, redirectSignOut } = loginWith.oauth;\n const signoutUri = getRedirectUrl(redirectSignOut);\n const oAuthLogoutEndpoint = `https://${domain}/logout?${Object.entries({\n client_id: userPoolClientId,\n logout_uri: encodeURIComponent(signoutUri),\n })\n .map(([k, v]) => `${k}=${v}`)\n .join('&')}`;\n return openAuthSession(oAuthLogoutEndpoint, redirectSignOut, preferPrivateSession);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, ConsoleLogger, Hub, clearCredentials, defaultStorage, } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, AuthAction, assertOAuthConfig, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { globalSignOut as globalSignOutClient, revokeToken, } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokens, assertAuthTokensWithRefreshToken, } from '../utils/types';\nimport { handleOAuthSignOut } from '../utils/oauth';\nimport { DefaultOAuthStore } from '../utils/signInWithRedirectStore';\nimport { AuthError } from '../../../errors/AuthError';\nimport { OAUTH_SIGNOUT_EXCEPTION } from '../../../errors/constants';\nconst logger = new ConsoleLogger('Auth');\n/**\n * Signs a user out\n *\n * @param input - The SignOutInput object\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signOut(input) {\n const cognitoConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(cognitoConfig);\n if (input?.global) {\n await globalSignOut(cognitoConfig);\n }\n else {\n await clientSignOut(cognitoConfig);\n }\n let hasOAuthConfig;\n try {\n assertOAuthConfig(cognitoConfig);\n hasOAuthConfig = true;\n }\n catch (err) {\n hasOAuthConfig = false;\n }\n if (hasOAuthConfig) {\n const oAuthStore = new DefaultOAuthStore(defaultStorage);\n oAuthStore.setAuthConfig(cognitoConfig);\n const { type } = (await handleOAuthSignOut(cognitoConfig, oAuthStore)) ?? {};\n if (type === 'error') {\n throw new AuthError({\n name: OAUTH_SIGNOUT_EXCEPTION,\n message: 'An error occurred when attempting to log out from OAuth provider.',\n });\n }\n }\n else {\n // complete sign out\n tokenOrchestrator.clearTokens();\n await clearCredentials();\n Hub.dispatch('auth', { event: 'signedOut' }, 'Auth', AMPLIFY_SYMBOL);\n }\n}\nasync function clientSignOut(cognitoConfig) {\n try {\n const authTokens = await tokenOrchestrator.getTokenStore().loadTokens();\n assertAuthTokensWithRefreshToken(authTokens);\n if (isSessionRevocable(authTokens.accessToken)) {\n await revokeToken({\n region: getRegion(cognitoConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignOut),\n }, {\n ClientId: cognitoConfig.userPoolClientId,\n Token: authTokens.refreshToken,\n });\n }\n }\n catch (err) {\n // this shouldn't throw\n logger.debug('Client signOut error caught but will proceed with token removal');\n }\n}\nasync function globalSignOut(cognitoConfig) {\n try {\n const authTokens = await tokenOrchestrator.getTokenStore().loadTokens();\n assertAuthTokens(authTokens);\n await globalSignOutClient({\n region: getRegion(cognitoConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignOut),\n }, {\n AccessToken: authTokens.accessToken.toString(),\n });\n }\n catch (err) {\n // it should not throw\n logger.debug('Global signOut error caught but will proceed with token removal');\n }\n}\nconst isSessionRevocable = (token) => !!token?.payload?.origin_jti;\n","import { createMachine } from 'xstate';\nimport { signOut } from 'aws-amplify/auth';\n\nconst signOutActor = () => {\n return createMachine({\n initial: 'pending',\n id: 'signOutActor',\n predictableActionArguments: true,\n states: {\n pending: {\n tags: 'pending',\n invoke: {\n src: 'signOut',\n onDone: 'resolved',\n onError: 'rejected',\n },\n },\n resolved: { type: 'final' },\n rejected: { type: 'final' },\n },\n }, {\n services: {\n signOut: () => signOut(),\n },\n });\n};\n\nexport { signOutActor };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '../Amplify';\nimport { fetchAuthSession as fetchAuthSessionInternal } from './internal/fetchAuthSession';\nexport const fetchAuthSession = (options) => {\n return fetchAuthSessionInternal(Amplify, options);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, fetchAuthSession } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { getUserAttributeVerificationCode } from '../utils/clients/CognitoIdentityProvider';\nimport { assertAuthTokens } from '../utils/types';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\n/**\n * Resends user's confirmation code when updating attributes while authenticated.\n *\n * @param input - The SendUserAttributeVerificationCodeInput object\n * @returns SendUserAttributeVerificationCodeOutput\n * @throws - {@link GetUserAttributeVerificationException}\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport const sendUserAttributeVerificationCode = async (input) => {\n const { userAttributeKey, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const clientMetadata = options?.clientMetadata;\n assertTokenProviderConfig(authConfig);\n const { tokens } = await fetchAuthSession({ forceRefresh: false });\n assertAuthTokens(tokens);\n const { CodeDeliveryDetails } = await getUserAttributeVerificationCode({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SendUserAttributeVerificationCode),\n }, {\n AccessToken: tokens.accessToken.toString(),\n ClientMetadata: clientMetadata,\n AttributeName: userAttributeKey,\n });\n const { DeliveryMedium, AttributeName, Destination } = {\n ...CodeDeliveryDetails,\n };\n return {\n destination: Destination,\n deliveryMedium: DeliveryMedium,\n attributeName: AttributeName,\n };\n};\n","import { createMachine, sendUpdate } from 'xstate';\nimport { sendUserAttributeVerificationCode, confirmUserAttribute } from 'aws-amplify/auth';\nimport { runValidators } from '../../../validators/index.mjs';\nimport ACTIONS from '../actions.mjs';\nimport { defaultServices } from '../defaultServices.mjs';\n\nfunction verifyUserAttributesActor() {\n return createMachine({\n id: 'verifyUserAttributesActor',\n initial: 'selectUserAttributes',\n predictableActionArguments: true,\n states: {\n selectUserAttributes: {\n initial: 'edit',\n exit: ['clearError', 'clearTouched', 'sendUpdate'],\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SKIP: { target: '#verifyUserAttributesActor.resolved' },\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'sendUserAttributeVerificationCode',\n onDone: {\n actions: [\n 'setSelectedUserAttribute',\n 'setCodeDeliveryDetails',\n ],\n target: '#verifyUserAttributesActor.confirmVerifyUserAttribute',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n confirmVerifyUserAttribute: {\n initial: 'edit',\n exit: ['clearError', 'clearFormValues', 'clearTouched'],\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n SKIP: '#verifyUserAttributesActor.resolved',\n CHANGE: { actions: 'handleInput' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'confirmVerifyUserAttribute',\n onDone: {\n actions: [\n 'setConfirmAttributeCompleteStep',\n 'clearSelectedUserAttribute',\n ],\n target: '#verifyUserAttributesActor.resolved',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n resolved: { type: 'final', data: ({ step }) => ({ step }) },\n },\n }, {\n // sendUpdate is a HOC\n actions: { ...ACTIONS, sendUpdate: sendUpdate() },\n services: {\n sendUserAttributeVerificationCode({ formValues: { unverifiedAttr } }) {\n const input = {\n userAttributeKey: unverifiedAttr,\n };\n return sendUserAttributeVerificationCode(input);\n },\n async confirmVerifyUserAttribute({ formValues: { confirmation_code: confirmationCode }, selectedUserAttribute, }) {\n const input = {\n confirmationCode,\n userAttributeKey: selectedUserAttribute,\n };\n return confirmUserAttribute(input);\n },\n async validateFields(context) {\n return runValidators(context.formValues, context.touched, context.passwordSettings, [\n defaultServices.validateFormPassword,\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n });\n}\n\nexport { verifyUserAttributesActor };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, fetchAuthSession } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { verifyUserAttribute } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokens } from '../utils/types';\nimport { getAuthUserAgentValue } from '../../../utils';\n/**\n * Confirms a user attribute with the confirmation code.\n *\n * @param input - The ConfirmUserAttributeInput object\n * @throws -{@link AuthValidationErrorCode } -\n * Thrown when `confirmationCode` is not defined.\n * @throws -{@link VerifyUserAttributeException } - Thrown due to an invalid confirmation code or attribute.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmUserAttribute(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { confirmationCode, userAttributeKey } = input;\n assertValidationError(!!confirmationCode, AuthValidationErrorCode.EmptyConfirmUserAttributeCode);\n const { tokens } = await fetchAuthSession({ forceRefresh: false });\n assertAuthTokens(tokens);\n await verifyUserAttribute({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmUserAttribute),\n }, {\n AccessToken: tokens.accessToken.toString(),\n AttributeName: userAttributeKey,\n Code: confirmationCode,\n });\n}\n","import { createMachine, forwardTo, assign, spawn, actions } from 'xstate';\nimport '@aws-amplify/core/internals/utils';\nimport '../../utils/setUserAgent/constants.mjs';\nimport { isEmptyObject } from '../../utils/utils.mjs';\nimport ACTIONS from './actions.mjs';\nimport GUARDS from './guards.mjs';\nimport { forgotPasswordActor } from './actors/forgotPassword.mjs';\nimport { signInActor } from './actors/signIn.mjs';\nimport { signUpActor } from './actors/signUp.mjs';\nimport { signOutActor } from './actors/signOut.mjs';\nimport { verifyUserAttributesActor } from './actors/verifyUserAttributes.mjs';\nimport { defaultServices } from './defaultServices.mjs';\n\nconst getActorContext = (context, defaultStep) => ({\n ...context.actorDoneData,\n step: context?.actorDoneData?.step ?? defaultStep,\n // initialize empty objects on actor start\n formValues: {},\n touched: {},\n validationError: {},\n // values included on `context.config` that should be available in actors\n formFields: context.config?.formFields,\n loginMechanisms: context.config?.loginMechanisms,\n passwordSettings: context.config?.passwordSettings,\n signUpAttributes: context.config?.signUpAttributes,\n socialProviders: context.config?.socialProviders,\n});\nconst { choose, stop } = actions;\nconst stopActor = (machineId) => stop(machineId);\n// setup step waits for ui to emit INIT action to proceed to configure\nconst LEGACY_WAIT_CONFIG = {\n on: {\n INIT: {\n actions: 'configure',\n target: 'getConfig',\n },\n SIGN_OUT: '#authenticator.signOut',\n },\n};\n// setup step proceeds directly to configure\nconst NEXT_WAIT_CONFIG = {\n always: { actions: 'configure', target: 'getConfig' },\n};\nfunction createAuthenticatorMachine(options) {\n const { useNextWaitConfig, ...overrideConfigServices } = options ?? {};\n const initConfig = useNextWaitConfig ? NEXT_WAIT_CONFIG : LEGACY_WAIT_CONFIG;\n return createMachine({\n id: 'authenticator',\n initial: 'idle',\n context: {\n user: undefined,\n config: {},\n services: defaultServices,\n actorRef: undefined,\n hasSetup: false,\n },\n predictableActionArguments: true,\n states: {\n // See: https://xstate.js.org/docs/guides/communication.html#invoking-promises\n idle: {\n invoke: {\n src: 'handleGetCurrentUser',\n onDone: { actions: 'setUser', target: 'setup' },\n onError: { target: 'setup' },\n },\n },\n setup: {\n initial: 'initConfig',\n states: {\n initConfig,\n getConfig: {\n invoke: {\n src: 'getAmplifyConfig',\n onDone: [\n {\n actions: ['applyAmplifyConfig', 'setHasSetup'],\n cond: 'hasUser',\n target: '#authenticator.authenticated',\n },\n {\n actions: ['applyAmplifyConfig', 'setHasSetup'],\n target: 'goToInitialState',\n },\n ],\n },\n },\n goToInitialState: {\n always: [\n {\n cond: 'isInitialStateSignUp',\n target: '#authenticator.signUpActor',\n },\n {\n cond: 'isInitialStateResetPassword',\n target: '#authenticator.forgotPasswordActor',\n },\n { target: '#authenticator.signInActor' },\n ],\n },\n },\n },\n getCurrentUser: {\n invoke: {\n src: 'handleGetCurrentUser',\n onDone: {\n actions: 'setUser',\n target: '#authenticator.authenticated',\n },\n onError: { target: '#authenticator.setup' },\n },\n },\n signInActor: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignInActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('signInActor'),\n },\n },\n on: {\n FORGOT_PASSWORD: 'forgotPasswordActor',\n SIGN_IN: 'signInActor',\n SIGN_UP: 'signUpActor',\n 'done.invoke.signInActor': [\n {\n cond: 'hasCompletedAttributeConfirmation',\n target: '#authenticator.getCurrentUser',\n },\n {\n cond: 'isShouldConfirmUserAttributeStep',\n actions: 'setActorDoneData',\n target: '#authenticator.verifyUserAttributesActor',\n },\n {\n cond: 'isResetPasswordStep',\n actions: 'setActorDoneData',\n target: '#authenticator.forgotPasswordActor',\n },\n {\n cond: 'isConfirmSignUpStep',\n actions: 'setActorDoneData',\n target: '#authenticator.signUpActor',\n },\n ],\n },\n },\n signUpActor: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignUpActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('signUpActor'),\n },\n },\n on: {\n SIGN_IN: 'signInActor',\n 'done.invoke.signUpActor': [\n {\n cond: 'hasCompletedAttributeConfirmation',\n target: '#authenticator.getCurrentUser',\n },\n {\n cond: 'isShouldConfirmUserAttributeStep',\n actions: 'setActorDoneData',\n target: '#authenticator.verifyUserAttributesActor',\n },\n {\n cond: 'isConfirmUserAttributeStep',\n target: '#authenticator.verifyUserAttributesActor',\n },\n {\n actions: 'setActorDoneData',\n target: '#authenticator.signInActor',\n },\n ],\n },\n },\n forgotPasswordActor: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: {\n actions: 'spawnForgotPasswordActor',\n target: 'runActor',\n },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('forgotPasswordActor'),\n },\n },\n on: {\n SIGN_IN: 'signInActor',\n 'done.invoke.forgotPasswordActor': [\n { target: '#authenticator.signInActor' },\n ],\n },\n },\n verifyUserAttributesActor: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: {\n actions: 'spawnVerifyUserAttributesActor',\n target: 'runActor',\n },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('verifyUserAttributesActor'),\n },\n },\n on: {\n 'done.invoke.verifyUserAttributesActor': [\n {\n actions: 'setActorDoneData',\n target: '#authenticator.getCurrentUser',\n },\n ],\n },\n },\n authenticated: {\n initial: 'idle',\n states: {\n idle: { on: { TOKEN_REFRESH: 'refreshUser' } },\n refreshUser: {\n invoke: {\n src: '#authenticator.getCurrentUser',\n onDone: { actions: 'setUser', target: 'idle' },\n onError: { target: '#authenticator.signOut' },\n },\n },\n },\n on: { SIGN_OUT: 'signOut' },\n },\n signOut: {\n initial: 'spawnActor',\n states: {\n spawnActor: {\n always: { actions: 'spawnSignOutActor', target: 'runActor' },\n },\n runActor: {\n entry: 'clearActorDoneData',\n exit: stopActor('signOutActor'),\n },\n },\n on: {\n 'done.invoke.signOutActor': {\n actions: 'clearUser',\n target: 'setup.getConfig',\n },\n },\n },\n },\n on: {\n SIGN_IN_WITH_REDIRECT: { target: '#authenticator.getCurrentUser' },\n CHANGE: { actions: 'forwardToActor' },\n BLUR: { actions: 'forwardToActor' },\n SUBMIT: { actions: 'forwardToActor' },\n FEDERATED_SIGN_IN: { actions: 'forwardToActor' },\n RESEND: { actions: 'forwardToActor' },\n SIGN_IN: { actions: 'forwardToActor' },\n SKIP: { actions: 'forwardToActor' },\n },\n }, {\n actions: {\n ...ACTIONS,\n forwardToActor: choose([\n { cond: 'hasActor', actions: forwardTo(({ actorRef }) => actorRef) },\n ]),\n setActorDoneData: assign({\n actorDoneData: (context, event) => ({\n challengeName: event.data.challengeName,\n codeDeliveryDetails: event.data.codeDeliveryDetails,\n missingAttributes: event.data.missingAttributes,\n remoteError: event.data.remoteError,\n username: event.data.username,\n step: event.data.step,\n totpSecretCode: event.data.totpSecretCode,\n unverifiedUserAttributes: event.data.unverifiedUserAttributes,\n }),\n }),\n applyAmplifyConfig: assign({\n config(context, { data: cliConfig }) {\n // Prefer explicitly configured settings over default CLI values\\\n const { loginMechanisms = cliConfig.loginMechanisms ?? [], signUpAttributes = cliConfig.signUpAttributes ?? [], socialProviders = cliConfig.socialProviders ?? [], initialState, formFields: _formFields, passwordSettings = cliConfig.passwordFormat ??\n {}, } = context.config;\n // By default, Cognito assumes `username`, so there isn't a different username attribute like `email`.\n // We explicitly add it as a login mechanism to be consistent with Admin UI's language.\n if (loginMechanisms.length === 0) {\n loginMechanisms.push('username');\n }\n const formFields = convertFormFields(_formFields) ?? {};\n return {\n formFields,\n initialState,\n loginMechanisms,\n passwordSettings,\n signUpAttributes,\n socialProviders,\n };\n },\n }),\n spawnSignInActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = signInActor({ services }).withContext(getActorContext(context, 'SIGN_IN'));\n return spawn(actor, { name: 'signInActor' });\n },\n }),\n spawnSignUpActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = signUpActor({ services }).withContext(getActorContext(context, 'SIGN_UP'));\n return spawn(actor, { name: 'signUpActor' });\n },\n }),\n spawnForgotPasswordActor: assign({\n actorRef: (context, _) => {\n const { services } = context;\n const actor = forgotPasswordActor({ services }).withContext(getActorContext(context, 'FORGOT_PASSWORD'));\n return spawn(actor, { name: 'forgotPasswordActor' });\n },\n }),\n spawnVerifyUserAttributesActor: assign({\n actorRef: (context) => {\n const actor = verifyUserAttributesActor().withContext(getActorContext(context));\n return spawn(actor, { name: 'verifyUserAttributesActor' });\n },\n }),\n spawnSignOutActor: assign({\n actorRef: (context) => {\n const actor = signOutActor().withContext({ user: context?.user });\n return spawn(actor, { name: 'signOutActor' });\n },\n }),\n configure: assign((_, event) => {\n const { services: customServices, ...config } = !isEmptyObject(overrideConfigServices)\n ? overrideConfigServices\n : event.data ?? {};\n return {\n services: { ...defaultServices, ...customServices },\n config,\n };\n }),\n setHasSetup: assign({ hasSetup: true }),\n },\n guards: {\n ...GUARDS,\n hasActor: ({ actorRef }) => !!actorRef,\n isInitialStateSignUp: ({ config }) => config.initialState === 'signUp',\n isInitialStateResetPassword: ({ config }) => config.initialState === 'forgotPassword',\n shouldSetup: ({ hasSetup }) => !hasSetup,\n hasUser: ({ user }) => {\n return !!user;\n },\n },\n services: {\n getAmplifyConfig: ({ services }) => services.getAmplifyConfig(),\n handleGetCurrentUser: ({ services }) => services.getCurrentUser(),\n },\n });\n}\nfunction convertFormFields(formFields) {\n if (formFields) {\n Object.keys(formFields).forEach((component) => {\n Object.keys(formFields[component]).forEach((inputName) => {\n let ff = formFields[component][inputName];\n ff.required = ff.isRequired;\n });\n });\n }\n return formFields;\n}\n\nexport { createAuthenticatorMachine };\n","import { createMachine, sendUpdate } from 'xstate';\nimport { runValidators } from '../../../validators/index.mjs';\nimport ACTIONS from '../actions.mjs';\nimport GUARDS from '../guards.mjs';\nimport { defaultServices } from '../defaultServices.mjs';\n\nfunction forgotPasswordActor({ services, }) {\n return createMachine({\n id: 'forgotPasswordActor',\n initial: 'init',\n predictableActionArguments: true,\n states: {\n init: {\n always: [\n {\n cond: 'shouldResetPassword',\n target: 'confirmResetPassword',\n },\n {\n cond: 'shouldConfirmResetPassword',\n target: 'confirmResetPassword',\n },\n {\n target: 'forgotPassword',\n },\n ],\n },\n forgotPassword: {\n initial: 'edit',\n entry: 'sendUpdate',\n exit: ['clearError', 'clearTouched'],\n states: {\n edit: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'submit' },\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n submit: {\n tags: 'pending',\n entry: ['sendUpdate', 'clearError', 'setUsernameForgotPassword'],\n invoke: {\n src: 'handleResetPassword',\n onDone: {\n actions: [\n 'setCodeDeliveryDetails',\n 'setNextResetPasswordStep',\n ],\n target: '#forgotPasswordActor.confirmResetPassword',\n },\n onError: {\n actions: 'setRemoteError',\n target: 'edit',\n },\n },\n },\n },\n },\n confirmResetPassword: {\n type: 'parallel',\n exit: ['clearFormValues', 'clearError', 'clearTouched'],\n states: {\n validation: {\n initial: 'pending',\n states: {\n pending: {\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'valid',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'invalid',\n actions: 'setFieldErrors',\n },\n },\n },\n valid: { entry: 'sendUpdate' },\n invalid: { entry: 'sendUpdate' },\n },\n on: {\n CHANGE: {\n actions: 'handleInput',\n target: '.pending',\n },\n BLUR: {\n actions: 'handleBlur',\n target: '.pending',\n },\n },\n },\n submission: {\n initial: 'idle',\n states: {\n idle: {\n entry: 'sendUpdate',\n on: {\n SUBMIT: { actions: 'handleSubmit', target: 'validate' },\n RESEND: 'resendCode',\n CHANGE: { actions: 'handleInput' },\n BLUR: { actions: 'handleBlur' },\n },\n },\n validate: {\n entry: 'sendUpdate',\n invoke: {\n src: 'validateFields',\n onDone: {\n target: 'pending',\n actions: 'clearValidationError',\n },\n onError: {\n target: 'idle',\n actions: 'setFieldErrors',\n },\n },\n },\n resendCode: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'handleResetPassword',\n onDone: { target: 'idle' },\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n pending: {\n tags: 'pending',\n entry: ['clearError', 'sendUpdate'],\n invoke: {\n src: 'handleConfirmResetPassword',\n onDone: [\n {\n cond: 'hasCompletedResetPassword',\n actions: 'setNextResetPasswordStep',\n target: '#forgotPasswordActor.resolved',\n },\n {\n actions: 'setSignInStep',\n target: '#forgotPasswordActor.resolved',\n },\n ],\n onError: { actions: 'setRemoteError', target: 'idle' },\n },\n },\n },\n },\n },\n },\n resolved: {\n type: 'final',\n data: ({ step }) => ({ step }),\n },\n },\n }, {\n // sendUpdate is a HOC\n actions: { ...ACTIONS, sendUpdate: sendUpdate() },\n guards: GUARDS,\n services: {\n handleResetPassword({ username }) {\n return services.handleForgotPassword({ username });\n },\n handleConfirmResetPassword({ formValues, username }) {\n const { confirmation_code: confirmationCode, password: newPassword } = formValues;\n return services.handleForgotPasswordSubmit({\n confirmationCode,\n newPassword,\n username,\n });\n },\n validateFields(context) {\n return runValidators(context.formValues, context.touched, context.passwordSettings, [\n defaultServices.validateFormPassword,\n defaultServices.validateConfirmPassword,\n ]);\n },\n },\n });\n}\n\nexport { forgotPasswordActor };\n","import React__default, { useContext, useMemo, useEffect } from 'react';\nimport { useInterpret } from '@xstate/react';\nimport { getCurrentUser } from 'aws-amplify/auth';\nimport { createAuthenticatorMachine, listenToAuthHub, defaultAuthHubHandler } from '@aws-amplify/ui';\nimport { AuthenticatorContext } from './AuthenticatorContext.mjs';\n\nconst createHubHandler = (options) => (data, service) => {\n defaultAuthHubHandler(data, service, options);\n};\nfunction AuthenticatorProvider({ children, }) {\n // `authStatus` is exposed by `useAuthenticator` but should not be derived directly from the\n // state machine as the machine only updates on `Authenticator` initiated events, which\n // leads to scenarios where the state machine `authStatus` gets \"stuck\". For exmample,\n // if a user was to sign in using `Auth.signIn` directly rather than using `Authenticator`\n const [authStatus, setAuthStatus] = React__default.useState('configuring');\n // only run on first render\n React__default.useEffect(() => {\n getCurrentUser()\n .then(() => {\n setAuthStatus('authenticated');\n })\n .catch(() => {\n setAuthStatus('unauthenticated');\n });\n }, []);\n /**\n * Based on use cases, developer might already have added another Provider\n * outside Authenticator. In that case, we sync the two providers by just\n * passing the parent value.\n *\n * TODO(BREAKING): enforce only one provider in App tree\n */\n const parentProviderVal = useContext(AuthenticatorContext);\n const service = useInterpret(createAuthenticatorMachine);\n const value = useMemo(() => (!parentProviderVal ? { authStatus, service } : parentProviderVal), [authStatus, parentProviderVal, service]);\n const { service: activeService } = value;\n useEffect(() => {\n const onSignIn = () => {\n setAuthStatus('authenticated');\n };\n const onSignOut = () => {\n setAuthStatus('unauthenticated');\n };\n const unsubscribe = listenToAuthHub(activeService, createHubHandler({ onSignIn, onSignOut }));\n return unsubscribe;\n }, [activeService]);\n return (React__default.createElement(AuthenticatorContext.Provider, { value: value }, children));\n}\n\nexport { AuthenticatorProvider as default };\n","const VERSION = '6.1.14';\n\nexport { VERSION };\n","import { useDeprecationWarning as useDeprecationWarning$1 } from '@aws-amplify/ui-react-core';\n\n/**\n * Logs a deprecation warning `message` to the console.\n */\nconst useDeprecationWarning = ({ message, shouldWarn: _shouldWarn, }) => {\n const shouldWarn = _shouldWarn &&\n // show message on builds without Node `process` polyfill\n // or with process.env.NODE_ENV not production\n (typeof process === 'undefined' ||\n (process && process.env.NODE_ENV !== 'production'));\n useDeprecationWarning$1({ message, shouldWarn });\n};\n\nexport { useDeprecationWarning };\n","import * as React from 'react';\n\n/**\n * Logs a deprecation warning message.\n *\n * @important Please use the React/React Native specific platform implementations.\n * This version of the hook is a base implementation that the others extend from due\n * to env differences between running in RN or the browser\n */\nconst useDeprecationWarning = ({ shouldWarn, message, }) => {\n React.useEffect(() => {\n if (shouldWarn) {\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n }, [shouldWarn, message]);\n};\n\nexport { useDeprecationWarning as default };\n","import * as React from 'react';\n\nconst CustomComponentsContext = \n// @ts-ignore\nReact.createContext(null);\nconst useCustomComponents = () => {\n const context = React.useContext(CustomComponentsContext);\n if (!context) {\n throw new Error('`useCustomComponents` cannot be used outside of a `CustomComponentsContext.Provider`');\n }\n return context;\n};\n\nexport { CustomComponentsContext, useCustomComponents };\n","import { translate, DefaultTexts } from '../../i18n/translations.mjs';\n\n/**\n * ConfirmSignIn\n */\nconst getChallengeText = (challengeName) => {\n switch (challengeName) {\n case 'SMS_MFA':\n return translate(DefaultTexts.CONFIRM_SMS);\n case 'SOFTWARE_TOKEN_MFA':\n return translate(DefaultTexts.CONFIRM_TOTP);\n default:\n return translate(DefaultTexts.CONFIRM_MFA_DEFAULT);\n }\n};\n/**\n * ConfirmSignUp\n */\nconst getDeliveryMessageText = (codeDeliveryDetails) => {\n const { DeliveryMedium, Destination } = codeDeliveryDetails ?? {};\n const isEmailMessage = DeliveryMedium === 'EMAIL';\n const isTextMessage = DeliveryMedium === 'SMS';\n const arrivalMessage = translate(DefaultTexts.CODE_ARRIVAL);\n if (!(isEmailMessage || isTextMessage)) {\n return `${translate(DefaultTexts.CODE_SENT)}. ${arrivalMessage}.`;\n }\n const instructionMessage = isEmailMessage\n ? translate(DefaultTexts.CODE_EMAILED)\n : translate(DefaultTexts.CODE_TEXTED);\n return `${instructionMessage} ${Destination}. ${arrivalMessage}.`;\n};\nconst getDeliveryMethodText = (codeDeliveryDetails) => {\n const { DeliveryMedium } = codeDeliveryDetails ?? {};\n const isEmailMessage = DeliveryMedium === 'EMAIL';\n const isTextMessage = DeliveryMedium === 'SMS';\n if (!isEmailMessage && isTextMessage) {\n return translate(DefaultTexts.WE_SENT_CODE);\n }\n return isEmailMessage\n ? translate(DefaultTexts.WE_EMAILED)\n : translate(DefaultTexts.WE_TEXTED);\n};\n/**\n * FederatedSignIn\n */\nconst providerNameMap = {\n amazon: 'Amazon',\n apple: 'Apple',\n facebook: 'Facebook',\n google: 'Google',\n};\nconst getSignInWithFederationText = (route, provider) => {\n const isSignIn = route === 'signIn';\n return translate(`Sign ${isSignIn ? 'In' : 'Up'} with ${providerNameMap[provider]}`);\n};\nconst authenticatorTextUtil = {\n /** Shared */\n getBackToSignInText: () => translate(DefaultTexts.BACK_SIGN_IN),\n getChangePasswordText: () => translate(DefaultTexts.CHANGE_PASSWORD),\n getChangingText: () => translate(DefaultTexts.CHANGING_PASSWORD),\n getConfirmText: () => translate(DefaultTexts.CONFIRM),\n getConfirmingText: () => translate(DefaultTexts.CONFIRMING),\n getCopyText: () => translate(DefaultTexts.UPPERCASE_COPY),\n getHidePasswordText: () => translate(DefaultTexts.HIDE_PASSWORD),\n getLoadingText: () => translate(DefaultTexts.LOADING),\n getOrText: () => translate(DefaultTexts.OR),\n getResendCodeText: () => translate(DefaultTexts.RESEND_CODE),\n getSendCodeText: () => translate(DefaultTexts.SEND_CODE),\n getSendingText: () => translate(DefaultTexts.SENDING),\n getShowPasswordText: () => translate(DefaultTexts.SHOW_PASSWORD),\n getSubmitText: () => translate(DefaultTexts.SUBMIT),\n getSubmittingText: () => translate(DefaultTexts.SUBMITTING),\n /** SignInSignUpTabs */\n getSignInTabText: () => translate(DefaultTexts.SIGN_IN_TAB),\n getSignUpTabText: () => translate(DefaultTexts.CREATE_ACCOUNT),\n /** SignIn */\n getForgotPasswordText: (shortVersion) => translate(shortVersion\n ? DefaultTexts.FORGOT_PASSWORD\n : DefaultTexts.FORGOT_YOUR_PASSWORD),\n getSigningInText: () => translate(DefaultTexts.SIGNING_IN_BUTTON),\n getSignInText: () => translate(DefaultTexts.SIGN_IN_BUTTON),\n /** SignUp */\n getCreatingAccountText: () => translate(DefaultTexts.CREATING_ACCOUNT),\n getCreateAccountText: () => translate(DefaultTexts.CREATE_ACCOUNT),\n /** ConfirmSignUp */\n getDeliveryMessageText,\n getDeliveryMethodText,\n /** ConfirmSignIn */\n getChallengeText,\n /** ForgotPassword */\n getResetYourPasswordText: () => translate(DefaultTexts.RESET_PASSWORD),\n /** SetupTotp */\n getSetupTotpText: () => translate(DefaultTexts.SETUP_TOTP),\n // TODO: add defaultText for below\n getSetupTotpInstructionsText: () => translate('Copy and paste the secret key below into an authenticator app and then enter the code in the text field below.'),\n // TODO: add defaultText for \"COPIED\"\n getCopiedText: () => translate('COPIED'),\n /** FederatedSignIn */\n getSignInWithFederationText,\n /** VerifyUser */\n getSkipText: () => translate(DefaultTexts.SKIP),\n getVerifyText: () => translate(DefaultTexts.VERIFY),\n getVerifyContactText: () => translate(DefaultTexts.VERIFY_CONTACT),\n getAccountRecoveryInfoText: () => translate(DefaultTexts.VERIFY_HEADING),\n /** Validations */\n // TODO: add defaultText\n getInvalidEmailText: () => translate('Please enter a valid email'),\n // TODO: add defaultText\n getRequiredFieldText: () => translate('This field is required'),\n}; // using `as const` so that keys are strongly typed\n\nexport { authenticatorTextUtil };\n","import { isString, isObject, has } from './utils.mjs';\n\nconst classNames = (...args) => {\n const classes = [];\n for (const arg of args) {\n // skip falsey values\n if (!arg) {\n continue;\n }\n if (isString(arg)) {\n classes.push(arg);\n continue;\n }\n if (typeof arg === 'number') {\n classes.push(arg.toString());\n continue;\n }\n if (Array.isArray(arg)) {\n classes.push(classNames(...arg));\n continue;\n }\n if (isObject(arg)) {\n // check if the object has a valid .toString() method\n if (arg.toString !== Object.prototype.toString &&\n arg.toString() !== '[object Object]') {\n classes.push(arg.toString());\n continue;\n }\n for (const key in arg) {\n if (has(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(' ');\n};\n\nexport { classNames };\n","const ComponentClassName = {\n Accordion: 'amplify-accordion',\n AccordionItem: 'amplify-accordion__item',\n AccordionItemTrigger: 'amplify-accordion__item__trigger',\n AccordionItemContent: 'amplify-accordion__item__content',\n AccordionItemIcon: 'amplify-accordion__item__icon',\n Alert: 'amplify-alert',\n AlertIcon: 'amplify-alert__icon',\n AlertHeading: 'amplify-alert__heading',\n AlertBody: 'amplify-alert__body',\n AlertDismiss: 'amplify-alert__dismiss',\n Autocomplete: 'amplify-autocomplete',\n AutocompleteMenu: 'amplify-autocomplete__menu',\n AutocompleteMenuEmpty: 'amplify-autocomplete__menu--empty',\n AutocompleteMenuFooter: 'amplify-autocomplete__menu__footer',\n AutocompleteMenuHeader: 'amplify-autocomplete__menu__header',\n AutocompleteMenuLoading: 'amplify-autocomplete__menu--loading',\n AutocompleteMenuOption: 'amplify-autocomplete__menu__option',\n AutocompleteMenuOptions: 'amplify-autocomplete__menu__options',\n Badge: 'amplify-badge',\n Breadcrumbs: 'amplify-breadcrumbs',\n BreadcrumbsList: 'amplify-breadcrumbs__list',\n BreadcrumbsItem: 'amplify-breadcrumbs__item',\n BreadcrumbsSeparator: 'amplify-breadcrumbs__separator',\n BreadcrumbsLink: 'amplify-breadcrumbs__link',\n Button: 'amplify-button',\n ButtonGroup: 'amplify-buttongroup',\n ButtonLoaderWrapper: 'amplify-button__loader-wrapper',\n Card: 'amplify-card',\n Checkbox: 'amplify-checkbox',\n CheckboxButton: 'amplify-checkbox__button',\n CheckboxIcon: 'amplify-checkbox__icon',\n CheckboxInput: 'amplify-checkbox__input',\n CheckboxLabel: 'amplify-checkbox__label',\n CheckboxField: 'amplify-checkboxfield',\n Collection: 'amplify-collection',\n CollectionItems: 'amplify-collection-items',\n CollectionSearch: 'amplify-collection-search',\n CollectionPagination: 'amplify-collection-pagination',\n CountryCodeSelect: 'amplify-countrycodeselect',\n DialCodeSelect: 'amplify-dialcodeselect',\n Divider: 'amplify-divider',\n DividerLabel: 'amplify-divider--label',\n DropZone: 'amplify-dropzone',\n Field: 'amplify-field',\n FieldDescription: 'amplify-field__description',\n FieldErrorMessage: 'amplify-field__error-message',\n FieldGroup: 'amplify-field-group',\n FieldGroupControl: 'amplify-field-group__control',\n FieldGroupOuterEnd: 'amplify-field-group__outer-end',\n FieldGroupOuterStart: 'amplify-field-group__outer-start',\n FieldGroupInnerEnd: 'amplify-field-group__inner-end',\n FieldGroupInnerStart: 'amplify-field-group__inner-start',\n FieldGroupIcon: 'amplify-field-group__icon',\n FieldGroupIconButton: 'amplify-field-group__icon-button',\n FieldGroupHasInnerEnd: 'amplify-field-group--has-inner-end',\n FieldGroupHasInnerStart: 'amplify-field-group--has-inner-start',\n FieldShowPassword: 'amplify-field__show-password',\n FieldGroupFieldWrapper: 'amplify-field-group__field-wrapper',\n Fieldset: 'amplify-fieldset',\n FieldsetLegend: 'amplify-fieldset__legend',\n Flex: 'amplify-flex',\n Grid: 'amplify-grid',\n Heading: 'amplify-heading',\n HighlightMatch: 'amplify-highlightmatch',\n HighlightMatchHighlighted: 'amplify-highlightmatch__highlighted',\n Icon: 'amplify-icon',\n Image: 'amplify-image',\n Input: 'amplify-input',\n Label: 'amplify-label',\n Link: 'amplify-link',\n Loader: 'amplify-loader',\n LoaderLabel: 'amplify-loader__label',\n MenuContent: 'amplify-menu__content',\n MenuItem: 'amplify-menu__content__item',\n MenuTrigger: 'amplify-menu__trigger',\n MenuWrapper: 'amplify-menu__wrapper',\n Message: 'amplify-message',\n MessageIcon: 'amplify-message__icon',\n MessageHeading: 'amplify-message__heading',\n MessageBody: 'amplify-message__body',\n MessageContent: 'amplify-message__content',\n MessageDismiss: 'amplify-message__dismiss',\n Pagination: 'amplify-pagination',\n PaginationItem: 'amplify-pagination__item',\n PasswordField: 'amplify-passwordfield',\n PhoneNumberField: 'amplify-phonenumberfield',\n Placeholder: 'amplify-placeholder',\n Radio: 'amplify-radio',\n RadioButton: 'amplify-radio__button',\n RadioInput: 'amplify-radio__input',\n RadioLabel: 'amplify-radio__label',\n RadioGroupField: 'amplify-radiogroupfield',\n RadioGroup: 'amplify-radiogroup',\n Rating: 'amplify-rating',\n RatingItem: 'amplify-rating__item',\n RatingIcon: 'amplify-rating__icon',\n RatingLabel: 'amplify-rating__label',\n ScrollView: 'amplify-scrollview',\n SearchField: 'amplify-searchfield',\n SearchFieldClear: 'amplify-searchfield__clear',\n SearchFieldSearch: 'amplify-searchfield__search',\n Select: 'amplify-select',\n SelectField: 'amplify-selectfield',\n SelectWrapper: 'amplify-select__wrapper',\n SelectIcon: 'amplify-select__icon',\n SliderField: 'amplify-sliderfield',\n SliderFieldGroup: 'amplify-sliderfield__group',\n SliderFieldLabel: 'amplify-sliderfield__label',\n SliderFieldRange: 'amplify-sliderfield__range',\n SliderFieldRoot: 'amplify-sliderfield__root',\n SliderFieldThumb: 'amplify-sliderfield__thumb',\n SliderFieldTrack: 'amplify-sliderfield__track',\n StepperField: 'amplify-stepperfield',\n StepperFieldButtonDecrease: 'amplify-stepperfield__button--decrease',\n StepperFieldButtonIncrease: 'amplify-stepperfield__button--increase',\n StepperFieldInput: 'amplify-stepperfield__input',\n StorageImage: 'amplify-storageimage',\n StorageManager: 'amplify-storagemanager',\n StorageManagerDropZone: 'amplify-storagemanager__dropzone',\n StorageManagerDropZoneIcon: 'amplify-storagemanager__dropzone__icon',\n StorageManagerDropZoneText: 'amplify-storagemanager__dropzone__text',\n StorageManagerFilePicker: 'amplify-storagemanager__file__picker',\n StorageManagerFile: 'amplify-storagemanager__file',\n StorageManagerFileWrapper: 'amplify-storagemanager__file__wrapper',\n StorageManagerFileList: 'amplify-storagemanager__file__list',\n StorageManagerFileName: 'amplify-storagemanager__file__name',\n StorageManagerFileSize: 'amplify-storagemanager__file__size',\n StorageManagerFileInfo: 'amplify-storagemanager__file__info',\n StorageManagerFileImage: 'amplify-storagemanager__file__image',\n StorageManagerFileMain: 'amplify-storagemanager__file__main',\n StorageManagerFileStatus: 'amplify-storagemanager__file__status',\n StorageManagerLoader: 'amplify-storagemanager__loader',\n StorageManagerPreviewer: 'amplify-storagemanager__previewer',\n StorageManagerPreviewerText: 'amplify-storagemanager__previewer__text',\n StorageManagerPreviewerActions: 'amplify-storagemanager__previewer__actions',\n StorageManagerPreviewerFooter: 'amplify-storagemanager__previewer__footer',\n SwitchField: 'amplify-switchfield',\n SwitchLabel: 'amplify-switch__label',\n SwitchThumb: 'amplify-switch__thumb',\n SwitchTrack: 'amplify-switch__track',\n SwitchWrapper: 'amplify-switch__wrapper',\n Table: 'amplify-table',\n TableCaption: 'amplify-table__caption',\n TableBody: 'amplify-table__body',\n TableTd: 'amplify-table__td',\n TableTh: 'amplify-table__th',\n TableFoot: 'amplify-table__foot',\n TableHead: 'amplify-table__head',\n TableRow: 'amplify-table__row',\n Tabs: 'amplify-tabs',\n TabsList: 'amplify-tabs__list',\n TabsItem: 'amplify-tabs__item',\n TabsPanel: 'amplify-tabs__panel',\n Text: 'amplify-text',\n Textarea: 'amplify-textarea',\n TextAreaField: 'amplify-textareafield',\n TextField: 'amplify-textfield',\n ToggleButton: 'amplify-togglebutton',\n ToggleButtonGroup: 'amplify-togglebuttongroup',\n VisuallyHidden: 'amplify-visually-hidden',\n};\n\nexport { ComponentClassName };\n","import * as React from 'react';\n\n/**\n * Updates the return type for primitives wrapped in `React.forwardRef` to\n * `React.ReactElement`. In React 18 the return type of `React.ExoticComponent`\n * was changed from `React.ReactElement` to `React.ReactNode`, which breaks\n * clients using React 16 and 17.\n *\n * @param primitive UI Primitive to be wrapped with `React.forwardRef`\n * @returns ForwaredRef wrapped UI Primitive\n */\nconst primitiveWithForwardRef = (primitive) => React.forwardRef(primitive);\n\nexport { primitiveWithForwardRef };\n","import * as React from 'react';\n\nconst FieldsetContext = React.createContext({\n isFieldsetDisabled: false,\n});\n/**\n * @description Fieldsets in HTML can be disabled, which disables all child\n * fieldsets and input controls. `useFieldset` passes the disabled state down\n * via context.\n */\nconst useFieldset = () => React.useContext(FieldsetContext);\n\nexport { FieldsetContext, useFieldset };\n","import kebabCase from 'lodash/kebabCase.js';\nimport usesReference from 'style-dictionary/lib/utils/references/usesReference.js';\nimport '@aws-amplify/core/internals/utils';\nimport '../utils/setUserAgent/constants.mjs';\nimport { isObject, has, isString } from '../utils/utils.mjs';\n\nconst CSS_VARIABLE_PREFIX = 'amplify';\n// Important: these properties should not be altered in\n// order to maintain the expected order of the CSS `box-shadow` property\nconst SHADOW_PROPERTIES = [\n 'offsetX',\n 'offsetY',\n 'blurRadius',\n 'spreadRadius',\n 'color',\n];\nfunction referenceValue(value) {\n if (!value)\n return '';\n if (usesReference(value)) {\n const path = value.replace(/\\{|\\}/g, '').replace('.value', '').split('.');\n return `var(--${cssNameTransform({ path })})`;\n }\n return value;\n}\nfunction cssValue(token) {\n const { value } = token;\n if (isString(value)) {\n return referenceValue(value);\n }\n if (isShadowTokenObject(value)) {\n return SHADOW_PROPERTIES.map((property) => {\n return referenceValue(\n // lookup property against `token` first for custom non-nested value, then lookup\n // property against `value` for design token value\n isShadowTokenObject(token) ? token[property] : value[property]);\n }).join(' ');\n }\n return value;\n}\nfunction cssNameTransform({ path = [] }) {\n return `${kebabCase([CSS_VARIABLE_PREFIX, ...path].join(' '))}`;\n}\n/**\n * Helper function to test if something is a design token or not.\n * Used in the React component style props.\n *\n * @param value - thing to test if it is a design token or not\n * @returns boolean\n */\nfunction isDesignToken(value) {\n return isObject(value) && has(value, 'value');\n}\nfunction isShadowTokenObject(value) {\n return isObject(value) && has(value, 'offsetX');\n}\n/**\n * Recursive function that will walk down the token object\n * and perform the setupToken function on each token.\n * Similar to what Style Dictionary does.\n */\nfunction setupTokens({ tokens, path = [], setupToken, }) {\n if (has(tokens, 'value')) {\n return setupToken({ token: tokens, path });\n }\n const output = {};\n for (const name in tokens) {\n if (has(tokens, name)) {\n const value = tokens[name];\n const nextTokens = isObject(value) ? value : { value };\n output[name] = setupTokens({\n tokens: nextTokens,\n path: path.concat(name),\n setupToken,\n });\n }\n }\n return output;\n}\n\nexport { CSS_VARIABLE_PREFIX, cssNameTransform, cssValue, isDesignToken, isShadowTokenObject, setupTokens };\n","/**\n * @internal May be removed in a future version\n * Maps from component style props to React `style` props\n * Note: Primarily needed to map from component style props that don't match CSS Properties directly\n * such as wrap => flexWrap and direction => flexDirection\n */\nconst ComponentPropsToStylePropsMap = {\n alignContent: 'alignContent',\n alignItems: 'alignItems',\n alignSelf: 'alignSelf',\n area: 'gridArea',\n aspectRatio: 'aspectRatio',\n autoColumns: 'gridAutoColumns',\n autoFlow: 'gridAutoFlow',\n autoRows: 'gridAutoRows',\n backgroundColor: 'backgroundColor',\n backgroundImage: 'backgroundImage',\n basis: 'flexBasis',\n border: 'border',\n borderRadius: 'borderRadius',\n borderColor: 'borderColor',\n borderWidth: 'borderWidth',\n borderStyle: 'borderStyle',\n bottom: 'bottom',\n boxShadow: 'boxShadow',\n color: 'color',\n column: 'gridColumn',\n columnEnd: 'gridColumnEnd',\n columnGap: 'columnGap',\n columnSpan: 'gridColumn',\n columnStart: 'gridColumnStart',\n direction: 'flexDirection',\n display: 'display',\n flex: 'flex',\n fontFamily: 'fontFamily',\n fontSize: 'fontSize',\n fontStyle: 'fontStyle',\n fontWeight: 'fontWeight',\n gap: 'gap',\n grow: 'flexGrow',\n height: 'height',\n justifyContent: 'justifyContent',\n left: 'left',\n letterSpacing: 'letterSpacing',\n lineHeight: 'lineHeight',\n margin: 'margin',\n marginBlock: 'marginBlock',\n marginBlockEnd: 'marginBlockEnd',\n marginBlockStart: 'marginBlockStart',\n marginBottom: 'marginBlockEnd',\n marginInline: 'marginInline',\n marginInlineEnd: 'marginInlineEnd',\n marginInlineStart: 'marginInlineStart',\n marginLeft: 'marginInlineStart',\n marginRight: 'marginInlineEnd',\n marginTop: 'marginBlockStart',\n maxHeight: 'maxHeight',\n maxWidth: 'maxWidth',\n minHeight: 'minHeight',\n minWidth: 'minWidth',\n objectFit: 'objectFit',\n objectPosition: 'objectPosition',\n opacity: 'opacity',\n order: 'order',\n overflow: 'overflow',\n padding: 'padding',\n paddingBlock: 'paddingBlock',\n paddingBlockEnd: 'paddingBlockEnd',\n paddingBlockStart: 'paddingBlockStart',\n paddingBottom: 'paddingBlockEnd',\n paddingInline: 'paddingInline',\n paddingInlineEnd: 'paddingInlineEnd',\n paddingInlineStart: 'paddingInlineStart',\n paddingLeft: 'paddingInlineStart',\n paddingRight: 'paddingInlineEnd',\n paddingTop: 'paddingBlockStart',\n position: 'position',\n resize: 'resize',\n right: 'right',\n row: 'gridRow',\n rowEnd: 'gridRowEnd',\n rowGap: 'rowGap',\n rowSpan: 'gridRow',\n rowStart: 'gridRowStart',\n shrink: 'flexShrink',\n templateAreas: 'gridTemplateAreas',\n templateColumns: 'gridTemplateColumns',\n templateRows: 'gridTemplateRows',\n textAlign: 'textAlign',\n textDecoration: 'textDecoration',\n textTransform: 'textTransform',\n top: 'top',\n transform: 'transform',\n transformOrigin: 'transformOrigin',\n width: 'width',\n whiteSpace: 'whiteSpace',\n wrap: 'flexWrap',\n};\n/**\n * @internal May be removed in a future version\n */\nconst ComponentPropsToStylePropsMapKeys = Object.keys(ComponentPropsToStylePropsMap);\n\nexport { ComponentPropsToStylePropsMap, ComponentPropsToStylePropsMapKeys };\n","const borderWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n\nexport { borderWidths };\n","const colors = {\n red: {\n 10: { value: 'hsl(0, 75%, 95%)' },\n 20: { value: 'hsl(0, 75%, 85%)' },\n 40: { value: 'hsl(0, 75%, 75%)' },\n 60: { value: 'hsl(0, 50%, 50%)' },\n 80: { value: 'hsl(0, 95%, 30%)' },\n 90: { value: 'hsl(0, 100%, 20%)' },\n 100: { value: 'hsl(0, 100%, 15%)' },\n },\n orange: {\n 10: { value: 'hsl(30, 75%, 95%)' },\n 20: { value: 'hsl(30, 75%, 85%)' },\n 40: { value: 'hsl(30, 75%, 75%)' },\n 60: { value: 'hsl(30, 50%, 50%)' },\n 80: { value: 'hsl(30, 95%, 30%)' },\n 90: { value: 'hsl(30, 100%, 20%)' },\n 100: { value: 'hsl(30, 100%, 15%)' },\n },\n yellow: {\n 10: { value: 'hsl(60, 75%, 95%)' },\n 20: { value: 'hsl(60, 75%, 85%)' },\n 40: { value: 'hsl(60, 75%, 75%)' },\n 60: { value: 'hsl(60, 50%, 50%)' },\n 80: { value: 'hsl(60, 95%, 30%)' },\n 90: { value: 'hsl(60, 100%, 20%)' },\n 100: { value: 'hsl(60, 100%, 15%)' },\n },\n green: {\n 10: { value: 'hsl(130, 60%, 95%)' },\n 20: { value: 'hsl(130, 60%, 90%)' },\n 40: { value: 'hsl(130, 44%, 63%)' },\n 60: { value: 'hsl(130, 43%, 46%)' },\n 80: { value: 'hsl(130, 33%, 37%)' },\n 90: { value: 'hsl(130, 27%, 29%)' },\n 100: { value: 'hsl(130, 22%, 23%)' },\n },\n teal: {\n 10: { value: 'hsl(190, 75%, 95%)' },\n 20: { value: 'hsl(190, 75%, 85%)' },\n 40: { value: 'hsl(190, 70%, 70%)' },\n 60: { value: 'hsl(190, 50%, 50%)' },\n 80: { value: 'hsl(190, 95%, 30%)' },\n 90: { value: 'hsl(190, 100%, 20%)' },\n 100: { value: 'hsl(190, 100%, 15%)' },\n },\n blue: {\n 10: { value: 'hsl(220, 95%, 95%)' },\n 20: { value: 'hsl(220, 85%, 85%)' },\n 40: { value: 'hsl(220, 70%, 70%)' },\n 60: { value: 'hsl(220, 50%, 50%)' },\n 80: { value: 'hsl(220, 95%, 30%)' },\n 90: { value: 'hsl(220, 100%, 20%)' },\n 100: { value: 'hsl(220, 100%, 15%)' },\n },\n purple: {\n 10: { value: 'hsl(300, 95%, 95%)' },\n 20: { value: 'hsl(300, 85%, 85%)' },\n 40: { value: 'hsl(300, 70%, 70%)' },\n 60: { value: 'hsl(300, 50%, 50%)' },\n 80: { value: 'hsl(300, 95%, 30%)' },\n 90: { value: 'hsl(300, 100%, 20%)' },\n 100: { value: 'hsl(300, 100%, 15%)' },\n },\n pink: {\n 10: { value: 'hsl(340, 95%, 95%)' },\n 20: { value: 'hsl(340, 90%, 85%)' },\n 40: { value: 'hsl(340, 70%, 70%)' },\n 60: { value: 'hsl(340, 50%, 50%)' },\n 80: { value: 'hsl(340, 95%, 30%)' },\n 90: { value: 'hsl(340, 100%, 20%)' },\n 100: { value: 'hsl(340, 100%, 15%)' },\n },\n neutral: {\n 10: { value: 'hsl(210, 5%, 98%)' },\n 20: { value: 'hsl(210, 5%, 94%)' },\n 40: { value: 'hsl(210, 5%, 87%)' },\n 60: { value: 'hsl(210, 10%, 58%)' },\n 80: { value: 'hsl(210, 10%, 40%)' },\n 90: { value: 'hsl(210, 25%, 25%)' },\n 100: { value: 'hsl(210, 50%, 10%)' },\n },\n primary: {\n 10: { value: '{colors.teal.10.value}' },\n 20: { value: '{colors.teal.20.value}' },\n 40: { value: '{colors.teal.40.value}' },\n 60: { value: '{colors.teal.60.value}' },\n 80: { value: '{colors.teal.80.value}' },\n 90: { value: '{colors.teal.90.value}' },\n 100: { value: '{colors.teal.100.value}' },\n },\n secondary: {\n 10: { value: '{colors.purple.10.value}' },\n 20: { value: '{colors.purple.20.value}' },\n 40: { value: '{colors.purple.40.value}' },\n 60: { value: '{colors.purple.60.value}' },\n 80: { value: '{colors.purple.80.value}' },\n 90: { value: '{colors.purple.90.value}' },\n 100: { value: '{colors.purple.100.value}' },\n },\n font: {\n primary: { value: '{colors.neutral.100.value}' },\n secondary: { value: '{colors.neutral.90.value}' },\n tertiary: { value: '{colors.neutral.80.value}' },\n disabled: { value: '{colors.neutral.60.value}' },\n inverse: { value: '{colors.white.value}' },\n interactive: { value: '{colors.primary.80.value}' },\n // Hover and Focus colors are intentionally different colors.\n // This allows users to distinguish between the current keyboard focus\n // and the location of their pointer\n hover: { value: '{colors.primary.90.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.primary.100.value}' },\n active: { value: '{colors.primary.100.value}' },\n info: { value: '{colors.blue.90.value}' },\n warning: { value: '{colors.orange.90.value}' },\n error: { value: '{colors.red.90.value}' },\n success: { value: '{colors.green.90.value}' },\n },\n background: {\n primary: { value: '{colors.white.value}' },\n secondary: { value: '{colors.neutral.10.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n quaternary: { value: '{colors.neutral.60.value}' },\n disabled: { value: '{colors.background.tertiary.value}' },\n info: { value: '{colors.blue.10.value}' },\n warning: { value: '{colors.orange.10.value}' },\n error: { value: '{colors.red.10.value}' },\n success: { value: '{colors.green.10.value}' },\n },\n border: {\n primary: { value: '{colors.neutral.60.value}' },\n secondary: { value: '{colors.neutral.40.value}' },\n tertiary: { value: '{colors.neutral.20.value}' },\n disabled: { value: '{colors.border.tertiary.value}' },\n pressed: { value: '{colors.primary.100.value}' },\n // Focus color is set to 100 to ensure enough contrast for accessibility\n focus: { value: '{colors.primary.100.value}' },\n error: { value: '{colors.red.80.value}' },\n info: { value: '{colors.blue.80.value}' },\n success: { value: '{colors.green.80.value}' },\n warning: { value: '{colors.orange.80.value}' },\n },\n shadow: {\n primary: { value: 'hsla(210, 50%, 10%, 0.25)' },\n secondary: { value: 'hsla(210, 50%, 10%, 0.15)' },\n tertiary: { value: 'hsla(210, 50%, 10%, 0.05)' },\n },\n overlay: {\n 5: { value: 'hsla(0, 0%, 0%, 0.05)' },\n 10: { value: 'hsla(0, 0%, 0%, 0.1)' },\n 20: { value: 'hsla(0, 0%, 0%, 0.2)' },\n 30: { value: 'hsla(0, 0%, 0%, 0.3)' },\n 40: { value: 'hsla(0, 0%, 0%, 0.4)' },\n 50: { value: 'hsla(0, 0%, 0%, 0.5)' },\n 60: { value: 'hsla(0, 0%, 0%, 0.6)' },\n 70: { value: 'hsla(0, 0%, 0%, 0.7)' },\n 80: { value: 'hsla(0, 0%, 0%, 0.8)' },\n 90: { value: 'hsla(0, 0%, 0%, 0.9)' },\n },\n black: { value: 'hsl(0, 0%, 0%)' },\n white: { value: 'hsl(0, 0%, 100%)' },\n transparent: { value: 'transparent' },\n};\n\nexport { colors };\n","const fontSizes = {\n xxxs: { value: '0.375rem' },\n xxs: { value: '0.5rem' },\n xs: { value: '0.75rem' },\n small: { value: '0.875rem' },\n medium: { value: '1rem' },\n large: { value: '1.25rem' },\n xl: { value: '1.5rem' },\n xxl: { value: '2rem' },\n xxxl: { value: '2.5rem' },\n xxxxl: { value: '3rem' },\n};\n\nexport { fontSizes };\n","const fontWeights = {\n hairline: { value: 100 },\n thin: { value: 200 },\n light: { value: 300 },\n normal: { value: 400 },\n medium: { value: 500 },\n semibold: { value: 600 },\n bold: { value: 700 },\n extrabold: { value: 800 },\n black: { value: 900 },\n};\n\nexport { fontWeights };\n","const opacities = {\n 0: { value: '0' },\n 10: { value: '0.1' },\n 20: { value: '0.2' },\n 30: { value: '0.3' },\n 40: { value: '0.4' },\n 50: { value: '0.5' },\n 60: { value: '0.6' },\n 70: { value: '0.7' },\n 80: { value: '0.8' },\n 90: { value: '0.9' },\n 100: { value: '1' },\n};\n\nexport { opacities };\n","const radii = {\n xs: { value: '0.125rem' },\n small: { value: '0.25rem' },\n medium: { value: '0.5rem' },\n large: { value: '1rem' },\n xl: { value: '2rem' },\n xxl: { value: '4rem' },\n xxxl: { value: '8rem' },\n};\n\nexport { radii };\n","const space = {\n zero: { value: '0' },\n xxxs: { value: '0.25rem' },\n xxs: { value: '0.375rem' },\n xs: { value: '0.5rem' },\n small: { value: '0.75rem' },\n medium: { value: '1rem' },\n large: { value: '1.5rem' },\n xl: { value: '2.0rem' },\n xxl: { value: '3.0rem' },\n xxxl: { value: '4.5rem' },\n relative: {\n //creating a second set of sizes using em which will be sized relative to a parent instead of the root\n xxxs: { value: '0.25em' },\n xxs: { value: '0.375em' },\n xs: { value: '0.5em' },\n small: { value: '0.75em' },\n medium: { value: '1em' },\n large: { value: '1.5em' },\n xl: { value: '2.0em' },\n xxl: { value: '3.0em' },\n xxxl: { value: '4.5em' },\n full: { value: '100%' },\n },\n};\n// I want to be able to pass in a Theme object that has extra tokens\n// and it returns that same object type WITH the extra tokens\n\nexport { space };\n","const time = {\n short: { value: '100ms' },\n medium: { value: '250ms' },\n long: { value: '500ms' },\n};\n\nexport { time };\n","import { tokens } from './tokens/index.mjs';\nimport { breakpoints } from './breakpoints.mjs';\n\nconst defaultTheme = {\n tokens,\n breakpoints,\n name: 'default-theme',\n};\n\nexport { defaultTheme };\n","import { borderWidths } from './borderWidths.mjs';\nimport { colors } from './colors.mjs';\nimport { components } from './components/index.mjs';\nimport { fonts } from './fonts.mjs';\nimport { fontSizes } from './fontSizes.mjs';\nimport { fontWeights } from './fontWeights.mjs';\nimport { lineHeights } from './lineHeights.mjs';\nimport { opacities } from './opacities.mjs';\nimport { outlineOffsets } from './outlineOffsets.mjs';\nimport { outlineWidths } from './outlineWidths.mjs';\nimport { radii } from './radii.mjs';\nimport { shadows } from './shadows.mjs';\nimport { space } from './space.mjs';\nimport { time } from './time.mjs';\nimport { transforms } from './transforms.mjs';\n\nconst tokens = {\n components,\n borderWidths,\n colors,\n fonts,\n fontSizes,\n fontWeights,\n lineHeights,\n opacities,\n outlineOffsets,\n outlineWidths,\n radii,\n shadows,\n space,\n time,\n transforms,\n};\nconst reactNativeTokens = {\n colors,\n borderWidths,\n fontSizes: {\n xxs: fontSizes.xxs,\n xs: fontSizes.xs,\n small: fontSizes.small,\n medium: fontSizes.medium,\n large: fontSizes.large,\n xl: fontSizes.xl,\n xxl: fontSizes.xxl,\n xxxl: fontSizes.xxxl,\n },\n fontWeights,\n opacities,\n // React Native doesn't need the relative space values\n space: {\n // use `space.xxxs` to output a value of `2` and avoid odd space numbers\n xxs: space.xxxs,\n xs: space.xs,\n small: space.small,\n medium: space.medium,\n large: space.large,\n xl: space.xl,\n xxl: space.xxl,\n xxxl: space.xxxl,\n },\n radii,\n time,\n};\n\nexport { reactNativeTokens, tokens };\n","import { alert } from './alert.mjs';\nimport { autocomplete } from './autocomplete.mjs';\nimport { authenticator } from './authenticator.mjs';\nimport { badge } from './badge.mjs';\nimport { breadcrumbs } from './breadcrumbs.mjs';\nimport { button } from './button.mjs';\nimport { card } from './card.mjs';\nimport { checkbox } from './checkbox.mjs';\nimport { checkboxfield } from './checkboxField.mjs';\nimport { collection } from './collection.mjs';\nimport { copy } from './copy.mjs';\nimport { dialcodeselect } from './dialCodeSelect.mjs';\nimport { divider } from './divider.mjs';\nimport { dropzone } from './dropZone.mjs';\nimport { accordion } from './accordion.mjs';\nimport { field } from './field.mjs';\nimport { fieldcontrol } from './fieldControl.mjs';\nimport { fieldgroup } from './fieldGroup.mjs';\nimport { fieldset } from './fieldset.mjs';\nimport { fieldmessages } from './fieldMessages.mjs';\nimport { flex } from './flex.mjs';\nimport { heading } from './heading.mjs';\nimport { highlightmatch } from './highlightMatch.mjs';\nimport { icon } from './icon.mjs';\nimport { input } from './input.mjs';\nimport { image } from './image.mjs';\nimport { inappmessaging } from './inAppMessaging.mjs';\nimport { link } from './link.mjs';\nimport { liveness } from './liveness.mjs';\nimport { loader } from './loader.mjs';\nimport { menu } from './menu.mjs';\nimport { message } from './message.mjs';\nimport { pagination } from './pagination.mjs';\nimport { passwordfield } from './passwordField.mjs';\nimport { phonenumberfield } from './phoneNumberField.mjs';\nimport { placeholder } from './placeholder.mjs';\nimport { radio } from './radio.mjs';\nimport { radiogroup } from './radioGroup.mjs';\nimport { rating } from './rating.mjs';\nimport { searchfield } from './searchField.mjs';\nimport { select } from './select.mjs';\nimport { selectfield } from './selectField.mjs';\nimport { sliderfield } from './sliderField.mjs';\nimport { stepperfield } from './stepperField.mjs';\nimport { storagemanager } from './storagemanager.mjs';\nimport { switchfield } from './switchField.mjs';\nimport { table } from './table.mjs';\nimport { tabs } from './tabs.mjs';\nimport { text } from './text.mjs';\nimport { textareafield } from './textAreaField.mjs';\nimport { textfield } from './textField.mjs';\nimport { togglebutton } from './toggleButton.mjs';\nimport { togglebuttongroup } from './toggleButtonGroup.mjs';\n\nconst components = {\n accordion,\n alert,\n authenticator,\n autocomplete,\n badge,\n breadcrumbs,\n button,\n card,\n checkbox,\n checkboxfield,\n collection,\n copy,\n countrycodeselect: dialcodeselect,\n divider,\n dropzone,\n field,\n fieldcontrol,\n fieldgroup,\n fieldmessages,\n fieldset,\n flex,\n heading,\n icon,\n highlightmatch,\n image,\n inappmessaging,\n input,\n link,\n liveness,\n loader,\n menu,\n message,\n pagination,\n passwordfield,\n phonenumberfield,\n placeholder,\n radio,\n radiogroup,\n rating,\n searchfield,\n select,\n selectfield,\n sliderfield,\n stepperfield,\n storagemanager,\n switchfield,\n table,\n tabs,\n text,\n textareafield,\n textfield,\n togglebutton,\n togglebuttongroup,\n};\n\nexport { components };\n","const accordion = {\n backgroundColor: { value: '{colors.background.primary.value}' },\n item: {\n borderColor: { value: '{colors.border.secondary.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '{radii.small.value}' },\n trigger: {\n alignItems: { value: 'center' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n color: { value: 'inherit' },\n gap: { value: '{space.small.value}' },\n justifyContent: { value: 'space-between' },\n paddingBlock: { value: '{space.xs.value}' },\n paddingInline: { value: '{space.small.value}' },\n _hover: {\n color: { value: 'inherit' },\n backgroundColor: { value: '{colors.overlay.5.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0',\n offsetY: '0',\n blurRadius: '0',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n },\n content: {\n color: { value: 'inherit' },\n paddingInline: { value: '{space.small.value}' },\n paddingBlockEnd: { value: '{space.small.value}' },\n paddingBlockStart: { value: '{space.xxxs.value}' },\n },\n icon: {\n color: { value: '{colors.font.tertiary.value}' },\n transitionDuration: { value: '{time.medium.value}' },\n transitionTimingFunction: { value: 'cubic-bezier(0.87, 0, 0.13, 1)' },\n },\n },\n};\n\nexport { accordion };\n","const alert = {\n // Default styles\n alignItems: { value: 'center' },\n justifyContent: { value: 'space-between' },\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n paddingBlock: { value: '{space.small.value}' },\n paddingInline: { value: '{space.medium.value}' },\n icon: {\n size: { value: '{fontSizes.xl.value}' },\n },\n heading: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n};\n\nexport { alert };\n","const authenticator = {\n maxWidth: { value: '60rem' },\n modal: {\n width: { value: '{space.relative.full}' },\n height: { value: '{space.relative.full}' },\n backgroundColor: { value: '{colors.overlay.50.value}' },\n top: { value: '{space.zero}' },\n left: { value: '{space.zero}' },\n },\n container: {\n widthMax: { value: '30rem' },\n },\n router: {\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n boxShadow: { value: '{shadows.medium.value}' },\n },\n footer: {\n paddingBottom: { value: '{space.medium.value}' },\n },\n form: {\n padding: { value: '{space.xl.value}' },\n },\n state: {\n inactive: {\n backgroundColor: { value: '{colors.background.secondary.value}' },\n },\n },\n orContainer: {\n color: { value: '{colors.neutral.80.value}' },\n orLine: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n },\n};\n\nexport { authenticator };\n","const autocomplete = {\n menu: {\n width: { value: '100%' },\n marginBlockStart: { value: '{space.xxxs}' },\n backgroundColor: { value: '{colors.background.primary}' },\n borderColor: { value: '{colors.border.primary}' },\n borderWidth: { value: '{borderWidths.small}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '{radii.small}' },\n options: {\n display: { value: 'flex' },\n flexDirection: { value: 'column' },\n maxHeight: { value: '300px' },\n },\n option: {\n backgroundColor: { value: '{colors.background.primary}' },\n color: { value: 'currentcolor' },\n cursor: { value: 'pointer' },\n transitionDuration: { value: '{time.short}' },\n transitionProperty: { value: 'background-color, color' },\n transitionTimingFunction: { value: 'ease' },\n _active: {\n backgroundColor: { value: '{colors.primary.80}' },\n color: { value: '{colors.white}' },\n },\n },\n _empty: {\n display: { value: 'flex' },\n },\n _loading: {\n alignItems: { value: 'center' },\n display: { value: 'flex' },\n gap: { value: '{space.xxxs}' },\n },\n spaceShared: {\n paddingBlock: { value: '{space.xs}' },\n paddingInline: { value: '{space.small}' },\n },\n },\n};\n\nexport { autocomplete };\n","const badge = {\n // Default styles\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: 1 },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n textAlign: { value: 'center' },\n paddingVertical: { value: '{space.xs.value}' },\n paddingHorizontal: { value: '{space.small.value}' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n // An arbitrarily large value to ensure that the left and right sides of the badge are perfectly rounded for any size variation\n borderRadius: { value: '{radii.xl.value}' },\n // Variations\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n // Sizes\n small: {\n fontSize: { value: '{fontSizes.xs.value}' },\n paddingVertical: { value: '{space.xxs.value}' },\n paddingHorizontal: { value: '{space.xs.value}' },\n },\n // medium is the default size\n large: {\n fontSize: { value: '{fontSizes.medium.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n },\n};\n\nexport { badge };\n","const breadcrumbs = {\n flexDirection: { value: 'row' },\n flexWrap: { value: 'wrap' },\n gap: { value: '0' },\n color: { value: '{colors.font.tertiary}' },\n item: {\n flexDirection: { value: 'row' },\n color: { value: 'inherit' },\n fontSize: { value: 'inherit' },\n alignItems: { value: 'center' },\n lineHeight: { value: '1' },\n },\n separator: {\n color: { value: 'inherit' },\n fontSize: { value: 'inherit' },\n paddingInline: { value: '{space.xxs}' },\n },\n link: {\n color: { value: '{components.link.color}' },\n fontSize: { value: 'inherit' },\n fontWeight: { value: 'normal' },\n textDecoration: { value: 'none' },\n paddingInline: { value: '{space.xs}' },\n paddingBlock: { value: '{space.xxs}' },\n current: {\n color: { value: 'inherit' },\n fontSize: { value: 'inherit' },\n fontWeight: { value: 'normal' },\n textDecoration: { value: 'none' },\n },\n },\n};\n\nexport { breadcrumbs };\n","const button = {\n // shared styles\n fontWeight: { value: '{fontWeights.bold.value}' },\n transitionDuration: {\n value: '{components.fieldcontrol.transitionDuration.value}',\n },\n fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n lineHeight: { value: '{components.fieldcontrol.lineHeight.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.paddingInlineEnd.value}',\n },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n borderWidth: { value: '{components.fieldcontrol.borderWidth.value}' },\n borderStyle: { value: '{components.fieldcontrol.borderStyle.value}' },\n borderRadius: { value: '{components.fieldcontrol.borderRadius.value}' },\n color: { value: '{colors.font.primary.value}' },\n _hover: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.primary.10.value}' },\n borderColor: { value: '{colors.primary.60.value}' },\n },\n _focus: {\n color: { value: '{colors.font.focus.value}' },\n backgroundColor: { value: '{colors.primary.10.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n color: { value: '{colors.font.active.value}' },\n backgroundColor: { value: '{colors.primary.20.value}' },\n borderColor: { value: '{colors.primary.100.value}' },\n },\n _loading: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n },\n // variations\n outlined: {\n info: {\n borderColor: { value: '{colors.blue.60.value}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.blue.100}' },\n _hover: {\n borderColor: { value: '{colors.blue.60.value}' },\n backgroundColor: { value: '{colors.blue.10.value}' },\n color: { value: '{colors.blue.100.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.blue.100.value}' },\n backgroundColor: { value: '{colors.blue.10.value}' },\n color: { value: '{colors.blue.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: '{colors.blue.100.value}' },\n backgroundColor: { value: '{colors.blue.20.value}' },\n color: { value: '{colors.blue.100.value}' },\n },\n },\n warning: {\n borderColor: { value: '{colors.orange.60.value}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.orange.100}' },\n _hover: {\n borderColor: { value: '{colors.orange.60.value}' },\n backgroundColor: { value: '{colors.orange.10.value}' },\n color: { value: '{colors.orange.100.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.orange.100.value}' },\n backgroundColor: { value: '{colors.orange.10.value}' },\n color: { value: '{colors.orange.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.warning._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: '{colors.orange.100.value}' },\n backgroundColor: { value: '{colors.orange.20.value}' },\n color: { value: '{colors.orange.100.value}' },\n },\n },\n success: {\n borderColor: { value: '{colors.green.60.value}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.green.100}' },\n _hover: {\n borderColor: { value: '{colors.green.60.value}' },\n backgroundColor: { value: '{colors.green.10.value}' },\n color: { value: '{colors.green.100.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.green.100.value}' },\n backgroundColor: { value: '{colors.green.10.value}' },\n color: { value: '{colors.green.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: '{colors.green.100.value}' },\n backgroundColor: { value: '{colors.green.20.value}' },\n color: { value: '{colors.green.100.value}' },\n },\n },\n error: {\n borderColor: { value: '{colors.red.80.value}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.red.100}' },\n _hover: {\n borderColor: { value: '{colors.red.80.value}' },\n backgroundColor: { value: '{colors.red.10.value}' },\n color: { value: '{colors.red.100.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.red.100.value}' },\n backgroundColor: { value: '{colors.red.10.value}' },\n color: { value: '{colors.red.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: '{colors.red.100.value}' },\n backgroundColor: { value: '{colors.red.20.value}' },\n color: { value: '{colors.red.100.value}' },\n },\n },\n overlay: {\n borderColor: { value: '{colors.overlay.60.value}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.primary.value}' },\n _hover: {\n borderColor: { value: '{colors.overlay.60.value}' },\n backgroundColor: { value: '{colors.overlay.5.value}' },\n color: { value: '{colors.neutral.90.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.overlay.90.value}' },\n backgroundColor: { value: '{colors.overlay.5.value}' },\n color: { value: '{colors.neutral.90.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: '{colors.overlay.90.value}' },\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.neutral.100.value}' },\n },\n },\n },\n primary: {\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n backgroundColor: { value: '{colors.primary.80.value}' },\n color: { value: '{colors.font.inverse.value}' },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n info: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.80}' },\n color: { value: '{colors.font.inverse.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n warning: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.80}' },\n color: { value: '{colors.font.inverse.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n error: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.80}' },\n color: { value: '{colors.font.inverse.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n success: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.80}' },\n color: { value: '{colors.font.inverse.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.100.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n overlay: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.70}' },\n color: { value: '{colors.font.inverse.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.90.value}' },\n color: { value: '{colors.font.inverse.value}' },\n },\n },\n },\n menu: {\n borderWidth: { value: '{space.zero.value}' },\n backgroundColor: { value: 'transparent' },\n justifyContent: { value: 'start' },\n // Focus and hover styles are identical for menu variation\n // because for Menu primitive, menu items are forced to be focused even\n // for mouse interactions, making it impossible to distinguish the two interactions\n _hover: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.primary.80.value}' },\n },\n _focus: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.primary.80.value}' },\n },\n _active: {\n color: { value: '{colors.font.inverse.value}' },\n backgroundColor: { value: '{colors.primary.90.value}' },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n link: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.interactive.value}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.10.value}' },\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.10.value}' },\n color: { value: '{colors.font.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.primary.20.value}' },\n color: { value: '{colors.font.active.value}' },\n },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled.value}' },\n },\n info: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.blue.100}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.10.value}' },\n color: { value: '{colors.blue.90.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.10.value}' },\n color: { value: '{colors.blue.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.info._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.blue.20.value}' },\n color: { value: '{colors.blue.100.value}' },\n },\n },\n warning: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.orange.100}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.10.value}' },\n color: { value: '{colors.orange.90.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.10.value}' },\n color: { value: '{colors.orange.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.warning._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.orange.20.value}' },\n color: { value: '{colors.orange.100.value}' },\n },\n },\n success: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.green.100}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.10.value}' },\n color: { value: '{colors.green.90.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.10.value}' },\n color: { value: '{colors.green.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.success._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.green.20.value}' },\n color: { value: '{colors.green.100.value}' },\n },\n },\n error: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.red.100}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.10.value}' },\n color: { value: '{colors.red.90.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.10.value}' },\n color: { value: '{colors.red.100.value}' },\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.20.value}' },\n color: { value: '{colors.red.100.value}' },\n },\n },\n overlay: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.neutral.100}' },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.5.value}' },\n color: { value: '{colors.overlay.80.value}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.5.value}' },\n color: { value: '{colors.overlay.90.value}' },\n boxShadow: {\n value: '{components.fieldcontrol.overlay._focus.boxShadow.value}',\n },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.overlay.90.value}' },\n },\n },\n },\n warning: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.red.60}' },\n borderWidth: { value: '{borderWidths.small}' },\n color: { value: '{colors.red.60}' },\n _hover: {\n borderColor: { value: '{colors.red.80}' },\n backgroundColor: { value: '{colors.red.10}' },\n color: { value: '{colors.font.error}' },\n },\n _focus: {\n borderColor: { value: '{colors.red.80}' },\n backgroundColor: { value: '{colors.red.10}' },\n color: { value: '{colors.red.80}' },\n boxShadow: { value: '{components.fieldcontrol._error._focus.boxShadow}' },\n },\n _active: {\n borderColor: { value: '{colors.red.100}' },\n backgroundColor: { value: '{colors.red.20}' },\n color: { value: '{colors.red.100}' },\n },\n _disabled: {\n borderColor: { value: '{colors.border.tertiary}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled}' },\n },\n _loading: {\n borderColor: { value: '{colors.border.tertiary}' },\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.disabled}' },\n },\n },\n destructive: {\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small}' },\n borderStyle: { value: 'solid' },\n backgroundColor: { value: '{colors.red.60}' },\n color: { value: '{colors.font.inverse}' },\n _disabled: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled}' },\n color: { value: '{colors.font.disabled}' },\n },\n _loading: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.background.disabled}' },\n color: { value: '{colors.font.disabled}' },\n },\n _hover: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.80}' },\n color: { value: '{colors.font.inverse}' },\n },\n _focus: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.80}' },\n color: { value: '{colors.font.inverse}' },\n boxShadow: { value: '{components.fieldcontrol._error._focus.boxShadow}' },\n },\n _active: {\n borderColor: { value: 'transparent' },\n backgroundColor: { value: '{colors.red.100}' },\n color: { value: '{colors.font.inverse}' },\n },\n },\n // sizes\n small: {\n fontSize: { value: '{components.fieldcontrol.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.small.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.small.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.small.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.small.paddingInlineEnd.value}',\n },\n },\n large: {\n fontSize: { value: '{components.fieldcontrol.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{components.fieldcontrol.large.paddingBlockStart.value}',\n },\n paddingBlockEnd: {\n value: '{components.fieldcontrol.large.paddingBlockEnd.value}',\n },\n paddingInlineStart: {\n value: '{components.fieldcontrol.large.paddingInlineStart.value}',\n },\n paddingInlineEnd: {\n value: '{components.fieldcontrol.large.paddingInlineEnd.value}',\n },\n },\n loaderWrapper: {\n alignItems: {\n value: 'center',\n },\n gap: {\n value: '{space.xs.value}',\n },\n },\n};\n\nexport { button };\n","const card = {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n padding: { value: '{space.medium.value}' },\n outlined: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n boxShadow: { value: '{components.card.boxShadow.value}' },\n },\n elevated: {\n backgroundColor: { value: '{components.card.backgroundColor.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n borderWidth: { value: '0' },\n borderStyle: { value: 'solid' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: '{shadows.medium.value}' },\n },\n};\n\nexport { card };\n","const checkbox = {\n cursor: { value: 'pointer' },\n alignItems: { value: 'center' },\n _disabled: {\n cursor: {\n value: 'not-allowed',\n },\n },\n button: {\n position: { value: 'relative' },\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.font.inverse.value}' },\n before: {\n width: { value: '100%' },\n height: { value: '100%' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderRadius: { value: '20%' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n },\n _focus: {\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n borderColor: { value: '{colors.border.error.value}' },\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n },\n },\n icon: {\n backgroundColor: { value: '{colors.primary.80.value}' },\n borderRadius: { value: '20%' },\n opacity: { value: '{opacities.0.value}' },\n transform: { value: 'scale(0)' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.short.value}' },\n transitionTimingFunction: { value: 'ease-in-out' },\n _checked: {\n opacity: { value: '{opacities.100.value}' },\n transform: { value: 'scale(1)' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n _indeterminate: {\n opacity: { value: '{opacities.100.value}' },\n transform: { value: 'scale(1)' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n },\n label: {\n color: { value: '{components.text.color.value}' },\n _disabled: {\n color: {\n value: '{colors.font.disabled.value}',\n },\n },\n },\n};\n\nexport { checkbox };\n","const checkboxfield = {\n alignItems: { value: 'flex-start' },\n alignContent: { value: 'center' },\n flexDirection: { value: 'column' },\n justifyContent: { value: 'center' },\n};\n\nexport { checkboxfield };\n","//we are reusing the types from the nested components but new tokens need to be created that reference the previous tokens so that they can inherit the needed values but can be overwritten and only effect the collection component.\n//only a subset of the design tokens of the nested components are being exposed, this can be expanded later.\nconst collection = {\n pagination: {\n current: {\n color: { value: '{components.pagination.current.color}' },\n backgroundColor: {\n value: '{components.pagination.current.backgroundColor}',\n },\n },\n button: {\n color: { value: '{components.pagination.button.color}' },\n _hover: {\n backgroundColor: {\n value: '{components.pagination.button.hover.backgroundColor}',\n },\n color: { value: '{components.pagination.button.hover.color}' },\n },\n _disabled: {\n color: { value: '{components.pagination.button.disabled.color}' },\n },\n },\n },\n search: {\n input: {\n color: { value: '{components.searchfield.color}' },\n },\n button: {\n color: { value: '{components.searchfield.button.color}' },\n _active: {\n backgroundColor: {\n value: '{components.searchfield.button._active.backgroundColor}',\n },\n borderColor: {\n value: '{components.searchfield.button._active.borderColor}',\n },\n color: { value: '{components.searchfield.button._active.color}' },\n },\n _disabled: {\n backgroundColor: {\n value: '{components.searchfield.button._disabled.backgroundColor}',\n },\n borderColor: {\n value: '{components.searchfield.button._disabled.borderColor}',\n },\n color: {\n value: '{components.searchfield.button._disabled.color}',\n },\n },\n _focus: {\n backgroundColor: {\n value: '{components.searchfield.button._focus.backgroundColor}',\n },\n borderColor: {\n value: '{components.searchfield.button._focus.borderColor}',\n },\n color: { value: '{components.searchfield.button._focus.color}' },\n },\n _hover: {\n backgroundColor: {\n value: '{components.searchfield.button._hover.backgroundColor}',\n },\n borderColor: {\n value: '{components.searchfield.button._hover.borderColor}',\n },\n color: { value: '{components.searchfield.button._hover.color}' },\n },\n },\n },\n};\n\nexport { collection };\n","const copy = {\n fontSize: { value: '{fontSizes.xs}' },\n gap: { value: '{space.relative.medium}' },\n svg: {\n path: {\n fill: {\n value: '{colors.font.primary}',\n },\n },\n },\n toolTip: {\n bottom: { value: '{space.large}' },\n color: { value: '{colors.teal.100}' },\n fontSize: { value: '{fontSizes.xxs}' },\n },\n};\n\nexport { copy };\n","const dialcodeselect = {\n height: {\n value: '{space.relative.full.value}',\n },\n};\n\nexport { dialcodeselect };\n","const divider = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n label: {\n color: { value: '{colors.font.tertiary.value}' },\n paddingInline: { value: '{space.medium.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n small: {\n borderWidth: { value: '{borderWidths.small.value}' },\n },\n large: {\n borderWidth: { value: '{borderWidths.large.value}' },\n },\n opacity: {\n value: '{opacities.60.value}',\n },\n};\n\nexport { divider };\n","const dropzone = {\n backgroundColor: { value: '{colors.background.primary}' },\n borderRadius: { value: '{radii.small}' },\n borderColor: { value: '{colors.border.primary}' },\n borderStyle: { value: 'dashed' },\n borderWidth: { value: '{borderWidths.small}' },\n color: { value: '{colors.font.primary}' },\n gap: { value: '{space.small}' },\n paddingBlock: { value: '{space.xl}' },\n paddingInline: { value: '{space.large}' },\n textAlign: { value: 'center' },\n _active: {\n backgroundColor: { value: '{colors.primary.10}' },\n borderRadius: { value: '{components.dropzone.borderRadius}' },\n borderColor: { value: '{colors.border.pressed}' },\n borderStyle: { value: '{components.dropzone.borderStyle}' },\n borderWidth: { value: '{components.dropzone.borderWidth}' },\n color: { value: '{colors.font.primary}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled}' },\n borderRadius: { value: '{components.dropzone.borderRadius}' },\n borderColor: { value: '{colors.border.disabled}' },\n borderStyle: { value: '{components.dropzone.borderStyle}' },\n borderWidth: { value: '{components.dropzone.borderWidth}' },\n color: { value: '{colors.font.disabled}' },\n },\n accepted: {\n backgroundColor: { value: '{colors.background.success}' },\n borderRadius: { value: '{components.dropzone.borderRadius}' },\n borderColor: { value: '{colors.border.success}' },\n borderStyle: { value: '{components.dropzone.borderStyle}' },\n borderWidth: { value: '{components.dropzone.borderWidth}' },\n color: { value: '{colors.font.success}' },\n },\n rejected: {\n backgroundColor: { value: '{colors.background.error}' },\n borderRadius: { value: '{components.dropzone.borderRadius}' },\n borderColor: { value: '{colors.border.pressed}' },\n borderStyle: { value: '{components.dropzone.borderStyle}' },\n borderWidth: { value: '{components.dropzone.borderWidth}' },\n color: { value: '{colors.font.error}' },\n },\n};\n\nexport { dropzone };\n","const field = {\n // default styles\n gap: { value: '{space.xs.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n flexDirection: { value: 'column' },\n // Adjust base fontSize and gap for small and large sizes\n small: {\n gap: { value: '{space.xxxs.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n large: {\n gap: { value: '{space.small.value}' },\n fontSize: { value: '{fontSizes.large.value}' },\n },\n label: {\n color: { value: '{colors.font.secondary.value}' },\n },\n};\n\nexport { field };\n","const fieldcontrol = {\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderRadius: { value: '{radii.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n fontSize: { value: '{components.field.fontSize.value}' },\n lineHeight: { value: '{lineHeights.medium.value}' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n small: {\n fontSize: { value: '{components.field.small.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xxs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xxs.value}',\n },\n paddingInlineStart: {\n value: '{space.small.value}',\n },\n paddingInlineEnd: {\n value: '{space.small.value}',\n },\n },\n large: {\n fontSize: { value: '{components.field.large.fontSize.value}' },\n paddingBlockStart: {\n value: '{space.xs.value}',\n },\n paddingBlockEnd: {\n value: '{space.xs.value}',\n },\n paddingInlineStart: {\n value: '{space.medium.value}',\n },\n paddingInlineEnd: {\n value: '{space.medium.value}',\n },\n },\n quiet: {\n borderStyle: { value: 'none' },\n borderInlineStart: { value: 'none' },\n borderInlineEnd: { value: 'none' },\n borderBlockStart: { value: 'none' },\n borderRadius: { value: '0' },\n _focus: {\n borderBlockEndColor: { value: 'transparent' },\n boxShadow: {\n value: '{components.fieldcontrol._focus.boxShadow.value}',\n },\n },\n _error: {\n borderBlockEndColor: { value: '{colors.border.error.value}' },\n _focus: {\n borderBlockEndColor: { value: 'transparent' },\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n },\n },\n _focus: {\n // These focus styles have been calibrated to create\n // a highly visible focus indicator per WCAG 2.2 guidlines:\n // See: https://www.w3.org/TR/WCAG22/#focus-appearance\n //\n // Key features:\n // * Focus indicator area is at least the 2 CSS px perimeter around the component.\n // * Contrast between focused and unfocused area of contrast has a ratio of 3:1\n //\n // IMPORTANT: Must recalibrate if `colors.border.focus` are changed\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.focus.value}',\n },\n },\n },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n cursor: { value: 'not-allowed' },\n borderColor: { value: '{colors.transparent.value}' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n color: { value: '{colors.font.error.value}' },\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.border.error.value}',\n },\n },\n },\n },\n info: {\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.blue.100.value}',\n },\n },\n },\n },\n warning: {\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.orange.100.value}',\n },\n },\n },\n },\n success: {\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.green.100.value}',\n },\n },\n },\n },\n overlay: {\n _focus: {\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '2px',\n color: '{colors.overlay.90.value}',\n },\n },\n },\n },\n};\n\nexport { fieldcontrol };\n","const fieldgroup = {\n gap: { value: '{space.zero.value}' },\n vertical: {\n alignItems: { value: 'center' },\n },\n outer: {\n alignItems: { value: 'center' },\n },\n};\n\nexport { fieldgroup };\n","const fieldmessages = {\n error: {\n color: { value: '{colors.font.error.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n description: {\n color: { value: '{colors.font.secondary.value}' },\n fontStyle: { value: 'italic' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n};\n\nexport { fieldmessages };\n","const fieldset = {\n backgroundColor: { value: 'transparent' },\n borderRadius: { value: '{radii.xs.value}' },\n flexDirection: {\n value: 'column',\n },\n gap: { value: '{components.field.gap.value}' },\n legend: {\n color: { value: '{colors.font.primary.value}' },\n fontSize: { value: '{components.field.fontSize.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n lineHeight: { value: '{lineHeights.medium.value}' },\n small: {\n fontSize: '{components.field.small.fontSize.value}',\n },\n large: {\n fontSize: '{components.field.large.fontSize.value}',\n },\n },\n outlined: {\n padding: '{space.medium.value}',\n borderColor: '{colors.neutral.40.value}',\n borderWidth: '{borderWidths.small.value}',\n borderStyle: 'solid',\n small: {\n padding: '{space.small.value}',\n },\n large: {\n padding: '{space.large.value}',\n },\n },\n small: {\n gap: '{components.field.small.gap.value}',\n },\n large: {\n gap: '{components.field.large.gap.value}',\n },\n};\n\nexport { fieldset };\n","const flex = {\n gap: { value: '{space.medium.value}' },\n justifyContent: { value: 'normal' },\n alignItems: { value: 'stretch' },\n alignContent: { value: 'normal' },\n flexWrap: { value: 'nowrap' },\n};\n\nexport { flex };\n","const heading = {\n color: { value: '{colors.font.primary.value}' },\n lineHeight: { value: '{lineHeights.small.value}' },\n 1: {\n fontSize: { value: '{fontSizes.xxxxl.value}' },\n fontWeight: { value: '{fontWeights.light.value}' },\n },\n 2: {\n fontSize: { value: '{fontSizes.xxxl.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n },\n 3: {\n fontSize: { value: '{fontSizes.xxl.value}' },\n fontWeight: { value: '{fontWeights.medium.value}' },\n },\n 4: {\n fontSize: { value: '{fontSizes.xl.value}' },\n fontWeight: { value: '{fontWeights.semibold.value}' },\n },\n 5: {\n fontSize: { value: '{fontSizes.large.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n 6: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.extrabold.value}' },\n },\n};\n\nexport { heading };\n","const icon = {\n lineHeight: { value: 1 },\n height: { value: '1em' }, // Should match height of parent container font-size\n};\n\nexport { icon };\n","const highlightmatch = {\n highlighted: {\n fontWeight: { value: '{fontWeights.bold}' },\n },\n};\n\nexport { highlightmatch };\n","const image = {\n maxWidth: { value: '100%' },\n height: { value: 'auto' },\n objectFit: { value: 'initial' },\n objectPosition: { value: 'initial' },\n};\n\nexport { image };\n","const inappmessaging = {\n banner: {\n height: { value: '150px ' },\n width: { value: '400px ' },\n },\n button: {\n backgroundColor: { value: '#e8e8e8' },\n borderRadius: { value: '5px' },\n color: { value: 'black' },\n },\n dialog: {\n height: { value: '50vh' },\n minHeight: { value: '400px' },\n minWidth: { value: '400px' },\n width: { value: '30vw' },\n },\n header: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.extrabold.value}' },\n },\n};\n\nexport { inappmessaging };\n","const input = {\n color: { value: '{components.fieldcontrol.color.value}' },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n _focus: {\n borderColor: {\n value: '{components.fieldcontrol._focus.borderColor.value}',\n },\n },\n};\n\nexport { input };\n","const link = {\n active: { color: { value: '{colors.font.active.value}' } },\n color: { value: '{colors.font.interactive.value}' },\n focus: { color: { value: '{colors.font.focus.value}' } },\n hover: { color: { value: '{colors.font.hover.value}' } },\n visited: { color: { value: '{colors.font.interactive.value}' } },\n};\n\nexport { link };\n","const liveness = {\n cameraModule: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n};\n\nexport { liveness };\n","const loader = {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n fontSize: { value: '{fontSizes.xs.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeFilled: { value: '{colors.primary.80.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n width: { value: '{fontSizes.small.value}' },\n height: { value: '{fontSizes.small.value}' },\n fontSize: { value: '{fontSizes.xxs.value}' },\n },\n large: {\n width: { value: '{fontSizes.large.value}' },\n height: { value: '{fontSizes.large.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n },\n linear: {\n width: { value: '100%' },\n minWidth: { value: '5rem' },\n fontSize: { value: '{fontSizes.xxs.value}' },\n strokeWidth: { value: '{fontSizes.xxs.value}' },\n strokeFilled: { value: '{colors.primary.80.value}' },\n strokeEmpty: { value: '{colors.neutral.20.value}' },\n strokeLinecap: { value: 'round' },\n animationDuration: { value: '1s' },\n small: {\n strokeWidth: { value: '{fontSizes.xxxs.value}' },\n fontSize: { value: '{fontSizes.xxxs.value}' },\n },\n large: {\n strokeWidth: { value: '{fontSizes.xs.value}' },\n fontSize: { value: '{fontSizes.xs.value}' },\n },\n },\n text: {\n fill: { value: '{colors.font.primary.value}' },\n },\n};\n\nexport { loader };\n","const menu = {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderRadius: { value: '{radii.medium.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderColor: { value: '{colors.border.primary.value}' },\n boxShadow: { value: '{shadows.large.value}' },\n flexDirection: { value: 'column' },\n gap: { value: '{space.zero.value}' },\n maxWidth: { value: '30rem' },\n minWidth: { value: '14rem' },\n small: {\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n },\n large: {\n width: { value: '{fontSizes.xxxl.value}' },\n height: { value: '{fontSizes.xxxl.value}' },\n },\n item: {\n minHeight: { value: '2.5rem' },\n paddingInlineStart: { value: '{space.medium.value}' },\n paddingInlineEnd: { value: '{space.medium.value}' },\n },\n};\n\nexport { menu };\n","const message = {\n // Default styles\n alignItems: { value: 'center' },\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n borderColor: { value: 'transparent' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderRadius: { value: '{radii.xs.value}' },\n color: { value: '{colors.font.primary.value}' },\n justifyContent: { value: 'flex-start' },\n paddingBlock: { value: '{space.small.value}' },\n paddingInline: { value: '{space.medium.value}' },\n lineHeight: { value: '{lineHeights.small.value}' },\n icon: {\n size: { value: '{fontSizes.xl.value}' },\n },\n heading: {\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n },\n dismiss: {\n gap: { value: '{space.xxs.value}' },\n },\n // Variations\n plain: {\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n },\n },\n outlined: {\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.primary.value}' },\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.info.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.error.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.success.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.warning.value}' },\n },\n },\n filled: {\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.background.secondary.value}' },\n borderColor: { value: 'transparent' },\n info: {\n color: { value: '{colors.font.info.value}' },\n backgroundColor: { value: '{colors.background.info.value}' },\n borderColor: { value: 'transparent' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n backgroundColor: { value: '{colors.background.error.value}' },\n borderColor: { value: 'transparent' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n backgroundColor: { value: '{colors.background.success.value}' },\n borderColor: { value: 'transparent' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n backgroundColor: { value: '{colors.background.warning.value}' },\n borderColor: { value: 'transparent' },\n },\n },\n};\n\nexport { message };\n","const pagination = {\n current: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n color: { value: '{colors.font.inverse.value}' },\n fontSize: { value: '{fontSizes.small.value}' },\n backgroundColor: { value: '{colors.overlay.40.value}' },\n },\n button: {\n color: { value: '{colors.font.primary.value}' },\n paddingInlineStart: { value: '{space.xxs.value}' },\n paddingInlineEnd: { value: '{space.xxs.value}' },\n transitionProperty: { value: 'background-color' },\n transitionDuration: { value: '{time.medium.value}' },\n hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n disabled: {\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n ellipsis: {\n alignItems: { value: 'baseline' },\n justifyContent: { value: 'center' },\n paddingInlineStart: { value: '{space.xs.value}' },\n paddingInlineEnd: { value: '{space.xs.value}' },\n },\n itemContainer: {\n marginLeft: { value: '{space.xxxs.value}' },\n marginRight: { value: '{space.xxxs.value}' },\n },\n itemShared: {\n height: { value: '{fontSizes.xxl.value}' },\n minWidth: { value: '{fontSizes.xxl.value}' },\n borderRadius: { value: '{fontSizes.medium.value}' },\n },\n};\n\nexport { pagination };\n","const passwordfield = {\n color: { value: '{components.fieldcontrol.color.value}' },\n button: {\n color: { value: '{components.button.color.value}' },\n _active: {\n backgroundColor: {\n value: '{components.button._active.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._active.borderColor.value}' },\n color: { value: '{components.button._active.color.value}' },\n },\n _disabled: {\n backgroundColor: {\n value: '{components.button._disabled.backgroundColor.value}',\n },\n borderColor: {\n value: '{components.button._disabled.borderColor.value}',\n },\n color: { value: '{components.button._disabled.color.value}' },\n },\n _error: {\n color: { value: '{components.button.outlined.error.color.value}' },\n backgroundColor: {\n value: '{components.button.outlined.error.backgroundColor.value}',\n },\n borderColor: {\n value: '{components.button.outlined.error.borderColor.value}',\n },\n _active: {\n borderColor: {\n value: '{components.button.outlined.error._active.borderColor.value}',\n },\n backgroundColor: {\n value: '{components.button.outlined.error._active.backgroundColor.value}',\n },\n color: {\n value: '{components.button.outlined.error._active.color.value}',\n },\n },\n _focus: {\n borderColor: {\n value: '{components.button.outlined.error._focus.borderColor.value}',\n },\n backgroundColor: {\n value: '{components.button.outlined.error._focus.backgroundColor.value}',\n },\n color: {\n value: '{components.button.outlined.error._focus.color.value}',\n },\n boxShadow: {\n value: '{components.button.outlined.error._focus.boxShadow.value}',\n },\n },\n _hover: {\n borderColor: {\n value: '{components.button.outlined.error._hover.borderColor.value}',\n },\n backgroundColor: {\n value: '{components.button.outlined.error._hover.backgroundColor.value}',\n },\n color: {\n value: '{components.button.outlined.error._hover.color.value}',\n },\n },\n },\n _focus: {\n backgroundColor: {\n value: '{components.button._focus.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._focus.borderColor.value}' },\n color: { value: '{components.button._focus.color.value}' },\n },\n _hover: {\n backgroundColor: {\n value: '{components.button._hover.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._hover.borderColor.value}' },\n color: { value: '{components.button._hover.color.value}' },\n },\n },\n};\n\nexport { passwordfield };\n","const phonenumberfield = {\n color: { value: '{components.fieldcontrol.color}' },\n borderColor: { value: '{components.fieldcontrol.borderColor}' },\n fontSize: { value: '{components.fieldcontrol.fontSize}' },\n _focus: {\n borderColor: { value: '{components.fieldcontrol._focus.borderColor}' },\n },\n};\n\nexport { phonenumberfield };\n","const placeholder = {\n borderRadius: { value: '{radii.small.value}' },\n transitionDuration: { value: '{time.long.value}' },\n startColor: { value: '{colors.background.secondary.value}' },\n endColor: { value: '{colors.background.tertiary.value}' },\n // sizes\n small: {\n height: { value: '{space.small.value}' },\n },\n default: {\n height: { value: '{space.medium.value}' },\n },\n large: {\n height: { value: '{space.large.value}' },\n },\n};\n\nexport { placeholder };\n","const radio = {\n alignItems: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n gap: { value: 'inherit' },\n _disabled: { cursor: { value: 'not-allowed' } },\n button: {\n alignItems: { value: 'center' },\n justifyContent: { value: 'center' },\n width: { value: '{fontSizes.medium.value}' },\n height: { value: '{fontSizes.medium.value}' },\n boxSizing: { value: 'border-box' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '50%' },\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.background.primary.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n transitionProperty: { value: 'all' },\n transitionDuration: { value: '{time.medium.value}' },\n outlineColor: { value: '{colors.transparent.value}' },\n outlineStyle: { value: 'solid' },\n outlineWidth: { value: '{outlineWidths.medium.value}' },\n outlineOffset: { value: '{outlineOffsets.medium.value}' },\n // We want the dot inside the border to be a border-width from the border\n padding: { value: '{borderWidths.medium.value}' },\n small: {\n width: { value: '{fontSizes.small.value}' },\n height: { value: '{fontSizes.small.value}' },\n },\n large: {\n width: { value: '{fontSizes.large.value}' },\n height: { value: '{fontSizes.large.value}' },\n },\n _checked: {\n color: {\n value: '{colors.primary.80.value}',\n },\n _disabled: { color: { value: '{colors.background.disabled.value}' } },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n _error: {\n borderColor: { value: '{colors.border.error.value}' },\n _focus: {\n boxShadow: {\n value: '{components.fieldcontrol._error._focus.boxShadow.value}',\n },\n },\n },\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n },\n },\n label: {\n color: { value: '{components.text.color.value}' },\n _disabled: {\n color: {\n value: '{colors.font.disabled.value}',\n },\n },\n },\n};\n\nexport { radio };\n","const radiogroup = {\n radio: {\n borderWidth: { value: '{components.radio.button.borderWidth}' },\n borderColor: { value: '{components.radio.button.borderColor}' },\n backgroundColor: { value: '{components.radio.button.backgroundColor}' },\n _checked: {\n color: { value: '{components.radio.button._checked.color}' },\n },\n label: {\n color: { value: '{components.radio.label.color}' },\n },\n },\n legend: {\n color: { value: '{components.fieldset.legend.color}' },\n fontWeight: { value: '{fontWeights.normal}' },\n },\n};\n\nexport { radiogroup };\n","const rating = {\n large: { size: { value: '{fontSizes.xxxl.value}' } },\n default: { size: { value: '{fontSizes.xl.value}' } },\n small: { size: { value: '{fontSizes.small.value}' } },\n filled: { color: { value: '{colors.secondary.80.value}' } },\n empty: { color: { value: '{colors.background.tertiary.value}' } },\n};\n\nexport { rating };\n","const searchfield = {\n color: { value: '{components.fieldcontrol.color.value}' },\n button: {\n color: { value: '{components.button.color.value}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n _active: {\n backgroundColor: {\n value: '{components.button._active.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._active.borderColor.value}' },\n color: { value: '{components.button._active.color.value}' },\n },\n _disabled: {\n backgroundColor: {\n value: '{components.button._disabled.backgroundColor.value}',\n },\n borderColor: {\n value: '{components.button._disabled.borderColor.value}',\n },\n color: { value: '{components.button._disabled.color.value}' },\n },\n _focus: {\n backgroundColor: {\n value: '{components.button._focus.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._focus.borderColor.value}' },\n color: { value: '{components.button._focus.color.value}' },\n },\n _hover: {\n backgroundColor: {\n value: '{components.button._hover.backgroundColor.value}',\n },\n borderColor: { value: '{components.button._hover.borderColor.value}' },\n color: { value: '{components.button._hover.color.value}' },\n },\n },\n};\n\nexport { searchfield };\n","const select = {\n color: { value: '{components.fieldcontrol.color}' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n paddingInlineEnd: { value: '{space.xxl.value}' },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n // wrappers\n wrapper: {\n flex: { value: '1' },\n display: { value: 'block' },\n position: { value: 'relative' },\n cursor: { value: 'pointer' },\n },\n iconWrapper: {\n alignItems: { value: 'center' },\n position: { value: 'absolute' },\n top: { value: '50%' },\n right: { value: '{space.medium.value}' },\n transform: { value: 'translateY(-50%)' },\n pointerEvents: { value: 'none' },\n small: {\n right: { value: '{space.xs.value}' },\n },\n large: {\n right: { value: '{space.medium.value}' },\n },\n },\n // It's important to test these option values on Chrome/FireFox/Edge\n // on Windows because they allow styling of the option element.\n // Chrome/Safari/Firefox on Mac uses the system ui.\n option: {\n backgroundColor: { value: 'transparent' },\n color: { value: '{colors.font.primary.value}' },\n _disabled: {\n color: { value: '{colors.font.disabled.value}' },\n backgroundColor: {\n value: 'transparent',\n },\n },\n },\n whiteSpace: { value: 'nowrap' },\n minWidth: { value: '6.5rem' },\n small: {\n minWidth: { value: '5.5rem' },\n paddingInlineEnd: { value: '{space.xl.value}' },\n },\n large: {\n minWidth: { value: '7.5rem' },\n paddingInlineEnd: { value: '{space.xxl.value}' },\n },\n expanded: {\n paddingBlock: { value: '{space.xs.value}' },\n paddingInline: { value: '{space.small.value}' },\n option: {\n paddingBlock: { value: '{space.xs.value}' },\n paddingInline: { value: '{space.small.value}' },\n },\n },\n};\n\nexport { select };\n","const selectfield = {\n borderColor: { value: '{components.fieldcontrol.borderColor}' },\n color: { value: '{components.fieldcontrol.color}' },\n flexDirection: {\n value: 'column',\n },\n fontSize: { value: '{components.fieldcontrol.fontSize}' },\n _focus: {\n borderColor: { value: '{components.fieldcontrol._focus.borderColor}' },\n },\n label: {\n color: { value: '{components.field.label.color}' },\n },\n};\n\nexport { selectfield };\n","const sliderfield = {\n paddingBlock: { value: '{space.xs.value}' },\n // The track is the thin background of the slider\n track: {\n backgroundColor: { value: '{colors.background.quaternary.value}' },\n borderRadius: { value: '9999px' },\n height: { value: '0.375rem' },\n minWidth: { value: '10rem' },\n },\n // The range is the filled part of the track\n range: {\n backgroundColor: { value: '{colors.primary.80.value}' },\n borderRadius: { value: '9999px' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n },\n },\n // The thumb is the circle above the track that the user drags\n thumb: {\n width: { value: '1.25rem' },\n height: { value: '1.25rem' },\n backgroundColor: { value: '{colors.background.primary.value}' },\n boxShadow: { value: '{shadows.small.value}' },\n borderRadius: { value: '50%' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n borderColor: { value: '{colors.border.primary.value}' },\n borderStyle: { value: 'solid' },\n _disabled: {\n backgroundColor: { value: '{colors.background.disabled.value}' },\n borderColor: { value: 'transparent' },\n boxShadow: { value: 'none' },\n },\n _hover: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: '{colors.border.focus.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n },\n },\n small: {\n track: {\n height: { value: '0.25rem' },\n },\n thumb: {\n width: { value: '1rem' },\n height: { value: '1rem' },\n },\n },\n large: {\n track: {\n height: { value: '0.625rem' },\n },\n thumb: {\n width: { value: '1.5rem' },\n height: { value: '1.5rem' },\n },\n },\n};\n\nexport { sliderfield };\n","const stepperfield = {\n borderColor: { value: '{components.fieldcontrol.borderColor}' },\n flexDirection: { value: 'column' },\n input: {\n color: { value: '{components.fieldcontrol.color}' },\n fontSize: { value: '{components.fieldcontrol.fontSize}' },\n textAlign: { value: 'center' },\n },\n button: {\n color: { value: '{components.button.color}' },\n backgroundColor: { value: '{colors.transparent}' },\n _active: {\n color: { value: '{components.button._active.color}' },\n backgroundColor: { value: '{components.button._active.backgroundColor}' },\n },\n _focus: {\n color: { value: '{components.button._focus.color}' },\n backgroundColor: { value: '{components.button._focus.backgroundColor}' },\n },\n _disabled: {\n color: { value: '{components.button._disabled.color}' },\n backgroundColor: {\n value: '{components.fieldcontrol._disabled.backgroundColor}',\n },\n },\n _hover: {\n color: { value: '{components.button._hover.color}' },\n backgroundColor: { value: '{components.button._hover.backgroundColor}' },\n },\n },\n};\n\nexport { stepperfield };\n","const storagemanager = {\n dropzone: {\n backgroundColor: { value: '{colors.background.primary}' },\n borderRadius: { value: '{radii.small}' },\n borderColor: { value: '{colors.border.primary}' },\n borderStyle: { value: 'dashed' },\n borderWidth: { value: '{borderWidths.small}' },\n gap: { value: '{space.small}' },\n paddingBlock: { value: '{space.xl}' },\n paddingInline: { value: '{space.large}' },\n textAlign: { value: 'center' },\n _active: {\n backgroundColor: { value: '{colors.primary.10}' },\n borderRadius: {\n value: '{components.storagemanager.dropzone.borderRadius}',\n },\n borderColor: { value: '{colors.border.pressed}' },\n borderStyle: {\n value: '{components.storagemanager.dropzone.borderStyle}',\n },\n borderWidth: { value: '{borderWidths.medium}' },\n },\n icon: {\n color: { value: '{colors.border.primary}' },\n fontSize: { value: '{fontSizes.xxl}' },\n },\n text: {\n color: { value: '{colors.font.tertiary}' },\n fontSize: { value: '{fontSizes.medium}' },\n fontWeight: { value: '{fontWeights.bold}' },\n },\n },\n file: {\n backgroundColor: { value: '{colors.background.primary}' },\n borderRadius: { value: '{radii.small}' },\n borderColor: { value: '{colors.border.primary}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small}' },\n paddingBlock: { value: '{space.xs}' },\n paddingInline: { value: '{space.small}' },\n gap: { value: '{space.small}' },\n alignItems: { value: 'baseline' },\n name: {\n fontSize: { value: '{fontSizes.medium}' },\n fontWeight: { value: '{fontWeights.bold}' },\n color: { value: '{colors.font.primary}' },\n },\n size: {\n fontSize: { value: '{fontSizes.small}' },\n fontWeight: { value: '{fontWeights.normal}' },\n color: { value: '{colors.font.tertiary}' },\n },\n image: {\n width: { value: '{space.xxl}' },\n height: { value: '{space.xxl}' },\n backgroundColor: { value: '{colors.background.secondary}' },\n color: { value: '{colors.font.tertiary}' },\n borderRadius: { value: '{radii.small}' },\n },\n },\n filelist: {\n flexDirection: { value: 'column' },\n gap: { value: '{space.small}' },\n },\n loader: {\n strokeLinecap: { value: 'round' },\n strokeEmpty: { value: '{colors.border.secondary}' },\n strokeFilled: { value: '{components.loader.strokeFilled}' },\n strokeWidth: { value: '{borderWidths.large}' },\n },\n previewer: {\n backgroundColor: { value: '{colors.background.primary}' },\n borderColor: { value: '{colors.border.primary}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small}' },\n borderRadius: { value: '{radii.small}' },\n paddingBlock: { value: '{space.zero}' },\n paddingInline: { value: '{space.zero}' },\n maxHeight: { value: '40rem' },\n maxWidth: { value: 'auto' },\n text: {\n fontSize: { value: '{fontSizes.medium}' },\n fontWeight: { value: '{fontWeights.bold}' },\n color: { value: '{colors.font.primary}' },\n },\n body: {\n paddingBlock: { value: '{space.medium}' },\n paddingInline: { value: '{space.medium}' },\n gap: { value: '{space.small}' },\n },\n footer: {\n justifyContent: { value: 'flex-end' },\n },\n },\n};\n\nexport { storagemanager };\n","const switchfield = {\n // States\n _disabled: {\n opacity: { value: '{opacities.60.value}' },\n },\n _focused: {\n shadow: {\n value: '{components.fieldcontrol._focus.boxShadow.value}',\n },\n },\n // Sizes\n fontSize: { value: '{fontSizes.medium.value}' },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n // Child elements\n label: {\n padding: { value: '{space.xs.value}' },\n },\n thumb: {\n backgroundColor: { value: '{colors.background.primary.value}' },\n borderColor: { value: 'transparent' },\n borderWidth: { value: '{borderWidths.small.value}' },\n borderStyle: { value: 'solid' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n transform: { value: '{transforms.slideX.medium.value}' },\n },\n transition: {\n duration: { value: '{time.medium.value}' },\n },\n width: { value: '{space.relative.medium.value}' },\n },\n track: {\n backgroundColor: { value: '{colors.background.quaternary.value}' },\n borderRadius: { value: '{radii.xxxl.value}' },\n checked: {\n backgroundColor: { value: '{colors.primary.80.value}' },\n },\n height: { value: '{space.relative.medium.value}' },\n padding: { value: '{outlineWidths.medium.value}' },\n transition: {\n duration: { value: '{time.short.value}' },\n },\n width: { value: '{space.relative.xl.value}' },\n _error: {\n backgroundColor: { value: '{colors.background.error.value}' },\n },\n },\n};\n\nexport { switchfield };\n","const table = {\n /**\n * Default table styles\n */\n borderCollapse: { value: 'collapse' },\n display: { value: 'table' },\n width: { value: '100%' },\n /**\n * Default table head styles\n */\n head: {\n display: { value: 'table-header-group' },\n verticalAlign: { value: 'middle' },\n },\n /**\n * Default table body styles\n */\n body: {\n display: { value: 'table-row-group' },\n verticalAlign: { value: 'middle' },\n },\n /**\n * Default table foot styles\n */\n foot: {\n display: { value: 'table-footer-group' },\n verticalAlign: { value: 'middle' },\n },\n /**\n * Default table row styles\n */\n row: {\n display: { value: 'table-row' },\n verticalAlign: { value: 'middle' },\n hover: {\n backgroundColor: { value: '{colors.background.tertiary.value}' },\n },\n striped: {\n backgroundColor: { value: '{colors.background.secondary.value}' },\n },\n },\n /**\n * Default table header cell styles\n */\n header: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n /**\n * Default table data cell styles\n */\n data: {\n borderColor: { value: '{colors.border.tertiary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.small.value}' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-cell' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.normal.value}' },\n padding: { value: '{space.medium.value}' },\n verticalAlign: { value: 'middle' },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n padding: { value: '{space.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n padding: { value: '{space.xs.value}' },\n },\n },\n /**\n * Default table caption styles\n */\n caption: {\n captionSide: { value: 'bottom' },\n color: { value: '{colors.font.primary.value}' },\n display: { value: 'table-caption' },\n fontSize: { value: '{fontSizes.medium.value}' },\n textAlign: { value: 'center' },\n wordBreak: { value: 'break-all' },\n large: {\n fontSize: { value: '{fontSizes.large.value}' },\n },\n small: {\n fontSize: { value: '{fontSizes.small.value}' },\n },\n },\n};\n\nexport { table };\n","const tabs = {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n gap: { value: '0' },\n item: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.secondary.value}' },\n borderStyle: { value: 'solid' },\n borderWidth: { value: '{borderWidths.medium.value}' },\n color: { value: '{colors.font.secondary.value}' },\n fontSize: { value: '{fontSizes.medium.value}' },\n fontWeight: { value: '{fontWeights.bold.value}' },\n paddingVertical: { value: '{space.small.value}' },\n paddingHorizontal: { value: '{space.medium.value}' },\n textAlign: { value: 'center' },\n transitionDuration: { value: '{time.medium.value}' },\n _hover: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: { value: 'none' },\n color: { value: '{colors.font.hover.value}' },\n },\n _focus: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.focus.value}' },\n boxShadow: {\n value: {\n offsetX: '0px',\n offsetY: '0px',\n blurRadius: '0px',\n spreadRadius: '{borderWidths.medium}',\n color: '{colors.border.focus.value}',\n },\n },\n color: { value: '{colors.font.focus.value}' },\n },\n _active: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.font.interactive.value}' },\n boxShadow: { value: 'none' },\n color: { value: '{colors.font.interactive.value}' },\n },\n _disabled: {\n backgroundColor: { value: 'transparent' },\n borderColor: { value: '{colors.border.tertiary.value}' },\n boxShadow: { value: 'none' },\n color: { value: '{colors.font.disabled.value}' },\n },\n },\n panel: {\n backgroundColor: { value: 'transparent' },\n paddingInline: { value: '0' },\n paddingBlock: { value: '{space.small.value}' },\n },\n};\n\nexport { tabs };\n","const text = {\n // default styles\n color: { value: '{colors.font.primary.value}' },\n // variations\n primary: {\n color: { value: '{colors.font.primary.value}' },\n },\n secondary: {\n color: { value: '{colors.font.secondary.value}' },\n },\n tertiary: {\n color: { value: '{colors.font.tertiary.value}' },\n },\n error: {\n color: { value: '{colors.font.error.value}' },\n },\n warning: {\n color: { value: '{colors.font.warning.value}' },\n },\n success: {\n color: { value: '{colors.font.success.value}' },\n },\n info: {\n color: { value: '{colors.font.info.value}' },\n },\n};\n\nexport { text };\n","const textareafield = {\n color: { value: '{components.fieldcontrol.color.value}' },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n _focus: {\n borderColor: {\n value: '{components.fieldcontrol._focus.borderColor.value}',\n },\n },\n};\n\nexport { textareafield };\n","const textfield = {\n color: { value: '{components.fieldcontrol.color.value}' },\n borderColor: { value: '{components.fieldcontrol.borderColor.value}' },\n fontSize: { value: '{components.fieldcontrol.fontSize.value}' },\n _focus: {\n borderColor: {\n value: '{components.fieldcontrol._focus.borderColor.value}',\n },\n },\n};\n\nexport { textfield };\n","const togglebutton = {\n borderColor: { value: '{colors.border.primary.value}' },\n color: { value: '{colors.font.primary.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n _active: {\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderColor: { value: '{colors.border.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n borderColor: { value: '{colors.border.pressed.value}' },\n color: { value: '{colors.font.primary.value}' },\n backgroundColor: { value: '{colors.overlay.20.value}' },\n _hover: {\n backgroundColor: { value: '{colors.overlay.30.value}' },\n },\n },\n primary: {\n backgroundColor: { value: '{colors.transparent.value}' },\n borderWidth: { value: '{borderWidths.small.value}' },\n _focus: {\n borderColor: { value: '{colors.border.focus.value}' },\n backgroundColor: { value: '{colors.transparent.value}' },\n boxShadow: { value: '{components.fieldcontrol._focus.boxShadow.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n _hover: {\n backgroundColor: { value: '{colors.overlay.10.value}' },\n color: { value: '{colors.font.primary.value}' },\n },\n _disabled: {\n borderColor: { value: '{colors.border.disabled.value}' },\n backgroundColor: { value: '{colors.background.disabled.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.primary.80.value}' },\n borderColor: { value: '{colors.primary.80.value}' },\n color: { value: '{colors.background.primary.value}' },\n _focus: {\n backgroundColor: {\n value: '{colors.border.focus.value}',\n },\n borderColor: { value: '{colors.border.focus.value}' },\n color: { value: '{colors.background.primary.value}' },\n },\n _hover: {\n borderColor: { value: '{colors.primary.60.value}' },\n backgroundColor: {\n value: '{colors.primary.60.value}',\n },\n boxShadow: { value: '{colors.primary.60.value}' },\n color: { value: '{colors.background.primary.value}' },\n },\n },\n },\n link: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n _hover: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _focus: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.50.value}' },\n },\n _disabled: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.font.disabled.value}' },\n },\n _pressed: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.90.value}' },\n _focus: {\n backgroundColor: { value: '{colors.transparent.value}' },\n color: { value: '{colors.overlay.90.value}' },\n },\n _hover: {\n color: { value: '{colors.overlay.90.value}' },\n backgroundColor: { value: '{colors.transparent.value}' },\n },\n },\n },\n};\n\nexport { togglebutton };\n","const togglebuttongroup = {\n alignItems: { value: 'center' },\n alignContent: { value: 'center' },\n justifyContent: { value: 'flex-start' },\n};\n\nexport { togglebuttongroup };\n","// TODO: update the design tokens to use an array\n// export interface FontDesignToken {\n// value: Array\n// }\nconst fonts = {\n default: {\n variable: {\n value: `'InterVariable', 'Inter var', 'Inter', -apple-system, BlinkMacSystemFont,\n 'Helvetica Neue', 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans',\n sans-serif`,\n },\n static: {\n value: `'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue',\n 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans', sans-serif`,\n },\n },\n};\n\nexport { fonts };\n","const lineHeights = {\n small: { value: '1.25' },\n medium: { value: '1.5' },\n large: { value: '2' },\n};\n\nexport { lineHeights };\n","const outlineOffsets = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n\nexport { outlineOffsets };\n","const outlineWidths = {\n small: { value: '1px' },\n medium: { value: '2px' },\n large: { value: '3px' },\n};\n\nexport { outlineWidths };\n","const shadows = {\n small: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '4px',\n color: '{colors.shadow.tertiary.value}',\n },\n },\n medium: {\n value: {\n offsetX: '0px',\n offsetY: '2px',\n blurRadius: '6px',\n color: '{colors.shadow.secondary.value}',\n },\n },\n large: {\n value: {\n offsetX: '0px',\n offsetY: '4px',\n blurRadius: '12px',\n color: '{colors.shadow.primary.value}',\n },\n },\n};\n\nexport { shadows };\n","const transforms = {\n // TODO: make this more generic and cross-platform\n slideX: {\n small: { value: 'translateX(0.5em)' },\n medium: { value: 'translateX(1em)' },\n large: { value: 'translateX(2em)' },\n },\n};\n\nexport { transforms };\n","// Breakpoint unit is in pixels\nconst breakpoints = {\n values: {\n base: 0,\n small: 480,\n medium: 768,\n large: 992,\n xl: 1280,\n xxl: 1536,\n },\n defaultBreakpoint: 'base',\n};\n\nexport { breakpoints };\n","// For internal use, no need to export\nconst ComponentText = {\n Alert: {\n dismissButtonLabel: 'Dismiss alert',\n },\n Autocomplete: {\n emptyText: 'No options found',\n loadingText: 'Loading options...',\n },\n Collection: {\n searchButtonLabel: 'Search',\n searchNoResultsFound: 'No results found',\n },\n Fields: {\n clearButtonLabel: 'Clear input',\n },\n Message: {\n dismissLabel: 'Dismiss message',\n },\n PaginationItem: {\n currentPageLabel: 'Page',\n nextLabel: 'Go to next page',\n pageLabel: 'Go to page',\n previousLabel: 'Go to previous page',\n },\n PhoneNumberField: {\n countryCodeLabel: 'Country code',\n },\n SearchField: {\n searchButtonLabel: 'Search',\n },\n PasswordField: {\n passwordIsHidden: 'Password is hidden',\n passwordIsShown: 'Password is shown',\n showPassword: 'Show password',\n },\n StepperField: {\n increaseButtonLabel: 'Increase to',\n decreaseButtonLabel: 'Decrease to',\n },\n};\nconst stylePropsToThemeKeys = {\n backgroundColor: 'colors',\n borderColor: 'colors',\n borderWidth: 'borderWidths',\n color: 'colors',\n borderRadius: 'radii',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n fontFamily: 'fonts',\n lineHeight: 'lineHeights',\n opacity: 'opacities',\n boxShadow: 'shadows',\n transform: 'transforms',\n left: 'space',\n right: 'space',\n top: 'space',\n bottom: 'space',\n height: 'space',\n width: 'space',\n letterSpacing: 'space',\n margin: 'space',\n marginBlock: 'space',\n marginBlockEnd: 'space',\n marginBlockStart: 'space',\n marginInline: 'space',\n marginInlineEnd: 'space',\n marginInlineStart: 'space',\n marginLeft: 'space',\n marginRight: 'space',\n marginTop: 'space',\n marginBottom: 'space',\n maxHeight: 'space',\n maxWidth: 'space',\n minHeight: 'space',\n minWidth: 'space',\n padding: 'space',\n paddingBlock: 'space',\n paddingBlockEnd: 'space',\n paddingBlockStart: 'space',\n paddingInline: 'space',\n paddingInlineEnd: 'space',\n paddingInlineStart: 'space',\n paddingLeft: 'space',\n paddingRight: 'space',\n paddingTop: 'space',\n paddingBottom: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n};\n// key name\nconst ESCAPE_KEY = 'Escape';\nconst ENTER_KEY = 'Enter';\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\n\nexport { ARROW_DOWN, ARROW_UP, ComponentText, ENTER_KEY, ESCAPE_KEY, stylePropsToThemeKeys };\n","import { isDesignToken, cssNameTransform } from '@aws-amplify/ui';\nexport { classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { isThemeStylePropKey } from '../types/theme.mjs';\nimport { stylePropsToThemeKeys } from './constants.mjs';\n\nconst strHasLength = (str) => typeof str === 'string' && str.length > 0;\nconst isEmptyString = (value) => typeof value === 'string' && value.length === 0;\nconst isNullOrEmptyString = (value) => value == null || isEmptyString(value);\n/**\n * Create a consecutive integer array from start value to end value.\n * @param start start value\n * @param end end value\n * @returns an integer array with elements from start to end consecutively\n */\nconst getConsecutiveIntArray = (start, end) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n};\n/**\n * TS helper function to make using Object.keys more typesafe\n */\nconst objectKeys = (obj) => {\n return Object.keys(obj);\n};\nconst getCSSVariableIfValueIsThemeKey = (propKey, value, tokens) => {\n if (typeof value !== 'string') {\n return value;\n }\n // For shorthand properties like `padding` which can accept 1, 2, 3, or 4 values\n // run this function on each value. This would not work on CSS shorthands that\n // mix types, like border which is a composite of borderWidth, borderStyle, and\n // borderColor.\n if (value.includes(' ')) {\n return value\n .split(' ')\n .map((val) => getCSSVariableIfValueIsThemeKey(propKey, val, tokens))\n .join(' ');\n }\n if (isThemeStylePropKey(propKey)) {\n const path = value.split('.');\n const tokenKey = stylePropsToThemeKeys[propKey];\n let tokenProps = tokens[tokenKey];\n for (let i = 0; i < path.length; i++) {\n if (tokenProps) {\n // overwrite tokenProps with next nested value of tokenProps\n tokenProps = tokenProps[path[i]];\n continue;\n }\n break;\n }\n return isDesignToken(tokenProps)\n ? `var(--${cssNameTransform({\n path: [stylePropsToThemeKeys[propKey], ...path],\n })})`\n : value;\n }\n return value;\n};\n\nexport { getCSSVariableIfValueIsThemeKey, getConsecutiveIntArray, isEmptyString, isNullOrEmptyString, objectKeys, strHasLength };\n","import { stylePropsToThemeKeys } from '../shared/constants.mjs';\n\nconst isThemeStylePropKey = (key) => {\n return key in stylePropsToThemeKeys;\n};\n\nexport { isThemeStylePropKey };\n","import { defaultTheme } from '@aws-amplify/ui';\nimport { objectKeys } from '../utils.mjs';\n\nconst getClosestValueByBreakpoint = ({ breakpoint, breakpoints, values, }) => {\n const value = values[breakpoint];\n // Check if breakpoint exists in values\n if (value !== undefined) {\n return value;\n }\n // Otherwise use a lower breakpoint value\n const breakpointsDesc = objectKeys(breakpoints).sort((a, b) => breakpoints[b] - breakpoints[a]);\n const lowerBreakpoints = breakpointsDesc.slice(breakpointsDesc.indexOf(breakpoint));\n for (const breakpoint of lowerBreakpoints) {\n // Check if breakpoint exists in values\n const value = values[breakpoint];\n if (value !== undefined) {\n return value;\n }\n }\n return null;\n};\n/**\n * This takes an object and will return an object that only has the\n * breakpoint keys\n * @param obj\n * @returns\n */\nconst valueObjToBreakpoints = (obj) => {\n return objectKeys(obj).reduce((acc, key) => key in defaultTheme.breakpoints.values\n ? { ...acc, [key]: obj[key] }\n : acc, {});\n};\nconst getValueAtCurrentBreakpoint = ({ breakpoint, breakpoints, values, }) => {\n let breakpointCompatValues = {};\n const breakpointsAscending = objectKeys(breakpoints).sort((a, b) => breakpoints[a] - breakpoints[b]);\n if (Array.isArray(values)) {\n values.forEach((value, index) => {\n breakpointCompatValues[breakpointsAscending[index]] = value;\n });\n }\n else if (typeof values === 'object') {\n breakpointCompatValues = valueObjToBreakpoints(values);\n }\n return getClosestValueByBreakpoint({\n breakpoint,\n breakpoints,\n values: breakpointCompatValues,\n });\n};\n\nexport { getValueAtCurrentBreakpoint };\n","import * as React from 'react';\nimport { getMediaQueries } from './getMediaQueries.mjs';\n\n// Inspiration for getMediaQueries and useBreakpoint\nconst useIsomorphicEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\nconst useBreakpoint = ({ breakpoints, defaultBreakpoint, }) => {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const matchMedia = supportMatchMedia ? window.matchMedia : null;\n const mediaQueries = React.useMemo(() => getMediaQueries({ breakpoints }), [breakpoints]);\n const [breakpoint, setBreakpoint] = React.useState(defaultBreakpoint);\n const updateBreakpoint = React.useCallback((matches, breakpoint) => {\n if (matches) {\n setBreakpoint(breakpoint);\n }\n }, [setBreakpoint]);\n useIsomorphicEffect(() => {\n if (!matchMedia)\n return;\n const unsubscribeList = mediaQueries.map(({ query, breakpoint }) => {\n const queryList = matchMedia(query);\n updateBreakpoint(queryList.matches, breakpoint);\n const handleMediaChange = (event) => {\n if (event.matches) {\n setBreakpoint(breakpoint);\n }\n };\n queryList.addEventListener('change', handleMediaChange);\n return () => queryList.removeEventListener('change', handleMediaChange);\n });\n return () => {\n unsubscribeList.forEach((unsubscribe) => unsubscribe());\n };\n }, [breakpoints, setBreakpoint, matchMedia, mediaQueries]);\n /** Print a nice debug value for React Devtools */\n React.useDebugValue(breakpoint, (breakpoint) => breakpoint);\n return breakpoint;\n};\n\nexport { useBreakpoint };\n","import { objectKeys } from '../utils.mjs';\n\n// Inspiration for getMediaQueries and useBreakpoint\nconst getMediaQueries = ({ breakpoints }) => {\n const sortedBreakpoints = objectKeys(breakpoints).sort((a, b) => breakpoints[b] - breakpoints[a]);\n return sortedBreakpoints.map((breakpoint, index) => {\n let query = '';\n const minWidth = breakpoints[breakpoint];\n const nextBreakpoint = sortedBreakpoints[index - 1];\n const maxWidth = nextBreakpoint ? breakpoints[nextBreakpoint] - 1 : null;\n if (minWidth >= 0) {\n query = `(min-width: ${minWidth}px)`;\n }\n if (maxWidth !== null) {\n if (query) {\n query += ' and ';\n }\n query += `(max-width: ${maxWidth}px)`;\n }\n return {\n breakpoint,\n query,\n maxWidth,\n minWidth,\n };\n });\n};\n\nexport { getMediaQueries };\n","import deepExtend from 'style-dictionary/lib/utils/deepExtend.js';\nimport flattenProperties from 'style-dictionary/lib/utils/flattenProperties.js';\nimport { defaultTheme } from './defaultTheme.mjs';\nimport { setupTokens, cssNameTransform, cssValue } from './utils.mjs';\nimport '@aws-amplify/core/internals/utils';\nimport '../utils/setUserAgent/constants.mjs';\nimport { isString } from '../utils/utils.mjs';\n\n// Internal Style Dictionary methods\n/**\n * This will take a design token and add some data to it for it\n * to be used in JS/CSS. It will create its CSS var name and update\n * the value to use a CSS var if it is a reference. It will also\n * add a `.toString()` method to make it easier to use in JS.\n *\n * We should see if there is a way to share this logic with style dictionary...\n */\nconst setupToken = ({ token, path }) => {\n const name = `--${cssNameTransform({ path })}`;\n const { value: original } = token;\n const value = cssValue(token);\n return { name, original, path, value, toString: () => `var(${name})` };\n};\n/**\n * Takes a set of keys and a color name and returns an object of design tokens,\n * used for applying a primary color at the theme level to our tokens.\n *\n * createColorPalette({keys: ['10','20',...], value: 'red'})\n * returns {\n * 10: { value: '{colors.red.10.value}' },\n * 20: { value: '{colors.red.20.value}' },\n * ...\n * }\n */\nfunction createColorPalette({ keys, value }) {\n return keys.reduce((acc, key) => {\n return {\n ...acc,\n [key]: { value: `{colors.${value}.${key}.value}` },\n };\n }, {});\n}\n/**\n * This will be used like `const myTheme = createTheme({})`\n * `myTheme` can then be passed to a Provider or the generated CSS\n * can be passed to a stylesheet at build-time or run-time.\n * const myTheme = createTheme({})\n * const myOtherTheme = createTheme({}, myTheme);\n */\nfunction createTheme(theme, DefaultTheme = defaultTheme) {\n // merge theme and DefaultTheme to get a complete theme\n // deepExtend is an internal Style Dictionary method\n // that performs a deep merge on n objects. We could change\n // this to another 3p deep merge solution too.\n const mergedTheme = deepExtend([{}, DefaultTheme, theme]);\n const { primaryColor, secondaryColor } = mergedTheme;\n // apply primaryColor and secondaryColor if present\n if (isString(primaryColor)) {\n mergedTheme.tokens.colors.primary = createColorPalette({\n keys: Object.keys(mergedTheme.tokens.colors[primaryColor]),\n value: primaryColor,\n });\n }\n if (isString(secondaryColor)) {\n mergedTheme.tokens.colors.secondary = createColorPalette({\n keys: Object.keys(mergedTheme.tokens.colors[secondaryColor]),\n value: secondaryColor,\n });\n }\n // Setting up the tokens. This is similar to what Style Dictionary\n // does. At the end of this, each token should have:\n // - CSS variable name of itself\n // - its value (reference to another CSS variable or raw value)\n const tokens = setupTokens({\n tokens: mergedTheme.tokens,\n setupToken,\n }); // Setting the type here because setupTokens is recursive\n const { breakpoints, name } = mergedTheme;\n // flattenProperties is another internal Style Dictionary function\n // that creates an array of all tokens.\n let cssText = `[data-amplify-theme=\"${name}\"] {\\n` +\n flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n') +\n `\\n}\\n`;\n let overrides = [];\n /**\n * For each override, we setup the tokens and then generate the CSS.\n * This allows us to have one single CSS string for all possible overrides\n * and avoid re-renders in React, but also support other frameworks as well.\n */\n if (mergedTheme.overrides) {\n overrides = mergedTheme.overrides.map((override) => {\n const tokens = setupTokens({\n tokens: override.tokens,\n setupToken,\n });\n const customProperties = flattenProperties(tokens)\n .map((token) => `${token.name}: ${token.value};`)\n .join('\\n');\n // Overrides can have a selector, media query, breakpoint, or color mode\n // for creating the selector\n if ('selector' in override) {\n cssText += `\\n${override.selector} {\\n${customProperties}\\n}\\n`;\n }\n if ('mediaQuery' in override) {\n cssText += `\\n@media (${override.mediaQuery}) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('breakpoint' in override) {\n const breakpoint = mergedTheme.breakpoints.values[override.breakpoint];\n cssText += `\\n@media (min-width: ${breakpoint}px) {\n [data-amplify-theme=\"${name}\"] {\n ${customProperties}\n }\n}\\n`;\n }\n if ('colorMode' in override) {\n cssText += `\\n@media (prefers-color-scheme: ${override.colorMode}) {\n [data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"system\"] {\n ${customProperties}\n color-scheme: ${override.colorMode};\n }\n }\\n`;\n cssText += `\\n[data-amplify-theme=\"${name}\"][data-amplify-color-mode=\"${override.colorMode}\"] {\n ${customProperties}\n color-scheme: ${override.colorMode};\n }\\n`;\n }\n return {\n ...override,\n tokens,\n };\n });\n }\n return {\n tokens,\n breakpoints,\n name,\n cssText,\n // keep overrides separate from base theme\n // this allows web platforms to use plain CSS scoped to a\n // selector and only override the CSS vars needed. This\n // means we could generate CSS at build-time in a postcss\n // plugin, or do it at runtime and inject the CSS into a\n // style tag.\n // This also allows RN to dynamically switch themes in a\n // provider.\n overrides,\n };\n}\n\nexport { createTheme };\n","import * as React from 'react';\nimport { createTheme } from '@aws-amplify/ui';\n\nconst ThemeContext = React.createContext({\n theme: createTheme(),\n colorMode: undefined,\n});\n\nexport { ThemeContext };\n","import * as React from 'react';\nimport { createTheme } from '@aws-amplify/ui';\nimport { ThemeContext } from '../components/ThemeProvider/ThemeContext.mjs';\n\n/**\n * Get current Theme object value from Amplify context.\n * Returns a default theme if context is not available\n */\nconst getThemeFromContext = (context) => {\n if (typeof context === 'undefined' || typeof context.theme === 'undefined') {\n return createTheme();\n }\n return context.theme;\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/theming)\n */\nconst useTheme = () => {\n const context = React.useContext(ThemeContext);\n return getThemeFromContext(context);\n};\n/**\n * Internal use only\n */\nconst useColorMode = () => {\n const context = React.useContext(ThemeContext);\n return context.colorMode;\n};\n\nexport { getThemeFromContext, useColorMode, useTheme };\n","import * as React from 'react';\nimport { isDesignToken } from '@aws-amplify/ui';\nimport { ComponentPropsToStylePropsMap } from '../types/style.mjs';\nimport { getValueAtCurrentBreakpoint } from './responsive/utils.mjs';\nimport { useBreakpoint } from './responsive/useBreakpoint.mjs';\nimport { useTheme } from '../../hooks/useTheme.mjs';\nimport { getStyleValue } from './getStyleValue.mjs';\nimport { isNullOrEmptyString, isEmptyString, getCSSVariableIfValueIsThemeKey } from './utils.mjs';\n\nconst isSpanPrimitiveValue = (spanValue) => {\n return (spanValue === 'auto' ||\n (typeof spanValue === 'number' && !isNaN(spanValue)) ||\n (typeof spanValue === 'string' && !isNaN(parseFloat(spanValue))));\n};\nconst getGridSpan = (spanValue) => {\n return spanValue === 'auto' ? 'auto' : `span ${spanValue}`;\n};\nconst convertGridSpan = (spanValue) => {\n // PropertyType\n if (isSpanPrimitiveValue(spanValue)) {\n return getGridSpan(spanValue);\n }\n // PropertyType[]\n if (Array.isArray(spanValue)) {\n return spanValue.map((value) => getGridSpan(value));\n }\n // ResponsiveObject\n if (typeof spanValue === 'object' && spanValue != null) {\n return Object.entries(spanValue).reduce((acc, [key, value]) => ({ ...acc, [key]: getGridSpan(value) }), {});\n }\n return null;\n};\n/**\n * Transforms style props to another target prop\n * where the original is a simpler API than the target.\n * This function will remove the original prop and\n * replace target prop values with calculated\n * E.g. rowSpan => row, columnSpan => column\n */\nconst useTransformStyleProps = (props) => {\n const { rowSpan, columnSpan, row, column, ...rest } = props;\n const { rowFromSpanValue, columnFromSpanValue } = React.useMemo(() => {\n return {\n rowFromSpanValue: convertGridSpan(rowSpan),\n columnFromSpanValue: convertGridSpan(columnSpan),\n };\n }, [rowSpan, columnSpan]);\n return {\n row: !isNullOrEmptyString(row) ? row : rowFromSpanValue,\n column: !isNullOrEmptyString(column) ? column : columnFromSpanValue,\n ...rest,\n };\n};\nconst isComponentStyleProp = (key) => {\n return key in ComponentPropsToStylePropsMap;\n};\n/**\n * Convert style props to CSS variables for React style prop\n * Note: Will filter out undefined, null, and empty string prop values\n */\nconst convertStylePropsToStyleObj = ({ props = {}, style = {}, breakpoint, breakpoints, tokens, }) => {\n const nonStyleProps = {};\n Object.keys(props)\n .filter((propKey) => props[propKey] !== null)\n .forEach((propKey) => {\n if (isComponentStyleProp(propKey)) {\n const values = props[propKey];\n if (!values || isEmptyString(values))\n return;\n const reactStyleProp = ComponentPropsToStylePropsMap[propKey];\n // short circuit the style prop here if it is a string or design token\n // so we don't have to call getValueAtCurrentBreakpoint every time\n let value = '';\n if (isDesignToken(values)) {\n value = values.toString();\n }\n else if (typeof values === 'string') {\n value = getCSSVariableIfValueIsThemeKey(propKey, values, tokens);\n }\n else if (typeof values === 'number') {\n value = values;\n }\n else if (typeof values === 'object') {\n // here values should be a responsive array or object\n value = getStyleValue({\n propKey,\n tokens,\n value: getValueAtCurrentBreakpoint({\n values,\n breakpoint,\n breakpoints,\n }),\n });\n }\n style = {\n ...style,\n [reactStyleProp]: value,\n };\n }\n else if (typeof props[propKey] !== 'undefined') {\n nonStyleProps[propKey] = props[propKey];\n }\n });\n return { propStyles: style, nonStyleProps };\n};\nconst useStyles = (props, style) => {\n const { breakpoints: { values: breakpoints, defaultBreakpoint }, tokens, } = useTheme();\n const breakpoint = useBreakpoint({\n breakpoints,\n defaultBreakpoint,\n });\n const propStyles = useTransformStyleProps(props);\n return React.useMemo(() => convertStylePropsToStyleObj({\n props: propStyles,\n style,\n breakpoint,\n breakpoints,\n tokens,\n }), [propStyles, style, breakpoints, breakpoint, tokens]);\n};\n\nexport { convertGridSpan, convertStylePropsToStyleObj, getGridSpan, isSpanPrimitiveValue, useStyles, useTransformStyleProps };\n","import { isDesignToken, isString } from '@aws-amplify/ui';\nimport { getCSSVariableIfValueIsThemeKey } from './utils.mjs';\n\n/**\n * This takes an unknown value, which could be a:\n * - design token: `color={tokens.colors.font.primary}`\n * - string, which could be a:\n * - theme key: `color='font.primary'`\n * - plain style: `color='red'`\n * - or a number: `padding={10}`\n * and returns the appropriate and resolved value\n */\nconst getStyleValue = ({ value, propKey, tokens, }) => {\n if (isDesignToken(value)) {\n return value.toString();\n }\n if (isString(value)) {\n return isString(propKey)\n ? getCSSVariableIfValueIsThemeKey(propKey, value, tokens)\n : value;\n }\n return null;\n};\n\nexport { getStyleValue };\n","import * as React from 'react';\nimport { useStyles } from '../shared/styleUtils.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst ViewPrimitive = ({ as = 'div', children, testId, ariaLabel, isDisabled, style, inert, ...rest }, ref) => {\n const { propStyles, nonStyleProps } = useStyles(rest, style);\n return React.createElement(as, {\n 'aria-label': ariaLabel,\n 'data-testid': testId,\n disabled: isDisabled,\n ref,\n inert: inert ? '' : null,\n style: propStyles,\n ...nonStyleProps,\n }, children);\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/view)\n */\nconst View = primitiveWithForwardRef(ViewPrimitive);\nView.displayName = 'View';\n\nexport { View };\n","import * as React from 'react';\nimport { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst FlexPrimitive = ({ className, children, ...rest }, ref) => (React.createElement(View, { className: classNames(ComponentClassName.Flex, className), ref: ref, ...rest }, children));\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/flex)\n */\nconst Flex = primitiveWithForwardRef(FlexPrimitive);\nFlex.displayName = 'Flex';\n\nexport { Flex };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst LINEAR_EMPTY = 'linear-empty';\nconst LINEAR_FILLED = 'linear-filled';\nconst CIRCULAR_EMPTY = 'circular-empty';\nconst CIRCULAR_FILLED = 'circular-filled';\n// radius + strokeWidth = 50\nconst CIRCULAR_STROKE_WIDTH = 8;\nconst RADIUS = 42;\n// circumference = 2 * r * PI (r = 42)\nconst CIRCUMFERENCE = 2 * RADIUS * Math.PI;\nconst LoaderPrimitive = ({ className, filledColor, emptyColor, size, variation, isDeterminate = false, isPercentageTextHidden = false, percentage = 0, ...rest }, ref) => {\n percentage = Math.min(percentage, 100);\n percentage = Math.max(percentage, 0);\n const percent = `${percentage}%`;\n const componentClasses = classNames(ComponentClassName.Loader, classNameModifier(ComponentClassName.Loader, size), classNameModifier(ComponentClassName.Loader, variation), classNameModifierByFlag(ComponentClassName.Loader, 'determinate', isDeterminate), className);\n const linearLoader = (React.createElement(\"g\", null,\n React.createElement(\"line\", { x1: \"0\", x2: \"100%\", y1: \"50%\", y2: \"50%\", style: { stroke: String(emptyColor) }, \"data-testid\": LINEAR_EMPTY }),\n React.createElement(\"line\", { x1: \"0\", x2: isDeterminate ? percent : '100%', y1: \"50%\", y2: \"50%\", style: {\n // To get rid of the visible stroke linecap when percentage is 0\n stroke: isDeterminate && percentage === 0\n ? 'none'\n : filledColor\n ? String(filledColor)\n : undefined,\n }, \"data-testid\": LINEAR_FILLED }),\n isDeterminate ? (React.createElement(\"text\", { \"aria-live\": \"polite\", className: classNames(ComponentClassName.LoaderLabel, isPercentageTextHidden ? ComponentClassName.VisuallyHidden : null), \n // -1% offset makes the text position look nicest\n x: `${-1 + percentage}%`, y: \"200%\" }, percent)) : null));\n // r + stroke-width should add up to 50% to avoid overflow\n const circularLoader = (React.createElement(\"g\", null,\n React.createElement(\"circle\", { cx: \"50%\", cy: \"50%\", r: `${RADIUS}%`, strokeWidth: `${CIRCULAR_STROKE_WIDTH}%`, style: { stroke: String(emptyColor) }, \"data-testid\": CIRCULAR_EMPTY }),\n React.createElement(\"circle\", { cx: \"50%\", cy: \"50%\", r: `${RADIUS}%`, strokeWidth: `${CIRCULAR_STROKE_WIDTH}%`, style: {\n stroke: String(filledColor),\n strokeDasharray: isDeterminate\n ? `${CIRCUMFERENCE}% ${CIRCUMFERENCE}%`\n : undefined,\n strokeDashoffset: isDeterminate\n ? `${CIRCUMFERENCE - (CIRCUMFERENCE * percentage) / 100}%`\n : undefined,\n }, \"data-testid\": CIRCULAR_FILLED }),\n isDeterminate ? (React.createElement(\"text\", { \"aria-live\": \"polite\", className: classNames(ComponentClassName.LoaderLabel, isPercentageTextHidden ? ComponentClassName.VisuallyHidden : null), \n // this x and y make text position look nicest\n x: \"130%\", y: \"80%\" }, percent)) : null));\n return (React.createElement(View, { as: \"svg\", className: componentClasses, ref: ref, role: \"img\", ...rest }, variation === 'linear' ? linearLoader : circularLoader));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/loader)\n */\nconst Loader = primitiveWithForwardRef(LoaderPrimitive);\nLoader.displayName = 'Loader';\n\nexport { CIRCULAR_EMPTY, CIRCULAR_FILLED, CIRCULAR_STROKE_WIDTH, CIRCUMFERENCE, LINEAR_EMPTY, LINEAR_FILLED, Loader, RADIUS };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\nimport { useFieldset } from '../Fieldset/useFieldset.mjs';\nimport { Flex } from '../Flex/Flex.mjs';\nimport { Loader } from '../Loader/Loader.mjs';\nimport { View } from '../View/View.mjs';\n\n// These variations support colorThemes. 'undefined' accounts for our\n// 'default' variation which is not named.\nconst supportedVariations = ['link', 'primary', undefined];\nconst ButtonPrimitive = ({ className, children, colorTheme, isFullWidth = false, isDisabled, isLoading, loadingText = '', size, type = 'button', variation, ...rest }, ref) => {\n // Creates our colorTheme modifier string based on if the variation\n // supports colorThemes and a colorTheme is used.\n const colorThemeModifier = supportedVariations.includes(variation) && colorTheme\n ? `${variation ?? 'outlined'}--${colorTheme}`\n : undefined;\n const { isFieldsetDisabled } = useFieldset();\n const shouldBeDisabled = isFieldsetDisabled\n ? isFieldsetDisabled\n : isDisabled ?? isLoading ?? rest['disabled'];\n const componentClasses = classNames(ComponentClassName.Button, ComponentClassName.FieldGroupControl, classNameModifier(ComponentClassName.Button, variation), classNameModifier(ComponentClassName.Button, colorThemeModifier), classNameModifier(ComponentClassName.Button, size), classNameModifierByFlag(ComponentClassName.Button, 'disabled', shouldBeDisabled), classNameModifierByFlag(ComponentClassName.Button, 'loading', isLoading), classNameModifierByFlag(ComponentClassName.Button, 'fullwidth', isFullWidth), className);\n return (React.createElement(View, { ref: ref, as: \"button\", className: componentClasses, isDisabled: shouldBeDisabled, type: type, ...rest }, isLoading ? (React.createElement(Flex, { as: \"span\", className: ComponentClassName.ButtonLoaderWrapper },\n React.createElement(Loader, { size: size }),\n loadingText ? loadingText : null)) : (children)));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/button)\n */\nconst Button = primitiveWithForwardRef(ButtonPrimitive);\nButton.displayName = 'Button';\n\nexport { Button };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst headingLevels = {\n 1: 'h1',\n 2: 'h2',\n 3: 'h3',\n 4: 'h4',\n 5: 'h5',\n 6: 'h6',\n};\nconst HeadingPrimitive = ({ className, children, isTruncated, level = 6, ...rest }, ref) => (React.createElement(View, { as: headingLevels[level], className: classNames(ComponentClassName.Heading, classNameModifier(ComponentClassName.Heading, level), classNameModifierByFlag(ComponentClassName.Heading, 'truncated', isTruncated), className), ref: ref, ...rest }, children));\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/heading)\n */\nconst Heading = primitiveWithForwardRef(HeadingPrimitive);\nHeading.displayName = 'Heading';\n\nexport { Heading };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst TextPrimitive = ({ as = 'p', className, children, isTruncated, variation, ...rest }, ref) => {\n const componentClasses = classNames(ComponentClassName.Text, classNameModifier(ComponentClassName.Text, variation), classNameModifierByFlag(ComponentClassName.Text, 'truncated', isTruncated), className);\n return (React.createElement(View, { as: as, className: componentClasses, ref: ref, ...rest }, children));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/text)\n */\nconst Text = primitiveWithForwardRef(TextPrimitive);\nText.displayName = 'Text';\n\nexport { Text };\n","const getFormDataFromEvent = (event) => {\n const formData = new FormData(event.target);\n return Object.fromEntries(formData);\n};\n\nexport { getFormDataFromEvent };\n","import { useCallback } from 'react';\nimport { getFormDataFromEvent } from '../../../../helpers/utils.mjs';\nimport { useAuthenticator } from '@aws-amplify/ui-react-core';\n\nfunction useFormHandlers() {\n const { submitForm, updateBlur, updateForm } = useAuthenticator((context) => [\n context.submitForm,\n context.updateBlur,\n context.updateForm,\n ]);\n const handleBlur = useCallback(({ target: { name } }) => {\n updateBlur({ name });\n }, [updateBlur]);\n // @TODO: align multiple input type handling with react docs example for 3.0 release\n // example: https://reactjs.org/docs/forms.html#handling-multiple-inputs\n const handleChange = useCallback(({ target: { checked, name, type, value }, }) => {\n const isUncheckedCheckbox = type === 'checkbox' && !checked;\n updateForm({\n name,\n value: isUncheckedCheckbox ? undefined : value,\n });\n }, [updateForm]);\n const handleSubmit = useCallback((event) => {\n event.preventDefault();\n submitForm(getFormDataFromEvent(event));\n }, [submitForm]);\n return { handleBlur, handleChange, handleSubmit };\n}\n\nexport { useFormHandlers };\n","import * as React from 'react';\n\nconst IconsContext = React.createContext({});\n\nexport { IconsContext };\n","import * as React from 'react';\nimport { IconsContext } from './IconsContext.mjs';\n\nfunction useIcons(component) {\n const context = React.useContext(IconsContext);\n if (component && context) {\n return context[component];\n }\n return undefined;\n}\n\nexport { useIcons };\n","import * as React from 'react';\nimport { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconCheckCircle = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20ZM16.59 7.58L10 14.17L7.41 11.59L6 13L10 17L18 9L16.59 7.58Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconCheckCircle };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconError = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM13 17H11V15H13V17ZM13 13H11V7H13V13Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconError };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconInfo = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M11 7H13V9H11V7ZM11 11H13V17H11V11ZM12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconInfo };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconWarning = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M1 21H23L12 2L1 21ZM13 18H11V16H13V18ZM13 14H11V10H13V14Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconWarning };\n","import * as React from 'react';\nimport { ComponentClassName } from '@aws-amplify/ui';\nimport '../Icon/Icon.mjs';\nimport '../Icon/context/IconsContext.mjs';\nimport { useIcons } from '../Icon/context/useIcons.mjs';\nimport '../View/View.mjs';\nimport { IconCheckCircle } from '../Icon/icons/IconCheckCircle.mjs';\nimport { IconError } from '../Icon/icons/IconError.mjs';\nimport { IconInfo } from '../Icon/icons/IconInfo.mjs';\nimport { IconWarning } from '../Icon/icons/IconWarning.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst AlertIcon = ({ variation, ariaHidden, ariaLabel, role, }) => {\n const icons = useIcons('alert');\n let icon;\n switch (variation) {\n case 'info':\n icon = icons?.info ?? (React.createElement(IconInfo, { \"aria-hidden\": ariaHidden, \"aria-label\": ariaLabel, role: role }));\n break;\n case 'error':\n icon = icons?.error ?? (React.createElement(IconError, { \"aria-hidden\": ariaHidden, \"aria-label\": ariaLabel, role: role }));\n break;\n case 'warning':\n icon = icons?.warning ?? (React.createElement(IconWarning, { \"aria-hidden\": ariaHidden, \"aria-label\": ariaLabel, role: role }));\n break;\n case 'success':\n icon = icons?.success ?? (React.createElement(IconCheckCircle, { \"aria-hidden\": ariaHidden, \"aria-label\": ariaLabel, role: role }));\n break;\n }\n return icon ? (React.createElement(\"span\", { className: ComponentClassName.AlertIcon }, icon)) : null;\n};\nAlertIcon.displayName = 'AlertIcon';\n\nexport { AlertIcon };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconClose = (props) => {\n const { className, size, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: size ?? '1em', height: size ?? '1em', className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", style: size ? { width: size, height: size } : undefined },\n React.createElement(\"path\", { d: \"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconClose };\n","import * as React from 'react';\nimport { isFunction, classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';\nimport { ComponentText } from '../shared/constants.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\nimport { View } from '../View/View.mjs';\nimport { Flex } from '../Flex/Flex.mjs';\nimport { Button } from '../Button/Button.mjs';\nimport { AlertIcon } from './AlertIcon.mjs';\nimport '../Icon/Icon.mjs';\nimport '../Icon/context/IconsContext.mjs';\nimport { useIcons } from '../Icon/context/useIcons.mjs';\nimport { IconClose } from '../Icon/icons/IconClose.mjs';\n\nconst AlertPrimitive = ({ buttonRef, children, className, dismissButtonLabel = ComponentText.Alert.dismissButtonLabel, hasIcon = true, heading, isDismissible = false, onDismiss, variation, ...rest }, ref) => {\n const [dismissed, setDismissed] = React.useState(false);\n const icons = useIcons('alert');\n const dismissAlert = React.useCallback(() => {\n setDismissed(!dismissed);\n if (isFunction(onDismiss)) {\n onDismiss();\n }\n }, [setDismissed, onDismiss, dismissed]);\n return !dismissed ? (React.createElement(Flex, { className: classNames(ComponentClassName.Alert, className, classNameModifier(ComponentClassName.Alert, variation)), ref: ref, role: \"alert\", ...rest },\n hasIcon && React.createElement(AlertIcon, { variation: variation, ariaHidden: true }),\n React.createElement(View, { flex: \"1\" },\n heading && (React.createElement(View, { className: ComponentClassName.AlertHeading }, heading)),\n React.createElement(View, { className: ComponentClassName.AlertBody }, children)),\n isDismissible && (React.createElement(Button, { ariaLabel: dismissButtonLabel, variation: \"link\", className: ComponentClassName.AlertDismiss, onClick: dismissAlert, ref: buttonRef }, icons?.close ?? React.createElement(IconClose, { \"aria-hidden\": \"true\" }))))) : null;\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/alert)\n */\nconst Alert = primitiveWithForwardRef(AlertPrimitive);\nAlert.displayName = 'Alert';\n\nexport { Alert };\n","import React__default from 'react';\nimport { translate } from '@aws-amplify/ui';\nimport { useAuthenticator } from '@aws-amplify/ui-react-core';\nimport { Alert } from '../../../primitives/Alert/Alert.mjs';\n\nconst RemoteErrorMessage = () => {\n const { error } = useAuthenticator((context) => [context.error]);\n return (React__default.createElement(React__default.Fragment, null, error ? (React__default.createElement(Alert, { variation: \"error\", isDismissible: true }, translate(error))) : null));\n};\n\nexport { RemoteErrorMessage };\n","import * as React from 'react';\nimport { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst VisuallyHiddenPrimitive = ({ as = 'span', children, className, ...rest }, ref) => (React.createElement(View, { as: as, className: classNames(ComponentClassName.VisuallyHidden, className), ref: ref, ...rest }, children));\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/visuallyhidden)\n */\nconst VisuallyHidden = primitiveWithForwardRef(VisuallyHiddenPrimitive);\nVisuallyHidden.displayName = 'VisuallyHidden';\n\nexport { VisuallyHidden };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconVisibilityOff = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M12 6.0002C15.79 6.0002 19.17 8.1302 20.82 11.5002C20.23 12.7202 19.4 13.7702 18.41 14.6202L19.82 16.0302C21.21 14.8002 22.31 13.2602 23 11.5002C21.27 7.1102 17 4.0002 12 4.0002C10.73 4.0002 9.51 4.2002 8.36 4.5702L10.01 6.2202C10.66 6.0902 11.32 6.0002 12 6.0002ZM10.93 7.14019L13 9.2102C13.57 9.4602 14.03 9.9202 14.28 10.4902L16.35 12.5602C16.43 12.2202 16.49 11.8602 16.49 11.4902C16.5 9.0102 14.48 7.0002 12 7.0002C11.63 7.0002 11.28 7.05019 10.93 7.14019ZM2.01 3.8702L4.69 6.5502C3.06 7.8302 1.77 9.5302 1 11.5002C2.73 15.8902 7 19.0002 12 19.0002C13.52 19.0002 14.98 18.7102 16.32 18.1802L19.74 21.6002L21.15 20.1902L3.42 2.4502L2.01 3.8702ZM9.51 11.3702L12.12 13.9802C12.08 13.9902 12.04 14.0002 12 14.0002C10.62 14.0002 9.5 12.8802 9.5 11.5002C9.5 11.4502 9.51 11.4202 9.51 11.3702V11.3702ZM6.11 7.97019L7.86 9.7202C7.63 10.2702 7.5 10.8702 7.5 11.5002C7.5 13.9802 9.52 16.0002 12 16.0002C12.63 16.0002 13.23 15.8702 13.77 15.6402L14.75 16.6202C13.87 16.8602 12.95 17.0002 12 17.0002C8.21 17.0002 4.83 14.8702 3.18 11.5002C3.88 10.0702 4.9 8.89019 6.11 7.97019Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconVisibilityOff };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconVisibility = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M12 6C15.79 6 19.17 8.13 20.82 11.5C19.17 14.87 15.79 17 12 17C8.21 17 4.83 14.87 3.18 11.5C4.83 8.13 8.21 6 12 6ZM12 4C7 4 2.73 7.11 1 11.5C2.73 15.89 7 19 12 19C17 19 21.27 15.89 23 11.5C21.27 7.11 17 4 12 4ZM12 9C13.38 9 14.5 10.12 14.5 11.5C14.5 12.88 13.38 14 12 14C10.62 14 9.5 12.88 9.5 11.5C9.5 10.12 10.62 9 12 9ZM12 7C9.52 7 7.5 9.02 7.5 11.5C7.5 13.98 9.52 16 12 16C14.48 16 16.5 13.98 16.5 11.5C16.5 9.02 14.48 7 12 7Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconVisibility };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { Button } from '../Button/Button.mjs';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.mjs';\nimport { ComponentText } from '../shared/constants.mjs';\nimport '../Icon/Icon.mjs';\nimport '../Icon/context/IconsContext.mjs';\nimport { useIcons } from '../Icon/context/useIcons.mjs';\nimport '../View/View.mjs';\nimport { IconVisibilityOff } from '../Icon/icons/IconVisibilityOff.mjs';\nimport { IconVisibility } from '../Icon/icons/IconVisibility.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst { passwordIsHidden, passwordIsShown, showPassword } = ComponentText.PasswordField;\nconst ShowPasswordButtonPrimitive = ({ fieldType, passwordIsHiddenLabel = passwordIsHidden, passwordIsShownLabel = passwordIsShown, showPasswordButtonLabel = showPassword, size, hasError, ...rest }, ref) => {\n const icons = useIcons('passwordField');\n const showPasswordButtonClass = classNames(ComponentClassName.FieldShowPassword, classNameModifierByFlag(ComponentClassName.FieldShowPassword, 'error', hasError));\n const icon = fieldType === 'password'\n ? icons?.visibility ?? React.createElement(IconVisibility, { \"aria-hidden\": \"true\" })\n : icons?.visibilityOff ?? React.createElement(IconVisibilityOff, { \"aria-hidden\": \"true\" });\n return (React.createElement(Button, { \"aria-checked\": fieldType !== 'password', ariaLabel: showPasswordButtonLabel, className: showPasswordButtonClass, colorTheme: hasError ? 'error' : undefined, ref: ref, role: \"switch\", size: size, ...rest },\n React.createElement(VisuallyHidden, { \"aria-live\": \"polite\" }, fieldType === 'password'\n ? passwordIsHiddenLabel\n : passwordIsShownLabel),\n icon));\n};\nconst ShowPasswordButton = primitiveWithForwardRef(ShowPasswordButtonPrimitive);\nShowPasswordButton.displayName = 'ShowPasswordButton';\n\nexport { ShowPasswordButton };\n","import * as React from 'react';\nimport { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport { Text } from '../Text/Text.mjs';\n\nconst QA_FIELD_DESCRIPTION = 'qa-field-description';\nconst FieldDescription = ({ descriptiveText, labelHidden, ...rest }) => descriptiveText ? (React.createElement(Text, { \"data-testid\": QA_FIELD_DESCRIPTION, className: classNames(ComponentClassName.FieldDescription, {\n [ComponentClassName.VisuallyHidden]: labelHidden,\n }), ...rest }, descriptiveText)) : null;\nFieldDescription.displayName = 'FieldDescription';\n\nexport { FieldDescription, QA_FIELD_DESCRIPTION };\n","import * as React from 'react';\nimport { Text } from '../Text/Text.mjs';\nimport { ComponentClassName } from '@aws-amplify/ui';\n\nconst FieldErrorMessage = ({ errorMessage, hasError, ...rest }) => {\n return hasError && errorMessage ? (React.createElement(Text, { className: ComponentClassName.FieldErrorMessage, ...rest }, errorMessage)) : null;\n};\nFieldErrorMessage.displayName = 'FieldErrorMessage';\n\nexport { FieldErrorMessage };\n","import * as React from 'react';\nimport { ComponentClassName, classNames, classNameModifier } from '@aws-amplify/ui';\nimport { Flex } from '../Flex/Flex.mjs';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst FieldGroupPrimitive = ({ children, className, innerEndComponent, innerStartComponent, orientation = 'horizontal', outerEndComponent, outerStartComponent, variation, ...rest }, ref) => {\n // Don't apply hasInner classnames unless a component was provided\n const hasInnerStartComponent = innerStartComponent != null;\n const hasInnerEndComponent = innerEndComponent != null;\n const fieldGroupHasInnerStartClassName = hasInnerStartComponent\n ? ComponentClassName.FieldGroupHasInnerStart\n : null;\n const fieldGroupHasInnerEndClassName = hasInnerEndComponent\n ? ComponentClassName.FieldGroupHasInnerEnd\n : null;\n const componentClasses = classNames(ComponentClassName.FieldGroup, fieldGroupHasInnerStartClassName, fieldGroupHasInnerEndClassName, classNameModifier(ComponentClassName.FieldGroup, orientation), className);\n return (React.createElement(Flex, { className: componentClasses, ref: ref, ...rest },\n outerStartComponent && (React.createElement(View, { className: classNames(ComponentClassName.FieldGroupOuterStart, classNameModifier(ComponentClassName.FieldGroupOuterStart, variation)) }, outerStartComponent)),\n React.createElement(View, { className: classNames(ComponentClassName.FieldGroupFieldWrapper, classNameModifier(ComponentClassName.FieldGroupFieldWrapper, orientation)) },\n innerStartComponent && (React.createElement(View, { className: ComponentClassName.FieldGroupInnerStart }, innerStartComponent)),\n children,\n innerEndComponent && (React.createElement(View, { className: ComponentClassName.FieldGroupInnerEnd }, innerEndComponent))),\n outerEndComponent && (React.createElement(View, { className: classNames(ComponentClassName.FieldGroupOuterEnd, classNameModifier(ComponentClassName.FieldGroupOuterEnd, variation)) }, outerEndComponent))));\n};\nconst FieldGroup = primitiveWithForwardRef(FieldGroupPrimitive);\nFieldGroup.displayName = 'FieldGroup';\n\nexport { FieldGroup };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { useFieldset } from '../Fieldset/useFieldset.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst InputPrimitive = ({ autoComplete, checked, className, defaultChecked, defaultValue, id, isDisabled, isReadOnly, isRequired, size, type = 'text', hasError = false, value, variation, ...rest }, ref) => {\n const componentClasses = classNames(ComponentClassName.Input, ComponentClassName.FieldGroupControl, classNameModifier(ComponentClassName.Input, variation), classNameModifierByFlag(ComponentClassName.Input, 'error', hasError), classNameModifier(ComponentClassName.Input, size), className);\n const { isFieldsetDisabled } = useFieldset();\n return (React.createElement(View, { \"aria-invalid\": hasError, as: \"input\", autoComplete: autoComplete, checked: checked, className: componentClasses, defaultChecked: defaultChecked, defaultValue: defaultValue, isDisabled: isFieldsetDisabled ? isFieldsetDisabled : isDisabled, id: id, readOnly: isReadOnly, ref: ref, required: isRequired, type: type, value: value, ...rest }));\n};\nconst Input = primitiveWithForwardRef(InputPrimitive);\nInput.displayName = 'Input';\n\nexport { Input };\n","import * as React from 'react';\nimport { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport { View } from '../View/View.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst LabelPrimitive = ({ children, className, visuallyHidden, ...rest }, ref) => {\n return (React.createElement(View, { as: \"label\", className: classNames(ComponentClassName.Label, className, {\n [ComponentClassName.VisuallyHidden]: visuallyHidden,\n }), ref: ref, ...rest }, children));\n};\nconst Label = primitiveWithForwardRef(LabelPrimitive);\nLabel.displayName = 'Label';\n\nexport { Label };\n","import { ComponentPropsToStylePropsMap } from '../types/style.mjs';\n\nconst isStyleKey = (prop) => {\n return prop in ComponentPropsToStylePropsMap;\n};\n/**\n * This function splits props into style props and non-style props. This is used\n * on Field primitives so we can apply style props on the wrapper element and\n * the rest on the input.\n * @param props this should be a destructured `rest` from the component's props\n */\nconst splitPrimitiveProps = (props) => {\n const splitProps = {\n styleProps: {},\n rest: {},\n };\n Object.keys(props).forEach((prop) => {\n if (isStyleKey(prop)) {\n // we know it is a style key\n // so we know we can assign the key in styleProps\n splitProps.styleProps = {\n ...splitProps.styleProps,\n [prop]: props[prop],\n };\n }\n else {\n splitProps.rest = {\n ...splitProps.rest,\n [prop]: props[prop],\n };\n }\n });\n return splitProps;\n};\n\nexport { splitPrimitiveProps };\n","import * as React from 'react';\n\n// Source: https://github.com/radix-ui/primitives/blob/7ae63b6cce6ea53ea5d65b6d411894c004b38f47/packages/react/use-layout-effect/src/useLayoutEffect.tsx\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => { };\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useLayoutEffect } from './useLayoutEffect.mjs';\n\n// Adapted from https://github.com/radix-ui/primitives/blob/main/packages/react/id/src/id.tsx#L8\n// Prefixed autogenerated id created by useStableId\nconst AUTO_GENERATED_ID_PREFIX = 'amplify-id';\n// Create a local version of React.useId which will reference React.useId for React 18\n// and fallback to noop for React 17 and below\n// Note: We use `toString()` to prevent bundlers from trying to `import { useId } from 'react';`\n// since it doesn't exist in React 17 and below (prevents https://github.com/aws-amplify/amplify-ui/issues/1154)\nconst useReactId = \n// disable eslint below to allow usage of casting React to `any`, which ensures that TS\n// does not get confused about the existence of `useId` in React 17 and below\n// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\nReact['useId'.toString()] || (() => undefined);\nlet count = 0;\n/**\n * Create a uuid to use with amplify fields unless\n * an id is provided\n * @param id user specified id\n * @returns string\n */\nconst useStableId = (id) => {\n const [stableId, setStableId] = React.useState(useReactId());\n // React versions older than 18 will have client-side ids only\n useLayoutEffect(() => {\n if (!id) {\n setStableId((reactId) => reactId ?? String(count++));\n }\n }, [id]);\n return id ?? (stableId ? `${AUTO_GENERATED_ID_PREFIX}-${stableId}` : '');\n};\n\nexport { AUTO_GENERATED_ID_PREFIX, useStableId };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';\nimport '../Field/FieldClearButton.mjs';\nimport { FieldDescription } from '../Field/FieldDescription.mjs';\nimport { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';\nimport '../Field/Field.mjs';\nimport { FieldGroup } from '../FieldGroup/FieldGroup.mjs';\nimport { Flex } from '../Flex/Flex.mjs';\nimport { Input } from '../Input/Input.mjs';\nimport { Label } from '../Label/Label.mjs';\nimport { splitPrimitiveProps } from '../utils/splitPrimitiveProps.mjs';\nimport { useStableId } from '../utils/useStableId.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst TextFieldPrimitive = (props, ref) => {\n const { className, descriptiveText, errorMessage, hasError = false, id, innerEndComponent, innerStartComponent, label, labelHidden = false, outerEndComponent, outerStartComponent, size, testId, variation, inputStyles, ..._rest } = props;\n const fieldId = useStableId(id);\n const descriptionId = useStableId();\n const ariaDescribedBy = descriptiveText ? descriptionId : undefined;\n const { styleProps, rest } = splitPrimitiveProps(_rest);\n return (React.createElement(Flex, { className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.TextField, className), testId: testId, ...styleProps },\n React.createElement(Label, { htmlFor: fieldId, visuallyHidden: labelHidden }, label),\n React.createElement(FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),\n React.createElement(FieldGroup, { outerStartComponent: outerStartComponent, outerEndComponent: outerEndComponent, innerStartComponent: innerStartComponent, innerEndComponent: innerEndComponent, variation: variation },\n React.createElement(Input, { \"aria-describedby\": ariaDescribedBy, hasError: hasError, id: fieldId, ref: ref, size: size, variation: variation, ...inputStyles, ...rest })),\n React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/textfield)\n */\nconst TextField = primitiveWithForwardRef(TextFieldPrimitive);\nTextField.displayName = 'TextField';\n\nexport { TextField };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { ShowPasswordButton } from './ShowPasswordButton.mjs';\nimport { TextField } from '../TextField/TextField.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst PasswordFieldPrimitive = ({ autoComplete = 'current-password', label, className, hideShowPassword = false, passwordIsHiddenLabel, passwordIsShownLabel, showPasswordButtonLabel, showPasswordButtonRef, size, hasError, ...rest }, ref) => {\n const [type, setType] = React.useState('password');\n const showPasswordOnClick = React.useCallback(() => {\n if (type === 'password') {\n setType('text');\n }\n else {\n setType('password');\n }\n }, [setType, type]);\n return (React.createElement(TextField, { autoComplete: autoComplete, outerEndComponent: hideShowPassword ? null : (React.createElement(ShowPasswordButton, { fieldType: type, onClick: showPasswordOnClick, passwordIsHiddenLabel: passwordIsHiddenLabel, passwordIsShownLabel: passwordIsShownLabel, ref: showPasswordButtonRef, size: size, showPasswordButtonLabel: showPasswordButtonLabel, hasError: hasError })), size: size, type: type, label: label, className: classNames(ComponentClassName.PasswordField, className), ref: ref, hasError: hasError, ...rest }));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/passwordfield)\n */\nconst PasswordField = primitiveWithForwardRef(PasswordFieldPrimitive);\nPasswordField.displayName = 'PasswordField';\n\nexport { PasswordField };\n","import { classNames, ComponentClassName } from '@aws-amplify/ui';\nimport * as React from 'react';\nimport { View } from '../../View/View.mjs';\n\n/**\n * @internal For internal Amplify UI use only. May be removed in a future release.\n */\nconst IconExpandMore = (props) => {\n const { className, ...rest } = props;\n return (React.createElement(View, { as: \"span\", width: \"1em\", height: \"1em\", className: classNames(ComponentClassName.Icon, className), ...rest },\n React.createElement(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n React.createElement(\"path\", { d: \"M16.59 8.58984L12 13.1698L7.41 8.58984L6 9.99984L12 15.9998L18 9.99984L16.59 8.58984Z\", fill: \"currentColor\" }))));\n};\n\nexport { IconExpandMore };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier, classNameModifierByFlag } from '@aws-amplify/ui';\nimport { Flex } from '../Flex/Flex.mjs';\nimport '../Icon/Icon.mjs';\nimport '../Icon/context/IconsContext.mjs';\nimport { useIcons } from '../Icon/context/useIcons.mjs';\nimport { View } from '../View/View.mjs';\nimport { IconExpandMore } from '../Icon/icons/IconExpandMore.mjs';\nimport { useFieldset } from '../Fieldset/useFieldset.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst SelectPrimitive = ({ autoComplete, className, size, variation, value, defaultValue, hasError, icon, iconColor, children, placeholder, isDisabled, isRequired, isMultiple = false, selectSize = 1, ...rest }, ref) => {\n const DEFAULT_PLACEHOLDER_VALUE = '';\n // value === undefined is to make sure that component is used in uncontrolled way so that setting defaultValue is valid\n const shouldSetDefaultPlaceholderValue = value === undefined && defaultValue === undefined && placeholder;\n const isExpanded = isMultiple || selectSize > 1;\n const componentClasses = classNames(ComponentClassName.Select, ComponentClassName.FieldGroupControl, classNameModifier(ComponentClassName.Select, size), classNameModifier(ComponentClassName.Select, variation), classNameModifierByFlag(ComponentClassName.Select, 'error', hasError), classNameModifierByFlag(ComponentClassName.Select, 'expanded', isExpanded), className);\n const icons = useIcons('select');\n const { isFieldsetDisabled } = useFieldset();\n return (React.createElement(View, { className: ComponentClassName.SelectWrapper },\n React.createElement(View, { \"aria-invalid\": hasError, as: \"select\", autoComplete: autoComplete, value: value, defaultValue: shouldSetDefaultPlaceholderValue\n ? DEFAULT_PLACEHOLDER_VALUE\n : defaultValue, isDisabled: isFieldsetDisabled ? isFieldsetDisabled : isDisabled, multiple: isMultiple, size: selectSize, required: isRequired, className: componentClasses, ref: ref, ...rest },\n placeholder && React.createElement(\"option\", { value: \"\" }, placeholder),\n children),\n isExpanded ? null : (React.createElement(Flex, { className: classNames(ComponentClassName.SelectIcon, classNameModifier(ComponentClassName.SelectIcon, size)), color: iconColor, \"aria-hidden\": \"true\" }, icon ?? icons?.expand ?? React.createElement(IconExpandMore, null)))));\n};\nconst Select = primitiveWithForwardRef(SelectPrimitive);\nSelect.displayName = 'Select';\n\nexport { Select };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, classNameModifier } from '@aws-amplify/ui';\nimport '../Field/FieldClearButton.mjs';\nimport { FieldDescription } from '../Field/FieldDescription.mjs';\nimport { FieldErrorMessage } from '../Field/FieldErrorMessage.mjs';\nimport '../Field/Field.mjs';\nimport { Flex } from '../Flex/Flex.mjs';\nimport { Label } from '../Label/Label.mjs';\nimport { Select } from '../Select/Select.mjs';\nimport { splitPrimitiveProps } from '../utils/splitPrimitiveProps.mjs';\nimport { useStableId } from '../utils/useStableId.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst selectFieldChildren = ({ children, options, }) => {\n if (children) {\n if (options?.length) {\n // eslint-disable-next-line no-console\n console.warn('Amplify UI: component defaults to rendering children over `options`. When using the `options` prop, omit children.');\n }\n return children;\n }\n return options?.map((option, index) => (React.createElement(\"option\", { label: option, value: option, key: `${option}-${index}` }, option)));\n};\nconst SelectFieldPrimitive = (props, ref) => {\n const { children, className, descriptiveText, errorMessage, hasError = false, id, label, labelHidden = false, options, size, testId, inputStyles, ..._rest } = props;\n const fieldId = useStableId(id);\n const descriptionId = useStableId();\n const ariaDescribedBy = descriptiveText ? descriptionId : undefined;\n const { styleProps, rest } = splitPrimitiveProps(_rest);\n return (React.createElement(Flex, { className: classNames(ComponentClassName.Field, classNameModifier(ComponentClassName.Field, size), ComponentClassName.SelectField, className), testId: testId, ...styleProps },\n React.createElement(Label, { htmlFor: fieldId, visuallyHidden: labelHidden }, label),\n React.createElement(FieldDescription, { id: descriptionId, labelHidden: labelHidden, descriptiveText: descriptiveText }),\n React.createElement(Select, { \"aria-describedby\": ariaDescribedBy, hasError: hasError, id: fieldId, ref: ref, size: size, ...rest, ...inputStyles }, selectFieldChildren({ children, options })),\n React.createElement(FieldErrorMessage, { hasError: hasError, errorMessage: errorMessage })));\n};\n/**\n * [📖 Docs](https://ui.docs.amplify.aws/react/components/selectfield)\n */\nconst SelectField = primitiveWithForwardRef(SelectFieldPrimitive);\nSelectField.displayName = 'SelectField';\n\nexport { SelectField };\n","import * as React from 'react';\nimport { classNames, ComponentClassName, countryDialCodes } from '@aws-amplify/ui';\nimport { SelectField } from '../SelectField/SelectField.mjs';\nimport { primitiveWithForwardRef } from '../utils/primitiveWithForwardRef.mjs';\n\nconst DialCodeSelectPrimitive = ({ className, dialCodeList, isReadOnly, ...props }, ref) => {\n const dialList = dialCodeList ?? countryDialCodes;\n const dialCodeOptions = React.useMemo(() => dialList.map((dialCode) => (\n // Regarding the `disabled` attribute, see comment in SelectField below\n React.createElement(\"option\", { key: dialCode, value: dialCode, disabled: isReadOnly }, dialCode))), [dialList, isReadOnly]);\n return (React.createElement(SelectField\n /*\n Since