{"version":3,"file":"assets/chunk.7e0fe16a32e2833f3a51.js","mappings":"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,IAAIN,MAAM,IAChB2uD,EAAM,IAAI3uD,MAAM,IAChBwlD,EAAM,IAAIxlD,MAAM,KAChBohE,EAAgB,IAAIphE,MAAM,MAG1BqhE,EAAS,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,IAGEzpF,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEE0pF,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DN,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEO,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,KAGEC,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEG,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/DS,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEC,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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GAAoB,GAAfo6C,EAAGp6C,IACvBA,IAAA,GAGa,GAAXA,EAAA,OACFqvD,EAAUhV,GACHxB,EAAA,QAGLl1E,EADA8W,EAAI,EAEDA,GAAKulB,GAAS,SACfV,EAAW7kB,EACC,GAAT2/D,EAAG3/D,IAAWA,GAAKulB,KACtBvlB,EAAA,IAEAoT,EAAWpT,EAAI6kB,EAAA,GACfzR,GApCI,GAoCa,CACnBlqB,EAAMkqB,GAAY,MACb,IAAIquD,EAAW,EAAGA,GAAYv4E,IAAOu4E,EACxCmT,EAAUtoE,GACZ8G,GAAsB,GAExBxF,EAAM,MAAQ+xD,EAAG3/D,GACjB40E,EAAU5nF,GAAMomB,GAAY,GAAKitD,EAASzyD,KAC1CgnE,EAAU7V,EAAQnxD,IAClB5N,GAAA,QA5CQ,IA8CNulB,GACFqvD,EAAUhV,GAELxB,CAAA,UA8HAkc,EAAW5rF,GAClBA,EAAUlE,KAAKwd,IAAIxd,KAAKyd,IAAIvZ,EAAS,GAAI,KAErCkf,GAAkBlf,IAAA,SA1qBCA,GAAA,QACnBuwB,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,IAGOm/C,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB4B,EAAIJ,GAAQ3gD,EAAIm/C,GAAK1vE,EAAK,IAAM,KACpCsxE,EAAIx1E,KAAKwd,IAAIxd,KAAKyd,IAAI+3D,EAAG,GAAI,KAC7B1zD,EAAO6nE,EAAO/V,IAAM4B,CAAA,SAElBhzE,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,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j/C,EACpCnC,GAAK,MAAQvwB,EAAE0kB,EACf6L,GAAK,MAAQvwB,EAAE2xE,EACfphD,GAAK,MAAQvwB,EAAE0lH,GAAA,IACTpnH,IAAOiyB,GAAK3xB,GAAKsyE,EAAK3gD,GAAK0gD,GAAKjxE,EAAE2lH,GAAMp1F,GAAK,MAAQvwB,EAAEwmF,EAAA,MAE5Dj2D,EAAI,EACTvwB,EAAIuwB,EAAI,EAAI,UAGZ,GAAKvwB,GAAA,MACD0vE,GAAKA,EAAEK,KAAO/vE,EAAIglG,GAAG1zB,IADVtxE,CAAA,KAIjB8kG,GAAK,GACP1Z,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEF2Z,GAAK,GACL6f,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,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,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,GAEJ94B,EAAE,aAAc,iBAChBhsF,EAAKg3H,WAAa,kBACT,YAETh3H,EAAKi3H,WAAa,SAASj3H,GAAA,OAClBA,CAAA,EAETA,EAAKk3H,WAAa,SAASl3H,EAAGuwB,EAAGm/C,GAAA,OACxBn/C,EAAEm/C,EAAI,IAEf1vE,EAAKm3H,WAAa,SAASn3H,EAAGuwB,EAAGm/C,GAAA,OACxBn/C,EAAEm/C,EAAI,IAEf1vE,EAAKo3H,WAAa,SAASp3H,EAAGuwB,EAAGm/C,GAAA,OACxBn/C,EAAEm/C,EAAI,IAEf1vE,EAAKq3H,WAAa,SAASr3H,EAAGuwB,EAAGm/C,GAAA,OACxB6W,EAAGA,EAAGvmF,EAAGuwB,EAAEm/C,EAAI,IAAKn/C,EAAEm/C,EAAI,KAEnC1vE,EAAKs3H,WAAa,SAASt3H,EAAGuwB,EAAGm/C,GAAA,OACxB6W,EAAGvmF,EAAGuwB,EAAEm/C,EAAI,KAErB1vE,EAAKu3H,WAAa,SAASv3H,EAAGuwB,EAAGm/C,GAAA,OACxB6W,EAAGvmF,EAAGuwB,EAAEm/C,EAAI,KAErB1vE,EAAKw3H,W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GAAI7B,GACJrJ,GAAK,EACLzC,GAAK,EACL4C,GAAK,EACL3C,GAAK,EACLN,GAAK,EACLO,GAAK,EACL8C,GAAK,EACL3F,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACLkH,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,IACpEpD,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,KAEFkD,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFj1C,GAAK,EACL87C,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,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,KAEFF,GAAK,KACLM,GAAK,CACH,CAAC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AK,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,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EACA1yB,EAAOhE,EAASgE,EAAMuwB,EAAmBm/C,GACzCh9C,EAAuB4+C,EACvBtxE,EAAO4pE,EAAc5pE,EAAMuwB,GAAA,OAxC7Bjf,EA/XQ,EAgYRtR,EAAOhE,EAASgE,EAAMuwB,EAAmBm/C,QAdzCp+D,EAAO4N,EAjXC,EADA,EAmXRlf,EAAOhE,EAASgE,EAAMuwB,EAAmBm/C,GAAA,OAuDpC1vE,CAAA,OAcJmkI,eAAep7B,WAAa,SAAS/oG,GACpCA,IACF1B,EAAc0B,EAAQwkI,cACtBtzD,EAAelxE,EAAQykI,eACvBvlH,EAAWlf,EAAQ0kI,WACnB9mH,EAAY5d,EAAQ2kI,YACpBjyG,EAAuB1yB,EAAQ4kI,oBAAA,OAI9BT,eAAep7B,WAAW/oG,GACxBrD,KAAKwnI,cAAA,MAGV5zG,EA5jFmB,CACrB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,KACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,KACA,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,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,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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,IACA,IACA,IACA,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,KA8jBEm/C,EAAa,IAAI1vE,EAAMmkI,eAAe,CAAEK,eAAA,IAoC5CxkI,EAAMu1F,IAAIiQ,OAAOjnG,KAAK,CAAC,kBAlCE,SAASyB,GAAA,IAC5BuwB,EAAOvwB,EAAKkzB,KAGZo+C,GAFItxE,EAAKhE,EACLgE,EAAK0kB,EACC1kB,EAAKgG,SAAW,CAAC,GAG3B1H,GAFQ0B,EAAK29F,MACNrsB,EAAQitB,KACL,OAEdjtB,EAAQkzD,cAC2B,kBAA1BlzD,EAAQkzD,eAA8BlzD,EAAQkzD,cACvD90D,EAAWq5B,WAAWz3B,GAEuB,mBAAzCnzE,OAAO5B,UAAUmJ,SAAS/B,KAAK4sB,GAA4B,KACzDrR,EAAI,MACR5gB,EAAU,GACL4gB,EAAI,EAAGA,EAAIqR,EAAK10B,OAAQqjB,GAAK,EACgB,mBAA5C/gB,OAAO5B,UAAUmJ,SAAS/B,KAAK4sB,EAAKrR,IACtC5gB,EAAQC,KAAK,CACXmxE,EAAW60D,cAAch0G,EAAKrR,GAAG,IACjCqR,EAAKrR,GAAG,GACRqR,EAAKrR,GAAG,KAGV5gB,EAAQC,KAAK,CAACmxE,EAAW60D,cAAch0G,EAAKrR,MAGhDlf,EAAKkzB,KAAO50B,CAAA,MAEZ0B,EAAKkzB,KAAOw8C,EAAW60D,cAAch0G,GAEvCm/C,EAAWq5B,WAAW,CAAEy7B,eAAA,GAAe,IArnF3C,CAynFGh9C,ICpnFHA,GAAM+N,IAAIsrC,QAAW,oBAaV7gI,EAAQA,GAAA,IACXuwB,EAAA,QACCozG,QAAU3jI,EACfuwB,EAAO5zB,KAAK60G,SAAW,IAAIr5D,GAAKn4C,GAAA,KAC3BwxG,SAASr+B,IAAM,EACO,SAAvB5iD,EAAKs0G,WAAW,SACZ,IAAIzpI,MAAM,uBAEhBm1B,EAAK4iD,IAAM,OACN1vE,QAAA,KACA0/H,OAAS,IAAIprC,GAAOp7F,MAAAA,KACpBmoI,aAAA,QAnBT9kI,EAAQ+uC,KAAO,SAASxe,GAAA,OACf,IAAIvwB,EAAQuwB,EAAA,EAyBrBvwB,EAAQzD,UAAUkH,MAAQ,uBACnBshI,UAAY,IAAI/vC,GAAUr4F,KAAK60G,UAAA,KAC/Br7B,KAAO,IAAI2gB,GAAUn6F,MAAAA,KACrBrB,KAAO,IAAI4/F,GAAUv+F,MAAAA,KACrBmnI,KAAO,IAAI3sC,GAAUx6F,MAAAA,KACrBumI,UAAY,CAAC,EAAD,KACZ8B,KAAO,IAAI/pC,GAAUt+F,MAAAA,KACrBsoI,KAAO,IAAIvtC,GAAU/6F,MAAAA,KACrBinI,KAAO,IAAI5oC,GAAUr+F,MAAAA,KACrBi5E,KAAO,IAAIyhB,GAAU16F,MAAAA,KACrBuoI,IAAM,IAAI30D,GAAS5zE,MAAAA,KACnBwoI,KAAO,IAAIrtC,GAAUn7F,MAAAA,KACrByoI,KAAO,IAAI/P,GAAU14H,MAAAA,KACrB6mI,SACF7mI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAI1B,UAAa7mI,KAAKqoI,KAAKxB,SAAA,KACjDC,SACF9mI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAIzB,UAAa9mI,KAAKqoI,KAAKvB,SAAA,KACjD4B,QAAW1oI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAIG,SAAY1oI,KAAKqoI,KAAKK,QAC1D1oI,KAAK0mI,KAAO,CAClB1mI,KAAKw5E,KAAKmvD,KACV3oI,KAAKw5E,KAAKovD,KACV5oI,KAAKw5E,KAAKqvD,KACV7oI,KAAKw5E,KAAKsvD,KAAA,EAOdzlI,EAAQzD,UAAUuoI,YAAc,eAC1B9kI,EAAGuwB,EAAIm/C,EAAK4B,EAAKhzE,EAAA,QAChBg/F,YAAc,IAAS3gG,KAAKw5E,KAAK0tD,WAAA,KACjCR,KAAO,eACN9yG,EAAIm/C,EAAM4B,EAAMhzE,EAAA,IAEpBA,EAAW,GACNiyB,EAAK,EAAGm/C,GAFb4B,EAAO30E,KAAK0mI,MAEaxnI,OAAQ00B,EAAKm/C,EAAMn/C,IAC1CvwB,EAAIsxE,EAAK/gD,GACTjyB,EAASC,KAAKzC,KAAK8Y,MAAM5U,EAAIrD,KAAK2gG,cAAA,OAE7Bh/F,CAAA,EACPqF,KAAKhH,MAAAA,KACF2mI,MAAQ,EACT3mI,KAAKi5E,KAAK94E,QAGZ4yE,EAAY,KAFZ4B,EAAM30E,KAAKi5E,KAAK8vD,iBAGN,OAFVn1G,EAAK+gD,GAAO,OAGV/gD,IAAuB,GAAV,MAALA,KAAA,KAELgzG,cAAqBhzG,EAAK,IAAMm/C,IAAA,KAEhC6zD,YAAc,OAEhBC,SAAW1nI,KAAK8Y,MAAMjY,KAAK6mI,SAAW7mI,KAAK2gG,aAAA,KAC3CmmC,SAAW3nI,KAAK8Y,MAAMjY,KAAK8mI,SAAW9mI,KAAK2gG,aAAA,KAC3C+nC,QAAUvpI,KAAK8Y,MAAMjY,KAAK0oI,QAAU1oI,KAAK2gG,aAAA,KACzComC,UAAa/mI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAIxB,WAAc/mI,KAAK6mI,SAAA,KAC5DmC,QAAWhpI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAIS,SAAY,OACnDC,aAAgBjpI,KAAKuoI,IAAIpoI,QAAUH,KAAKuoI,IAAIU,aAAgB,IAAM,OAClEC,QAC2B,KAA7BvnI,EAAO3B,KAAKipI,cACJ,IAATtnI,GACS,IAATA,GACS,IAATA,GACS,IAATA,GACS,IAATA,EAAA,KACGwnI,SAAgC,KAArBnpI,KAAKipI,YAAA,KAChB3oC,MAAQ,EACTtgG,KAAKi5E,KAAKmwD,eAAA,KACP9oC,OAAS,GAEZtgG,KAAKkpI,UAAA,KACF5oC,OAAS,GAEZtgG,KAAKmpI,WAAA,KACF7oC,OAAS,GAES,IAArBtgG,KAAK4mI,cAAA,KACFtmC,OAAS,SAEXA,OAAS,IACTtgG,KAAKmnI,KAAKC,QAAA,MACP,IAAI3oI,MAAM,6BAGpB4E,EAAQzD,UAAU2jI,iBAAmB,SAASlgI,GAAA,IACxCuwB,EAAA,OAE6B,OAA7BA,EAAO5zB,KAAKmnI,KAAKC,SAAmBxzG,EAAKyzG,QAAQhkI,QAAA,IACnD,GAGJA,EAAQzD,UAAU0jI,aAAe,SAASjgI,GAAA,IACpCuwB,EAAA,OACJA,EAAQ,IAAS5zB,KAAKw5E,KAAK0tD,WACpBlnI,KAAKinI,KAAKoC,SAAShmI,GAAOimI,QAAU11G,CAAA,EAE7CvwB,EAAQzD,UAAUyjI,cAAgB,SAAShgI,EAAQuwB,EAAMm/C,GAAA,IACnD4B,EAAUhzE,EAAU4gB,EAAOgyD,EAAA,IAE/BhyD,EAAQ,EAEN5gB,EAAI,EAAG4yE,GAHTlxE,EAAS,GAAKA,GAGSnE,OACrB,GAAKq1E,EAAO5yE,EAAI4yE,EAAO5yE,EAAI4yE,EAC3B5yE,EAAI,GAAK4yE,IAAS5yE,IAAMA,EAExBgzE,EAAWtxE,EAAOqlF,WAAW/mF,GAC7B4gB,GACEviB,KAAKsjI,aAAatjI,KAAKujI,iBAAiB5uD,IACtC5B,GAAa,IAAOn/C,IAAS,SAG5BrR,GADCqR,EAAO,MAGjBvwB,EAAQzD,UAAU0lG,WAAa,SAASjiG,EAAMuwB,GAAA,IACxCm/C,EAAA,OACc,MAAdn/C,IACFA,GAAA,GAEFm/C,EAAMn/C,EAAa5zB,KAAK0oI,QAAU,GACzB1oI,KAAK6mI,SAAW9zD,EAAM/yE,KAAK8mI,UAAY,IAAQzjI,CAAA,EAEnDA,CAAA,CA1JY,GAiKrB,IA+RI6kF,GA/RA1sC,GAAQ,oBACDn4C,EAAKA,GAAA,KACP0H,KAAe,MAAR1H,EAAeA,EAAO,QAC7BmzE,IAAM,OACNt3E,OAASc,KAAK+K,KAAK7L,MAAA,QAE1BmE,EAAKzD,UAAU2pI,SAAW,kBACjBvpI,KAAK+K,KAAK/K,KAAKw2E,MAAA,EAExBnzE,EAAKzD,UAAU4pI,UAAY,SAASnmI,GAAA,OAC1BrD,KAAK+K,KAAK/K,KAAKw2E,OAASnzE,CAAA,EAElCA,EAAKzD,UAAU+jH,WAAa,kBAEH,SAAlB3jH,KAAKupI,YACLvpI,KAAKupI,YAAc,KACnBvpI,KAAKupI,YAAc,GACnBvpI,KAAKupI,UAAA,EAGZlmI,EAAKzD,UAAU6pI,YAAc,SAASpmI,GAAA,YAC/BmmI,UAAWnmI,IAAQ,GAAM,UACzBmmI,UAAWnmI,GAAO,GAAM,UACxBmmI,UAAWnmI,GAAO,EAAK,KACrBrD,KAAKwpI,UAAgB,IAANnmI,EAAA,EAExBA,EAAKzD,UAAU8pI,UAAY,eACrBrmI,EAAA,OACJA,EAAMrD,KAAK2jH,eACA,WACFtgH,EAAM,WAENA,CAAA,EAGXA,EAAKzD,UAAU+pI,WAAa,SAAStmI,GAAA,OAC/BA,EAAM,IACRA,GAAO,YAEFrD,KAAKypI,YAAYpmI,EAAA,EAE1BA,EAAKzD,UAAU0kH,WAAa,kBAErBtkH,KAAKupI,YAAc,EACnBvpI,KAAKupI,UAAA,EAGZlmI,EAAKzD,UAAUgqI,YAAc,SAASvmI,GAAA,YAC/BmmI,UAAWnmI,GAAO,EAAK,KACrBrD,KAAKwpI,UAAgB,IAANnmI,EAAA,EAExBA,EAAKzD,UAAUiqI,UAAY,eACrBxmI,EAAA,OACJA,EAAMrD,KAAKskH,eACA,MACFjhH,EAAM,MAENA,CAAA,EAGXA,EAAKzD,UAAUkqI,WAAa,SAASzmI,GAAA,OAC/BA,EAAM,IACRA,GAAO,OAEFrD,KAAK4pI,YAAYvmI,EAAA,EAE1BA,EAAKzD,UAAUsoI,WAAa,SAAS7kI,GAAA,IAC/BuwB,EAAGm/C,EAAA,IACPA,EAAM,GAEJn/C,EAAI,EACJ,GAAKvwB,EAASuwB,EAAIvwB,EAASuwB,EAAIvwB,EAC/BuwB,EAAI,GAAKvwB,IAAWuwB,IAAMA,EAE1Bm/C,EAAIn/C,GAAKj0B,OAAOgwE,aAAa3vE,KAAKupI,YAAA,OAE7Bx2D,EAAIrmE,KAAK,KAElBrJ,EAAKzD,UAAUmqI,YAAc,SAAS1mI,GAAA,IAChCuwB,EAAGm/C,EAAM4B,EAAA,IACbA,EAAW,GAET/gD,EAAI,EAAGm/C,EAAO1vE,EAAInE,OAClB,GAAK6zE,EAAOn/C,EAAIm/C,EAAOn/C,EAAIm/C,EAC3Bn/C,EAAI,GAAKm/C,IAASn/C,IAAMA,EAExB+gD,EAAS/yE,KAAK5B,KAAKwpI,UAAUnmI,EAAIqlF,WAAW90D,KAAA,OAEvC+gD,CAAA,EAMTtxE,EAAKzD,UAAUoqI,UAAY,kBAClBhqI,KAAK6pI,WAAA,EAEdxmI,EAAKzD,UAAUqqI,WAAa,SAAS5mI,GAAA,OAC5BrD,KAAK8pI,WAAWzmI,EAAA,EAEzBA,EAAKzD,UAAUsqI,aAAe,eACxB7mI,EAAIuwB,EAAIm/C,EAAI4B,EAAIhzE,EAAI4gB,EAAIgyD,EAAItzD,EAAA,OAChC5d,EAAKrD,KAAKupI,WACV31G,EAAK5zB,KAAKupI,WACVx2D,EAAK/yE,KAAKupI,WACV50D,EAAK30E,KAAKupI,WACV5nI,EAAK3B,KAAKupI,WACVhnH,EAAKviB,KAAKupI,WACVh1D,EAAKv0E,KAAKupI,WACVtoH,EAAKjhB,KAAKupI,WACD,IAALlmI,GAWC,GATc,mBAAR,IAALA,GACc,iBAAR,IAALuwB,GACa,eAAR,IAALm/C,GACa,YAAR,IAAL4B,GACa,UAAR,IAALhzE,GACa,OAAR,IAAL4gB,GACa,KAAR,IAALgyD,IACK,IAALtzD,GACD,GAKC,kBAAL5d,EACK,gBAALuwB,EACK,cAALm/C,EACK,WAAL4B,EACK,SAALhzE,EACK,MAAL4gB,EACK,IAALgyD,EACAtzD,CAAA,EAGJ5d,EAAKzD,UAAUuqI,cAAgB,SAAS9mI,GAAA,IAClCuwB,EAAMm/C,EAAA,OACVn/C,EAAOz0B,KAAKunB,MAAMrjB,EAAM,YACxB0vE,EAAY,WAAN1vE,EAAA,KACDmmI,UAAW51G,GAAQ,GAAM,UACzB41G,UAAW51G,GAAQ,GAAM,UACzB41G,UAAW51G,GAAQ,EAAK,UACxB41G,UAAiB,IAAP51G,GAAA,KACV41G,UAAWz2D,GAAO,GAAM,UACxBy2D,UAAWz2D,GAAO,GAAM,UACxBy2D,UAAWz2D,GAAO,EAAK,KACrB/yE,KAAKwpI,UAAgB,IAANz2D,EAAA,EAExB1vE,EAAKzD,UAAUwqI,QAAU,kBAChBpqI,KAAK0pI,WAAA,EAEdrmI,EAAKzD,UAAUyqI,SAAW,SAAShnI,GAAA,OAC1BrD,KAAK2pI,WAAWtmI,EAAA,EAKzBA,EAAKzD,UAAUukH,KAAO,SAAS9gH,GAAA,IACzBuwB,EAAKm/C,EAAA,IACTn/C,EAAM,GAEJm/C,EAAI,EACJ,GAAK1vE,EAAQ0vE,EAAI1vE,EAAQ0vE,EAAI1vE,EAC7B0vE,EAAI,GAAK1vE,IAAU0vE,IAAMA,EAEzBn/C,EAAIhyB,KAAK5B,KAAKupI,YAAA,OAET31G,CAAA,EAETvwB,EAAKzD,UAAUkyF,MAAQ,SAASzuF,GAAA,IAC1BuwB,EAAMm/C,EAAG4B,EAAMhzE,EAAA,IACnBA,EAAW,GACNoxE,EAAI,EAAG4B,EAAOtxE,EAAMnE,OAAQ6zE,EAAI4B,EAAM5B,IACzCn/C,EAAOvwB,EAAM0vE,GACbpxE,EAASC,KAAK5B,KAAKwpI,UAAU51G,IAAA,OAExBjyB,CAAA,EAEF0B,CAAA,CAlLG,GAqLRg1F,GAAa,eACXh1F,EAAA,SAMKuwB,EAAUvwB,GAAA,IACbuwB,EAAOm/C,EAAG4B,EAAA,SACT21D,WAAajnI,EAAK+mI,UAAA,KAClBG,WAAalnI,EAAK2mI,YAAA,KAClBQ,YAAcnnI,EAAK2mI,YAAA,KACnBS,cAAgBpnI,EAAK2mI,YAAA,KACrBU,WAAarnI,EAAK2mI,YAAA,KAClBW,OAAS,CAAC,EAEb53D,EAAI,EAAG4B,EAAO30E,KAAKuqI,WACnB,GAAK51D,EAAO5B,EAAI4B,EAAO5B,EAAI4B,EAC3B5B,EAAI,GAAK4B,IAAS5B,IAAMA,EAExBn/C,EAAQ,CACNg3G,IAAKvnI,EAAK6kI,WAAW,GACrB2C,SAAUxnI,EAAK+mI,UACfzvC,OAAQt3F,EAAK+mI,UACblrI,OAAQmE,EAAK+mI,WAAA,KAEVO,OAAO/2G,EAAMg3G,KAAOh3G,CAAA,QAO7BA,EAAUh0B,UAAU4mH,OAAS,SAAS5yF,GAAA,IAChCm/C,EACF4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EACAC,EAEAnK,EACAsB,EACA/yE,EACAqyE,EAAA,IAgBGA,KAfLU,EAAaxzE,OAAOC,KAAKmyB,GAAQ10B,OACjC+hB,EAAO9hB,KAAKG,IAAI,GAChBu+E,EAAwD,GAA1C1+E,KAAKunB,MAAMvnB,KAAKG,IAAI01E,GAAc/zD,GAChDsB,EAAgBpjB,KAAKunB,MAAMm3D,EAAc58D,GACzC28D,EAA0B,GAAb5I,EAAkB6I,GAC/BlJ,EAAY,IAAIn5B,IACN6uF,SAASrqI,KAAKsqI,YACxB31D,EAAUs1D,WAAWj1D,GACrBL,EAAUs1D,WAAWpsD,GACrBlJ,EAAUs1D,WAAW1nH,GACrBoyD,EAAUs1D,WAAWrsD,GACrBj8E,EAA+B,GAAbqzE,EAClBj/C,EAAS4+C,EAAU6B,IAAM70E,EACzB4yE,EAAa,KACbtyE,EAAY,GACA2xB,EAAA,IACV8/C,EAAQ9/C,EAAO0gD,GACfK,EAAUo1D,YAAYz1D,GACtBK,EAAU01D,SAAShnI,EAASqwE,IAC5BiB,EAAU01D,SAASt0G,GACnB4+C,EAAU01D,SAAS32D,EAAMx0E,QACzB+C,EAAYA,EAAUiuE,OAAOwD,GACjB,SAARY,IACFC,EAAax+C,GAEfA,GAAU29C,EAAMx0E,OACT62B,EAAS,GACd9zB,EAAUL,KAAK,GACfm0B,IAAA,OAGJ4+C,EAAUmd,MAAM7vF,GAEhB8wE,EAAa,WADP1vE,EAASsxE,EAAU5pE,MAEzB4pE,EAAU6B,IAAMjC,EAAa,EAC7BI,EAAU80D,YAAY12D,GACf4B,EAAU5pE,IAAA,EAMnB1H,EAAW,SAASA,GAAA,IACduwB,EAAGm/C,EAAK4B,EAAKhzE,EAAA,IACjB0B,EAAOg4F,GAAQr0F,KAAK3D,GACbA,EAAKnE,OAAS,GACnBmE,EAAKzB,KAAK,OAEZ+yE,EAAM,IAAIn5B,GAAKn4C,GACf0vE,EAAM,EACDn/C,EAAI,EAAGjyB,EAAO0B,EAAKnE,OAAQ00B,EAAIjyB,EAAMiyB,EAAIA,GAAK,EACjDm/C,GAAO4B,EAAIgvC,aAAA,OAEA,WAAN5wC,CAAA,EAEFn/C,CAAA,CAvGQ,GA2GfmlE,GAAY,CAAC,EAAEhyF,eACfkzF,GAAY,SAAS52F,EAAOuwB,GAAA,IACrB,IAAIm/C,KAAOn/C,EACVmlE,GAAU/xF,KAAK4sB,EAAQm/C,KAAM1vE,EAAM0vE,GAAOn/C,EAAOm/C,IAAA,SAG9C4B,IAAA,KACFr0E,YAAc+C,CAAA,QAErBsxE,EAAK/0E,UAAYg0B,EAAOh0B,UACxByD,EAAMzD,UAAY,IAAI+0E,EACtBtxE,EAAMynI,UAAYl3G,EAAOh0B,UAClByD,CAAA,EAOX6kF,GAAS,oBACE7kF,EAAMA,GAAA,IACTuwB,EAAA,KACCm3G,KAAO1nI,EACZuwB,EAAO5zB,KAAK+qI,KAAK3C,UAAUuC,OAAO3qI,KAAK4qI,KAAA,KAClCzqI,SAAWyzB,EACZA,IAAA,KACI+mE,OAAS/mE,EAAK+mE,OAAU36F,KAAKd,OAAS00B,EAAK10B,OAAA,KAC5C4H,MAAM9G,KAAK+qI,KAAKl2B,UAAA,QAGzBxxG,EAAMzD,UAAUkH,MAAQ,aACxBzD,EAAMzD,UAAU4mH,OAAS,aACzBnjH,EAAMzD,UAAUgrB,IAAM,kBACf5qB,KAAKG,QAAA,KAGL4qI,KAAKl2B,SAASr+B,IAAMx2E,KAAK26F,OACvB36F,KAAK+qI,KAAKl2B,SAASsP,KAAKnkH,KAAKd,SAH3B,MAKJmE,CAAA,CApBA,GAuBT,IAAI82F,GAAa,SAAS92F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EAiDTs0D,IA5CDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,OACnCA,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX4C,QAAUl6F,EAAK+mI,UAAA,KACfY,SAAW3nI,EAAK+mI,UAAA,KAChBa,mBAAqB5nI,EAAK+mI,UAAA,KAC1Bc,YAAc7nI,EAAK+mI,UAAA,KACnB9pC,MAAQj9F,EAAK2mI,YAAA,KACb9C,WAAa7jI,EAAK2mI,YAAA,KAClBmB,QAAU9nI,EAAK6mI,eAAA,KACfkB,SAAW/nI,EAAK6mI,eAAA,KAChBvB,KAAOtlI,EAAK2mI,YAAA,KACZpB,KAAOvlI,EAAK2mI,YAAA,KACZnB,KAAOxlI,EAAK2mI,YAAA,KACZlB,KAAOzlI,EAAK2mI,YAAA,KACZqB,SAAWhoI,EAAK2mI,YAAA,KAChBsB,cAAgBjoI,EAAK2mI,YAAA,KACrBuB,kBAAoBloI,EAAK2mI,YAAA,KACzBwB,iBAAmBnoI,EAAK2mI,YACrBhqI,KAAKyrI,gBAAkBpoI,EAAK2mI,WAAA,EAEtCp2G,EAAUh0B,UAAU4mH,OAAS,SAASnjH,GAAA,IAChCuwB,EAAA,OACJA,EAAQ,IAAI4nB,IACN6uF,SAASrqI,KAAKu9F,SACpB3pE,EAAMy2G,SAASrqI,KAAKgrI,UACpBp3G,EAAMy2G,SAASrqI,KAAKirI,oBACpBr3G,EAAMy2G,SAASrqI,KAAKkrI,aACpBt3G,EAAMq2G,WAAWjqI,KAAKsgG,OACtB1sE,EAAMq2G,WAAWjqI,KAAKknI,YACtBtzG,EAAMu2G,cAAcnqI,KAAKmrI,SACzBv3G,EAAMu2G,cAAcnqI,KAAKorI,UACzBx3G,EAAMq2G,WAAWjqI,KAAK2oI,MACtB/0G,EAAMq2G,WAAWjqI,KAAK4oI,MACtBh1G,EAAMq2G,WAAWjqI,KAAK6oI,MACtBj1G,EAAMq2G,WAAWjqI,KAAK8oI,MACtBl1G,EAAMq2G,WAAWjqI,KAAKqrI,UACtBz3G,EAAMq2G,WAAWjqI,KAAKsrI,eACtB13G,EAAMq2G,WAAWjqI,KAAKurI,mBACtB33G,EAAMq2G,WAAW5mI,GACjBuwB,EAAMq2G,WAAWjqI,KAAKyrI,iBACf73G,EAAM7oB,IAAA,EAER6oB,CAAA,CAjDQ,GAwDbwqE,GAAa,oBACN/6F,EAAUA,EAAMuwB,GAAA,IACnBm/C,EACF4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EAEAC,EACAnK,EACAsB,EACA/yE,EACAqyE,EACAp6C,EACAr8B,EACA8W,EACA6kB,EAAA,YACGkyG,WAAaroI,EAAKihH,aAAA,KAClBqnB,WAAatoI,EAAK2mI,YAAA,KAClBrvC,OAAS/mE,EAASvwB,EAAK+mI,UAC5BvsD,EAAax6E,EAAKmzE,IAClBnzE,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX3iF,OAAS3U,EAAKihH,aAAA,KACdplH,OAASmE,EAAKihH,aAAA,KACd1mE,SAAWv6C,EAAKihH,aAAA,KAChBsnB,UACkB,IAApB5rI,KAAK0rI,YAAwC,IAApB1rI,KAAK2rI,YAAoC,IAAhB3rI,KAAKgY,QACnC,IAApBhY,KAAK0rI,YAAoC,IAAhB1rI,KAAKgY,OAAA,KAC5BqvH,QAAU,CAAC,EACRrnI,KAAKgY,QAAA,KACN,MACEiJ,EAAI,EAAGA,EAAI,MAAOA,EAAA,KAChBomH,QAAQpmH,GAAK5d,EAAKkmI,WAAA,WAGtB,MACHv0D,EAAa3xE,EAAKihH,aAClB5wC,EAAWsB,EAAa,EACxB3xE,EAAKmzE,KAAO,EACZ70E,EAAW,eACLiyB,EAAIm/C,EAAA,IACRA,EAAW,GAET9xD,EAAI2S,EAAK,EACT,GAAK8/C,EAAW9/C,EAAK8/C,EAAW9/C,EAAK8/C,EACrCzyD,EAAI,GAAKyyD,IAAa9/C,IAAOA,EAE7Bm/C,EAASnxE,KAAKyB,EAAKihH,cAAA,OAEdvxC,CAAA,CAVE,GAYX1vE,EAAKmzE,KAAO,EACZlC,EAAa,eACP1gD,EAAIm/C,EAAA,IACRA,EAAW,GAET9xD,EAAI2S,EAAK,EACT,GAAK8/C,EAAW9/C,EAAK8/C,EAAW9/C,EAAK8/C,EACrCzyD,EAAI,GAAKyyD,IAAa9/C,IAAOA,EAE7Bm/C,EAASnxE,KAAKyB,EAAKihH,cAAA,OAEdvxC,CAAA,CAVI,GAYbh9C,EAAW,eACLnC,EAAIm/C,EAAA,IACRA,EAAW,GAET9xD,EAAI2S,EAAK,EACT,GAAK8/C,EAAW9/C,EAAK8/C,EAAW9/C,EAAK8/C,EACrCzyD,EAAI,GAAKyyD,IAAa9/C,IAAOA,EAE7Bm/C,EAASnxE,KAAKyB,EAAKihH,cAAA,OAEdvxC,CAAA,CAVE,GAYX6K,EAAiB,eACXhqD,EAAIm/C,EAAA,IACRA,EAAW,GAET9xD,EAAI2S,EAAK,EACT,GAAK8/C,EAAW9/C,EAAK8/C,EAAW9/C,EAAK8/C,EACrCzyD,EAAI,GAAKyyD,IAAa9/C,IAAOA,EAE7Bm/C,EAASnxE,KAAKyB,EAAKihH,cAAA,OAEdvxC,CAAA,CAVQ,GAYjB4B,GAAS30E,KAAKd,OAASmE,EAAKmzE,IAAMx2E,KAAK26F,QAAU,EACjDpmB,EAAY,eACN3gD,EAAIm/C,EAAA,IACRA,EAAW,GAET9xD,EAAI2S,EAAK,EACT,GAAK+gD,EAAQ/gD,EAAK+gD,EAAQ/gD,EAAK+gD,EAC/B1zD,EAAI,GAAK0zD,IAAU/gD,IAAOA,EAE1Bm/C,EAASnxE,KAAKyB,EAAKihH,cAAA,OAEdvxC,CAAA,CAVG,GAYP9xD,EAAIpjB,EAAK,EAAG27B,EAAO73B,EAAQzC,OAAQrB,EAAK27B,EAAMvY,IAAMpjB,EAAA,IACvDq8B,EAAOv4B,EAAQsf,GAGb8xD,EAAOp+D,EAFT1S,EAAQqyE,EAAUrzD,GAGhBhf,GAASi4B,EAAOvlB,GAAMulB,EAAOvlB,GAAMulB,EACnC64C,EAAO9wE,GAASi4B,IAASvlB,IAAOA,EAEP,IAArBipE,EAAc38D,GAChBsB,EAAUwwD,EAAOh9C,EAAQ9U,GAIT,KADhBsB,EAAUgyD,EADFqJ,EAAc38D,GAAK,GAAK8xD,EAAO9wE,IAAUyxE,EAAWzyD,KAC/B,KAE3BsB,GAAWwT,EAAQ9U,IAAA,KAGlBomH,QAAQt0D,GAAkB,MAAVxwD,EAI7Blf,EAAKmzE,IAAMqH,CAAA,QAEbx6E,EAAUmjH,OAAS,SAASnjH,EAASuwB,GAAA,IAC/Bm/C,EACF4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EACAC,EACAnK,EACAsB,EACA/yE,EACAqyE,EACAp6C,EACAr8B,EACA8W,EACA6kB,EACAzR,EACAquD,EACAnJ,EACA4b,EACAC,EACAzpF,EACA0pF,EACAN,EACAO,EACAC,EACAG,EACAS,EACAC,EACA5nE,EACAqnE,EACAe,EACApd,EACA2d,EACAoE,EACAC,EACAG,EACAE,EACA3F,EACA5hE,EACAynE,EACAE,EACAC,EACAC,EACAE,EAAA,OACF3G,EAAW,IAAI5tC,GACfj5B,EAAQ/gB,OAAOC,KAAK4B,GAAS0xB,MAAK,SAAS1xB,EAAGuwB,GAAA,OACrCvwB,EAAIuwB,CAAA,IAELA,GAAA,IACD,eACH0gD,EAAK,EACLp6C,EAAW,eACL72B,EAAW,OACVpB,EAAI,EAAGA,EAAI,MAAOA,EACrBoB,EAASzB,KAAK,UAETyB,CAAA,CALE,GAOXsR,EAAM,GACD,GAELhT,EAAU,CAAC,EACNkoF,EAAK,EAAGS,EAAO/nE,EAAMrjB,OAAQ2qF,EAAKS,EAAMT,IAEP,MAAhCl1E,EAAKg7E,EAAQtsF,EADjBsxE,EAAOpyD,EAAMsnE,OAEXl1E,EAAIg7E,KAAWrb,GAEjB3yE,EAAQgzE,GAAQ,CACdk3D,IAAKxoI,EAAQsxE,GACbm3D,IAAKn3H,EAAItR,EAAQsxE,KAEnBz6C,EAAQy6C,GAAQhgE,EAAItR,EAAQsxE,IAAA,OAE9ByU,EAASwgD,YAAY,GACrBxgD,EAASwgD,YAAY,GACrBxgD,EAASqgD,YAAY,IACrBrgD,EAASwgD,YAAY,GACrBxgD,EAASwgD,YAAY,KACrBxgD,EAASwgD,YAAY,GACrBxgD,EAAS0I,MAAM53D,GACR,CACL6xG,QAASpqI,EACTqqI,SAAU5iD,EAASr+E,KACnBkhI,WAAY33D,EAAK,OAEhB,cACH0U,EAAa,GACbnL,EAAW,GACXrkD,EAAS,EACT7kB,EAAM,CAAC,EACPo+D,EAAU,CAAC,EACXl1E,EAAOk4B,EAAO,KACT+zD,EAAK,EAAG5c,EAAQ3qD,EAAMrjB,OAAQ4qF,EAAK5c,EAAO4c,IAG7B,MAAZn1E,EADJyhE,EAAM/yE,EADNsxE,EAAOpyD,EAAMunE,OAGXn1E,EAAIyhE,KAAS58C,GAEfu5C,EAAQ4B,GAAQ,CACdk3D,IAAKz1D,EACL01D,IAAKn3H,EAAIyhE,IAEX7B,EAAQ5/D,EAAIyhE,GAAOzB,EACP,MAAR92E,GAAgB02E,IAAUx+C,IACxBl4B,GACFggF,EAASj8E,KAAK/D,GAEhBmrF,EAAWpnF,KAAK+yE,GAChB5+C,EAAOw+C,GAET12E,EAAO82E,EAAA,IAEL92E,GACFggF,EAASj8E,KAAK/D,GAEhBggF,EAASj8E,KAAK,OACdonF,EAAWpnF,KAAK,OAEhBmnF,EAAwB,GADxB1pF,EAAW2pF,EAAW9pF,QAEtB4pF,EAAc,EAAI3pF,KAAK6zD,IAAI7zD,KAAKG,IAAID,GAAYF,KAAK+sI,IAAK,GAC1Dx4D,EAAgBv0E,KAAKG,IAAIwpF,EAAc,GAAK3pF,KAAK+sI,IACjDrjD,EAAa,EAAIxpF,EAAWypF,EAC5B7nE,EAAS,GACTgsD,EAAe,GACf+H,EAAW,GACN/yE,EAAIigB,EAAK,EAAG2oE,EAAQ7B,EAAW9pF,OAAQgjB,EAAK2oE,EAAO5oF,IAAMigB,EAAI,IAChEumE,EAAYO,EAAW/mF,GACvB27E,EAAUC,EAAS57E,GACD,QAAdwmF,EAAsB,CACxBxnE,EAAOrf,KAAK,GACZqrE,EAAarrE,KAAK,YAIhB6mF,GADJQ,EAAalW,EAAQ0V,GAARqjD,MACiB,UAC5B7qH,EAAOrf,KAAK,GACZqrE,EAAarrE,KAAK,GAAKozE,EAAS91E,OAASG,EAAW4C,IAElD0yE,EAAO4U,EAAKd,EACZA,GAAa7K,EAAU2L,GAAM3L,EAAU2L,GAAM3L,EAC7CjJ,EAAO8T,GAAa7K,IAAY2L,IAAOA,EAEvCvU,EAASpzE,KAAKmxE,EAAQ4B,GAARm3D,UAGhB7qH,EAAOrf,KAAKqnF,EAAaR,GACzBxb,EAAarrE,KAAK,OAGtBwnF,EAASwgD,YAAY,GACrBxgD,EAASwgD,YAAY,GACrBxgD,EAASqgD,YAAY,IACrBrgD,EAASwgD,YAAY,GACrBxgD,EAASwgD,YAAY,GAAgB,EAAXvqI,EAAiC,EAAlB21E,EAAS91E,QAClDkqF,EAASwgD,YAAY,GACrBxgD,EAASwgD,YAAY7gD,GACrBK,EAASwgD,YAAY9gD,GACrBM,EAASwgD,YAAYl2D,GACrB0V,EAASwgD,YAAY/gD,GAChB7gE,EAAK,EAAGinE,EAAQpR,EAAS3+E,OAAQ8oB,EAAKinE,EAAOjnE,IAChD2sD,EAAOkJ,EAAS71D,GAChBohE,EAASwgD,YAAYj1D,GAAA,IAEvByU,EAASwgD,YAAY,GAChBn6C,EAAK,EAAGP,EAAQlG,EAAW9pF,OAAQuwF,EAAKP,EAAOO,IAClD9a,EAAOqU,EAAWyG,GAClBrG,EAASwgD,YAAYj1D,GAAA,IAElBib,EAAK,EAAGP,EAAQpuE,EAAO/hB,OAAQ0wF,EAAKP,EAAOO,IAC9Crb,EAAQtzD,EAAO2uE,GACfxG,EAASwgD,YAAYr1D,GAAA,IAElBsb,EAAK,EAAGN,EAAQtiB,EAAa/tE,OAAQ2wF,EAAKN,EAAOM,IACpD9nE,EAASklD,EAAa4iB,GACtBzG,EAASwgD,YAAY7hH,GAAA,IAElBgoE,EAAK,EAAGnG,EAAQ5U,EAAS91E,OAAQ6wF,EAAKnG,EAAOmG,IAChDzb,EAAKU,EAAS+a,GACd3G,EAASwgD,YAAYt1D,GAAA,MAEhB,CACLy3D,QAASh5D,EACTi5D,SAAU5iD,EAASr+E,KACnBkhI,WAAYzyG,EAAS,KAItBn2B,CAAA,CA7TQ,GAgUbm3F,GAAa,SAASn3F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA6CTs0D,IAxCDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,IAC/BuwB,EAAOm/C,EAAG4B,EAAA,IACdtxE,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX4C,QAAUl6F,EAAKihH,aACpB3vC,EAAatxE,EAAKihH,aAAA,KACbqmB,OAAS,QACTvD,QAAU,KAEbr0D,EAAI,EACJ,GAAK4B,EAAa5B,EAAI4B,EAAa5B,EAAI4B,EACvC5B,EAAI,GAAK4B,IAAe5B,IAAMA,EAE9Bn/C,EAAQ,IAAIwqE,GAAU/6F,EAAMrD,KAAK26F,QAAA,KAC5BgwC,OAAO/oI,KAAKgyB,GACbA,EAAMg4G,WACY,MAAhB5rI,KAAKonI,UAAA,KACFA,QAAUxzG,GAAA,QAId,EAMTA,EAAU4yF,OAAS,SAASnjH,EAASuwB,GAAA,IAC/Bm/C,EAAQ4B,EAAA,OACI,MAAZ/gD,IACFA,EAAW,YAEbm/C,EAASqrB,GAAUooB,OAAOnjH,EAASuwB,IACnC+gD,EAAQ,IAAIn5B,IACNouF,YAAY,GAClBj1D,EAAMi1D,YAAY,GAClB72D,EAAO2kC,MAAQ/iC,EAAM5pE,KAAKmlE,OAAO6C,EAAOi5D,UACjCj5D,CAAA,EAEFn/C,CAAA,CA7CQ,GAgDb0qE,GAAa,SAASj7F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA6CTs0D,IAxCDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,OACnCA,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX4C,QAAUl6F,EAAK+mI,UAAA,KACfvD,SAAWxjI,EAAK2mI,YAAA,KAChBlD,SAAWzjI,EAAK2mI,YAAA,KAChBtB,QAAUrlI,EAAK2mI,YAAA,KACfmC,gBAAkB9oI,EAAK2mI,YAAA,KACvBoC,mBAAqB/oI,EAAK2mI,YAAA,KAC1BqC,oBAAsBhpI,EAAK2mI,YAAA,KAC3BsC,WAAajpI,EAAK2mI,YAAA,KAClBuC,eAAiBlpI,EAAK2mI,YAAA,KACtBwC,cAAgBnpI,EAAK2mI,YAAA,KACrByC,YAAcppI,EAAK2mI,YACxB3mI,EAAKmzE,KAAO,OACPk2D,iBAAmBrpI,EAAK2mI,YACrBhqI,KAAK2sI,gBAAkBtpI,EAAKihH,YAAA,EAuB/B1wF,CAAA,CA7CQ,GAgDbggD,GAAY,SAASvwE,GAAA,SAGduwB,IAAA,OACAA,EAASk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHpD05F,GAAUrmE,EAuETs0D,IAlEDt0D,EAASh0B,UAAUgrI,IAAM,OACzBh3G,EAASh0B,UAAUkH,MAAQ,SAASzD,GAAA,GAClCA,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX4C,QAAUl6F,EAAKihH,aAAA,KACfsoB,iBAAmBvpI,EAAK2mI,YAAA,KACxB6C,YAAcxpI,EAAKihH,aAAA,KACnBwoB,WAAazpI,EAAKihH,aAAA,KAClB57G,KAAOrF,EAAK2mI,YAAA,KACZ+C,gBAAkB1pI,EAAK2mI,YAAA,KACvBgD,gBAAkB3pI,EAAK2mI,YAAA,KACvBiD,kBAAoB5pI,EAAK2mI,YAAA,KACzBkD,kBAAoB7pI,EAAK2mI,YAAA,KACzBmD,kBAAoB9pI,EAAK2mI,YAAA,KACzBoD,kBAAoB/pI,EAAK2mI,YAAA,KACzBqD,oBAAsBhqI,EAAK2mI,YAAA,KAC3BsD,oBAAsBjqI,EAAK2mI,YAAA,KAC3BuD,eAAiBlqI,EAAK2mI,YAAA,KACtBwD,mBAAqBnqI,EAAK2mI,YAAA,KAC1Bf,YAAc5lI,EAAK2mI,YAAA,KACnByD,OAAU,eACT75G,EAAGm/C,EAAA,IACPA,EAAW,GACNn/C,EAAI,EAAGA,EAAI,KAAMA,EACpBm/C,EAASnxE,KAAKyB,EAAKkmI,YAAA,OAEdx2D,CAAA,CANM,QAQV26D,UAAa,eACZ95G,EAAGm/C,EAAA,IACPA,EAAW,GACNn/C,EAAI,EAAGA,EAAI,IAAKA,EACnBm/C,EAASnxE,KAAKyB,EAAK+mI,WAAA,OAEdr3D,CAAA,CANS,QAQb46D,SAAWtqI,EAAK6kI,WAAW,QAC3B/hI,UAAY9C,EAAK2mI,YAAA,KACjB4D,eAAiBvqI,EAAK2mI,YAAA,KACtB6D,cAAgBxqI,EAAK2mI,YACtBhqI,KAAKu9F,QAAU,SACZuwC,OAASzqI,EAAK2mI,YAAA,KACd+D,QAAU1qI,EAAK2mI,YAAA,KACftB,QAAUrlI,EAAK2mI,YAAA,KACfgE,UAAY3qI,EAAK2mI,YAAA,KACjBiE,WAAa5qI,EAAK2mI,YAAA,KAClBkE,cAAiB,eAChBt6G,EAAGm/C,EAAA,IACPA,EAAW,GACNn/C,EAAI,EAAGA,EAAI,EAAGA,IAAMA,EACvBm/C,EAASnxE,KAAKyB,EAAK+mI,WAAA,OAEdr3D,CAAA,CANa,GAQlB/yE,KAAKu9F,QAAU,eACZyrC,QAAU3lI,EAAK2mI,YAAA,KACfjD,UAAY1jI,EAAK2mI,YAAA,KACjBmE,YAAc9qI,EAAK2mI,YAAA,KACnBoE,UAAY/qI,EAAK2mI,YACdhqI,KAAKquI,WAAahrI,EAAK2mI,WAAA,EAO9Bp2G,CAAA,CAvEO,GA0EZ8mE,GAAa,SAASr3F,GAAA,SAIfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA2HTs0D,IAtHDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,IAC/BuwB,EAAQm/C,EAAgB4B,EAAA,OAC5BtxE,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX3iF,OAAS3U,EAAK+mI,UAAA,KACdxD,YAAcvjI,EAAK+mI,UAAA,KACnBkE,kBAAoBjrI,EAAK2mI,YAAA,KACzBuE,mBAAqBlrI,EAAK2mI,YAAA,KAC1BZ,aAAe/lI,EAAK+mI,UAAA,KACpBoE,aAAenrI,EAAK+mI,UAAA,KACpBqE,aAAeprI,EAAK+mI,UAAA,KACpBsE,YAAcrrI,EAAK+mI,UAAA,KACnBuE,YAActrI,EAAK+mI,UAChBpqI,KAAKgY,QAAA,KACN,MAsB8B,KAC9B,aAvBA,KAEA,WAGCrW,EAAA,IAFJoxE,EAAiB1vE,EAAKihH,aAAA,KACjBsqB,eAAiB,GAGpBjtI,EAAI,EACJ,GAAKoxE,EAAiBpxE,EAAIoxE,EAAiBpxE,EAAIoxE,EAC/CpxE,EAAI,GAAKoxE,IAAmBpxE,IAAMA,EAAA,KAE7BitI,eAAehtI,KAAKyB,EAAKihH,cAAA,SAE3BuqB,MAAQ,GACbl6D,EAAW,GACJtxE,EAAKmzE,IAAMx2E,KAAK26F,OAAS36F,KAAKd,QACnC00B,EAASvwB,EAAKkmI,WACd50D,EAAS/yE,KAAK5B,KAAK6uI,MAAMjtI,KAAKyB,EAAK6kI,WAAWt0G,KAAA,OAEzC+gD,EAAA,KACJ,cACH5B,EAAiB1vE,EAAKihH,aACdtkH,KAAK8uI,QAAUzrI,EAAK8gH,KAAKpxC,GAC9B,KAEA,cACK/yE,KAAKiL,IAAM,eACb2oB,EAAIm/C,EAAM4B,EAAA,IACdA,EAAY,GAEVhzE,EAAIiyB,EAAK,EAAGm/C,EAAO/yE,KAAK+qI,KAAKzC,KAAKyG,UAClC,GAAKh8D,EAAOn/C,EAAKm/C,EAAOn/C,EAAKm/C,EAC7BpxE,EAAI,GAAKoxE,IAASn/C,IAAOA,EAEzB+gD,EAAU/yE,KAAKyB,EAAKsgH,cAAA,OAEfhvC,CAAA,EACP3tE,KAAKhH,MAAA,EAkEN4zB,CAAA,CA5HQ,GAmIbgnE,GAAA,SACiBv3F,EAAKuwB,GAAA,KACjBhJ,IAAMvnB,EAAA,KACNnE,OAASmE,EAAInE,OAAA,KACbwsI,WAAa93G,EAAM83G,WAAA,KACnBC,WAAa/3G,EAAM+3G,WAAA,KACnBqD,WAAap7G,EAAMo7G,UAAA,EAKxBzwC,GAAa,SAASl7F,GAAA,SAIfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EAgITs0D,IA3HDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,IAC/BuwB,EACFm/C,EACA4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EACAC,EACAnK,EAAA,IACFrwE,EAAKmzE,IAAMx2E,KAAK26F,OAChBt3F,EAAK2mI,YACLp2G,EAAQvwB,EAAK2mI,YACbz1D,EAAelxE,EAAK2mI,YACpBj3D,EAAU,GAERpxE,EAAI,EACJ,GAAKiyB,EAAQjyB,EAAIiyB,EAAQjyB,EAAIiyB,EAC7BjyB,EAAI,GAAKiyB,IAAUjyB,IAAMA,EAEzBoxE,EAAQnxE,KAAK,CACX8pI,WAAYroI,EAAK2mI,YACjB2B,WAAYtoI,EAAK2mI,YACjBgF,WAAY3rI,EAAK2mI,YACjBiF,OAAQ5rI,EAAK2mI,YACb9qI,OAAQmE,EAAK2mI,YACbrvC,OAAQ36F,KAAK26F,OAASpmB,EAAelxE,EAAK2mI,cAAA,IAG9C/oH,EAAU,CAAC,EACNtf,EAAIi8E,EAAK,EAAGC,EAAO9K,EAAQ7zE,OAAQ0+E,EAAKC,EAAMl8E,IAAMi8E,EACvDjJ,EAAQ5B,EAAQpxE,GAChB0B,EAAKmzE,IAAM7B,EAAMgmB,OACjB5kE,EAAO1yB,EAAK6kI,WAAWvzD,EAAMz1E,QAC7BqjB,EAAO,IAAIq4E,GAAU7kE,EAAM4+C,GACY,MAAnC1zD,EAASyyD,EAAQiB,EAAMs6D,UACzBhuH,EAAQyyD,GAAS,IAEnBzyD,EAAQ0zD,EAAMs6D,QAAQrtI,KAAK2gB,GAAA,KAExB2sH,QAAUjuH,EAAA,KACVkuH,UAAYluH,EAAQ,QACpBmuH,WAAanuH,EAAQ,QACrBouH,cAAgBpuH,EAAQ,QACxBquH,gBAAkBruH,EAAQ,QAC1Bq6E,SAAWr6E,EAAQ,QACnBs8E,QAAUt8E,EAAQ,YAEhBsuH,eAAiBtuH,EAAQ,GAAG,GAAG2J,IAAIvM,QACtC,wBACA,IAEF,MAAOhb,GAAA,KACFksI,eAAiBtuH,EAAQ,GAAG,GAAG2J,IAAIvM,QACtC,wBACA,gBAGCmxH,UAAYvuH,EAAQ,QACpBwuH,aAAexuH,EAAQ,QACvByuH,SAAWzuH,EAAQ,QACnB+L,YAAc/L,EAAQ,SACtB0uH,UAAY1uH,EAAQ,SACpB2uH,YAAc3uH,EAAQ,SACtB4uH,QAAU5uH,EAAQ,SAClB6uH,WAAa7uH,EAAQ,SACrB8uH,gBAAkB9uH,EAAQ,SAC1B+uH,mBAAqB/uH,EAAQ,SAC7BgvH,eAAiBhvH,EAAQ,IACtBjhB,KAAKkwI,WAAajvH,EAAQ,KAkD7B2S,CAAA,CAjIQ,GAoIbmnE,GAAa,SAAS13F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA6CTs0D,IAxCDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,OACnCA,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACX4C,QAAUl6F,EAAK+mI,UAAA,KACf2E,UAAY1rI,EAAKihH,aAAA,KACjB6rB,UAAY9sI,EAAKihH,aAAA,KACjB8rB,YAAc/sI,EAAKihH,aAAA,KACnB+rB,mBAAqBhtI,EAAKihH,aAAA,KAC1BgsB,qBAAuBjtI,EAAKihH,aAAA,KAC5BisB,SAAWltI,EAAKihH,aAAA,KAChBksB,kBAAoBntI,EAAKihH,aAAA,KACzBmsB,WAAaptI,EAAKihH,aAAA,KAClBosB,gBAAkBrtI,EAAKihH,aAAA,KACvBqsB,mBAAqBttI,EAAKihH,aAAA,KAC1BssB,iBAAmBvtI,EAAKihH,aAAA,KACxBusB,sBAAwBxtI,EAAKihH,aAAA,KAC7BwsB,qBAAuBztI,EAAKihH,aACzBtkH,KAAK+wI,kBAAoB1tI,EAAKihH,YAAA,EAsBjC1wF,CAAA,CA7CQ,GAgDbyqE,GAAa,SAASh7F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA+ETs0D,IA1EDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,IAC/BuwB,EAAGm/C,EAAM4B,EAAUhzE,EAAG4gB,EAAIgyD,EAAMtzD,EAAA,IACpC5d,EAAKmzE,IAAMx2E,KAAK26F,OAAA,KACXq2C,QAAU,GAEbp9G,EAAI,EAAG2gD,EAAOv0E,KAAK+qI,KAAK1C,KAAKsE,gBAC7B,GAAKp4D,EAAO3gD,EAAI2gD,EAAO3gD,EAAI2gD,EAC3B3gD,EAAI,GAAK2gD,IAAS3gD,IAAMA,EAAA,KAEnBo9G,QAAQpvI,KAAK,CAChB0nI,QAASjmI,EAAKihH,aACd2sB,IAAK5tI,EAAKwmI,cAAA,IAGdl1D,EAAW30E,KAAK+qI,KAAKzC,KAAKyG,UAAY/uI,KAAK+qI,KAAK1C,KAAKsE,gBAAA,KAChDuE,iBAAoB,eACnBn+D,EAAIpxE,EAAA,IACRA,EAAW,GAETiyB,EAAIm/C,EAAK,EACT,GAAK4B,EAAW5B,EAAK4B,EAAW5B,EAAK4B,EACrC/gD,EAAI,GAAK+gD,IAAa5B,IAAOA,EAE7BpxE,EAASC,KAAKyB,EAAKwmI,aAAA,OAEdloI,CAAA,CAVgB,QAYpBshI,OAAS,eACR5/H,EAAIuwB,EAAMm/C,EAAO4B,EAAA,IAErBA,EAAW,GACNtxE,EAAK,EAAGuwB,GAFbm/C,EAAQ/yE,KAAKgxI,SAEa9xI,OAAQmE,EAAKuwB,EAAMvwB,IAC3C1B,EAAIoxE,EAAM1vE,GACVsxE,EAAS/yE,KAAKD,EAAE2nI,SAAA,OAEX30D,CAAA,EACP3tE,KAAKhH,MACP+yE,EAAO/yE,KAAKijI,OAAOjjI,KAAKijI,OAAO/jI,OAAS,GACxC+hB,EAAW,GAET2S,EAAIrR,EAAK,EACT,GAAKoyD,EAAWpyD,EAAKoyD,EAAWpyD,EAAKoyD,EACrC/gD,EAAI,GAAK+gD,IAAapyD,IAAOA,EAE7BtB,EAASrf,KAAK5B,KAAKijI,OAAOrhI,KAAKmxE,IAAA,OAE1B9xD,CAAA,EAMT2S,EAAUh0B,UAAUypI,SAAW,SAAShmI,GAAA,OAClCA,KAAMrD,KAAKgxI,QACNhxI,KAAKgxI,QAAQ3tI,GAEf,CACLimI,QAAStpI,KAAKgxI,QAAQhxI,KAAKgxI,QAAQ9xI,OAAS,GAAGoqI,QAC/C2H,IAAKjxI,KAAKkxI,iBAAiB7tI,EAAKrD,KAAKgxI,QAAQ9xI,QAAA,EAc1C00B,CAAA,CA/EQ,GAkFbynE,GAAU,GAAGz8F,MAEb85H,GAAa,SAASr1H,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EAsETs0D,IAjEDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,kBAClB9G,KAAKmxI,MAAQ,CAAC,CAAD,EAEvBv9G,EAAUh0B,UAAUwxI,SAAW,SAAS/tI,GAAA,IAClCuwB,EACFm/C,EACA4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EACAC,EAAA,OACEx6E,KAAMrD,KAAKmxI,MACNnxI,KAAKmxI,MAAM9tI,IAEpB1B,EAAO3B,KAAK+qI,KAAKvC,KACjB50G,EAAO5zB,KAAK+qI,KAAKl2B,SACjB9hC,EAAQpxE,EAAK1C,QAAQoE,GAEN,KADfsxE,EAAShzE,EAAK0vI,SAAShuI,IAEbrD,KAAKmxI,MAAM9tI,GAAM,MAE3BuwB,EAAK4iD,IAAMx2E,KAAK26F,OAAS5nB,EAEzBxwD,GADAgyD,EAAM,IAAI/4B,GAAK5nB,EAAKuwF,KAAKxvC,KACFq1D,YACvBj0G,EAAOw+C,EAAIy1D,YACXnsD,EAAOtJ,EAAIy1D,YACX/oH,EAAOszD,EAAIy1D,YACXpsD,EAAOrJ,EAAIy1D,YAAA,KAEJmH,MAAM9tI,IADa,IAAtBkf,EACe,IAAI24E,GAAc3mB,EAAKx+C,EAAM8nD,EAAM58D,EAAM28D,GAEzC,IAAIqd,GACnB1mB,EACAhyD,EACAwT,EACA8nD,EACA58D,EACA28D,GAGG59E,KAAKmxI,MAAM9tI,IAAA,EAEpBuwB,EAAUh0B,UAAU4mH,OAAS,SAASnjH,EAAQuwB,EAASm/C,GAAA,IACjD4B,EAAWhzE,EAAS4gB,EAAOgyD,EAAItzD,EAAA,IACnCsB,EAAQ,GACR5gB,EAAU,GACL4yE,EAAK,EAAGtzD,EAAO2S,EAAQ10B,OAAQq1E,EAAKtzD,EAAMszD,IAE7CI,EAAQtxE,EADHuwB,EAAQ2gD,IAEb5yE,EAAQC,KAAK2gB,EAAMrjB,QACfy1E,IACFpyD,EAAQA,EAAM2tD,OAAOyE,EAAM6xC,OAAOzzC,KAAA,OAGtCpxE,EAAQC,KAAK2gB,EAAMrjB,QACZ,CACLw4G,MAAOn1F,EACPusH,QAASntI,EAAA,EAGNiyB,CAAA,CAtEQ,GAyEbqnE,GAAe,oBAKR53F,EAAYA,EAAKuwB,EAAkBm/C,EAAM4B,EAAMhzE,EAAM4gB,GAAA,KACvDqI,IAAMvnB,EAAA,KACNiuI,iBAAmB19G,EAAA,KACnB+0G,KAAO51D,EAAA,KACP61D,KAAOj0D,EAAA,KACPk0D,KAAOlnI,EAAA,KACPmnI,KAAOvmH,EAAA,KACPgvH,UAAA,CAAW,QAElBluI,EAAYzD,UAAU4mH,OAAS,kBACtBxmH,KAAK4qB,IAAI7f,IAAA,EAEX1H,CAAA,CAjBU,GAoBf63F,GAAiB,oBAkBV73F,EAAcA,EAAKuwB,EAAMm/C,EAAM4B,EAAMhzE,GAAA,IACxC4gB,EAAMgyD,EAAA,SACL3pD,IAAMvnB,EAAA,KACNslI,KAAO/0G,EAAA,KACPg1G,KAAO71D,EAAA,KACP81D,KAAOl0D,EAAA,KACPm0D,KAAOnnI,EAAA,KACP4vI,UAAA,EAAW,KACXC,SAAW,QACXC,aAAe,GACpBlvH,EAAOviB,KAAK4qB,IAEV2pD,EAAQhyD,EAAKynH,YAAA,KACRyH,aAAa7vI,KAAK2gB,EAAKi0D,KAAA,KACvBg7D,SAAS5vI,KAAK2gB,EAAK+hG,cAvBV,GAwBR/vC,GAIJhyD,EAAKi0D,KA9Ba,EA6BhBjC,EACU,EAEA,EA5BK,IA8BfA,EACFhyD,EAAKi0D,KAAO,EAhCS,GAiCZjC,EACThyD,EAAKi0D,KAAO,EApCA,EAqCHjC,IACThyD,EAAKi0D,KAAO,UAQlBnzE,EAAczD,UAAU4mH,OAAS,eAC3BnjH,EAAGuwB,EAAQm/C,EAAA,IACfn/C,EAAS,IAAI4nB,GAAK6/C,GAAQr0F,KAAKhH,KAAK4qB,IAAI7f,OAEnC1H,EAAI,EAAG0vE,EADL/yE,KAAKwxI,SACYtyI,OAAQmE,EAAI0vE,IAAQ1vE,EAC1CuwB,EAAO4iD,IAAMx2E,KAAKyxI,aAAapuI,GAAA,OAE1BuwB,EAAO7oB,IAAA,EAET1H,CAAA,CA/DY,GAkEjB83F,GAAa,SAAS93F,GAAA,SAGfuwB,IAAA,OACAA,EAAUk3G,UAAUxqI,YAAYkiB,MAAMxiB,KAAMO,UAAA,QAHrD05F,GAAUrmE,EA8DTs0D,IAzDDt0D,EAAUh0B,UAAUgrI,IAAM,OAC1Bh3G,EAAUh0B,UAAUkH,MAAQ,SAASzD,GAAA,IAC/BuwB,EAAQm/C,EAAA,OACZ1vE,EAAKmzE,IAAMx2E,KAAK26F,OAChB/mE,EAAS5zB,KAAK+qI,KAAKvxD,KAAKgyD,iBAEdxrI,KAAK8uI,QADA,IAAXl7G,EACqB,eACjBA,EAAM+gD,EAAA,IACVA,EAAW,GACN5B,EAAI,EAAGn/C,EAAO5zB,KAAKd,OAAQ6zE,EAAIn/C,EAAMm/C,GAAK,EAC7C4B,EAAS/yE,KAAyB,EAApByB,EAAKihH,cAAA,OAEd3vC,CAAA,EACP3tE,KAAKhH,MAEgB,eACjB4zB,EAAM+gD,EAAA,IACVA,EAAW,GACN5B,EAAI,EAAGn/C,EAAO5zB,KAAKd,OAAQ6zE,EAAIn/C,EAAMm/C,GAAK,EAC7C4B,EAAS/yE,KAAKyB,EAAKsgH,cAAA,OAEdhvC,CAAA,EACP3tE,KAAKhH,KAAA,EAGX4zB,EAAUh0B,UAAUX,QAAU,SAASoE,GAAA,OAC9BrD,KAAK8uI,QAAQzrI,EAAA,EAEtBuwB,EAAUh0B,UAAUyxI,SAAW,SAAShuI,GAAA,OAC/BrD,KAAK8uI,QAAQzrI,EAAK,GAAKrD,KAAK8uI,QAAQzrI,EAAA,EAE7CuwB,EAAUh0B,UAAU4mH,OAAS,SAASnjH,EAASuwB,GAAA,QACzCm/C,EAAY,IAAIN,YAAYzyE,KAAK8uI,QAAQ5vI,QACzCy1E,EAAU,EACVhzE,EAAW,EACN4gB,EAAI,EAAGA,EAAIwwD,EAAU7zE,SAAUqjB,EAAA,GACtCwwD,EAAUxwD,GAAKoyD,EACXhzE,EAAWiyB,EAAa10B,QAAU00B,EAAajyB,IAAa4gB,EAAG,GAC/D5gB,EACFoxE,EAAUxwD,GAAKoyD,EAAA,IACXJ,EAAQv0E,KAAK8uI,QAAQvsH,GACrBtB,EAAMjhB,KAAK8uI,QAAQvsH,EAAI,GAAKgyD,EAC5BtzD,EAAM,IACR0zD,GAAW1zD,EAAA,SAIb8U,EAAe,IAAItO,MAAyB,EAAnBsrD,EAAU7zE,QAC9B0+E,EAAI,EAAGA,EAAI7K,EAAU7zE,SAAU0+E,EACtC7nD,EAAa,EAAI6nD,EAAI,GAAoB,IAAf7K,EAAU6K,GACpC7nD,EAAa,EAAI6nD,EAAI,IAAqB,MAAf7K,EAAU6K,KAAoB,EACzD7nD,EAAa,EAAI6nD,EAAI,IAAqB,SAAf7K,EAAU6K,KAAoB,GACzD7nD,EAAa,EAAI6nD,IAAqB,WAAf7K,EAAU6K,KAAoB,UAEhD7nD,CAAA,EAEFnC,CAAA,CA9DQ,GA8HbwnE,GAAU,oBACH/3F,EAAOA,GAAA,KACT+2F,KAAO/2F,EAAA,KACPmjI,OAAS,CAAC,EAAD,KACTkL,SAAW,CAAC,EAAD,KACXC,KAAO,UA4BdtuI,EAAOzD,UAAUgyI,aAAe,eAC1BvuI,EAASuwB,EAAOm/C,EAAS4B,EAAahzE,EAAA,IAIrCiyB,KAHL+gD,EAAc30E,KAAKo6F,KAAK+sC,KAAKwD,OAAO,GAAGtD,QACvChkI,EAAU,CAAC,EACX1B,EAAO3B,KAAKwmI,OAEVzzD,EAAUpxE,EAAKiyB,GACfvwB,EAAQuwB,GAAS+gD,EAAY5B,GAAA,OAExB1vE,CAAA,EAoBTA,EAAOzD,UAAUiyI,UAAY,SAASxuI,GAAA,IAChCuwB,EAAem/C,EAAO4B,EAAQhzE,EAAI4gB,EAAIgyD,EAAMtzD,EAAA,IAChD0zD,EAAS,CAAC,EACLpyD,EAAK,EAAGgyD,EAAOlxE,EAASnE,OAAQqjB,EAAKgyD,EAAMhyD,IAE9CoyD,EADAhzE,EAAK0B,EAASkf,IACDviB,KAAKo6F,KAAKquC,KAAK2I,SAASzvI,GAAA,IAGlCA,KADLiyB,EAAgB,GACL+gD,GAEI,OADb5B,EAAQ4B,EAAOhzE,IACKoxE,EAAMw+D,cAAA,IACxB39G,EAAchyB,KAAK4gB,MAAMoR,EAAem/C,EAAMy+D,UAAA,GAG9C59G,EAAc10B,OAAS,EAAG,IAEvByC,KADLsf,EAAOjhB,KAAK6xI,UAAUj+G,GAEpBm/C,EAAQ9xD,EAAKtf,GACbgzE,EAAOhzE,GAAMoxE,EAAA,OAGV4B,CAAA,EAMTtxE,EAAOzD,UAAU4mH,OAAS,SAASnjH,EAAOuwB,GAAA,IACpCm/C,EACF4B,EACAhzE,EACA4gB,EACAgyD,EACAtzD,EACA8U,EACA6nD,EACAC,EACAnK,EACAsB,EACA/yE,EACAqyE,EACAp6C,EACAr8B,EAAA,IAOG82E,KANL5B,EAAOynB,GAAUgsB,OAAOxmH,KAAK4xI,eAAgB,WAC7CrvH,EAASviB,KAAK6xI,UAAUxuI,GACxB2xE,EAAU,GACL,GAELn3E,EAAOk1E,EAAKg5D,QAGV/2D,GADA/zD,EAAMpjB,EAAK82E,IACCk3D,KAAO5qH,EAAG6qH,IAAA,IAGnB7pI,KADLyxE,EAAcX,EAAKk5D,WACL1pH,EACNtgB,KAAS+yE,IACbA,EAAQ/yE,GAASyxE,KAAA,OAGrBkK,EAlLS,SAASv6E,GAAA,IAChBuwB,EAAKm/C,EAAA,IAEJn/C,KADLm/C,EAAM,CAAC,EACK1vE,EAEV0vE,EADM1vE,EAAOuwB,IACFA,EAAA,OAENm/C,CAAA,CAPI,CAkLQiC,GACjB6I,EAASr8E,OAAOC,KAAKm8E,GAAS7oD,MAAK,SAAS1xB,EAAGuwB,GAAA,OACtCvwB,EAAIuwB,CAAA,IAEb0gD,EAAU,eACJjxE,EAAIuwB,EAAMm/C,EAAA,IACdA,EAAW,GACN1vE,EAAK,EAAGuwB,EAAOiqD,EAAO3+E,OAAQmE,EAAKuwB,EAAMvwB,IAC5CkxE,EAAKsJ,EAAOx6E,GACZ0vE,EAASnxE,KAAKg8E,EAAQrJ,IAAA,OAEjBxB,CAAA,CAPC,GASVpxE,EAAO3B,KAAKo6F,KAAKquC,KAAKjiB,OAAOjkG,EAAQ+xD,EAAQU,GAC7Cj/C,EAAO/1B,KAAKo6F,KAAKouC,KAAKhiB,OAAO7kH,EAAKmtI,QAASx6D,GAC3Cp6C,EAAS,CACPitG,KAAMnnI,KAAKo6F,KAAK+sC,KAAKv8G,MACrB69G,KAAM9mI,EAAK+1G,MACX8wB,KAAMzyG,EACNkxG,KAAMjnI,KAAKo6F,KAAK6sC,KAAKr8G,MACrBy9G,KAAMroI,KAAKo6F,KAAKiuC,KAAKz9G,MACrB09G,KAAMtoI,KAAKo6F,KAAKkuC,KAAK19G,MACrBquD,KAAMj5E,KAAKo6F,KAAKnhB,KAAKruD,MACrBjsB,KAAMqB,KAAKo6F,KAAKz7F,KAAKisB,MACrB4uD,KAAMx5E,KAAKo6F,KAAK5gB,KAAKgtC,OAAO5yF,IAE1B5zB,KAAKo6F,KAAKmuC,IAAIpoI,SAChB+5B,EAAO,QAAUl6B,KAAKo6F,KAAKmuC,IAAI39G,OAE1B5qB,KAAKo6F,KAAKguC,UAAU5hB,OAAOtsF,EAAA,EAE7B72B,CAAA,CAxJK,GA2JdwnF,GAAM+N,IAAI6tC,UAAa,eACjBpjI,EAAA,SAEKuwB,IAAA,QACTvwB,EAAM,SAASA,EAAKuwB,GAAA,OACVnM,MAAMmM,EAAS,GAAGlnB,KAAK,KAAOrJ,GAAKzE,OAAOg1B,EAAA,EAMpDA,EAAUyqF,QAAU,SAAStrC,GAAA,IACvB4B,EAAUhzE,EAAK4gB,EAAKgyD,EAAA,GACpB9sD,MAAMC,QAAQqrD,GAAA,MAUT,IATE,eACH1vE,EAAI1B,EAAM4gB,EAAA,IACdA,EAAW,GACNlf,EAAK,EAAG1B,EAAOoxE,EAAO7zE,OAAQmE,EAAK1B,EAAM0B,IAC5CsxE,EAAI5B,EAAO1vE,GACXkf,EAAS3gB,KAAKgyB,EAAUyqF,QAAQ1pC,IAAA,OAE3BpyD,CAAA,CAPA,GAQJ7V,KAAK,KACW,IAChB,GAAsB,iBAAXqmE,EAAA,MACT,IAAMA,EACR,GAAc,MAAVA,EAAiBA,EAAO++D,cAAA,EAAW,MACrC,IAAM/+D,EAAS,IACjB,GAAIA,aAAkB3mD,KAAA,MAEzB,MACA/oB,EAAI0vE,EAAOg/D,iBAAkB,GAC7B1uI,EAAI0vE,EAAOi/D,cAAe,GAC1B3uI,EAAI0vE,EAAOk/D,aAAc,GACzB5uI,EAAI0vE,EAAOm/D,cAAe,GAC1B7uI,EAAI0vE,EAAOo/D,gBAAiB,GAC5B9uI,EAAI0vE,EAAOq/D,gBAAiB,GAC5B,KAEG,GAAiC,oBAA7B,CAAC,EAAErpI,SAAS/B,KAAK+rE,GAA+B,KAEpDpxE,KADL4gB,EAAM,CAAC,MACKwwD,EACVwB,EAAMxB,EAAOpxE,GACb4gB,EAAI3gB,KAAK,IAAMD,EAAM,IAAMiyB,EAAUyqF,QAAQ9pC,IAAA,OAE/ChyD,EAAI3gB,KAAK,MACF2gB,EAAI7V,KAAK,YAET,GAAKqmE,CAAA,EAGTn/C,CAAA,CAnDc,4EC51DvB,MAGMy+G,GAAmB,GA6CzB,SAASC,GAAgBpD,GACrB,IAAIqD,EACJ,IAAK,IAAI5wI,EAAI,EAAGA,EAAIutI,EAAQhwI,OAAQyC,IAAK,CAErC,GADA4wI,EAASrD,EAAQvtI,GACK,iBAAX4wI,GAAyBA,EAAQ,OAAOA,EAAOxpI,WAC1D,GAAsB,iBAAXwpI,GAAkC,OAAXA,GAAmBA,EAAOxpI,WAAW7J,OAAS,EAAG,OAAOqzI,EAAOxpI,UACrG,CACJ,CAEA,IAAIypI,GAAmB,KAoEnBC,GAAkBh7H,SAASwmE,cAAc,OAC7Cw0D,GAAgBlsI,GAAK,kBACrBksI,GAAgBlxH,MAAMmxH,QAAU,+EAChCj7H,SAASxC,KAAKgrG,YAAYwyB,IAAiB,IAEtBE,IAAgBrwI,IAEhCC,EAAAA,EAAAA,QAAQ,QAAOG,GAFL,cAA+Bg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,YAAAC,GAAA,OAAAD,EAAAA,EAAAA,GAAA,aAAAE,GAAA,OAAAF,EAAAA,EAAAA,GAAA,qBAAAG,GAAA,OAAAH,EAAAA,EAAAA,GAAA,uBAAAgH,GAAA,OAAAhH,EAAAA,EAAAA,GAAA,eAAAiH,GAAA,OAAAjH,EAAAA,EAAAA,GAAA,kBAAAkH,GAAA,OAUlDtJ,EAAAA,EAAAA,GAAA,mBACc,IAACA,EAAAA,EAAAA,GAAA,oBACD,IAAKA,EAAAA,EAAAA,GAAA,uBACF,IA8BjBA,EAAAA,EAAAA,GAAA,YAEO,CAAC,EAAC,CA9BToyI,SAAAA,GAAgC,IAAtBC,EAAYtyI,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,IAAAA,UAAA,GACduyI,EAAch1I,OAAOi1I,iBAGpBF,GACa7yI,KAAK8yI,aACJA,IACX9yI,KAAK+V,IAAI,kBAAkB,GAC3B/U,QAAQ1B,IAAI,qBAGpBU,KAAK+V,IAAI,cAAe+8H,GACxB9yI,KAAK+V,IAAI,cAAe+8H,EAAc,GAElCA,EAAc,GAAG9yI,KAAK+V,IAAI,kBAAkB,EACpD,CAIA/S,IAAAA,GACIC,MAAMD,OACNhC,QAAQ1B,IAAI,kCAEZY,IAAEpC,QAAQiZ,GAAG,SAAU7W,IAAAA,MAAQF,KAAK4yI,UAAW5yI,KAAM,OACrDA,KAAK4yI,WAAU,GACf90I,OAAO+hC,UAAY7/B,IACvB,CAUA8/B,WAAAA,GACI,IAAIkzG,EAAShzI,KAAK8D,MACdmvI,EAAM,IAAIl0B,GAAM,IAAK,KAAM,UAC/Bk0B,EAAI1L,aAAa,mBAAoBxsB,GAAAA,OACrCk4B,EAAI1L,aAAa,mBAAoB2L,GAAAA,WACrCD,EAAI1L,aAAa,oBAAqB4L,GAAAA,aACtCF,EAAIvuC,QAAQ,mBAAoB,QAAS,UACzCuuC,EAAIvuC,QAAQ,mBAAoB,QAAS,QACzCuuC,EAAIvuC,QAAQ,oBAAqB,QAAS,UAC1C,IAKIv5F,EAAMioI,EALNz4C,EAAS,GACTrjF,EAAO,EACP0iF,EAAO,EACPq5C,EAAMzvI,EAAAA,QAAUC,KAAKmvI,EAAOjjI,WAIhC/O,QAAQ1B,IAAI,wBACZ0B,QAAQ+3D,KAAK,kBA5IrB,SAAwBk6E,GAAsC,IAAjC9mI,EAAK5L,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,GAAI+yI,EAAe/yI,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,EACvD,OAAO,IAAI8T,SAASC,IAChB,IAAIi/H,EAAcA,KACd,IAAIC,EAAUhB,GAAiB5gC,UAAU,aAAc,IACnD6hC,EAAatnI,EAAQqmI,GAAiBzgI,OAAUygI,GAAiBrmI,MACrE8mI,EAAI3+B,SAASk/B,EAAS,OA1DnB,MA0D2CrnI,EAAOsnI,GACrDn/H,GAAS,EAGb,GAAKk+H,GAoBDe,QApBmB,CAEnB,IAAIG,EAAcj8H,SAASwmE,cAAc,OACzCj9E,QAAQ1B,IAAI,sCACZo0I,EAAYr2D,OAAS,KACjBr8E,QAAQ1B,IAAI,mCACZkzI,GAAmB/6H,SAASwmE,cAAc,UAC1Cu0D,GAAiBzgI,OAAS2hI,EAAY3hI,OAASuhI,EAC/Cd,GAAiBrmI,MAAQunI,EAAYvnI,MAAQmnI,EAC7C,IAAI34B,EAAM63B,GAAiBr8B,WAAW,MACtCwE,EAAInB,UAAY,QAChBmB,EAAIwB,SAAS,EAAG,EAAGq2B,GAAiBrmI,MAAOqmI,GAAiBzgI,QAC5DygI,GACKr8B,WAAW,MACX2G,UAAU42B,EAAa,EAAG,EAAGlB,GAAiBrmI,MAAOqmI,GAAiBzgI,QAC3EwhI,GAAa,EAEjBG,EAAYnyH,MAAMjY,QAAU,OAC5BoqI,EAAY7xG,IAAM,oCACtB,CAEA,GAER,CA6GQ8xG,CAAeV,EAAK,IACf1+H,MAAK,KACFvT,QAAQ1B,IAAI,sBACZ0B,QAAQ4yI,QAAQ,kBAEhBX,EAAIvkD,YA5MI,IA4MyBn4D,KAAK,+CAAgD,GAAI,IAG1F08G,EAAIvkD,YAAY2jD,IAAkB97G,KAAK,wBAAyB,GAAI,IAGpE,IAAIonB,EAAM7/C,OAAO8f,SAASzO,KAC1BwuC,EAAMA,EAAIt/B,QAAQ,QAAS,SAC3B,IAAIw1H,EAAWZ,EAAIlyC,gBAAgBpjD,EAAK,KAExCs1F,EAAIxsC,aAAa,EAAG,EAAG,KACvB,IAAK,IAAI9kG,EAAI,EAAGA,EAAIkyI,EAAS30I,OAAQyC,IACjCsxI,EAAI/9B,aAAa2+B,EAASlyI,GAAI,GAAIg5F,EAAQ,CAAEh9C,QAC5Cg9C,GAAU,EAEds4C,EAAIxsC,aAAa,EAAE,IAEtBlyF,MAAK,IA/MlB,SAA2Bu/H,GACvB,IAAIv/B,EACJ,MAAMw/B,EAAaD,EAAQ/hI,OAAOiiI,QAAQhuI,MACpCiuI,EAAYH,EAAQ3nI,MAAM6nI,QAAQhuI,MACxC,IAAIkuI,EAAS,KAAO/0I,KAAKyd,IAAIm3H,EAAYE,GACzC,MAAMt9B,EAASl/F,SAASwmE,cAAc,UAGtC,OAFA04B,EAAO5kG,OAASgiI,EAAaG,EAC7Bv9B,EAAOxqG,MAAQ8nI,EAAYC,EACpB,IAAI7/H,SAAQ,CAACC,EAAS2pG,KACzB,MAAMk2B,EAAcJ,EAAaG,EAC3BE,EAAaH,EAAYC,EAC/B,IAAIG,GAAY,IAAIC,eACfC,kBAAkBT,GAClBz1H,QAAQ,oBAAqB,WAAW81H,QACxC91H,QAAQ,mBAAoB,UAAU+1H,QAC3C,MAAMz5B,EAAMhE,EAAOR,WAAW,MACxBq+B,EAAS12I,OAAO0R,KAAO1R,OAAOkgF,UAC9B0gC,EAAM,IAAI0G,MACV77F,EAAM,IAAIk1D,KAAK,CAAC41D,GAAY,CAAE3rI,KAAM,gCACpCi1C,EAAM62F,EAAOn2D,gBAAgB90D,GACnCm1F,EAAIrhC,OAAS,KACLs9B,GAAKA,EAAImC,UAAU4B,EAAK,EAAG,GAC/BnK,EAAYoC,EAAO/E,UAAU,YAAa,GAC1C4iC,EAAOl2D,gBAAgB3gC,GACL,OAAd42D,EACAjgG,EAAQ,CAAEvJ,KAAMwpG,EAAWpoG,MAAO8nI,EAAWliI,OAAQgiI,EAAY/7H,OAAQ,QAEzEimG,EAAO,CAAElzG,KAAM,KAAMoB,MAAO,EAAG4F,OAAQ,EAAGiG,OAAQ,OACtD,EAEJ0mG,EAAI78E,IAAM8b,CAAG,GAErB,CAkLgC82F,CADFh9H,SAAS8I,cAAc,yBAIxChM,MAAMmgI,IACH,IAAIC,EAAY1B,EAAIvnD,SAASsW,SAASC,WAClC2yC,EAAa3B,EAAIvnD,SAASsW,SAASsH,YACnC4qC,EAASS,EAAYD,EAASvoI,MAC9Bk4G,EAAUuwB,EAAaF,EAAS3iI,OAASmiI,EAAS,GACtDjB,EAAI3+B,SACAogC,EAAS3pI,KACT2pI,EAAS18H,OACT,EACAqsG,EACAqwB,EAASvoI,MAAQ+nI,EACjBQ,EAAS3iI,OAASmiI,GAGtBv5C,GAAU,GAGVs4C,EAAIvkD,YAnPC,IAmPyBn4D,KAAK,0BAA2B,GAAIokE,GAClEA,GAAU,GACV,IAAIk6C,EAAal6C,EACjBrjF,EAAO,EACP27H,EAAIvkD,YAAY2jD,IAGhBY,EAAI3uC,QAAQ,QAAS,QAAQ/tE,KAAK,QAAS,GAAIokE,GAC/CA,GAAU,EACVs4C,EAAI3uC,QAAQ,QAAS,UAAU/tE,KAC3B,MAAMy8G,EAAOh0G,mBAAmBhS,YAAYjkB,wBAC5BsqI,SACXL,EAAO10G,YAAc,uBAAyB,IACnD,GACAq8D,GAIJA,EAASk6C,EACTv9H,EAAO,GACP87H,EAAaJ,EAAOr9H,eAAejS,SACnC,IAAIoxI,EAAY,GAAG90I,KAAKqP,QAAQ0lI,yBAAyB3B,SAezD,GAdAH,EAAI3uC,QAAQ,QAAS,QAChB/tE,KAAK,YAAajf,EAAMqjF,GACxB8L,aAAa,EAAG,EAAG,KACnByO,aAAak+B,EAAY97H,EAAO,GAAIqjF,EAAQ,CAAEh9C,IAAKm3F,IACxD7B,EAAIxsC,aAAa,GACjB9L,GAAU,EACVs4C,EAAI3uC,QAAQ,QAAS,UAAU/tE,KAC3B,MAAMy8G,EAAOhoF,iBAAiBh+B,uCACdppB,EAAAA,QAAUC,KAAKmvI,EAAOhlG,0BACtBpqC,EAAAA,QAAUC,KAAKmvI,EAAO/kG,eACtC32B,EACAqjF,GAGAq4C,EAAOnmG,cAAe,CAEtB8tD,EAASk6C,EACTv9H,EAAO,IACP27H,EAAI3uC,QAAQ,QAAS,QAAQ/tE,KAAK,SAAUjf,EAAMqjF,GAClDA,GAAU,EACVs4C,EAAI3uC,QAAQ,QAAS,UACrB,IAAI0wC,EAAM,aAAapxI,EAAAA,QAAUC,KAAKmvI,EAAO/iI,QACzCglI,EAAYhC,EAAI99B,aAAa6/B,GACjC/B,EAAI18G,KAAKy+G,EAAM,KAAO,aAAapxI,EAAAA,QAAUC,KAAKmvI,EAAOvlG,SAAUn2B,EAAMqjF,GACzE,IAAIu6C,EAAmBl1I,KAAKm1I,mBAAmBvjC,YAE3CwjC,EAAO,GAAW,IACtBnC,EAAI3+B,SAAS4gC,EAAkB,MAAO59H,EAAO29H,EAAWt6C,EAASy6C,EAAKA,EAAKA,EAC/E,CAGAz6C,EAASk6C,EACTv9H,EAAO07H,EAAOnmG,cAAgB,IAAM,IACpC1hC,EAAO6nI,EAAOvvI,YAAYC,SAC1B,IAAI2xI,EAAU,GAAGr1I,KAAKqP,QAAQ0lI,yBAAyB5pI,SAsBvD,OArBA8nI,EAAI3uC,QAAQ,QAAS,QAChB/tE,KAAK,SAAUjf,EAAMqjF,GACrB8L,aAAa,EAAG,EAAG,KACnByO,aAAa/pG,EAAMmM,EAAO,GAAIqjF,EAAQ,CAAEh9C,IAAK03F,IAClDpC,EAAIxsC,aAAa,GACjB9L,GAAU,EACVs4C,EAAI3uC,QAAQ,QAAS,UAAU/tE,KAC3B,oBAAoB3yB,EAAAA,QAAUC,KAAKmvI,EAAO9tI,+BACzBtB,EAAAA,QAAUw7B,KAAK4zG,EAAO1lG,YAClC0lG,EAAOrnG,YAAc,sBAAwB,IAClDr0B,EACAqjF,GAIJA,GAAU,GAIV36F,KAAKs1I,UAAUrC,EAAKj5C,MAEb5+C,EAAAA,EAAAA,MAAK,CACRjU,GAAInnC,KAAKu1I,gBAAgB,WACzBhiG,GAAIvzC,KAAKu1I,gBAAgB,WACzBvhG,MAAOh0C,KAAKu1I,gBAAgB,cAC5B7hG,MAAO1zC,KAAKu1I,gBAAgB,eAC9B,IAELhhI,MAAMihI,IAEH,IAAIC,EAAa,IACbC,EAAY,GACZC,EAAW,GAMf,GAJAh7C,EAAS,GACTrjF,EAAO,IAGFtX,KAAK8D,MAAML,YAAYiiC,yBAA0B,CAElDutG,EAAI/yC,UAGJ+yC,EAAIvkD,YAvVH,IAuV6Bn4D,KAAK,gCAAiCjf,EAAMqjF,GAC1EA,GAAU,GAEL36F,KAAKqZ,cAAcgH,aAepBrgB,KAAK41I,WAAW3C,EAAKjzI,KAAKoD,KAAKC,EAAE,yBAA0Bs3F,GAd3Ds4C,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,0BAA0B3yB,EAAAA,QAAUC,KAAKmvI,EAAO/tG,4CAChBrhC,EAAAA,QAAUC,KAClCmvI,EAAOjvI,oBAAoBohC,+CAEFvhC,EAAAA,QAAUC,KACnCmvI,EAAOjvI,oBAAoBshC,+CAEHzhC,EAAAA,QAAUC,KAAKmvI,EAAOhuI,kCACpCpB,EAAAA,QAAUC,KAAKmvI,EAAOxtG,WACxCluB,EACAqjF,GAOR,CACI,IAEI55F,EAAQuxI,GAAgB,CAFbtyI,KAAKqZ,cAAc4qD,WAAWmB,KAAKr8D,WACxB/I,KAAKqZ,cAAc4qD,WAAWoB,gBAAgBt8D,aAExE,GAAIhI,EAAO,CAOP45F,GAAU,GACV,IAAIk7C,EAAa71I,KAAK41I,WAAW3C,EAAKlyI,EAAO45F,GAC7CA,GAAuB,EAAbk7C,EAAiB,GAC3BF,EAAWh7C,CACf,CACJ,CAGA,IAAIm7C,EAAa,GACbC,EAAc,GAGlB,GAAIP,EAAWjiG,IAAMiiG,EAAWjiG,GAAGxoC,KAAM,CACrCkoI,EAAIvkD,YApYP,IAoYiCn4D,KAAK,wCAAyCjf,EAAMq+H,EAAW,GAC7F,IAAIpiG,EAAKiiG,EAAWjiG,GAChB+lB,EAAW11D,EAAAA,QAAUC,KAAKmvI,EAAOjvI,oBAAoBs5D,gBAAiB,CAAE36B,MAAO,IAC/EszG,EAAO76F,EAAAA,QAAUQ,QAAQ,CAACq3F,EAAOjvI,oBAAoBu2D,UAAW,CAC5D17C,KAAM,GACNy8B,KAAM,OACNE,cAAc,IAEtB03F,EAAI3+B,SACA/gE,EAAGxoC,KACH,MACA2qI,EACAC,EACAF,EACCA,EAAaliG,EAAGxhC,OAAUwhC,EAAGpnC,OAElC8mI,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,cAAc+iC,wBAA+B08E,SAC7CN,EAAYK,EACZJ,EAAWG,EAEnB,CAEA,IAAIG,EAAWj2I,KAAK8S,WAAW42B,KAAKC,MAAMkL,SAASltC,MAC1Cs8B,GAAQA,EAAItR,QAAUpjB,EAAAA,QAAU8kC,UAAUlQ,SAAS6M,QAExD4zB,EAAQ5kE,KAAK8S,WAAW42B,KAAKC,MAAMkL,SAASltC,MACvCs8B,GAAQA,EAAItR,QAAUpjB,EAAAA,QAAU8kC,UAAUlQ,SAASoR,KAExD2gG,EAAuBV,EAAW9hG,QAAUuiG,EAASnxE,KACrDqxE,EAAcX,EAAWruG,KAAOy9B,EAAME,KAE1C,GAAIqxE,GAAeD,EAAsB,CAOrC,GALAP,EAAW,GACX31I,KAAKs1I,UAAUrC,EAAKj5C,KACpBi5C,EAAI/yC,UAGAi2C,EAAa,CACb,IAAIhvG,EAAKquG,EAAWruG,GAChBmyB,EAAW11D,EAAAA,QAAUC,KAAKmvI,EAAOjvI,oBAAoBu5D,iBAAkB,CAAE56B,MAAO,IAChFszG,EAAO76F,EAAAA,QAAUQ,QAAQ,CAACq3F,EAAOjvI,oBAAoBw2D,WAAY,CAC7D37C,KAAM,GACNy8B,KAAM,OACNE,cAAc,IAGtB03F,EAAIvkD,YApbX,IAobqCn4D,KAC1B,wCACAjf,EACAq+H,EAAW,GAEf1C,EAAI3+B,SACAntE,EAAGp8B,KACH,MACA2qI,EACAC,EACAF,EACCA,EAAatuG,EAAGp1B,OAAUo1B,EAAGh7B,OAElC8mI,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,cAAc+iC,wBAA+B08E,SAC7CN,EAAYK,EACZJ,EAAWG,GAEfH,EAAW,GACf,CAGA,GAAIO,EAAsB,CACtB,IAAIxiG,EAAQ8hG,EAAW9hG,MACnB4lB,EAAW11D,EAAAA,QAAUC,KAAKmvI,EAAOjvI,oBAAoBq5D,mBAAoB,CAAE16B,MAAO,IAClFszG,EAAO76F,EAAAA,QAAUQ,QAAQ,CAACq3F,EAAOjvI,oBAAoBs2D,aAAc,CAC/Dz7C,KAAM,GACNy8B,KAAM,OACNE,cAAc,IAGtB03F,EAAIvkD,YAndX,IAmdqCn4D,KAC1B,iDACAjf,EACAq+H,EAAW,GAEf1C,EAAI3+B,SACAkhC,EAAW9hG,MAAM3oC,KACjB,MACA2qI,EACAC,EACAF,EACCA,EAAa/hG,EAAM3hC,OAAU2hC,EAAMvnC,OAExC8mI,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,cAAc+iC,wBAA+B08E,SAC7CN,EAAYK,EACZJ,EAAWG,EAEnB,CACJ,CAEA91I,KAAKs1I,UAAUrC,EAAKj5C,IACxB,CAKAi5C,EAAI/yC,UAEJvF,EAAS,GACTs4C,EAAIvkD,YAlfC,IAkfyBn4D,KAAK,QAASjf,EAAMqjF,GAClDA,GAAU,GACV,IAAIy7C,EAAWxyI,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBk9B,MAAMI,WACzDonB,EAAMpmD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBk9B,MAAMC,SAAU,CAAEC,MAAO,IAC3EuwG,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,YAAYyzB,0BAAiCosF,QAC7C9+H,EACAqjF,GAIJ,CACI,IAEI07C,EAAa/D,GAAgB,CAFXtyI,KAAKqZ,cAAcgqD,gBAAgBt6D,WACtC/I,KAAKqZ,cAAc8pD,aAAap6D,aAMnD,GAAIstI,EAAY,CAEZ17C,GAAU,GAEV,IAAI27C,EAAkBt2I,KAAK41I,WAAW3C,EAAKoD,EAAY17C,GACvDA,GAA4B,EAAlB27C,EAAsB,CACpC,MACI37C,GAAU,EAElB,CAEAs4C,EAAIvkD,YAhhBC,IAghByBn4D,KAAK,6BAA8Bjf,EAAMqjF,GACvEA,GAAU,GAGV,CAEI,IAAI47C,EAAQ57C,EAAS,EACjB67C,EAAS,GACTC,EAAU,IAEVt/H,EAAMo/H,EAAQ,EAEdjpD,EAAKkpD,EAAS,EACdjpD,EAAKipD,EAAS,GACdhpD,EAAKgpD,EAAS,GACd/oD,EAAK+oD,EAAS,IACdp1G,EACA4xG,EAAO1tI,kBAAkBo4B,QAAUs1G,EAAO1tI,kBAAkBo4B,OAAO0D,OAC7D4xG,EAAO1tI,kBAAkBo4B,OAAO0D,OAAOC,mBACvC,KACNE,EACAyxG,EAAO1tI,kBAAkBo4B,QAAUs1G,EAAO1tI,kBAAkBo4B,OAAO6D,QAC7DyxG,EAAO1tI,kBAAkBo4B,OAAO6D,QAAQF,mBACxC,KAENq1G,EAAiB,GACjBC,EAAgB,EAChBC,EAAiB5D,EAAO9qH,2BAA6B,EAAI,EACzD2uH,EAAsB,EACtBC,EAAa,EACbC,EAAiB31G,EAAS,EAAI,EAC9B41G,EAAkBz1G,EAAU,EAAI,EAChC01G,EAAajE,EAAOkE,UAAY,EAAI,EACpCC,EAAanE,EAAO5nF,MAAQ,EAAI,EAChCgsF,EAAgBpE,EAAOnmG,cAAgB,EAAI,EAC3CwqG,EAAc,EAEdC,EAAOf,EACPgB,EAAsBT,EAAaC,EAAiBC,EAAkBC,EAAaE,EAEnFlzG,EAAM,CACN3sB,KAAM,EACNkgI,IAAK,EACL3gC,MAAO,GAGPtb,EAAY,CACZ6B,OAAQ,SACRq6C,KAAM,QAGNC,EAAc,SAAC3kE,EAAG74C,EAAGV,EAAGhpB,GAA+B,IAApBmnI,EAAWp3I,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,EAC7CiQ,EAAY,IACZyiI,EAAI5sC,aAAatzB,EAAG74C,EAAGV,GACvBy5G,EAAIphI,KAAK2kI,EAAQc,EAAMb,EAASjmI,EAAYmnI,EAAa,KACzDL,GAAQ9mI,EAAYmnI,EAE5B,EAEIC,EAAkBA,CAACC,EAASC,EAASC,EAASC,EAASxnI,EAAWyzB,EAAKs3D,KACnE/qF,EAAY,IACZyiI,EAAI3uC,QAAQ,QAAS/I,GACrB03C,EAAI18G,KAAK0N,EAAMqpD,EAAIn2E,EAAK0gI,GACxB5E,EAAI18G,KAAK0N,EAAMspD,EAAIp2E,EAAK2gI,GACxB7E,EAAI18G,KAAK0N,EAAMupD,EAAIr2E,EAAK4gI,GACxB9E,EAAI18G,KAAK0N,EAAMwpD,EAAIt2E,EAAK6gI,GACxB7gI,GAAO3G,EACX,EAIJknI,EAAY,IAAK,IAAK,IAAKhB,EAAgB,GAC3CgB,EAAY,IAAK,IAAK,IAAKf,GAC3Be,EAAY,IAAK,IAAK,IAAKd,GAC3Bc,EAAY,IAAK,IAAK,IAAKb,GAC3Ba,EAAY,IAAK,IAAK,IAAKH,GAC3BG,EAAY,IAAK,IAAK,IAAKN,GAC3BM,EAAY,IAAK,IAAK,IAAKL,GAG3BpE,EAAInxH,KAAKyrE,EAAK,EAAGgpD,EAAOhpD,EAAK,EAAG+pD,GAChCrE,EAAInxH,KAAK0rE,EAAK,EAAG+oD,EAAO/oD,EAAK,EAAG8pD,GAChCrE,EAAInxH,KAAK2rE,EAAK,EAAG8oD,EAAO9oD,EAAK,EAAG6pD,GAGhCrE,EAAIvkD,YAAY,IAGhBkpD,EAAgB,GAAI,cAAe,WAAY,UAAWlB,EAAgBzyG,EAAI3sB,KAAMikF,EAAUk8C,MAG9FG,EACI,cACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBk9B,MAAMI,WAC9Ch/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBk9B,MAAMytB,WAC9CrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBk9B,MAAMC,SAAU,CAAEC,MAAO,IACjEi0G,EACA1yG,EAAI3sB,KACJikF,EAAUk8C,MAGdG,EACI,SACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBwhB,OAAO8b,WAC/Ch/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBwhB,OAAOmpC,WAC/CrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBwhB,OAAO2b,SAAU,CAAEC,MAAO,IAClEk0G,EACA3yG,EAAIuzG,IACJj8C,EAAUk8C,MAGdG,EACI,SACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAOkF,WAC/Ch/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAOuyB,WAC/CrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAO+E,SAAU,CAAEC,MAAO,IAClEm0G,EACA5yG,EAAIuzG,IACJj8C,EAAUk8C,MAGdG,EACI,KACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6a,GAAG3V,WAClDh/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6a,GAAG0X,WAClDrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAO6a,GAAG9V,SAAU,CAAEC,MAAO,IACrEo0G,EACA7yG,EAAI4yE,MACJtb,EAAU6B,QAGdw6C,EACI,MACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO0D,OAAOwB,WACtDh/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO0D,OAAO6uB,WACtDrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAO0D,OAAOqB,SAAU,CAAEC,MAAO,IACzEq0G,EACA9yG,EAAI4yE,MACJtb,EAAU6B,QAGdw6C,EACI,MACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6D,QAAQqB,WACvDh/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6D,QAAQ0uB,WACvDrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAO6D,QAAQkB,SAAU,CAAEC,MAAO,IAC1Es0G,EACA/yG,EAAI4yE,MACJtb,EAAU6B,QAGdw6C,EACI,KACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6P,GAAG3K,WAClDh/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAO6P,GAAG0iB,WAClDrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAO6P,GAAG9K,SAAU,CAAEC,MAAO,IACrEu0G,EACAhzG,EAAI4yE,MACJtb,EAAU6B,QAGdw6C,EACI,KACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAOqtB,GAAGnoB,WAClDh/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBo4B,OAAOqtB,GAAGkF,WAClDrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBo4B,OAAOqtB,GAAGtoB,SAAU,CAAEC,MAAO,IACrEy0G,EACAlzG,EAAI4yE,MACJtb,EAAU6B,QAGV41C,EAAOnmG,eACP+qG,EACI,QACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBK,MAAMi9B,WAC9Ch/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkBK,MAAMsqD,WAC9CrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkBK,MAAM88B,SAAU,CAAEC,MAAO,IACjE00G,EACAnzG,EAAIuzG,IACJj8C,EAAUk8C,MAIlBG,EACI,MACAh0I,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkB/B,IAAIq/B,WAC5Ch/B,EAAAA,QAAUC,KAAKmvI,EAAO1tI,kBAAkB/B,IAAI0sD,WAC5CrsD,EAAAA,QAAUw7B,KAAK4zG,EAAO1tI,kBAAkB/B,IAAIk/B,SAAU,CAAEC,MAAO,IAC/D20G,EACApzG,EAAIuzG,IACJj8C,EAAUk8C,MAGd98C,EAASxjF,CACb,CAKA,IAAI8gI,GAAc,EAClB,CACI,IAAIl3I,EAAQuxI,GAAgB,CACxBtyI,KAAKqZ,cAAcoP,oBACnBzoB,KAAKqZ,cAAc2sD,mBAInBjlE,IACAk3I,GAAc,EAGdt9C,GAAU,GACVs4C,EAAI3uC,QAAQ,QAAS,UACrBtkG,KAAK41I,WAAW3C,EAAKlyI,EAAO45F,GAEpC,CAEA,GAAIs9C,EAAa,CAEbj4I,KAAKs1I,UAAUrC,EAAKj5C,KACpBi5C,EAAI/yC,UAEJvF,EA1uBL,GA2uBKrjF,EA3uBL,GA4uBK27H,EAAIvkD,YAhvBH,IAgvB6Bn4D,KAAK,aAAcjf,EAAMqjF,GACvDA,GAAU,GACV,IAAIlvF,EAAM7H,EAAAA,QAAUC,KAAK7D,KAAKooB,gBAAgBC,YAAY6Z,cACtD0R,EAAQhwC,EAAAA,QAAUC,KAAK7D,KAAKooB,gBAAgBC,YAAYia,UACxDuR,EAAOjwC,EAAAA,QAAUC,KAAK7D,KAAKooB,gBAAgBC,YAAY+Z,SAC3D6wG,EAAIvkD,YAAY2jD,IAAkB97G,KAC9B,YAAY88G,SAAW5nI,mBACL4nI,SAAWz/F,kBACZy/F,SAAWx/F,SAC5Bv8B,EACAqjF,GAEJA,GAAU,GAGV,CACI,IAGIu9C,EAAkB5F,GAAgB,CAHjBtyI,KAAKm4I,eACHn4I,KAAKo4I,iBACXp4I,KAAKq4I,aAQtB,GAAIH,EAAiB,CACjB,IAAIr3H,EAAQ7gB,KAAK41I,WAAW3C,EAAKiF,EAAiBv9C,GAClDA,GAAkB,EAAR95E,EAAY,GACtB80H,EAAWh7C,CACf,MACIg7C,EAAW,EAEnB,CAMI,GAF2B31I,KAAK8D,MAAM4hE,qBAEZ,CACtBi1B,GAAU,EACV,IAAI29C,EAA0Bt4I,KAAKu4I,KAAKl1I,EAAE,sBAAsB0F,WAC5D8X,EAAQ7gB,KAAK41I,WAAW3C,EAAKqF,EAAyB39C,GAG1DA,GAAkB,EAAR95E,EAAY,GACtB80H,EAAWh7C,CACf,CAMJs4C,EAAIvkD,YApyBH,IAoyB6Bn4D,KAC1B,kDACAjf,EACAq+H,EAAW,GAEf,IAAI3hG,EAAQwhG,EAAWxhG,MACjBA,GAAWA,EAAMjpC,MAEnBkoI,EAAI3+B,SACAtgE,EAAMjpC,KACN,MACAuM,EACAq+H,EACAF,EACCA,EAAazhG,EAAMjiC,OAAUiiC,EAAM7nC,MAGhD,CACAnM,KAAKs1I,UAAUrC,EAAKj5C,KAGpBi5C,EAAIj0C,KAAK,uCAAuC7zF,KAAQioI,QAAiB,IAE5Eh+H,OAAOwe,IACJ5yB,QAAQ1B,IAAI,qBACZ0B,QAAQ1B,IAAIs0B,GACZ5yB,QAAQ1B,IAAIs0B,EAAE7qB,WAAW,GAGrC,CAEA6sI,UAAAA,CAAW3C,EAAKtoH,EAAcgwE,GAK1BhwE,EAAeA,EACV1iB,MAJW,WAKXgD,KAAKyoE,GAAMA,EAAEv8C,SACb9vB,QAAQqsE,GAAMA,EAAEx0E,OAAS,IACzBwN,KAAK,QAEV,IAAI8rI,EAAavF,EAAIlyC,gBAAgBp2E,EAVzB8tH,KAmBZ,OANAxF,EAAI3uC,QAAQ,QAAS,UAChBmC,aAAa,IAAK,EAAG,GACrBlwE,KAAKiiH,EAAYC,GAAsB99C,GACvC2J,QAAQ,QAAS,UACjBmC,aAAa,GAEX+xC,EAAWt5I,MACtB,CAEAi2I,gBAAAA,GACI,IAAIx+B,EAASl/F,SAASwmE,cAAc,UACpC04B,EAAO5kG,OAAS,GAChB4kG,EAAOxqG,MAAQ,GACfwqG,EAAOp1F,MAAMmxH,QAAU,4BACvB,IAAIgG,EAAU/hC,EAAOR,WAAW,MAKhC,OAHAuiC,EAAQt+C,KAAO,iBAEfs+C,EAAQj8B,SAAS,IAAK,EAAG,IAClB9F,CACX,CAEA2+B,SAAAA,CAAUrC,EAAKj5C,GACXi5C,EAAI3uC,QAAQ,QAAS,UAAU5V,YAAY2jD,IAC3C,IAIIsG,GAFQ,IAAIvsH,MAECwsH,mBAAmB,QADtB,CAAEC,KAAM,UAAWC,MAAO,OAAQC,IAAK,YAGrD9F,EAAI18G,KArxBZ,SAAyBx3B,GACrB,IAAIi6I,EAAQ,GAEZ,IAAK,IAAIr3I,EAAI,EAAGgzE,EAAI51E,EAAIG,OAAQyC,EAAIgzE,EAAGhzE,IAC/B5C,EAAI2pF,WAAW/mF,GAAK,KACpBq3I,EAAMp3I,KAAK7C,EAAImgF,OAAOv9E,EAAG,IAGjC,IAAKA,EAAI,EAAGA,EAAIq3I,EAAM95I,OAAQyC,IAAK,CAC/B,IAAIs3I,EAAOD,EAAMr3I,GACjB5C,EAAMA,EAAIsf,QAAQ46H,EAAM,GAC5B,CACA,OAAOl6I,CACX,CAwwBiBm6I,CAAgBP,GAAO,GAv2BlBQ,KAw2BdlG,EAAIxsC,aAAa,EAAG,EAAG,KAGvBwsC,EAAI18G,KAAKv2B,KAAKqP,QAAQu8D,aA52BRwtE,IACAD,IA22B0C,UACxDlG,EAAIxsC,aAAa,GACjBwsC,EAAI18G,KAAK,OAASyjE,EA/2BLq/C,IAECF,IA62B6B,QAC/C,CASA5D,eAAAA,CAAgB+D,GACZ,OAAO,IAAIjlI,SAASC,IAEhB,IAAKtU,KAAK0pC,KAAK4vG,GAEX,YADAhlI,EAAQ,MAGZ,IAAI6nC,EAAWn8C,KAAK0pC,KAAK4vG,GAAa3hI,QAClC4hI,EAAQ9hI,SAAS+hI,eAAer9F,GACpC,IAAKo9F,IAAUA,EAAMxxI,cAGjB,YADAuM,EAAQ,MAGZ,IAAImlI,EAAcF,EAAMxxI,cAGF0P,SAAS+hI,eAAe,mBAC9Bv5B,YAAYs5B,GAvyBnB,WAAsC,IAA5BG,EAASn5I,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,WAAa,EACpD,OAAO,IAAI8T,SAASC,IAChBxW,OAAOud,OAAOC,OAAOq+H,cAChBtyI,QAAQw2E,IAAsB,IAAhBA,EAAE+7D,YAChB/hI,SAASgmE,GAAM//E,OAAOud,OAAOC,OAAOq+H,cAAcE,aAAah8D,KACpE,IAAI7I,EAAIA,IAAM1gE,IACd0gE,EAAE4kE,WAAY,EACd97I,OAAOud,OAAOC,OAAOq+H,cAAc/3I,KAAKozE,GAGxC0kE,GAAW,GAEnB,CA8xBYI,EAAa,KACT95I,KAAK0pC,KAAK4vG,GAAalgI,MAAK,EAAK,IAClC7E,MAAK,KAEJ,IAAIgjF,EAAKz5F,OAAOud,OAAO,IAAM8gC,GACzBw6D,EAAS,KAGbn1G,OAAOgW,OAAOC,SAASC,iBAAiB,IAAIykC,6BACvC90C,QACIkB,KACKA,GAAiC,IAAzBA,EAAKT,SAAS5I,QAAgBqJ,EAAKT,SAAS,GAAG8P,cACzDrP,EAAKT,SAAS,GAAG8P,YAAY/X,SAAS,YAE7CgY,SAAStP,GAASA,EAAKuP,WAExBy/E,IAAIof,EAASpf,EAAGwiD,uBAOpBN,EAAYx5B,YAAYs5B,GAExBjlI,EAAQ,CACJvC,OAAQ4kG,EAASA,EAAO5kG,OAAS,KACjC5F,MAAOwqG,EAASA,EAAOxqG,MAAQ,KAC/BpB,KAAM4rG,EAASA,EAAO/E,UAAU,aAAc,GAAK,MAErD,GACJ,GAEV,GAGH/uG,IAAAoB,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,QAvzBI2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,IAAAmB,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,SAAA0C,IAAA,CAAA4B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqE,IAAAkB,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,iBAEP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAkL,IAAA3F,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,mBACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAmL,IAAA5F,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,WACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoL,IAAA7F,EAAAA,EAAAA,GAAAvB,GAAA9C,UAAA,cACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAgE,kLC9I6B,IAEpBs3I,GAAsB13I,GACtCC,EAAAA,EAAAA,QAAQ,QAAOC,GAKfC,EAAAA,EAAAA,UACG,6CACA,0KACHC,EATU,cAAqCg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,aAAAC,EAAA,OAAAD,EAAAA,EAAAA,GAAA,gBAAAE,EAAA,OAAAF,EAAAA,EAAAA,GAAA,eAAAG,EAAA,OAAAH,EAAAA,EAAAA,GAAA,qBAAAgH,EAAA,MAMxD,eAIIye,GACA,OAAOroB,KAAKi6I,sBAChB,CAEAC,eAAAA,CAAgBnqI,EAAWrH,GACvB,IAAIyxI,EAAmBn6I,KAAK8D,MAAMkB,gBAC9Bo1I,EAASp6I,KAAKguB,IAAI,gCAAgCtlB,eAClD2xI,EAAQr6I,KAAKguB,IAAI,gCAAgCtlB,cACjD4xI,GAAQ,EAAIt6I,KAAKguB,IAAI,gCAAgCtlB,aACrD6xI,EAAcxhI,EAAAA,QAASyhI,qBAAqBzqI,EAAWqqI,EAAQC,GAC/DI,EAAkB1hI,EAAAA,QAAS2hI,2BAA2BH,EAAaD,GAEvE,OAAOvhI,EAAAA,QAAS,YAAYrQ,UAAaqH,EAAW0qI,EAAiBN,EACzE,CAEAQ,yBAAAA,CAA0B5qI,GACtB,IAAImkC,EAAMl0C,KAAKk6I,gBAAgBnqI,EAAW,OACtCg7D,EAAM/qE,KAAKk6I,gBAAgBnqI,EAAW,OACtC6qI,EAAgB56I,KAAKue,SAASq8H,cAElC,MAAO,CACH1mG,IACIl0C,KAAKwD,cAAcC,YAAYiF,OAASogB,EAAAA,QAAO0V,SAASC,IACxDz+B,KAAKwD,cAAcmS,eAAejN,OAASogB,EAAAA,QAAOmW,YAAYC,SACxDgV,EACA0mG,EAAc3mG,MAAMC,IAC9B62B,IAAKA,EACL52B,aACIn0C,KAAK8D,MAAMmuD,cAAgBnpC,EAAAA,QAAO83B,cAAcU,uBAC1CypB,EACA6vE,EAAc3mG,MAAME,aAC9BC,iBAAkBwmG,EAAc3mG,MAAMG,iBAE9C,CAEAymG,mBAAAA,CAAoBC,GAChB,IAAIznF,EAA0C,GAA1BrzD,KAAK8D,MAAMoB,aAAsBlF,KAAK8D,MAAMwrC,UAC5DgkB,EAAiBn0D,KAAK6zD,IAAI,IAAK7zD,KAAKC,MAAMi0D,GAAgB,GAAIj7C,QAAQ,IAC1E,OAAI0iI,EACO37I,KAAK6zD,IAAI,GAAI7zD,KAAKC,MAAM07I,GAAqB37I,KAAKC,MAAMi0D,EAAeC,GAAkB,IACxFn0D,KAAK6zD,IAAI,GAAI7zD,KAAK8Y,MAAM9Y,KAAKC,MAAMk0D,IACnD,CAEAynF,oBAAAA,CAAqBhrI,EAAW86D,GAC5B,GACI35D,EAAAA,QAAMga,UAAUlrB,KAAK8D,MAAML,YAAYu3I,mBACvCjrI,EAAY/P,KAAK8D,MAAMwrD,uBAAyB,EAEhD,OAAOtvD,KAAK8D,MAAML,YAAYu3I,iBAElC,IAAIC,EACA97I,KAAK6zD,IAAI,GAAI6X,EAAY32B,IAAM,IAC/B/0C,KAAK6zD,IAAI,GAAI6X,EAAYE,IAAM,IAC/B5rE,KAAK6zD,IAAI,GAAI6X,EAAY12B,aAAe,IACxCh1C,KAAK6zD,IAAI,GAAI6X,EAAYz2B,iBAAmB,IAIhD,OAAO,GAAKj1C,KAAKC,MAAMD,KAAKkxD,KAAK4qF,GACrC,CAEAC,gBAAAA,CAAiBnrI,GACb,GACImB,EAAAA,QAAMga,UAAUlrB,KAAK8D,MAAML,YAAYu3I,mBACvCjrI,EAAY/P,KAAK8D,MAAMwrD,uBAAyB,EAEhD,OAAOtvD,KAAK8D,MAAML,YAAYu3I,iBAElC,IAAIloF,EAAwB9yD,KAAK8D,MAAMgvD,sBACnC7iD,EAAOjQ,KAAK8D,MAAMmM,KAClBkrI,EAAc,EAYlB,OATIA,GAD0B,IAA1BroF,EACc/5C,EAAAA,QAASqiI,qBAAqBrrI,EAAWE,EAAMjQ,KAAKwD,cAAcC,aAAc,KAEhFsV,EAAAA,QAASqiI,qBACnBrrI,EACAE,EACAjQ,KAAKwD,cAAcC,YACnBqvD,GAGDqoF,CACX,CAEAE,mBAAAA,CAAoBxoF,EAAmByoF,EAAYpwE,GAC/C,OACI,GACA/rE,KAAKC,MAAMD,KAAK6zD,IAAI,GAAIH,EAAoB,IAAM1zD,KAAK6zD,IAAI,GAAIsoF,EAAa,IAAMn8I,KAAK6zD,IAAI,GAAIkY,EAAS,IAEhH,CAEAqwE,kBAAAA,CAAmBxrI,EAAW86D,GAC1B,IAAIhY,EAAoB7yD,KAAK8D,MAAM+uD,kBAC/B2oF,EAAYx7I,KAAK8D,MAAMwB,kBAAkBk9B,MAAMC,SAC/Cg5G,EAASz7I,KAAK8D,MAAMwB,kBAAkB/B,IAAIk/B,SAC1Ci5G,EAAU17I,KAAK8D,MAAMsoD,UACrB+tF,EAAmBn6I,KAAK8D,MAAMkB,gBAC9B22I,EAAkB37I,KAAK8D,MAAMwB,kBAAkBwhB,OAAO8b,UACtDg5G,EAAe57I,KAAK8D,MAAMwB,kBAAkBo4B,OAAOkF,UACnDi5G,EAAUH,GAAW,EAAI3rI,EAAYoqI,GACrC2B,EAAgB,GAAK38I,KAAKC,MAAMy8I,EAAUF,GAC1CI,EAAa,GAAK58I,KAAKC,MAAMy8I,EAAUD,GACvCN,EAAat7I,KAAK+6I,qBAAqBhrI,EAAW86D,GAClDK,EAASlrE,KAAKk7I,iBAAiBnrI,GAC/Bo7D,EAAYnrE,KAAKq7I,oBAAoBxoF,EAAmByoF,EAAYpwE,GACpEz/D,EAAM,CACFqb,OAAQ+rC,EACRhtC,IAAKy1H,EACL/3I,IAAK2nE,EACLrkD,OAAQskD,GAEZv3B,EAAQ,CACJ9sB,OAAQ/N,EAAAA,QAASijI,eAAeF,EAAejpF,GAC/ChtC,IAAK9M,EAAAA,QAASijI,eAAeD,EAAYT,GACzC/3I,IAAKwV,EAAAA,QAASijI,eAAeP,EAAQvwE,GACrCrkD,OAAQ9N,EAAAA,QAASijI,eAAeR,EAAWrwE,IASnD,MAAO,CACH1/D,IAAKA,EACLmoC,MAAOA,EACPC,KAVO,CACH/sB,OAAQ/N,EAAAA,QAASkjI,cAAcroG,EAAM9sB,QACrCjB,IAAK9M,EAAAA,QAASkjI,cAAcroG,EAAM/tB,KAClCtiB,IAAKwV,EAAAA,QAASkjI,cAAcroG,EAAMrwC,KAClCsjB,OAAQ9N,EAAAA,QAASkjI,cAAcroG,EAAM/sB,SAOzC9W,UAAWA,EACX86D,YAAaA,EAErB,CAEAqxE,aAAAA,CAAcvzH,GACV,IAAIhM,EACAw/H,EAAS,EACTjiI,EAAOyO,EAAezpB,OAE1B,IAAK,IAAI81E,EAAI,EAAGA,EAAI96D,EAAM86D,IACtBr4D,EAAMxd,KAAKyb,IAAI+N,EAAewzH,GAAUn8I,KAAK8D,MAAMiM,WAE/C5Q,KAAKyb,IAAI+N,EAAeqsD,GAAKh1E,KAAK8D,MAAMiM,WAAa4M,IAAKw/H,EAASnnE,GAG3E,OAAOmnE,CACX,CAEAC,YAAAA,CAAa79H,EAAU7V,GACnB,IAAIjI,EAASykB,IAAUllB,KAAKue,SAAS89H,4BAA4B3zI,IAC7D4zI,EAAW/9H,EAAStT,KAAKhJ,GAAMA,EAAEyG,KAMrC,OAJAjI,EAAOqmB,OAASw1H,EAASrxI,KAAKhJ,GAAMA,EAAE6kB,SACtCrmB,EAAOolB,IAAMy2H,EAASrxI,KAAKhJ,GAAMA,EAAE4jB,MACnCplB,EAAO8C,IAAM+4I,EAASrxI,KAAKhJ,GAAMA,EAAEsB,MACnC9C,EAAOomB,OAASy1H,EAASrxI,KAAKhJ,GAAMA,EAAE4kB,SAC/BpmB,CACX,CAEAw5I,oBAAAA,GACI,IAAI17H,EAAW,GAEf,IAAK,IAAI5c,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,IAAIoO,EAAY/P,KAAK66I,oBAAoBl5I,EAAI,EAAI4c,EAAS5c,EAAI,GAAGoO,eAAYoQ,GAEzE0qD,EAAc7qE,KAAK26I,0BAA0B5qI,GAEjDwO,EAAS5c,GAAK3B,KAAKu7I,mBAAmBxrI,EAAW86D,EACrD,CAEA7qE,KAAKohH,QAAQ12C,aACTnsD,EACAve,KAAKwD,cAAcC,YACnBzD,KAAKwD,cAAcmS,eACnB3V,KAAK8D,MAAM+uD,mBAIf,IAAIlqC,EAAiBpK,EAAStT,KAAKhJ,GAAMA,EAAE8N,YACvCwsI,EAAWv8I,KAAKk8I,cAAcvzH,GAC9B6zH,EAAcj+H,EAASg+H,GAE3B,MAAO,CACH5zH,eAAgBA,EAChBL,cAAe,CACX7c,IAAKzL,KAAKo8I,aAAa79H,EAAU,OACjCq1B,MAAO5zC,KAAKo8I,aAAa79H,EAAU,SACnCs1B,KAAM7zC,KAAKo8I,aAAa79H,EAAU,SAGtC4J,YAAao0H,EACbj6G,SAAUk6G,EAAY5oG,MAAM/sB,OAC5Bub,QAASo6G,EAAY3oG,KAAKhtB,OAC1B+8C,UAAW44E,EAAY/wI,IAAIoa,IAC3Bg+C,UAAW24E,EAAY/wI,IAAIlI,IAC3B2+B,aAAcs6G,EAAY/wI,IAAIob,OAEtC,GACHhkB,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,SAAA0C,GAAA,CAAA4B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,GAAAmB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YA/MI2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqE,GAAAkB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,WACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAkL,GAAA3F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iBACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,QAAAuF,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,eAAA4C,GAAAhB,OAAA6C,yBAAA3B,EAAA9C,UAAA,eAAA8C,EAAA9C,WAAA8C,6JCRqB,IAEZ+5I,GAAen6I,GA0B/BG,EAAAA,EAAAA,UAAS,kCAAiCC,EA1BhC,cAA8Bg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,mCACnBk8I,EAAAA,QAASz2H,8BAA2BzlB,EAAAA,EAAAA,GAAA,2BAC5Ck8I,EAAAA,QAASx1G,sBAAmB1mC,EAAAA,EAAAA,GAAA,qBAClCk8I,EAAAA,QAAS3oG,SAASC,QAAKxzC,EAAAA,EAAAA,GAAA,sBAEtB,CACbwmB,iBAAkB,CACdvb,IAAMiU,GAAsC,EAA7BvgB,KAAKunB,OAAOhH,EAAO,GAAK,GAAS,GAChDk0B,MAAQl0B,GAAgC,EAAvBvgB,KAAKunB,MAAMhH,EAAO,GAAS,GAC5Cm0B,KAAOn0B,GAASvgB,KAAKunB,MAAMhH,GAAQ,IAE1C,CAEDlB,OAAAA,CAAQkoB,EAAUi2G,GACd,IAAIz1G,EAAsBw1G,EAAAA,QAASx1G,oBAC/Bn8B,EAAOw1C,IAAM,CAAC,EAAGrZ,EAA6B,QAAGA,EAAoBR,IACrEk2G,EAAS7xI,EAAK+d,EAAAA,QAAO+zH,mBAAmBF,IAO5C,OALIC,IACAr8F,IAAMx1C,EAAM6xI,UACL7xI,EAAK+d,EAAAA,QAAO+zH,mBAAmBF,KAGnC5xI,CACX,CAEA,sBAAgDoa,GAC5C,IAAI23H,EAAe,CAAC,EAKpB,OAJAt7I,OAAOC,KAAKi7I,EAAAA,QAAS/oG,uBAAuB97B,SAASqO,IACjD42H,EAAa52H,GAAO,EAAE,IAGnB42H,CACX,CAEAT,2BAAAA,CAA4B3zI,GACxB,IAAIjI,EAASi8I,EAAAA,QAAS/oG,sBAAsBjrC,GAI5C,OAFAjI,EAAOumB,iBAAmBhnB,KAAK+8I,eAAe/1H,iBAAiBte,GAExDjI,CACX,IACHwD,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,sBAAA0C,GAAAd,OAAA6C,yBAAA3B,EAAA9C,UAAA,sBAAA8C,EAAA9C,WAAA8C,mMC3C0C,IAEtBs6I,GAAoB16I,GAIpCqH,EAAAA,EAAAA,OAAM,iBAAgBnH,GACtBmH,EAAAA,EAAAA,OAAM,oBAAmBlF,GACzBkF,EAAAA,EAAAA,OAAM,qBAAoBjF,GAsE1BjC,EAAAA,EAAAA,UAAS,wBAAyB,6BAA4BkC,GAY9DlC,EAAAA,EAAAA,UAAS,OAAQ,uBAAsBmC,GASvCnC,EAAAA,EAAAA,UAAS,sBAAuB,QAAOoC,GAMvCpC,EAAAA,EAAAA,UAAS,eAAcqC,GAUvBrC,EAAAA,EAAAA,UAAS,eAAcs/B,GA2BvBt/B,EAAAA,EAAAA,UAAS,iBAAgBmjC,GAIzBnjC,EAAAA,EAAAA,UAAS,oBAAmBC,EAhJlB,cAAmCg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,YAAAC,EAAA,OAAAD,EAAAA,EAAAA,GAAA,gBAAAE,EAAA,OAAAF,EAAAA,EAAAA,GAAA,YAAAG,EAAA,OAAAH,EAAAA,EAAAA,GAAA,eAAAgH,EAAA,OAAAhH,EAAAA,EAAAA,GAAA,gBAAAiH,EAAA,OAAArJ,EAAAA,EAAAA,GAAA,mBAQxC,OAAIA,EAAAA,EAAAA,GAAA,mBACJ,OAAIA,EAAAA,EAAAA,GAAA,sBAED,OAAIA,EAAAA,EAAAA,GAAA,sBACJ,OAAIA,EAAAA,EAAAA,GAAA,0BAEA,OAAIA,EAAAA,EAAAA,GAAA,wBACN,OAAIA,EAAAA,EAAAA,GAAA,2BACD,OAAIA,EAAAA,EAAAA,GAAA,YAEnB,KAAI,CAEXwC,IAAAA,GACIC,MAAMD,OAKNhD,KAAK+V,IAAI,kBAAmB,CACxB,CAAEiX,YAAahtB,KAAKoD,KAAKC,EAAE,sBAAsB0F,WAAYxC,GAAIuiB,EAAAA,QAAOi4B,SAASC,WACjF,CAAEh0B,YAAahtB,KAAKoD,KAAKC,EAAE,0BAA0B0F,WAAYxC,GAAIuiB,EAAAA,QAAOi4B,SAASK,eACrF,CAAEp0B,YAAahtB,KAAKoD,KAAKC,EAAE,qBAAqB0F,WAAYxC,GAAIuiB,EAAAA,QAAOi4B,SAASG,YAGpFlhD,KAAK+V,IACD,kBACA/V,KAAK+9D,gBAAgBp2D,MAAMssB,GAAWA,EAAO1tB,KAAOuiB,EAAAA,QAAOi4B,SAASG,YAMxElhD,KAAK+V,IAAI,oBAAqB,CAC1B,CAAEiX,YAAahtB,KAAKoD,KAAKC,EAAE,kBAAkB0F,WAAYxC,GAAIuiB,EAAAA,QAAOqW,YAAYV,IAChF,CAAEzR,YAAahtB,KAAKoD,KAAKC,EAAE,oBAAoB0F,WAAYxC,GAAIuiB,EAAAA,QAAOqW,YAAY6W,QAGtFh2C,KAAK+V,IAAI,iBAAkB/V,KAAKi9I,iBAAiB,oBAAqB,mBACtEj9I,KAAK+V,IAAI,mBAAoB/V,KAAKi9I,iBAAiB,oBAAqB,qBACxEj9I,KAAK+V,IAAI,oBAAqB/V,KAAKk9I,kBAAkBl9I,KAAKm9I,eAAiB,IAK3En9I,KAAK+V,IAAI,qBAAsB,CAC3B,CAAEiX,YAAahtB,KAAKoD,KAAKC,EAAE,oBAAoB0F,WAAYxC,GAAI,GAC/D,CAAEymB,YAAahtB,KAAKoD,KAAKC,EAAE,qBAAqB0F,WAAYxC,GAAI,GAChE,CAAEymB,YAAahtB,KAAKoD,KAAKC,EAAE,wBAAwB0F,WAAYxC,GAAI,GACnE,CAAEymB,YAAahtB,KAAKoD,KAAKC,EAAE,uBAAuB0F,WAAYxC,GAAI,GAClE,CAAEymB,YAAahtB,KAAKoD,KAAKC,EAAE,0BAA0B0F,WAAYxC,GAAI,KAGzEvG,KAAK+V,IAAI,mBAAoB/V,KAAKi9I,iBAAiB,qBAAsB,qBACzEj9I,KAAK+V,IAAI,oBAAqB/V,KAAKi9I,iBAAiB,qBAAsB,sBAC1Ej9I,KAAK+V,IAAI,uBAAwB/V,KAAKi9I,iBAAiB,qBAAsB,yBAC7Ej9I,KAAK+V,IAAI,oBAAqB/V,KAAKi9I,iBAAiB,qBAAsB,wBAC1Ej9I,KAAK+V,IAAI,uBAAwB/V,KAAKi9I,iBAAiB,qBAAsB,2BAC7Ej9I,KAAK+V,IAAI,qBAAsB/V,KAAKo9I,mBAAmBp9I,KAAKq9I,iBAAmB,GACnF,CAEA,cAAI90E,GACA,OAAOvoE,KAAKqN,SAAS0mC,SAASxwC,GAClC,CAEA,iBAAI+yC,GACA,OAAOt2C,KAAKqN,SAAS0mC,SAASrW,MAClC,CAEA,eAAoE4/G,GAChE,IAAIC,EAAoB/7I,OAAOC,KAAKqnB,EAAAA,QAAOqW,aACtCl0B,KAAKib,IACK,CAAE3f,GAAIuiB,EAAAA,QAAOqW,YAAYjZ,GAAM8G,YAAa9G,MAEtDve,MAAMo3B,GAAeA,EAAWx4B,KAAOvG,KAAKg/B,mBAAmBz4B,KAEpE,OAAOvG,KAAKixE,SAAStpE,MAAMupE,GAAQA,EAAInyC,aAAew+G,EAAkBvwH,aAC5E,CAIA,uBAA6Cy0B,GACzC,IAAI5iB,EAAO7+B,KAAK6+B,KACZ4hB,EAAWzgD,KAAKgrD,iBAAiBzkD,GACrC,SAAMk6C,IAAY5hB,KAGX4hB,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAaT,IAAa33B,EAAAA,QAAOi4B,SAASK,eAA0B,IAATviB,EACnG,CAEA,oBAA6C6hB,GACzC,IAAIsK,EAAmBhrD,KAAKgrD,iBAAiBzkD,GAE7C,OAD0BvG,KAAKyhD,oBACF34B,EAAAA,QAAOi4B,SAASG,SAAW8J,CAC5D,CAEA,mBAA6BqiB,GACzB,IAAI5pE,EAAczD,KAAKyD,YACvB,OAAIA,EAAY41D,kBAELr5D,KAAKqN,SAASy8C,KAAKniD,MAAMpE,GAAQA,EAAIG,WAAaD,EAAYC,WAAaH,EAAI81D,oBAGnF51D,CACX,CAEA,kBAA6B6pE,GACzB,IAAI7pE,EAAczD,KAAKyD,YAEvB,OAAIA,EAAY+nC,UAAY/nC,EAAY+nC,SAAStsC,OAAe,KAE5DuE,EAAYknD,aACXlnD,EAAY41D,mBACb51D,EAAYooC,QAAQC,OAAShjB,EAAAA,QAAOoS,QAAQC,IAAIC,IAGzCp7B,KAAKqN,SAASy8C,KAAKniD,MACrBpE,GACGA,EAAIG,WAAaD,EAAYC,UAC7BH,EAAI81D,mBACJ91D,EAAIunD,eAAehf,OAAShjB,EAAAA,QAAOoS,QAAQC,IAAIC,MAGtD33B,EAAYknD,YAAgBlnD,EAAYooC,QAAQC,OAAShjB,EAAAA,QAAOoS,QAAQC,IAAIC,MAC5E33B,EAAYknD,WAGN,KAGJlnD,CACX,CAEA,uBAA+B+5I,GAC3B,OAAOx9I,KAAKqN,SAASy8C,KAAK7+C,KAAK1H,GAAQA,EAAI+H,YAAWolE,kBAC1D,CAEA,0BAAkCzgD,GAC9B,IAAI7sB,EAAOpD,KAAKoD,KAChB,OAAOpD,KAAKqN,SAAS88C,QAChBl/C,KAAKyyB,IACF,IAAIh1B,EAAOtF,EAAKC,EAAE,gBAAgBq6B,EAAOh1B,KAAK+D,iBAAiB1D,WAC/D,GAAIL,EACA,OAAOA,CACX,IAEHgoE,kBACT,CAEAusE,gBAAAA,CAAiBQ,EAAaC,GAC1B,OAAO19I,KAAKguB,IAAIyvH,GAAap2I,QACxB4sB,GAAWA,EAAOjH,cAAgBhtB,KAAKoD,KAAKC,EAAEq6I,GAAwB30I,aACzE,GAAGxC,EACT,CAEAo3I,cAAAA,CAAe70E,EAAa80E,GACxB,IAAIC,EAAe79I,KAAKguB,IAAI,GAAG86C,YAAsBzhE,OAAOu2I,GAC5D,OAAIC,GAAwC,IAAxBA,EAAa3+I,OACtB2+I,EAAa,GAGjB79I,KAAKguB,IAAI,UAAUu8B,IAAWue,KACzC,CAEA5K,iBAAAA,CAAkB4K,EAAag1E,GAC3B,OAAO99I,KAAK29I,eAAe70E,GAAc70C,GAAWA,EAAO1tB,KAAOu3I,GACtE,CAEAC,0BAAAA,CAA2BN,EAAaO,GACpC,OAAOh+I,KAAK29I,eAAeF,GAAcxpH,GAAWA,EAAOjH,cAAgBgxH,GAC/E,CAEAC,mBAAAA,CAAoBR,EAAaS,GAC7B,OAAOl+I,KAAK29I,eAAeF,GAAcxpH,GAAWA,EAAOiqH,cAAgBA,GAC/E,CAEAn1E,wBAAAA,CAAyBD,GACrB,OAAO9oE,KAAKguB,IAAI,UAAUu8B,IAAWue,KACzC,CAEAnf,8BAAAA,CAA+BnJ,GAC3B,OAAIA,IAAY13B,EAAAA,QAAO0V,SAASC,GAErBz+B,KAAKk+D,kBAAkB,aAAcl+D,KAAKm9I,gBAG1Cn9I,KAAKk+D,kBAAkB,aAAcl+D,KAAKm+I,iBAEzD,GACHt7I,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,QAnMI2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,GAAAmB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqE,GAAAkB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,QAAA0C,GAAA,CAAA4B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAkL,GAAA3F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,WAAA4C,GAAA,CAAA0B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAmL,GAAA5F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YAAA6E,GAAA,CAAAP,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,QAAAuF,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,eAAA8E,GAAAlD,OAAA6C,yBAAA3B,EAAA9C,UAAA,eAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,uBAAA+E,GAAAnD,OAAA6C,yBAAA3B,EAAA9C,UAAA,uBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,oBAAAgF,GAAApD,OAAA6C,yBAAA3B,EAAA9C,UAAA,oBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,mBAAAiF,GAAArD,OAAA6C,yBAAA3B,EAAA9C,UAAA,mBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,kBAAAkF,GAAAtD,OAAA6C,yBAAA3B,EAAA9C,UAAA,kBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,uBAAAmiC,GAAAvgC,OAAA6C,yBAAA3B,EAAA9C,UAAA,uBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,0BAAAgmC,GAAApkC,OAAA6C,yBAAA3B,EAAA9C,UAAA,0BAAA8C,EAAA9C,WAAA8C,8OCH6B,IAEpB07I,GAAqB97I,GAMrCqH,EAAAA,EAAAA,OAAM,6BAA4BnH,GAClCmH,EAAAA,EAAAA,OAAM,sCAAqClF,GAC3CkF,EAAAA,EAAAA,OAAM,yCAAwCjF,GAyD9CjC,EAAAA,EAAAA,UAAS,yBAAwBkC,GAKjClC,EAAAA,EAAAA,UAAS,4BAA2BmC,GAKpCnC,EAAAA,EAAAA,UAAS,iBAAkB,qBAAoBoC,GAI/CpC,EAAAA,EAAAA,UAAS,wBAAuBqC,GAKhCrC,EAAAA,EAAAA,UAAS,8BAA6Bs/B,GAKtCt/B,EAAAA,EAAAA,UAAS,mCAAkCmjC,GAK3CnjC,EAAAA,EAAAA,UAAS,OAAQ,kBAAiBojC,GAkBlCpjC,EAAAA,EAAAA,UAAS,OAAQ,WAAUq8C,GAS3Br8C,EAAAA,EAAAA,UAAS,OAAQ,aAAYs8C,GAsB7Bt8C,EAAAA,EAAAA,UAAS,iCAAgCu8C,GAIzCv8C,EAAAA,EAAAA,UAAS,WAAY,mBAAoB,sBAAqBw8C,GAyD9Dx8C,EAAAA,EAAAA,UACG,yCACA,0BACA,WACA,gCACA,0BACHy8C,GAwBAz8C,EAAAA,EAAAA,UAAS,OAAQ,iBAAkB,YAAW08C,GAU9C18C,EAAAA,EAAAA,UAAS,aAAc,OAAM28C,GAS7B38C,EAAAA,EAAAA,UAAS,aAAY48C,GAWrB58C,EAAAA,EAAAA,UAAS,oBAAmB68C,GAM5B78C,EAAAA,EAAAA,UAAS,oBAAmB88C,GAM5B98C,EAAAA,EAAAA,UAAS,oBAAmB+8C,GAM5B/8C,EAAAA,EAAAA,UAAS,oBAAmBg9C,GAM5Bh9C,EAAAA,EAAAA,UAAS,mBAAoB,cAAasiD,GAS1CtiD,EAAAA,EAAAA,UAAS,oBAAmBC,EAzSlB,cAAoCg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,YAAAC,EAAA,OAAAD,EAAAA,EAAAA,GAAA,qBAAAE,EAAA,OAAAF,EAAAA,EAAAA,GAAA,mBAAAG,EAAA,OAAAH,EAAAA,EAAAA,GAAA,gBAAAgH,EAAA,OAAAhH,EAAAA,EAAAA,GAAA,mBAAAiH,EAAA,OAAAjH,EAAAA,EAAAA,GAAA,mBAAAkH,EAAA,OAAAlH,EAAAA,EAAAA,GAAA,sBAAAmH,EAAA,OAAAvJ,EAAAA,EAAAA,GAAA,wBAUrC,EAAK,CAEvBwC,IAAAA,GACIC,MAAMD,OACNhD,KAAK+V,IAAI,eAAe,EAC5B,CAQAlI,yBAAAA,GACI,IAAIpK,EAAczD,KAAKyD,YACnB46I,EAASr+I,KAAKqN,SAASyjE,iBAAiB9wE,KAAKyD,YAAYC,UACzDsf,EAAqD,gBAAnCvf,EAAYyyC,sBAAyCmoG,EAyB3E,GAvBAr+I,KAAK+V,IAAI,mBAAoBsoI,GAEzBr+I,KAAKs+I,eAAgBt+I,KAAK+V,IAAI,OAAQiN,EAAkBq7H,EAAOE,KAAKvgJ,QAAU,MAC7EgC,KAAK+V,IAAI,OAAQ,MAElB/V,KAAKw+I,cAAex+I,KAAK+V,IAAI,WAAYiN,EAAkBq7H,EAAOI,IAAIzgJ,QAAU,MAC/EgC,KAAK+V,IAAI,WAAY,MAEtB/V,KAAK0+I,kBAAmB1+I,KAAK2+I,qBAAqB,UAAW37H,GAC5DhjB,KAAK+V,IAAI,UAAW,MAEzB/V,KAAK2+I,qBAAqB,YAAa37H,GACvChjB,KAAK2+I,qBAAqB,aAAc37H,GAEpChjB,KAAKw+I,cAAex+I,KAAK2+I,qBAAqB,mBAAoB37H,GACjEhjB,KAAK+V,IAAI,mBAAoB,MAG9B/V,KAAK4+I,yBACL5+I,KAAK2+I,qBAAqB,iBAAkB37H,EAAiBhjB,KAAK2lE,WAAa3lE,KAAK2lE,WAAWp/D,GAAK,MACnGvG,KAAK+V,IAAI,iBAAkB,MAG5BiN,GAAmBhjB,KAAKonE,YAAa,CACrC,IAAIzqC,EAAa38B,KAAK6+I,gBACtBr9I,OAAOC,KAAKk7B,GAAY9kB,SAAS6kB,GAAiB18B,KAAK+V,IAAI2mB,EAAcC,EAAWD,KACxF,CAEA18B,KAAK+V,IAAI,eAAe,GACxB/V,KAAK+V,IAAI,kBAAmBiN,EAChC,CAOA,kBAAuCs7H,GACnC,QAAKt+I,KAAK8+I,oBACD9+I,KAAK8+I,iBAAiBP,IACnC,CAEA,qBAA0CG,GACtC,QAAK1+I,KAAK8+I,oBACD9+I,KAAK8+I,iBAAiBC,OACnC,CAEA,YAAqDC,GACjD,OAAOh/I,KAAKs+I,gBAAkBt+I,KAAK0+I,iBACvC,CAEA,iBAAsCF,GAClC,QAAKx+I,KAAK8+I,oBACD9+I,KAAK8+I,iBAAiBL,GACnC,CAEA,8BAA4CQ,GACxC,QAAKj/I,KAAK8+I,oBACD9+I,KAAK8+I,iBAAiBI,gBACnC,CAEA,4BAAiDN,GAC7C,QAAK5+I,KAAK8+I,oBACD9+I,KAAK8+I,iBAAiBK,cACnC,CAEA,aAAwCC,GACpC,IAAKp/I,KAAKs+I,eAAgB,MAAO,GAEjC,IAAIl7I,EAAOpD,KAAKoD,KACZm7I,EAAOv+I,KAAKu+I,KACZF,EAASr+I,KAAK8+I,iBAElB,IAAKP,IAASF,EAAQ,MAAO,GAE7B,IAAIgB,EAAUhB,EAAOE,KAAK5hI,IACtB2iI,EAAUjB,EAAOE,KAAK3hI,IAG1B,OAFc2hI,EAAOc,GAAWd,EAAOe,EAGjCl8I,EAAKC,EAAE,gBAAiB,CAAEg8I,QAASz7I,EAAAA,QAAUw7B,KAAKigH,GAAUC,QAAS17I,EAAAA,QAAUC,KAAKy7I,KACpF,EACV,CAEA,QAAiCztF,GAC7B,IAAI0sF,EAAOv+I,KAAKu+I,KACZQ,EAAU/+I,KAAK++I,QAEnB,OAAK7tI,EAAAA,QAAMga,UAAUqzH,IAAUQ,EAExBR,EAAOQ,EAAQ/4I,MAFyB,IAGnD,CAEA,aAAmCu5I,GAC/B,IAAIn8I,EAAOpD,KAAKoD,KACZyuD,EAAO7xD,KAAK6xD,KACZJ,EAAYzxD,KAAKyxD,UAErB,IAAKvgD,EAAAA,QAAMga,UAAU2mC,KAAUJ,EAAW,MAAO,GAEjD,IAAI+tF,EAAU/tF,EAAUI,KAAKl1C,IACzB8iI,EAAUhuF,EAAUI,KAAKj1C,IAEzB8iI,EAAa7tF,EAAO4tF,EACpBtsI,EAAU,GAQd,OAViB0+C,EAAO2tF,EAKpBrsI,EAAU/P,EAAKC,EAAE,mBAAoB,CAAEouD,UAAWA,EAAUlrD,GAAIi5I,QAAS57I,EAAAA,QAAUC,KAAK27I,KACjFE,IACPvsI,EAAU/P,EAAKC,EAAE,mBAAoB,CAAEouD,UAAWA,EAAUlrD,GAAIk5I,QAAS77I,EAAAA,QAAUC,KAAK47I,MAGrFtsI,CACX,CAEA,YAA+CwsI,GAC3C,OAAO3/I,KAAK2lE,YAAc3lE,KAAK2lE,WAAWg6E,SAAW3/I,KAAK2lE,WAAWg6E,SAAW,IACpF,CAEA,YAAoEC,GAChE,IAAIC,EAAW7/I,KAAK8/I,SAChBn6E,EAAa3lE,KAAK2lE,WAClBg6E,EAAW3/I,KAAK2/I,SAChBxsI,EAAU,GAEd,OAAKjC,EAAAA,QAAMga,UAAU20H,IAAcF,IAE/BE,EAAWF,EAAShjI,KAAOkjI,EAAWF,EAAS/iI,OAC/CzJ,EAAUnT,KAAKoD,KAAKC,EAAE,4BAA6B,CAC/CgE,OAAQs+D,EAAWo6E,QACb//I,KAAKoD,KAAKC,EAAE,gCAAgCsiE,EAAWo6E,WACvDp6E,EAAW3/D,MACjB2W,IAAK/Y,EAAAA,QAAUw7B,KAAKugH,EAAShjI,KAC7BC,IAAKhZ,EAAAA,QAAUw7B,KAAKugH,EAAS/iI,QAI9BzJ,GAZ6C,EAaxD,CAMA01C,UAAAA,GACI,IAAIgJ,EAAO7xD,KAAK6xD,KAEhB,OAAI7xD,KAAKgjB,iBAAmB9R,EAAAA,QAAMga,UAAUlrB,KAAK8/I,UACtC9/I,KAAK8/I,SACL9/I,KAAKgjB,iBAAmB9R,EAAAA,QAAMga,UAAU2mC,GACjC,EAAPA,EAEA,IAEf,CAEA3I,WAAAA,GACI,IAAIlmC,EAAkBhjB,KAAKgjB,gBACvBg9H,EAAiBhgJ,KAAKggJ,eACtBvuF,EAAYzxD,KAAKyxD,UAErB,OAEQzuC,GACAg9H,GACAvuF,GACAA,EAAUwuF,YACVD,KAAkBvuF,EAAUwuF,WAM7BxuF,EAAUwuF,WAAWD,GAHjB,IAIf,CAEA,4BAOIxvF,GACA,OAEQxwD,KAAK8+I,kBACL9+I,KAAK2lE,YACL3lE,KAAKk/I,kBACLl/I,KAAKyxD,WACLvgD,EAAAA,QAAMga,UAAUlrB,KAAK8/I,WAItB9/I,KAAK8+I,iBAAiBoB,sBACvB,CACI5uF,WAAY,CACRC,cAAevxD,KAAK2lE,WAAWw6E,aAC/B3uF,eAAgBxxD,KAAK8/I,SACrBxwG,UAAWtvC,KAAKk/I,iBAAiBiB,aACjC1uF,UAAWzxD,KAAKyxD,UAAU0uF,eAP7B,IAWf,CAEA,OAAoD1B,GAChD,IAAI5sF,EAAO7xD,KAAK6xD,KACZstF,EAAiBn/I,KAAKm/I,eAAiBn/I,KAAKm/I,eAAen5I,MAAQ,KAEvE,OAAIkL,EAAAA,QAAMga,UAAUlrB,KAAK8/I,UAAkB9/I,KAAK8/I,SAC3C5uI,EAAAA,QAAMga,UAAU2mC,IAAU3gD,EAAAA,QAAMga,UAAUi0H,GAExCttF,EAAOstF,EAFyD,IAG3E,CAEA,mBAAmCztF,GAC/B,IAAIiU,EAAa3lE,KAAK2lE,WAClB84E,EAAMz+I,KAAKy+I,IAEf,OAAK94E,GAAe84E,EAEbA,EAAM94E,EAAWy6E,0BAFQ,IAGpC,CAEA,mBAA2B5wF,GACvB,IAAIiC,EAAYzxD,KAAKyxD,UACrB,OAAKA,EACEA,EAAUjC,gBADM,IAE3B,CAOA,kBAAkC6wF,GAC9B,IAAIhC,EAASr+I,KAAK8+I,iBAClB,OAAKT,EACEA,EAAOU,QAAQvnI,OAAOvM,KAAKjF,GAAUhG,KAAKsgJ,iBAAiBt6I,KAD9C,EAExB,CAEA,oBAAkCu6I,GAC9B,IAAIlC,EAASr+I,KAAK8+I,iBAClB,OAAKT,EACEA,EAAO5sF,UAAU9nB,MAAM1+B,KAAK1C,GAASvI,KAAKwgJ,yBAAyBj4I,EAAM,gBAD5D,EAExB,CAEA,qBAAkCk4I,GAC9B,IAAIpC,EAASr+I,KAAK8+I,iBAClB,OAAKT,EACEA,EAAO14E,WAAWh8B,MAAM1+B,KAAK1C,GAASvI,KAAKwgJ,yBAAyBj4I,EAAM,iBAD7D,EAExB,CAEA,2BAAkCm4I,GAC9B,IAAIrC,EAASr+I,KAAK8+I,iBAClB,OAAKT,EACEA,EAAOa,iBAAiBv1G,MAAM1+B,KAAK1C,GAASvI,KAAKwgJ,yBAAyBj4I,EAAM,uBADnE,EAExB,CAEA,yBAAgDo4I,GAC5C,IAAIh7E,EAAa3lE,KAAK2lE,WAClBi7E,EAAgC5gJ,KAAK4gJ,8BAEzC,OAAKj7E,GAAei7E,GAEbj7E,EAAWp/D,MAAMq6I,EAAgCA,EAA8Bj7E,EAAWp/D,IAFvC,EAG9D,CAEA,iCAAkCq6I,GAC9B,IAAIvC,EAASr+I,KAAK8+I,iBACdl2I,EAAS,CAAC,EAEd,IAAMy1I,IAAUA,EAAOc,eAAiB,MAAO,GAE/C,IAAI0B,EAAsBxC,EAAOc,eAOjC,OALA39I,OAAOC,KAAKo/I,GAAqBhpI,SAASipI,IACtC,IAAI7sH,EAAS4sH,EAAoBC,GACjCl4I,EAAOk4I,GAAkB7sH,EAAOzc,OAAOvM,KAAKjF,GAAUhG,KAAK+gJ,iBAAiB/6I,IAAO,IAGhF4C,CACX,CAKAwzB,uBAAAA,GACI,IAAIpZ,EAAkBhjB,KAAKgjB,gBACvB2iD,EAAa3lE,KAAK2lE,WAEjBA,GAAe3iD,GAAoBhjB,KAAK4+I,yBAI7C5+I,KAAK2+I,qBAAqB,iBAAkB37H,EAAiB2iD,EAAWp/D,IAHpEvG,KAAK+V,IAAI,iBAAkB,KAInC,CAMA4oI,oBAAAA,CAAqBjiH,EAAc1Z,EAAiBg+H,GAChD,IAAKh+H,EAED,YADAhjB,KAAK+V,IAAI2mB,EAAc,MAI3B,IAAIrzB,EAAU23I,EACJhhJ,KAAKguB,IAAI,GAAG0O,oBAA+BskH,GAC3ChhJ,KAAKguB,IAAI,GAAG0O,YAClB2hH,EAAS2C,EAAWhhJ,KAAK8+I,iBAAiBpiH,GAAcskH,GAAYhhJ,KAAK8+I,iBAAiBpiH,GAE9F18B,KAAK+V,IACD2mB,EACArzB,EAAQ1B,MAAMssB,GAAWA,EAAO1tB,KAAO83I,EAAOrgJ,UAEtD,CAEAijJ,eAAAA,CAAgBvkH,EAAcn2B,EAAIy6I,GAI9B,OAHcA,EACRhhJ,KAAKguB,IAAI,GAAG0O,oBAA+BskH,GAC3ChhJ,KAAKguB,IAAI,GAAG0O,aACH/0B,MAAMssB,GAAWA,EAAO1tB,KAAOA,GAClD,CAMAs4I,aAAAA,GACI,IAAIrnI,EAAS,CAAC,EAEVxX,KAAKw+I,eAAex+I,KAAKkhJ,iBAAiB,WAAY1pI,GACtDxX,KAAK0+I,mBAAmB1+I,KAAKkhJ,iBAAiB,OAAQ1pI,GACtDxX,KAAK0+I,mBAAmB1+I,KAAKmhJ,4BAA4B,UAAW3pI,GACxExX,KAAKmhJ,4BAA4B,YAAa3pI,GAC9CxX,KAAKmhJ,4BAA4B,aAAc3pI,GAE3CxX,KAAKi/I,4BAA4Bj/I,KAAKmhJ,4BAA4B,mBAAoB3pI,GAE1F,IAAImuD,EAAanuD,EAAOmuD,YAAc3lE,KAAK2lE,WAI3C,OAHIA,GAAc3lE,KAAK4+I,0BACnB5+I,KAAKmhJ,4BAA4B,iBAAkB3pI,EAAQmuD,EAAWp/D,IAEnEiR,CACX,CAEA0pI,gBAAAA,CAAiBxkH,EAAcllB,GAC3B,IACIkvD,EADa1mE,KAAKsS,YAAYsqB,mBACPF,GACvB12B,EAAQkL,EAAAA,QAAMkwI,wBAAwB16E,GAEtC1gE,IACAwR,EAAOklB,GAAgB12B,EAE/B,CAEAm7I,2BAAAA,CAA4BzkH,EAAcllB,EAAQwpI,GAC9C,IACIt6E,EADa1mE,KAAKsS,YAAYsqB,mBACPF,GACvB12B,EAAQkL,EAAAA,QAAMkwI,wBAAwB16E,GAE1C,GAAI1gE,EAAO,CACP,IAAIiuB,EAASj0B,KAAKihJ,gBAAgBvkH,EAAc12B,EAAOg7I,GACnD/sH,IACAzc,EAAOklB,GAAgBzI,EAE/B,CACJ,CAMAqsH,gBAAAA,CAAiBt6I,GACb,MAAO,CACHO,GAAIP,EACJA,MAAOA,EACPgnB,YAAa,KAAKhnB,IAE1B,CAEA+6I,gBAAAA,CAAiB/6I,GACb,MAAO,CACHO,GAAIP,EACJA,MAAOA,EACPgnB,YAAahnB,EAErB,CAEAw6I,wBAAAA,CAAyBj4I,EAAMG,GAC3B,IAAIE,EAASsc,IAAU3c,GAGvB,OAFAK,EAAOrC,GAAKgC,EAAKvC,MACjB4C,EAAOokB,YAAczkB,EAAKw3I,QAAU//I,KAAKoD,KAAKC,EAAE,oBAAoBqF,KAAQH,EAAKw3I,WAAax3I,EAAKvC,MAC5F4C,CACX,GACH/F,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,QAzaI2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,GAAAmB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iBACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqE,GAAAkB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,eACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAkL,GAAA3F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAmL,GAAA5F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,eAAA0C,GAAA,CAAA4B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoL,GAAA7F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,eAAA4C,GAAA,CAAA0B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqL,GAAA9F,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,kBAAA6E,GAAA,CAAAP,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,QAAAuF,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,kBAAA8E,GAAAlD,OAAA6C,yBAAA3B,EAAA9C,UAAA,kBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,qBAAA+E,GAAAnD,OAAA6C,yBAAA3B,EAAA9C,UAAA,qBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YAAAgF,GAAApD,OAAA6C,yBAAA3B,EAAA9C,UAAA,YAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iBAAAiF,GAAArD,OAAA6C,yBAAA3B,EAAA9C,UAAA,iBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,8BAAAkF,GAAAtD,OAAA6C,yBAAA3B,EAAA9C,UAAA,8BAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,4BAAAmiC,GAAAvgC,OAAA6C,yBAAA3B,EAAA9C,UAAA,4BAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,aAAAgmC,GAAApkC,OAAA6C,yBAAA3B,EAAA9C,UAAA,aAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,QAAAimC,GAAArkC,OAAA6C,yBAAA3B,EAAA9C,UAAA,QAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,aAAAk/C,GAAAt9C,OAAA6C,yBAAA3B,EAAA9C,UAAA,aAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YAAAm/C,GAAAv9C,OAAA6C,yBAAA3B,EAAA9C,UAAA,YAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YAAAo/C,GAAAx9C,OAAA6C,yBAAA3B,EAAA9C,UAAA,YAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,4BAAAq/C,GAAAz9C,OAAA6C,yBAAA3B,EAAA9C,UAAA,4BAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,OAAAs/C,GAAA19C,OAAA6C,yBAAA3B,EAAA9C,UAAA,OAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,mBAAAu/C,GAAA39C,OAAA6C,yBAAA3B,EAAA9C,UAAA,mBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,mBAAAw/C,GAAA59C,OAAA6C,yBAAA3B,EAAA9C,UAAA,mBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,kBAAAy/C,GAAA79C,OAAA6C,yBAAA3B,EAAA9C,UAAA,kBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,oBAAA0/C,GAAA99C,OAAA6C,yBAAA3B,EAAA9C,UAAA,oBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,qBAAA2/C,GAAA/9C,OAAA6C,yBAAA3B,EAAA9C,UAAA,qBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,2BAAA4/C,GAAAh+C,OAAA6C,yBAAA3B,EAAA9C,UAAA,2BAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,yBAAA6/C,GAAAj+C,OAAA6C,yBAAA3B,EAAA9C,UAAA,yBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iCAAAmlD,GAAAvjD,OAAA6C,yBAAA3B,EAAA9C,UAAA,iCAAA8C,EAAA9C,WAAA8C,mLCN6B,IAEpB2+I,GAAU/+I,GA6B1BG,EAAAA,EAAAA,UAAS,uBAAsBC,EA7BrB,cAAyBg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,qBAAAC,EAAA,OAAArC,EAAAA,EAAAA,GAAA,YAGrC,CAAEmpC,MAAO,CAAC,EAAGrc,eAAgB,MAAM,CAK1C0wB,IAAAA,CAAKsjG,GACD9/I,OAAOC,KAAK8/I,EAAAA,QAAQ73G,MAAM7xB,SAASwxD,IAC/B,IAAIm4E,EAAkBD,EAAAA,QAAQ73G,KAAK2/B,GAC/B1kC,EAAS68G,EAAgB78G,OACzB88G,EAAUzhJ,KAAK0hJ,gBAAgBF,EAAgB73G,MAAO0/B,GACtDs4E,EAAW,KAEXF,GAAWA,EAAQviJ,QAAUylC,GAAUA,KAAU28G,GAAapwI,EAAAA,QAAMga,UAAUo2H,EAAU38G,KACxFg9G,EAAWF,EAAQ95I,MAAMs8B,GAAQA,EAAItR,OAAS2uH,EAAU38G,KACnDg9G,IAAUA,EAAWF,EAAQ95I,MAAMs8B,GAAQA,EAAIjmC,WAC/C2jJ,IAAUA,EAAWF,EAAQ,KAC3BA,GAAWA,EAAQviJ,SAC1ByiJ,EAAWF,EAAQ95I,MAAMs8B,GAAQA,EAAIjmC,UAChC2jJ,IAAUA,EAAWF,EAAQ,KAGlCE,IAAU5rI,EAAAA,EAAAA,KAAI4rI,EAAU,cAAc,GAC1C3hJ,KAAK+V,IAAI,cAAcszD,IAAWo4E,GAAW,GAAG,GAExD,CAEA,YAAqCv0H,GACjC,IAAItkB,EAAS,CAAC,EAMd,OALApH,OAAOC,KAAKzB,KAAK0pC,KAAKC,OAAO9xB,SAASwxD,IAClC,IAAI5/B,EAAczpC,KAAK0pC,KAAKC,MAAM0/B,GAAS1hE,MAAMY,GAASA,EAAKgiC,aAC/D3hC,EAAOygE,GAAW5/B,CAAW,IAG1B7gC,CACX,CAEA47B,OAAAA,CAAQP,GACJ,IAAIw9G,EAAUx9G,EAAIv7B,KAAK/J,QAAQqB,KAAK0pC,KAAKC,MAAQ3pC,KAAK0pC,KAAKC,MAAM1F,EAAIv7B,KAAK/J,MAAQ,GAC9EgjJ,EAAWF,EAAQ95I,MAAMi6I,GAAUA,EAAMjjJ,OAASslC,EAAItlC,OACtD8qC,EAAcg4G,EAAQ95I,MAAMi6I,GAAUA,EAAMr3G,aAE5Co3G,IAAcl4G,GAAek4G,EAAShjJ,MAAQ8qC,EAAY9qC,OAAU8qC,MACpE1zB,EAAAA,EAAAA,KAAI4rI,EAAU,cAAc,GACxBl4G,IAAa1zB,EAAAA,EAAAA,KAAI0zB,EAAa,cAAc,GAExD,CAEAo4G,WAAAA,CAAYn5I,EAAMwd,GACd,IAAImjD,EAAUk4E,EAAAA,QAAQ73G,KAAKhhC,GACvBu7B,EAAM/e,IAAUmkD,EAAQ1/B,MAAMzjB,IAC9Btd,EAAS,CAAC,EAqBd,OAnBAA,EAAOs9D,SAAWjiC,EAElBr7B,EAAOjK,KAAOslC,EAAItlC,KAClBiK,EAAOokB,YAAciX,EAAIjX,YACzBpkB,EAAO+pB,MAAQsR,EAAItR,MACnB/pB,EAAOqhB,YAAcga,EAAIha,YAEzBrhB,EAAOF,KAAO,CACV/J,KAAM+J,EACNuhB,YAAao/C,EAAQp/C,YACrB63H,OAAQp5I,IAAS6G,EAAAA,QAAU20B,SAASoQ,KACpC3P,OAAQ0kC,EAAQ1kC,OAChBD,8BAA+B2kC,EAAQ3kC,gCAAiC,GAG5E97B,EAAO5K,QAAUimC,EAAIjmC,UAAW,EAChC4K,EAAO+rC,QAAU1Q,EAAI0Q,UAAW,EAEhCzjC,EAAAA,QAAM6wI,uBAAuBn5I,GACtBA,CACX,CAEA84I,eAAAA,CAAgBM,EAAU34E,GACtB,OAAO7nE,OAAOC,KAAKugJ,GACd/2I,KAAKib,GAAQlmB,KAAK6hJ,YAAYx4E,EAASnjD,KACvC6O,KAAK/0B,KAAKiiJ,SACnB,CAEAA,QAAAA,CAASC,EAAMC,GACX,OAAOjxI,EAAAA,QAAMuoB,QAAQyoH,EAAKvvH,MAAOwvH,EAAKxvH,MAC1C,CAEA5f,UAAAA,CAAWjP,GACP,IAAIs+I,EAAW,CACXC,gBAAiBv+I,EAAMiqC,UACvBu0G,gCAAoE,UAAnCx+I,EAAML,YAAY0zC,aACnDorG,kBAAmBz+I,EAAMw6B,YACzBkkH,sBAAuB1+I,EAAML,YAAYugC,aAG7CxiC,OAAOC,KAAKzB,KAAK0pC,KAAKC,OAAO9xB,SAASwxD,IAoClC,GAnCArpE,KAAK0pC,KAAKC,MAAM0/B,GAASxxD,SAASosB,IAC9B,IAAIljC,EAAQ,KACRo0C,EAAa,GACbV,GAAc,EACdqwB,GAAO,EAEP7gC,EAAIiiC,SAASxxB,kBAAoBzQ,EAAIiiC,SAASnlE,SAASf,KAAKqZ,cAC5DtY,EAAQf,KAAKqZ,cAAc4qB,EAAIiiC,SAASnlE,QAClCkjC,EAAIiiC,SAASxxB,kBAAoB10C,KAAKqZ,cAAcC,SAC1DvY,EAAQf,KAAKqZ,cAAcC,SACtB2qB,EAAIiiC,SAASnlE,OAASkjC,EAAIiiC,SAASnlE,SAASf,KAAKqZ,gBACtDtY,EAAQf,KAAKqZ,cAAc4qB,EAAIiiC,SAASnlE,OACpCkjC,EAAIiiC,SAAS/wB,YAAclR,EAAIiiC,SAAS/wB,cAAcn1C,KAAKqZ,gBAC3D87B,EAAan1C,KAAKqZ,cAAc4qB,EAAIiiC,SAAS/wB,cAGrDV,KACIxQ,EAAIiiC,SAASzxB,cAAez0C,KAAKqZ,cAAc2U,IAAIiW,EAAIiiC,SAASzxB,eAC1Dz0C,KAAKqZ,cAAc2U,IAAIiW,EAAIiiC,SAASzxB,aAG9C,IAAIguG,GAA2Bx+G,EAAIiiC,SAAS9wB,kBAAoB,IAAI/tC,QAC/Dq7I,GAAgBA,KAAeN,GAAYA,EAASM,KAIzD59E,GAAO7gC,EAAIjmC,WAAkBykJ,EAAwBvjJ,QAErD6W,EAAAA,EAAAA,KAAIkuB,EAAK,QAASljC,IAClBgV,EAAAA,EAAAA,KAAIkuB,EAAK,aAAckR,IACvBp/B,EAAAA,EAAAA,KAAIkuB,EAAK,cAAewQ,IACxB1+B,EAAAA,EAAAA,KAAIkuB,EAAK,OAAQ6gC,EAAK,IAGF9kE,KAAK0pC,KAAKC,MAAM0/B,GAAS1hE,MAAMs8B,GAAQA,EAAIsG,YAActG,EAAI6gC,OAC9D,CACnB,IAAI69E,EAAa3iJ,KAAK0pC,KAAKC,MAAM0/B,GAAS1hE,MAAMs8B,GAAQA,EAAIjmC,UAC5DgC,KAAKwkC,QAAQm+G,EACjB,KAGJ3iJ,KAAK+V,IAAI,sBAAuB,IAAIqW,KACxC,GACHvpB,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iBA1II2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,QAAAuF,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,YAAA0C,GAAAd,OAAA6C,yBAAA3B,EAAA9C,UAAA,YAAA8C,EAAA9C,WAAA8C,yGCNG,MAAMkgJ,UAAwBljG,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,YAC1CqiJ,EAAAA,QAAQ,sJCDqB,IAEnBC,GAAcxgJ,GAC9BC,EAAAA,EAAAA,QAAQ,QAAOC,GACfD,EAAAA,EAAAA,QAAQ,iBAAgBkC,GA8CxBhC,EAAAA,EAAAA,UAAS,iCAAgCiC,GAOzCjC,EAAAA,EAAAA,UAAS,iCAAgCkC,GAOzClC,EAAAA,EAAAA,UAAS,8BAA6BC,EA9D5B,cAA6Bg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,aAAAC,EAAA,OAAAD,EAAAA,EAAAA,GAAA,kBAAAE,EAAA,OAAAtC,EAAAA,EAAAA,GAAA,WAI1C,KAAI,CAEVw9C,IAAAA,GACIh+C,KAAK+V,IAAI,SAAU,GAAG/V,KAAK8nC,WAAWi7G,mBAAmB/iJ,KAAK8nC,WAAW54B,aACzElP,KAAK+V,IAAI,cAAe,GAAG/V,KAAK8nC,WAAWi7G,mBAAmB/iJ,KAAK8nC,WAAW54B,aAC9ElP,KAAK+V,IAAI,UAAW/V,KAAK8nC,WAAWk7G,SACpChjJ,KAAK+V,IAAI,gBAAiB,GAAG/V,KAAK8nC,WAAWk7G,WAAWhjJ,KAAK8nC,WAAW54B,aAExElP,KAAK+V,IAAI,gCAAiC,GAAG/V,KAAKijJ,kCAClDjjJ,KAAK+V,IAAI,mBAAoB,GAAG/V,KAAKijJ,8BACrCjjJ,KAAK+V,IAAI,oBAAqB,GAAG/V,KAAKijJ,+BACtCjjJ,KAAK+V,IAAI,wBAAyB,GAAG/V,KAAKijJ,0BAC1CjjJ,KAAK+V,IAAI,wBAAyB,GAAG/V,KAAKijJ,mCAC1CjjJ,KAAK+V,IAAI,wBAAyB,GAAG/V,KAAKijJ,oCAC1CjjJ,KAAK+V,IAAI,qBAAsB,GAAG/V,KAAKijJ,gCACvCjjJ,KAAK+V,IAAI,mBAAoB,GAAG/V,KAAKijJ,8BAErCjjJ,KAAK+V,IAAI,qBAAsB/V,KAAK8nC,WAAWo7G,oBAC/CljJ,KAAK+V,IAAI,kBAAmB/V,KAAK8nC,WAAWq7G,iBAC5CnjJ,KAAK+V,IAAI,eAAgB/V,KAAK8nC,WAAWs7G,cACzCpjJ,KAAK+V,IAAI,gBAAiB/V,KAAK8nC,WAAWu7G,eAC1CrjJ,KAAK+V,IAAI,aAAc/V,KAAK8nC,WAAWw7G,YACvCtjJ,KAAK+V,IAAI,YAAa/V,KAAK8nC,WAAWy7G,WACtCvjJ,KAAK+V,IAAI,cAAe/V,KAAK8nC,WAAW07G,aACxCxjJ,KAAK+V,IAAI,wBAAyB/V,KAAK8nC,WAAW27G,uBAElDzjJ,KAAK+V,IAAI,oBAAqB,6BAA6B/V,KAAK8nC,WAAW54B,qBAC3ElP,KAAK+V,IAAI,qBAAsB,2BAA2B/V,KAAK8nC,WAAW54B,0BAC1ElP,KAAK+V,IACD,gBACA,6BAA6B/V,KAAK8nC,WAAWiW,6CAErD,CAEAqzB,eAAAA,CAAgBjmE,GACZ,IAAIu4I,EAAcv4I,EAAKu4I,aAAev4I,EAAKzH,SAC3C,OAAKggJ,EACO,GAAG1jJ,KAAKijJ,iBAAiBS,IADZ,IAE7B,CAMA,qBAA+C/pH,GAC3C,OAAO35B,KAAK2jJ,iBACR3jJ,KAAK8D,MAAMg2B,yBACV4D,GAAWA,EAAOh1B,OAASogB,EAAAA,QAAOmW,YAAYqZ,KAEvD,CAEA,uBAA+Cze,GAC3C,OAAO75B,KAAK2jJ,iBACR3jJ,KAAK8D,MAAMg2B,yBACV4D,GAAWA,EAAOh1B,OAASogB,EAAAA,QAAOmW,YAAYC,UAEvD,CAEA,mBAA4CvvB,GACxC,OAAO3P,KAAK2jJ,iBAAiB3jJ,KAAK8D,MAAMkH,sBAAuBzH,GAAQA,GAC3E,CAEAogJ,gBAAAA,CAAiBC,EAAaC,GAG1B,OADAA,EAAWA,GAAY,CAAEt7I,GAASA,IADlCq7I,EAAcA,GAAe,IAKpBv8I,QAAQy8I,GAAeD,EAASC,KAEhC74I,KAAK64I,GACFA,EAAW34I,KAAKvM,MACZ,GACiC,GAAjCklJ,EAAW34I,KAAKlM,QAAQ,KAAa6kJ,EAAW34I,KAAKlM,QAAQ,KAAO6kJ,EAAW34I,KAAKjM,UAI3FwxE,mBACAhkE,KAAK,IAElB,CAWAw7D,YAAAA,GACI,IAAI3kE,EAAMvD,KAAKuD,IAMf,OALIA,GAEAvD,KAAK+V,IAAI,MAAO,MAGbxS,CACX,GACHV,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,SAAA0C,GAAA,CAAA4B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,GAAAmB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,cAAA4C,GAAA,CAAA0B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,QAAAuF,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,qBAAA6E,GAAAjD,OAAA6C,yBAAA3B,EAAA9C,UAAA,qBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,uBAAA8E,GAAAlD,OAAA6C,yBAAA3B,EAAA9C,UAAA,uBAAA8C,EAAA9C,YAAAqE,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,mBAAA+E,GAAAnD,OAAA6C,yBAAA3B,EAAA9C,UAAA,mBAAA8C,EAAA9C,WAAA8C,+IC1GgF,IAE5DqhJ,GAAiBrhJ,EAAvB,cAAgCg9C,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAqC,EAAAA,EAAAA,GAAA,qBAAAC,EAAA,OAAAD,EAAAA,EAAAA,GAAA,eAAAE,EAAA,OAAAF,EAAAA,EAAAA,GAAA,YAAAG,EAAA,OAAAvC,EAAAA,EAAAA,GAAA,YAK5CwjJ,EAAAA,QAAc,CAErBh8E,GAAAA,GACIhoE,KAAKikJ,mBACLjkJ,KAAKkkJ,yBAAyB,OAE9BlkJ,KAAKkkJ,yBAAyB,SAClC,CAEAD,gBAAAA,GACqCjkJ,KAAK+K,KAAKyqC,gBAAgB2C,mBAChCkR,cAAgBrpD,KAAKwD,cAAc2mD,QAAQl/C,KAAKyyB,GAAWA,EAAOvyB,MACjG,CAEA+4I,wBAAAA,CAAyBC,GACrB,IAAIC,EAAiB,GACrBpkJ,KAAKguB,IAAI,iBAAiBm2H,EAAa13I,kBAAkBoL,SAASoc,GAC9DmwH,EAAexiJ,KACX5B,KAAKqkJ,kBAAkBpwH,EAAQj0B,KAAKguB,IAAI,QAAQm2H,EAAa13I,iCAIrE,IAAI63I,EAAwBF,EAAe/8I,QAAQ0gE,IAAew8E,EAAAA,EAAAA,0BAAyBx8E,KAE3F/nE,KAAKohH,QAAQ/2C,SACT,GAAG85E,kBACHG,EAAsBplJ,OACtB,CAAEolJ,sBAAuBA,EAAuB9pG,KAAMx6C,MACtDA,KAAKwkJ,YAEb,CAEAH,iBAAAA,CAAkBI,EAAUC,GACxB,IAAI97I,EAAS,CAAC,EACV+7I,EAAuB,GAkC3B,OAhCAnjJ,OAAOC,KAAKijJ,GAAsB7sI,SAAS+sI,IACvC,IAGIC,EAHsB7kJ,KAAK8kJ,kBAAkBF,EAAUF,EAAqBE,GAAWH,GAG/Cp9I,QAAQsN,IAAOA,EAAEowI,QAEzDt9H,MAAMC,QAAQm9H,IAAsBA,EAAkB3lJ,QAKtD2lJ,EAAkBhtI,SAASlD,IACjBA,EAAEqwI,YAAYp8I,IAASA,EAAO+L,EAAEqwI,UAAY,CAAC,GACnDp8I,EAAO+L,EAAEqwI,UAAUJ,GAAYjwI,EAC/BgwI,EAAqB/iJ,KAAK+S,EAAE,GAEpC,IAOAgwI,EAAqBt9I,QAAQsN,GAAMA,EAAEswI,eAAc/lJ,SACnDulJ,EAAS1zH,YAAa,GAGtB4zH,EAAqBzlJ,SACrBulJ,EAASvyE,aAAc,EACvBtpE,EAAOuC,KAAOs5I,EAASt5I,MAGpBvC,CACX,CAEAk8I,iBAAAA,CAAkBF,EAAU1+E,EAAUu+E,GAClC,IAAI9uG,EAAc,GAKlB,OAJAuwB,EAASvwB,YAAY99B,SAASlD,IAC1BghC,EAAY/zC,KAAK+S,EAAEiwI,EAAU1+E,EAAUu+E,GAAU,IAG9C9uG,CACX,CAEAuvG,cAAAA,CAAeC,GACP3jJ,OAAOC,KAAK0jJ,GAAmBjmJ,QAC/Bc,KAAKohH,QAAQ/2C,SACT86E,EAAkBh6I,MAClB,EACA,CAAEg6I,kBAAmBA,EAAmB3qG,KAAMx6C,MAC9CA,KAAKolJ,QAGjB,CAEAZ,WAAAA,CAAYj6E,GACR,IAAI+5E,EAAwB/5E,EAAmC,sBAC3D86E,EAAQ96E,EAAkB,KAC9B+5E,EAAsBzsI,SAASkwD,GAAes9E,EAAMH,eAAen9E,IACvE,CAEAu9E,WAAAA,CAAY/6E,GACR,IAAI86E,EAAQ96E,EAAkB,KAC1By6E,EAAWz6E,EAAsB,SACjC46E,EAAoB56E,EAA+B,kBACnDg7E,EAAoBP,KAAYG,EAChC/hJ,EAAOiiJ,EAAMjiJ,KACbmiJ,GACA/jJ,OAAOC,KAAK0jJ,EAAkBH,IAAWntI,SAAS+sI,IAC9C,IAAIY,EAAqBL,EAAkBH,GAAUJ,GACrD9mJ,OAAOkD,QAAQ1B,IACX,GAAGslJ,OAAcxhJ,EAAKC,EAAEmiJ,EAAmBn/H,YAAam/H,EAAmBC,aAC9E,GAGb,CAEAL,OAAAA,CAAQ76E,GACJ,IAAI86E,EAAQ96E,EAAkB,KAC1B46E,EAAoB56E,EAA+B,kBACnDnnE,EAAOiiJ,EAAMjiJ,KAEjBsiJ,EAAAA,iBAAiB7tI,SAASmtI,IACtB,IAAIO,EAAoBP,KAAYG,EACpCE,EAAMjkC,QAAQ/2C,SACV,GAAGjnE,EAAKC,EAAE,cAAc2hJ,gBACxBO,EACA,CAAEP,SAAUA,EAAUG,kBAAmBA,EAAmB3qG,KAAM6qG,GAClEA,EAAMC,YACT,GAET,GACHziJ,GAAAoB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,iBApII2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAoE,GAAAmB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,WACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAqE,GAAAkB,EAAAA,EAAAA,GAAAvB,EAAA9C,UAAA,QACP2C,EAAAA,QAAO,CAAA2B,cAAA,EAAAC,YAAA,EAAAC,UAAA,EAAA1F,YAAA,OAAAgE,yGCLG,MAAMijJ,UAA2BjmG,KAAQp/C,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,YAC7ColJ,EAAAA,QAAW,CAElBh0E,qBAAAA,CAAsBzmE,GAClB,OAAOA,EAAKlD,MAAM,KAAK/I,OAAS,CACpC,CAEA2mJ,iBAAAA,CAAkB16I,GACd,IAAI26I,EAAY36I,EAAKlD,MAAM,KAC3B,OAAO69I,EAAU5mJ,OAAS,EAAI4mJ,EAAU,GAAK,IACjD,CAEAC,kBAAAA,CAAmB56I,GAAoB,IAAdzC,EAAInI,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,MACxBylJ,EAAmBhmJ,KAAK6lJ,kBAAkB16I,GAC9C,OAAO66I,EAAmBhmJ,KAAK+K,KAAKygC,SAAS9iC,GAAMs9I,GAAoB,IAC3E,CAEAj0E,yBAAAA,CAA0BxpE,EAAM09I,GAA0B,IAAdv9I,EAAInI,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,MAE/CgI,EAAK7E,SAAW6E,EAAK4C,KAAKlD,MAAM,KAAK,GACrC,IAAIi+I,EAAmB1kJ,OAAOC,KAAKwkJ,GAAY5+I,QAAQ8D,IACnD,IAAIg7I,EAAYh7I,EAAKlD,MAAM,KAC3B,OAAOk+I,EAAUjnJ,OAAS,GAAKinJ,EAAU,KAAO59I,EAAK7E,QAAQ,IAG7DwiJ,EAAiBhnJ,QACjBqJ,EAAKoiD,YAAa,EAEdu7F,EAAiBhnJ,OAAS,EAC1BqJ,EAAKijC,SAAW06G,EACXj7I,KAAKE,GAASnL,KAAK+lJ,mBAAmB56I,EAAMzC,KAC5CrB,QAAQwkC,KAAcA,IACxBtjC,EAAKsjC,QAAU7rC,KAAK+lJ,mBAAmBG,EAAiB,GAAIx9I,IAChEH,EAAKoiD,YAAa,EAErBpiD,EAAKoiD,YACLpiD,EAAKuiD,eAAiB9qD,KAAK+lJ,mBAAmBx9I,EAAK4C,KAAMzC,GACzDH,EAAK8wD,kBAA2C,MAAvB9wD,EAAKuiD,iBAE9BviD,EAAKuiD,eAAiB,KACtBviD,EAAK8wD,mBAAoB,EAEjC,cC7CJ5xC,MAAM7nB,UAAU8wE,iBAAmB,WAE/B,OADa1wE,KACCqH,QAAO,CAACy8I,EAAYnxH,EAAO6nB,IAASA,EAAKv7C,QAAQ6kJ,KAAgBnxH,GACnF,6DCDA,SACIyzH,MAAO,CACHC,KAAM,EACNC,WAAY,EACZC,OAAQ,EACRC,MAAO,GAGXC,SAAAA,GACI,IAKIC,EALAC,EAAW1+G,UAAU42C,UAuBzB,OAtBA79E,QAAQ1B,IAAI,aAAaqnJ,KACzB3lJ,QAAQ1B,IAAI,YACZ0B,QAAQ1B,IAAImY,UAOJivI,EAJJC,EAAS1nJ,QAAQ,gBAAkB,EAC/B0nJ,EAAS1nJ,QAAQ,SAAW,EAGrBe,KAAKomJ,MAAME,WAGXtmJ,KAAKomJ,MAAMC,KAEfM,EAAS1nJ,QAAQ,YAAc,EAG/Be,KAAKomJ,MAAMG,OAGXvmJ,KAAKomJ,MAAMI,MAEfE,CACX,EAEAzwI,iBAAAA,CAAkB2wI,GACd,IAAIF,EAAO1mJ,KAAKymJ,YACZL,EAAQpmJ,KAAKomJ,MAEjBplJ,QAAQ1B,IAAI,SAASonJ,KAErB,IAAInwH,EACAmwH,IAASN,EAAME,WACT,GAAGM,yLAEHA,2JAEA,GAAGA,qOAKb,MAAO,CACH1zI,MAHQwzI,IAASN,EAAME,WAAa,8BAAgC,iCAIpE/vH,KAAMA,EAEd,EAEA+nB,MAAAA,GACI,IAAIooG,EAAO1mJ,KAAKymJ,YACZL,EAAQpmJ,KAAKomJ,MACjB,OAAOM,IAASN,EAAMC,MAAQK,IAASN,EAAMI,KACjD,+BCrDJ,SAAS9yF,EAAQe,EAAMD,GACnBx0D,KAAKy0D,KAAOA,EACZz0D,KAAKw0D,UAAYA,CACrB,+BAEAd,EAAQ9zD,UAAUmJ,SAAW,WACzB,OAAO/I,KAAKy0D,KAAO,MAAQz0D,KAAKw0D,UAAY,GAChD,EAKAd,EAAQ,GAAO,IAAIA,EAAQ,EAAG,GAC9BA,EAAQ,GAAO,IAAIA,EAAQ,EAAG,GAC9BA,EAAW,EAAI,IAAIA,EAAQ,EAAG,EAAG,EAAGv0D,KAAKosD,GAAK,GAC9CmI,EAAY,GAAI,IAAIA,EAAQv0D,KAAKosD,GAAI,EAAGpsD,KAAKosD,GAAI,GACjDmI,EAAW,EAAI,IAAIA,EAAQv0D,KAAK0rF,EAAG,EAAG1rF,KAAK0rF,EAAG,GAW9Cn3B,EAAQ9zD,UAAUinJ,KAAO,SAAU9wH,GAC/B,OAAO,IAAI29B,EAAQ1zD,KAAKy0D,KAAO1+B,EAAE0+B,KAAMz0D,KAAKw0D,UAAYz+B,EAAEy+B,UAC9D,EAIAd,EAAQ9zD,UAAUknJ,YAAc,SAAU/wH,GACtC,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UAIjB,OAFAz+B,EAAE0+B,KAAOz0D,KAAKy0D,KAAOsyF,EACrBhxH,EAAEy+B,UAAYx0D,KAAKw0D,UAAYwyF,EACxBjxH,CACX,EAWA29B,EAAQ9zD,UAAUqnJ,KAAO,SAAUlxH,GAC/B,OAAO,IAAI29B,EAAQ1zD,KAAKy0D,KAAO1+B,EAAE0+B,KAAMz0D,KAAKw0D,UAAYz+B,EAAEy+B,UAC9D,EAIAd,EAAQ9zD,UAAUsnJ,YAAc,SAAUnxH,GACtC,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UAIjB,OAFAz+B,EAAE0+B,KAAOz0D,KAAKy0D,KAAOsyF,EACrBhxH,EAAEy+B,UAAYx0D,KAAKw0D,UAAYwyF,EACxBjxH,CACX,EAWA29B,EAAQ9zD,UAAUy0D,KAAO,SAAUt+B,GAC/B,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UAEjB,OAAO,IAAId,EACPqzF,EAAW/mJ,KAAKy0D,KAAOuyF,EAAWhnJ,KAAKw0D,UACvCx0D,KAAKw0D,UAAYuyF,EAAWC,EAAWhnJ,KAAKy0D,KAEpD,EAIAf,EAAQ9zD,UAAUunJ,YAAc,SAAUpxH,GACtC,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UAKjB,OAHAz+B,EAAE0+B,KAAOsyF,EAAW/mJ,KAAKy0D,KAAOuyF,EAAWhnJ,KAAKw0D,UAChDz+B,EAAEy+B,UAAYx0D,KAAKw0D,UAAYuyF,EAAWC,EAAWhnJ,KAAKy0D,KAEnD1+B,CACX,EASA29B,EAAQ9zD,UAAUo0D,OAAS,SAAUj+B,GACjC,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UACb4yF,EAAWL,EAAWA,EAAWC,EAAWA,EAChD,OAAO,IAAItzF,GACN1zD,KAAKy0D,KAAOsyF,EAAW/mJ,KAAKw0D,UAAYwyF,GAAYI,GACpDpnJ,KAAKw0D,UAAYuyF,EAAW/mJ,KAAKy0D,KAAOuyF,GAAYI,EAE7D,EAIA1zF,EAAQ9zD,UAAUynJ,cAAgB,SAAUtxH,GACxC,IAAIgxH,EAAWhxH,EAAE0+B,KACbuyF,EAAWjxH,EAAEy+B,UACb4yF,EAAWL,EAAWA,EAAWC,EAAWA,EAIhD,OAHAjxH,EAAE0+B,MAAQz0D,KAAKy0D,KAAOsyF,EAAW/mJ,KAAKw0D,UAAYwyF,GAAYI,EAC9DrxH,EAAEy+B,WAAax0D,KAAKw0D,UAAYuyF,EAAW/mJ,KAAKy0D,KAAOuyF,GAAYI,EAE5DrxH,CACX,EASA29B,EAAQ9zD,UAAUka,UAAY,WAC1B,OAAO3a,KAAKkxD,KAAKrwD,KAAKy0D,KAAOz0D,KAAKy0D,KAAOz0D,KAAKw0D,UAAYx0D,KAAKw0D,UACnE,EAQAd,EAAQ9zD,UAAU0nJ,OAAS,WACvB,IAAI3lJ,EAAI+xD,EAAQ01B,EAEhB,OAAOznF,EAAE0yD,KAAK1yD,EAAEklJ,KADR7mJ,MACgBg0D,OAAOryD,EAAEslJ,KADzBjnJ,OACkCV,OAAO00D,OAAO,IAAIN,EAAQ,EAAG,EAAG,EAAG,GACjF,EAQAA,EAAQ9zD,UAAU8mB,MAAQ,WAEtB,OAAO,IAAIgtC,EAAQv0D,KAAKunB,MADhB1mB,KACwBy0D,MAAOt1D,KAAKunB,MADpC1mB,KAC4Cw0D,WACxD,EAQAd,EAAQ9zD,UAAUN,IAAM,WACpB,IAAIy2B,EAAI/1B,KACR,OAAO,IAAI0zD,EAAQv0D,KAAKG,IAAIy2B,EAAE0+B,MAAO1+B,EAAE1yB,EAAI,EAAIlE,KAAKosD,GAAKpsD,KAAKunB,OAAOqP,EAAE1yB,GAAK,EAAIlE,KAAKosD,IAAM,IAC/F,EAEA,SACIoI,cAAaA,CAACc,EAAMD,IACT,IAAId,EAAQe,EAAMD,GAW7B+yF,WAAAA,CAAYC,GACR,IAAID,EAAc,IAAI9/H,MACtB,IAAK,IAAIsrD,EAAI,EAAGA,EAAIy0E,EAAGtoJ,OAAQ6zE,IAC3Bw0E,EAAYx0E,GAAK,IAAIrf,EAAQ8zF,EAAGz0E,GAAI,GAGxC,OAAOw0E,CACX,EAOAE,0BAAAA,CAA2B1xH,EAAG4+C,GAC1B,IAAI+yE,EAAMC,EAAYC,EAAOC,EAAYd,EAAUe,EAoBnD,OAjBAJ,EAAOvoJ,KAAKkxD,KAAKt6B,EAAE0+B,KAAO1+B,EAAE0+B,KAAO1+B,EAAEy+B,UAAYz+B,EAAEy+B,WAGnDmzF,EAAaxoJ,KAAK6zD,IAAI00F,EAAM/yE,GAG5BizE,EAAQzoJ,KAAKo1D,MAAMx+B,EAAEy+B,UAAWz+B,EAAE0+B,MAGlCsyF,EAAWY,EAAaxoJ,KAAKkiG,IAAI1sB,EAAIizE,GAGrCE,EAAgBH,EAAaxoJ,KAAKmiG,IAAI3sB,EAAIizE,GAG1CC,EAAa,IAAIn0F,EAAQqzF,EAAUe,GAE5BD,CACX,cCvOJ7mJ,QAAQg+F,KAAO,SAAUj0F,EAAMg0F,GAG3B,GAAKh0F,EAAL,CAKKg0F,IAAUA,EAAW,gBAEN,iBAATh0F,IACPA,EAAOlE,KAAKM,UAAU4D,OAAMoV,EAAW,IAG3C,IAAIguD,EAAO,IAAIsQ,KAAK,CAAC1zE,GAAO,CAAErC,KAAM,cAChCkrB,EAAInc,SAASimE,YAAY,eACzBn7D,EAAI9K,SAASwmE,cAAc,KAE/B17D,EAAE27D,SAAW6gB,EACbx8E,EAAEpT,KAAOrR,OAAO0R,IAAI6uE,gBAAgBlQ,GACpC5rD,EAAEwlI,QAAQC,YAAc,CAAC,YAAazlI,EAAE27D,SAAU37D,EAAEpT,MAAMzC,KAAK,KAC/DknB,EAAE+pD,eAAe,SAAS,GAAM,EAAO7/E,OAAQ,EAAG,EAAG,EAAG,EAAG,GAAG,GAAO,GAAO,GAAO,EAAO,EAAG,MAC7FykB,EAAEi7D,cAAc5pD,EAhBhB,MAFI5yB,QAAQD,MAAM,wBAmBtB,4DCvBA,SACImxC,WAAY,CACRC,KAAM,OACNE,SAAU,UACVC,SAAU,WACVC,OAAQ,CACJpX,IAAK,YACL8U,OAAQ,iBAIhBg4G,aAAc,CACVC,MAAO,QACPC,cAAe,eACfC,OAAQ,SACR91G,SAAU,WACVC,OAAQ,CACJpX,IAAK,YACL8U,OAAQ,iBAIhBo4G,QAAS,CACLC,OAAQ,UAOZj+H,KAAM,CACFC,MAAO,CAAC,SACRi+H,OAAQ,CAAC,SAAU,OACnBC,KAAM,CAAC,OAAQ,cAGnB10I,YAAa,EAEb4Q,aAAc,kBACdC,eAAgB,aAEhBsa,YAAa,CACTqZ,IAAK,MACLpZ,SAAU,WAGdV,SAAU,CACNwX,KAAM,OACNvX,GAAI,MAGRU,YAAa,CACTV,GAAI,EACJuX,KAAM,GAGVoB,cAAe,CACXC,MAAO,QACPC,YAAa,cAGjBpc,QAAS,CACLC,IAAK,CACDC,IAAK,MACLgf,aAAc,cACdC,IAAK,OAETpK,OAAQ,CACJqK,GAAI,KACJC,GAAI,OAIZwG,SAAU,CACNC,UAAW,EACXI,cAAe,EACfF,SAAU,GAGdhd,SAAU,CACNoQ,KAAM,OACNjD,MAAO,QACPlN,SAAU,YAGdkQ,UAAW,CACPC,KAAM,CACFE,QAAS,EACTI,iBAAkB,EAClBE,eAAgB,EAChBE,WAAY,EACZE,mBAAoB,GAExB7D,MAAO,CACHgE,IAAK,EACLhE,MAAO,GAEXlN,SAAU,CACNmR,GAAI,EACJC,GAAI,EACJvE,MAAO,IAIf6rG,mBAAoB,CAChB,EAAG,MACH,EAAG,QACH,EAAG,OAGP4L,eAAgB,CACZpzG,IAAK,EACLqzG,MAAO,EACPC,KAAM,GAGVxyG,aAAc,CACVC,IAAK,MACLC,YAAa,eAGjBuK,cAAe,CACXC,MAAO,QACPS,uBAAwB,yBACxBM,yBAA0B,2BAC1BS,2BAA4B,6BAC5BN,yBAA0B,4BAG9BjC,IAAK,CACDgB,+BAAgC,iCAChCK,kCAAmC,oCACnCF,8BAA+B,gCAC/B2nG,2CAA4C,6CAC5CC,8CAA+C,gDAC/CC,0CAA2C,4CAC3CvnG,iCAAkC,mCAClCG,oCAAqC,sCACrCG,mCAAoC,qCACpCG,mCAAoC,qCACpCG,sCAAuC,wCACvCG,qCAAsC,uCACtCL,kCAAmC,oCACnCT,gCAAiC,kCACjCunG,4CAA6C,8CAC7CC,qDAAsD,uDACtDC,qDAAsD,uDACtDC,8DACI,gEACJC,yCAA0C,2CAC1CC,kDAAmD,oDACnDC,0CAA2C,4CAC3CC,mDAAoD,qDACpDC,6CAA8C,+CAC9CC,sDAAuD,wDACvDC,iDAAkD,mDAClDC,oDAAqD,sDACrDC,gDAAiD,kDAEjD5pG,MAAO,CACHC,YAAa,cACbC,SAAU,WACVG,iBAAkB,mBAClBD,QAAS,YAIjB3wC,IAAK,CACDC,cAAe,QACfiqB,OAAQ,QACRE,SAAU,QACVoB,eAAgB,QAChBF,SAAU,4GC5KX,MAAMigF,EACT,gyr0CCDG,MAAMm4B,EACT,8l6vCCDG,MAAMC,EACT,uus6BCCJ,SASIl6H,YAAAA,CAAajT,GACT,IAAI4jJ,EAAe5jJ,EAAM6jJ,gBACrBC,EAASF,EAAa3qJ,QAAQ,KAC9B8qJ,EAAiBH,EAAahrJ,MAAM,EAAGkrJ,GACvCE,EAAWtqJ,OAAOqqJ,GAClBE,EAAoB9qJ,KAAKgG,KAAK6kJ,GAG9BC,IAAsBD,GAAUC,IAEpC,IAAIC,EAAiBN,EAAahrJ,MAAMkrJ,EAAS,EAAGF,EAAa1qJ,QAIjE,OAFgBQ,OADMuqJ,EAAoB,IAAMC,EAIpD,EAMAlxI,SAAAA,CAAUhT,GACN,IAAI4jJ,EAAe5jJ,EAAM6jJ,gBACrBC,EAASF,EAAa3qJ,QAAQ,KAC9BirJ,EAAiBN,EAAahrJ,MAAMkrJ,EAAS,EAAGF,EAAa1qJ,QAC7DirJ,EAAWzqJ,OAAOwqJ,GAAkB,EAGxC,OAFa/qJ,KAAK6zD,IAAI,GAAIm3F,EAG9B,EAIA13F,QAAAA,GACI,IAAI23F,EAAS,EAEb,IAAK,IAAIzoJ,EAAI,EAAGA,EAAIpB,UAAUrB,OAAQyC,IAAKyoJ,EAAS,EAAI7pJ,UAAUoB,GAAKyoJ,EAEvE,OAAO,EAAIA,CACf,EAGA5P,qBAAoBA,CAACzqI,EAAWs6I,EAAUC,IAC/BnrJ,KAAK6zD,IAAIjjD,EAAYs6I,EAAUC,EAAU,IAGpD5P,2BAA0BA,CAAC6P,EAAeC,IAC/BA,EAAS,GAAKrrJ,KAAKC,MAAM,GAAK,EAAImrJ,IAG7CE,kBAAiBA,CAAC16I,EAAW26I,EAAmBvQ,IAGvCh7I,KAAKC,MAAMD,KAAK6zD,IAAI,GAAI03F,EAAoB,KACzCvrJ,KAAKkxD,KAAK,EAAK,EAAItgD,GAAcoqI,EAAmBA,IAFxD,GAMRwQ,kBAAiBA,CAAC56I,EAAW26I,EAAmBvQ,IAGvCh7I,KAAKC,MAAMD,KAAK6zD,IAAI,GAAI03F,EAAoB,KACzCvrJ,KAAKkxD,KAAK,EAAK,EAAItgD,GAAcoqI,EAAmBA,IAFxD,GAMR8B,cAAcroG,IACFA,EAAQ,MAAQ,KAG5BooG,eAAcA,CAAChyF,EAAKv+C,KACR,GAAKtM,KAAKC,MAAMD,KAAK6zD,IAAI,IAAKhJ,EAAM,IAAM7qD,KAAK6zD,IAAI,GAAIvnD,EAAM,KAGzEw+C,aAAYA,CAACnW,EAAQE,IACV,GAAK70C,KAAKC,MAAM00C,EAASE,GAGpC+V,YAAAA,CAAah6C,EAAWE,EAAM1M,GAC1B,IAAIqnJ,EAAcC,EAMlB,OAJAD,EAAernJ,EAAIuzC,SAAW33C,KAAKC,MAAM2Q,EAAYxM,EAAIszC,WAAatzC,EAAIozC,YAE1Ek0G,EAA2B,GAAK1rJ,KAAKC,MAAM,EAAID,KAAKosD,GAAKx7C,EAAYE,EAAO1M,EAAIwzC,QAG5E,GACA53C,KAAKC,MACDD,KAAK6zD,IAAI,IAAKzvD,EAAIozC,YAAc,IAC5Bx3C,KAAK6zD,IAAI,GAAI43F,EAAe,IAC5BzrJ,KAAK6zD,IAAI,GAAI63F,EAA2B,IAGxD,EAEAzP,oBAAAA,CAAqBrrI,EAAWE,EAAM1M,EAAKunJ,GACvC,IAAIF,EAAcC,EAMlB,OAJAD,EAAernJ,EAAIuzC,SAAW33C,KAAKC,MAAM2Q,EAAYxM,EAAIszC,WAAatzC,EAAIozC,YAE1Ek0G,EAA2B,GAAK1rJ,KAAKC,MAAM,EAAID,KAAKosD,GAAKx7C,EAAYE,EAAO1M,EAAIwzC,QAG5E,GACA53C,KAAKC,MACDD,KAAK6zD,IAAI,IAAKzvD,EAAIozC,YAAc,IAC5Bx3C,KAAK6zD,IAAI,GAAI43F,EAAe,IAC5BzrJ,KAAK6zD,IAAI,GAAI63F,EAA2B,IACxC1rJ,KAAK6zD,IAAI,GAAI83F,EAAa,IAG1C,EAIA/uF,cAAAA,CAAegvF,EAAcC,EAAeC,GACxC,IAAIC,EAAwB,GACxBvwF,EAAMowF,EAAa,GAAG7rJ,OACtBisJ,EAAOJ,EAAa7rJ,OAExB,GAAIy7D,GAAOqwF,EAAe,OAAOD,EAEjC,IAAIK,EAASjsJ,KAAK8Y,MAAM0iD,EAAMqwF,GAC1BK,EAAUJ,EAAiBrsJ,MAAM,GAEtB,IAAXwsJ,IAAcA,EAAS,GAE3B,IAAK,IAAIxtE,EAAI,EAAGA,EAAIutE,EAAMvtE,IAAKstE,EAAsBttE,GAAK,GAE1D,IAAK,IAAIj8E,EAAI,EAAGA,EAAIg5D,EAAKh5D,GAAKypJ,EAC1B,GACI,GAAIzpJ,EAAI0pJ,EAAQ,GAAI,CAChB,IAAI14H,EAAQ04H,EAAQr7E,QAEpB,IAAK,IAAI3wE,EAAI,EAAGA,EAAI8rJ,EAAM9rJ,IACtB6rJ,EAAsB7rJ,GAAGuC,KAAKmpJ,EAAa1rJ,GAAGszB,IAExChxB,EAAI0pJ,EAAQ,IAAKH,EAAsB7rJ,GAAGuC,KAAKmpJ,EAAa1rJ,GAAGsC,GAE7E,MAAO,GAAIA,IAAM0pJ,EAAQ,GAAI,CACzB,IAAI14H,EAAQ04H,EAAQr7E,QAEpB,IAAK,IAAI3wE,EAAI,EAAGA,EAAI8rJ,EAAM9rJ,IAAK6rJ,EAAsB7rJ,GAAGuC,KAAKmpJ,EAAa1rJ,GAAGszB,GACjF,MAAO,IAAK,IAAItzB,EAAI,EAAGA,EAAI8rJ,EAAM9rJ,IAAK6rJ,EAAsB7rJ,GAAGuC,KAAKmpJ,EAAa1rJ,GAAGsC,UAC/EA,EAAI0pJ,EAAQ,IAEzB,OAAOH,CACX,EAEAjvF,uBAAAA,CAAwBzkD,EAAQ2T,GAC5B,IAAImgI,EAAkB,GAEtB,GAAI9zI,EAAOtY,OAAS,EAAG,CACnBosJ,EAAgB1pJ,KAAK4V,EAAO,IAE5B,IAAK,IAAI7V,EAAI,EAAGg5D,EAAMnjD,EAAOtY,OAAQyC,EAAIg5D,EAAKh5D,IAAK,CAC/C,IAAIiV,EAASzX,KAAK8Y,MAAMT,EAAO7V,GAAKwpB,GAAaA,EAG7CvU,IAAWzX,KAAK8Y,MAAMT,EAAO7V,EAAI,GAAKwpB,GAAaA,GACnDvU,IAAWzX,KAAK8Y,MAAMT,EAAO7V,EAAI,GAAKwpB,GAAaA,EAEnDmgI,EAAgB1pJ,MAAK,GACpB0pJ,EAAgB1pJ,KAAK4V,EAAO7V,GACrC,CACJ,CAEA,OAAO2pJ,CACX,EAIA11F,WAAAA,CAAYh3B,EAAM42B,EAAMzK,EAAIxd,EAAI1O,EAAM4hB,GAClC,IAAI73C,EAUJ,OARI63C,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAaT,IAAa33B,EAAAA,QAAOi4B,SAASK,eAA0B,IAATviB,EACxFj2B,EAASg2B,EACF6hB,IAAa33B,EAAAA,QAAOi4B,SAASK,cACpCx4C,GAAWg2B,EAAO42B,GAAQzK,GAAOxd,EAAKwd,GAAMyK,EACrC/U,IAAa33B,EAAAA,QAAOi4B,SAASC,YACpCp4C,EAAS4sD,GAAS52B,EAAO42B,GAAQzK,EAAMxd,GAGpC3kC,CACX,EACA8uD,mBAAAA,CAAoB6zF,EAAUC,EAAUC,EAAcx7I,EAAMs9B,EAAI+D,GAC5D,IAAIo6G,EAOJ,OAJIA,EADM,GAANn+G,EACag+G,EAAWj6G,IAAOi6G,EAAWC,GAAYv7I,GAEzCs7I,EAAWj6G,IAAOi6G,EAAWC,GAAYv7I,GAAQs7I,EAAWE,GAAgBl+G,GAEtFm+G,CACX,EACAzyF,cAAAA,CAAe0yF,EAAOC,EAASC,EAAUC,EAAOpzG,EAAUQ,GACtD,IAAI6yG,EAAQC,EAAOC,EAAYC,EAAIC,EAYnC,OAVAJ,EAAgC,GAAtBH,EAAUC,GAAgB1sJ,KAAKosD,GAAKrS,EAAO4yG,EAAQH,EAE7DK,EAAQD,EAASJ,EAEjBM,EAAavzG,EAAWozG,EAExBI,EAAK/sJ,KAAKwd,IAAIqvI,EAAOC,GAErBE,EAAUD,EAAKP,EAERQ,CACX,EAEAjzF,qBAAAA,CAAsBv6B,EAAK62B,EAAM32B,EAAM4hB,GACnC,IAAI73C,EAUJ,OARI63C,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAaT,IAAa33B,EAAAA,QAAOi4B,SAASK,eAA0B,IAATviB,GAEjF4hB,IAAa33B,EAAAA,QAAOi4B,SAASK,cADpCx4C,EAAS+1B,EAGF8hB,IAAa33B,EAAAA,QAAOi4B,SAASC,YACpCp4C,EAAS4sD,GAGN5sD,CACX,EACA0uD,iBAAAA,CAAkB14B,EAAMD,EAAK62B,EAAMzK,EAAIxd,EAAI1O,EAAM4hB,GAC7C,IAAI73C,EAUJ,OARI63C,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAaT,IAAa33B,EAAAA,QAAOi4B,SAASK,eAA0B,IAATviB,EACxFj2B,EAASg2B,EACF6hB,IAAa33B,EAAAA,QAAOi4B,SAASK,cACpCx4C,GAAWg2B,EAAO42B,GAAQzK,GAAOxd,EAAKwd,GAAMyK,EACrC/U,IAAa33B,EAAAA,QAAOi4B,SAASC,YACpCp4C,GAAWg2B,EAAOD,GAAOosB,GAAOxd,EAAKwd,GAAMpsB,GAGxC/1B,CACX,EACAoxD,aAAAA,CAAc2xF,EAAOhtH,EAAKuH,EAAMsvB,EAAMvlD,EAAM86C,EAAIxd,EAAI+D,EAAIzS,EAAM4hB,GAC1D,IAAI73C,EAUJ,OARI63C,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAaT,IAAa33B,EAAAA,QAAOi4B,SAASK,eAA0B,IAATviB,EACxFj2B,GAAU+iJ,EAAQr6G,EAAK3S,GAAO4O,EAAKwd,GAAM7kB,EAAOj2B,IAAS,EAAIqhC,EAAK,GAAK/D,EAAKwd,GAAM,EAAI96C,GAC/EwwC,IAAa33B,EAAAA,QAAOi4B,SAASK,cACpCx4C,GAAU+iJ,EAAQr6G,EAAKpL,EAAOj2B,IAAS,EAAIqhC,EAAK,EAAIrhC,GAC7CwwC,IAAa33B,EAAAA,QAAOi4B,SAASC,YACpCp4C,GAAU+iJ,EAAQr6G,EAAK3S,GAAO4O,EAAKwd,GAAM7kB,EAAOj2B,IAAS,EAAIqhC,EAAK,GAAK/D,EAAKwd,GAAM,EAAI96C,IAGnFrH,CACX,EACAwwD,iBAAAA,CAAkBlzB,EAAMkmH,EAAc9+G,EAAM6J,EAAcI,EAAwB9J,EAAM3I,GACpF,IAAIl8B,EAAS,CACT0wD,SAAU,EACVE,sBAAsB,EACtBD,YAAa,GAGjB,GAAIpiB,IAAiBruB,EAAAA,QAAOsuB,cAAcE,YAAa,CACnD,IAAIgiB,GAAYx0B,EAAOsnH,EAAe3+G,EAAOvH,IAASuH,EAAO3I,GACzDunH,GAAevnH,GAAQoB,EAAOoH,EAAOiK,GAA0B9J,EAAOvH,IAASuH,EAAO3I,GAEtFunH,EAAc/yF,IAAU1wD,EAAO4wD,sBAAuB,GAE1D5wD,EAAO0wD,SAAWn6D,KAAKwd,IAAI28C,EAAU+yF,EACzC,MAAWl1G,IAAiBruB,EAAAA,QAAOsuB,cAAcC,QAC7CzuC,EAAO0wD,UAAYx0B,EAAOwI,EAAOiK,EAAyB9J,EAAOvH,IAASuH,EAAO3I,IAKrF,OAFAl8B,EAAO2wD,YAAcrzB,EAAOt9B,EAAO0wD,SAE5B1wD,CACX,EACAowD,iBAAAA,CAAkBr6B,EAAK62B,EAAM32B,EAAM4hB,GAC/B,IAAI73C,EAQJ,OANI63C,IAAa33B,EAAAA,QAAOi4B,SAASG,UAAYT,IAAa33B,EAAAA,QAAOi4B,SAASK,cACtEx4C,GAAU+1B,EAAM62B,GAAQ32B,EAAO22B,EACxB/U,IAAa33B,EAAAA,QAAOi4B,SAASC,YACpCp4C,GAAU+1B,EAAM62B,IAAS32B,EAAO22B,GAG7B5sD,CACX,EACA0jJ,kBAAiBA,CAACpmH,EAAMoH,EAAMliC,EAAMmhJ,MACtBA,EAAYrmH,GAAQ/mC,KAAK6zD,IAAI,EAAG5nD,GAASkiC,EAEvDqsB,oBAAmBA,CAACzzB,EAAMqmH,MACbA,EAAYrmH,GAEzB4zB,kBAAiBA,CAACrmB,EAAOnG,EAAMliC,IACnBqoC,EAAQt0C,KAAK6zD,IAAI,EAAG5nD,GAASkiC,EAEzCwnB,mBAAAA,CAAoB03F,EAAUl/G,EAAMliC,EAAMqhJ,GACtC,IAAIC,EAAUp/G,EAAOnuC,KAAK6zD,IAAI,EAAG5nD,EAAO,GAEpCuhJ,EAAMF,EADDttJ,KAAKG,IAAIH,KAAKyb,IAAI4xI,EAAWE,IAItC,OAFiB,GAAK,EAAIvtJ,KAAKosD,GAAKohG,EAGxC,EAKAx8F,uBAAAA,CAAwBH,EAAS3uB,EAAoB2qB,EAAiBppB,EAAWqtB,EAAWxtB,GACxF,MAAO,CACHutB,QAASA,EACT3uB,mBAAoBA,EACpB2qB,gBAAiBA,EACjBppB,UAAWA,EACXqtB,UAAWA,EACXxtB,SAAUA,EACVytB,GARgG3vD,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,KAU3G,EAGAuxD,+BAAAA,CAAgC/mD,GAC5B,IAAI6hJ,EAA0B,EAAZ7hJ,EAAK8mD,KACnBg7F,EAA8B1tJ,KAAKwd,IAAI5R,EAAK2gD,cAAe3gD,EAAK6jD,cAChEk+F,EAAyB3tJ,KAAKunB,OAAOmmI,EAA8B9hJ,EAAKskD,YAAcu9F,GACtFG,EAAmBD,EAAyB,EAAI,EAChDE,EACIjiJ,EAAKskD,aAAey9F,EAAyB,GAAKF,EAAcC,GACpEI,EAAqBD,EAA4B,EAAI,EAAIA,EAE7D,OAAOD,EAAmBhiJ,EAAKskD,WAAa49F,CAChD,EAEA/gG,kBAAiBA,CAACkF,EAAcF,IACrBE,EAAejyD,KAAKkxD,KAAKa,GAGpCX,mBAAmBW,GACRA,GAAW/xD,KAAKosD,GAAK,GAGhCiD,YAAAA,CAAa0+F,GACT,IAAIvrJ,EAAI,EACJwrJ,EAAa,EACjB,IAAKxrJ,EAAI,EAAGA,EAAIurJ,EAAchuJ,OAAQyC,IAClCwrJ,GAA0BhuJ,KAAK6zD,IAAIk6F,EAAcvrJ,GAAI,GAEzD,OAAOxC,KAAKkxD,KAAK88F,EACrB,EAEAt9F,qBAAAA,CAAsBu9F,EAAc5qH,GAChC,IAAI2/E,EAAQhjH,KAAK6zD,IAAIo6F,EAAc,GAAKjuJ,KAAK6zD,IAAIxwB,EAAO,GAExD,OADcrjC,KAAK8Y,MAAc,IAARkqG,EAE7B,6DCzWJ,SACIljF,YAAa,CACTqZ,IAAK,QACLpZ,SAAU,WAGdV,SAAU,CACNwX,KAAM,UACNvX,GAAI,SAGRU,YAAa,CACTV,GAAI,WACJuX,KAAM,cAGV+K,SAAU,CACN,EAAG,YACH,EAAG,eACH,EAAG,YAGPnR,eAAgB,CACZC,KAAM,SACNI,OAAQ,uBACR9U,IAAK,4BACLiV,0BAA2B,4BAC3BU,gCAAiC,kCACjCK,sBAAuB,wBACvBI,wBAAyB,0BACzBhB,kBAAmB,wEACnBQ,wBAAyB,8EACzBP,8BAA+B,4DAC/BC,qBAAsB,mCACtBW,iBAAkB,+BAClBQ,eAAgB,sDAChBjB,UAAW,wBACXK,MAAO,6BACPK,MAAO,YACPK,QAAS,0BACTG,IAAK,sBACLG,KAAM,QAGVjC,WAAY,CACRF,KAAM,SACNI,OAAQ,+BACR9U,IAAK,qBACLwV,UAAW,mEACXK,MAAO,wEACPK,MAAO,gEACPK,QAAS,0EACTG,IAAK,8DACLG,KAAM,gEAGVo9B,mBAAoB,CAChB,uBAAwB,+BACxB,sBAAuB,qBACvB,wBAAyB,kCC3DjC1vE,OAAOE,UAAUq/D,QAAU,SAAiBv8B,EAAO2qH,GAC/C,GAAI3qH,GAAkB,GAATA,EAAY,CACrB,IAAI2Y,EAAOgyG,GAAU,QACjB/xG,EAAMn8C,KAAK6zD,IAAI,GAAItwB,GACvB,OAAOvjC,KAAKk8C,GAAMr7C,KAAOs7C,GAAOA,CACpC,CAGA,OAAOt7C,IACX,8FCHA,SACI04B,QAAAA,CAAS40H,EAAcC,GACnB,OAAOvtJ,KAAKmI,kBAAkBmlJ,GAAgBttJ,KAAKmI,kBAAkBolJ,EACzE,EAEAh1H,WAAAA,CAAY+0H,EAAcC,GACtB,OAAOvtJ,KAAKmI,kBAAkBmlJ,GAAgBttJ,KAAKmI,kBAAkBolJ,EACzE,EAEA90H,OAAAA,CAAQ60H,EAAcC,GAClB,OAAOvtJ,KAAKmI,kBAAkBmlJ,KAAkBttJ,KAAKmI,kBAAkBolJ,EAC3E,EAEA50H,eAAAA,CAAgB20H,EAAcC,GAC1B,OAAOvtJ,KAAKmI,kBAAkBmlJ,IAAiBttJ,KAAKmI,kBAAkBolJ,EAC1E,EAEA/0H,kBAAAA,CAAmB80H,EAAcC,GAC7B,OAAOvtJ,KAAKmI,kBAAkBmlJ,IAAiBttJ,KAAKmI,kBAAkBolJ,EAC1E,EAEAplJ,kBAAkBqlJ,GACP5pJ,IAAAA,kBAA4B4pJ,EAAazkJ,WAAY0kJ,KAKhE5pJ,IAAAA,CAAKo1F,EAAQy0D,GACT,OAAO1tJ,KAAKiiE,IAAIg3B,EAAQ,EAAGy0D,EAC/B,EAIAtuH,IAAAA,CAAK65D,EAAQy0D,GACT,OAAO1tJ,KAAKiiE,IAAIg3B,EAAQ,EAAGy0D,EAC/B,EAEAzrF,GAAAA,CAAIg3B,EAAQ00D,GAA+B,IAAhBD,EAASntJ,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChC8I,EAAU,CAAC,EACXukJ,EAASD,EAEb,MAAe,KAAX10D,EAAsB,IAEtB/nF,EAAAA,QAAMga,UAAUwiI,EAAUhrH,SAC1Br5B,EAAQwkJ,aAAc,EACtBD,EAASF,EAAUhrH,OAGnBgrH,EAAU19I,gBAAe3G,EAAQykJ,aAAc,GAE5ClqJ,IAAAA,oBAA8Bq1F,EAAQ,cAAe20D,EAAQvkJ,GACxE,EAEAiiE,KAAAA,CAAM2tB,GAAoB,IAAZ20D,EAAMrtJ,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,EACnB,OAAOqD,IAAAA,oBAA8Bq1F,EAAQ,QAAS20D,EAC1D,EAEAr1I,SAAAA,CAAU0gF,GACN,IAAIrwF,EACAS,EAAU,CAAEwkJ,aAAa,EAAOE,gBAAiB,KACrD,IACInlJ,EAAShF,IAAAA,oBAA8Bq1F,EAAQ,cAAe,EAAG5vF,EACrE,CAAE,MAAOuqB,GACL5yB,QAAQk8E,KAAK,4CAA4C+b,MACzDrwF,EAAS,CACb,CAEA,OAAOA,CACX,cC1EJjJ,OAAOC,UAAU2wE,WAAa,SAAUzwE,EAAQ8tB,GAE5C,OADa5tB,KACCiI,MAAMnI,GAAQ4M,KAAKkhB,EACrC,EAEAjuB,OAAOC,UAAUouJ,OAAS,SAAU9uJ,EAAQ+uJ,GACnCA,IAASA,EAAU,KAExB,IAAIC,EAAYhvJ,EAASc,KAAKd,OAE9B,OAAIgvJ,GAAa,EAAUluJ,KAEpBA,KAAKkwE,OAAO,IAAIzoD,MAAMymI,EAAY,GAAGxhJ,KAAKuhJ,GACrD,8JCWA,SACIx+E,mBAAkBA,IACP/8D,EAAAA,QAAIy7I,gBAGfzwG,cAAaA,KAUF,CACHC,IAVcjrC,EAAAA,QAAIuqC,QAAQh9C,SAAS,KACjC,GAAGyS,EAAAA,QAAIuqC,yBACP,GAAGvqC,EAAAA,QAAIuqC,0BASTW,SANAnmC,UAAYA,SAAS2nF,iBAAmB3nF,SAAS2nF,gBAAgBwC,KAC3DnqF,SAAS2nF,gBAAgBwC,KACzB,KAKN3kD,QAASvqC,EAAAA,QAAIuqC,UAIrBuyB,WAAW4+E,GACAA,aAA2Bn2C,SAGtC7uC,SAASrqE,GACc,iBAARA,EACA,CAAC,GAGZA,EAAMA,EAAIo4B,OAAO9Y,QAAQ,YAAa,KAM/Btf,EAAIkJ,MAAM,KAAKshE,QAAO,CAACv9C,EAAKw9C,KAC/B,IAAIC,EAAQD,EAAMnrD,QAAQ,MAAO,KAAKpW,MAAM,KACxCie,EAAMujD,EAAM,GACZpjE,EAAMojE,EAAM,GAgBhB,OAdAvjD,EAAMsmB,mBAAmBtmB,GAIzB7f,OAAc8Z,IAAR9Z,EAAoB,KAAOmmC,mBAAmBnmC,GAE9C6f,KAAO8F,EAEFvE,MAAMC,QAAQsE,EAAI9F,IACzB8F,EAAI9F,GAAKtkB,KAAKyE,GAEd2lB,EAAI9F,GAAO,CAAC8F,EAAI9F,GAAM7f,GAJtB2lB,EAAI9F,GAAO7f,EAOR2lB,CAAG,GACX,CAAC,GAvBO,CAAC,EA0BhB7kB,UAAUykB,GACCA,EACDpqB,OAAOC,KAAKmqB,GACPmJ,OACA9pB,KAAKib,IACF,IAAI7f,EAAMulB,EAAI1F,GAEd,OAAIuB,MAAMC,QAAQrhB,GACPA,EACF0uB,OACA9pB,KAAK5L,GAAMgvJ,UAAUnoI,GAAO,IAAMmoI,UAAUhvJ,KAC5CqN,KAAK,KAEP2hJ,UAAUnoI,GAAO,IAAMmoI,UAAUhoJ,EAAI,IAE/CqG,KAAK,KACV,GAGVuvC,OAAAA,CAAQ1yB,EAAKtY,EAAWq9I,GACpB15I,MAAM,GAAGlC,EAAAA,QAAI67I,gBAAgBhlI,KACxBhV,MAAMW,GAAaA,EAASqhB,SAC5BhiB,MAAMgV,IACHtY,EAAU4c,UAAYtE,EAClB+kI,GAAUA,EAASr9I,EAAU,GAE7C,EAEAia,SAAAA,CAAUllB,GACN,QAAShG,KAAKs4B,mBAAmBtyB,IAAUvG,MAAMuG,KAAoB,IAAVA,IAA4B,IAAVA,EACjF,EAEAo7I,uBAAAA,CAAwB16E,GACpB,YAAyB,IAAdA,GAA6B1mE,KAAKkrB,UAAUw7C,GAC5ChnE,OAAOgnE,QACc,IAAdA,GAA2C,SAAdA,SAEf,IAAdA,GAA2C,UAAdA,IAGpCA,CAEf,EAEAnnD,eAAAA,CAAgBvZ,EAAOwoJ,GACnB,IAGIC,EADezoJ,EAAMi5D,QAAQ,GACFl2D,WAAW7J,OACtCwvJ,EAAYD,EAAc,EAAI/uJ,OAHnB,IAGmCsuJ,OAAOS,EAAc,EAAG,MAAQ,EAC9E5vI,EAAQnf,OALD,IAKasuJ,OAAOS,EAAa,MACxCE,EAAWF,EAAc,GAAKzoJ,EAAM+C,WAAWk2E,OAAO,GAO1D,MAAO,CACHj5E,MAAO6Y,EACPE,QANIyvI,GACAG,IACCxvJ,KAAKyb,IAAI+zI,EAAW,GAAKxvJ,KAAKyb,IAAI+zI,EAAW,IAAMxvJ,KAAKyb,IAAI+zI,EAAW,GAAKxvJ,KAAKyb,IAAI+zI,EAAW,KAI7ED,EAAY,EAE5C,EAEAjoF,UAAUzgE,GACiB,kBAATA,GAAwC,kBAATA,EAGjD4oJ,OAAAA,CAAQ5oJ,GACJ,IAAK,IAAIrE,EAAI,EAAGA,EAAIqE,EAAOrE,IACvB,GAAIqE,EAAQrE,GAAM,EACd,OAAO,EAIf,OAAOqE,EAAQ,CACnB,EAEAonE,YAAAA,CAAapnE,GACT,IAEI6oJ,EAFAltJ,EAAI,EACJmtJ,GAAQ,EAIZ,IADA9oJ,EAAQA,EAAMi5D,QAAQ,EAAG,UACb,EAAG,OAAO,EAEtB,MAAQ6vF,GACJD,EAAgB7oJ,EAAQrE,EACpB3B,KAAK4uJ,QAAQC,KACbC,GAAQ,GAGZntJ,GAAQ,EAGZ,OAAOktJ,CACX,EAEA/vI,QAAOA,CAAC9Y,EAAO08B,EAAO2qH,IAEXluJ,KADIkuJ,GAAU,SACHrnJ,EAAQ7G,KAAK6zD,IAAI,GAAItwB,IAAUvjC,KAAK6zD,IAAI,GAAItwB,GAGlE1jB,WAAAA,CAAYhZ,EAAO4Y,EAAMyuI,GACrB,IACI/xG,EAAM,EAAM18B,EAChB,OAAOzf,KAFIkuJ,GAAU,SAEHrnJ,EAAQs1C,GAAOA,CACrC,EAEAyzG,cAAAA,CAAeC,GACPA,IACAlxJ,OAAOkD,QAAU,CACbD,MAAO,WAAa,EACpBzB,IAAK,WAAa,EAClB2vJ,KAAM,WAAa,EACnB/xE,KAAM,WAAa,EACnB1d,MAAO,WAAa,EACpB0vF,IAAK,WAAa,EAClBzkF,eAAgB,WAAa,EAC7BzK,SAAU,WAAa,EACvBmvF,MAAO,WAAa,EACpBp2F,KAAM,WAAa,EACnB66E,QAAS,WAAa,GAGlC,EAEAwb,eAAAA,CAAgBzwJ,GACZ,IAAI0wJ,EAAUrvJ,KAAKopE,SAASjyD,IAAIyG,SAASw9B,MACzC,OAAOz8C,KAAQ0wJ,EAAUA,EAAQ1wJ,GAAQ,IAC7C,EAEA25B,mBAAoB,SAAU/B,GAC1B,OAAO,MAAOA,GAA2E,OAAnCA,EAAKxtB,WAAWU,MAAM,QAChF,EAEAgwB,QAAOA,CAAClX,EAAGiX,IACAjX,EAAIiX,GAAK,EAAIjX,EAAIiX,EAAI,EAAI,EAGpC80C,YAAAA,CAAaJ,EAAaG,EAAUE,GAChC,IAAI+gF,GAAU,EACd,GAAI/gF,EAAU,CACV,IAAIJ,EAAO,IAAIsQ,KAAK,CAAClQ,GAAW,CAAE7lE,KAAMwlE,IACxC,QAA2C,IAAhCpwE,OAAOmqC,UAAUsnH,WACxBzxJ,OAAOmqC,UAAUsnH,WAAWphF,EAAME,OAC/B,CACH,IAAI7+D,EAAM1R,OAAO0R,KAAO1R,OAAOkgF,UAC3BwxE,EAAchgJ,EAAI6uE,gBAAgBlQ,GAEtC,GAAIE,EAAU,CACV,IAAI9rD,EAAI9K,SAASwmE,cAAc,UACL,IAAf17D,EAAE27D,SACTpgF,OAAO8f,SAAW4xI,GAElBjtI,EAAEpT,KAAOqgJ,EACTjtI,EAAE27D,SAAW7P,EACb52D,SAASxC,KAAKgrG,YAAY19F,GAC1BA,EAAEktI,QAEV,MACI3xJ,OAAO8f,SAAW4xI,EAEtB/6I,YAAW,WACPjF,EAAI8uE,gBAAgBkxE,EACxB,GAAG,IACP,CACAF,GAAU,CACd,CAEA,OAAOA,CACX,EAEA5/H,WAAUA,CAACC,EAAU3pB,IACV,gBAAgB2pB,WAAkB3pB,WAG7CmL,eAAAA,GACI,IAAIlQ,EAAMyuJ,IAAAA,WAAqB/nJ,MAAMgoJ,GAAcA,aAAqBtvJ,MACxE,OAAIY,EAAYA,EAAI2uJ,cACR,CAAC,CACjB,EAEA7N,sBAAAA,CAAuBx5I,GACnBA,EAAK67B,QAAU1J,IAAUnyB,EAAK5J,MAC9B4J,EAAKm0B,aAAemzH,IAAUtnJ,EAAK5J,KACvC,oWC1QJ,MAAM82C,EAAY,CACdC,OAAQ,SACRI,OAAQ,SACRiC,QAAS,WAGP+3G,EAAQ,CACVj6G,SAAU,WACVI,UAAW,YACX+D,UAAW,YACXpD,cAAe,gBACfa,iBAAkB,mBAClBlB,eAAgB,iBAChBw5G,mBAAoB,sBAGlBC,EAAiB,CACnBn6G,SAAUi6G,EAAMj6G,SAChBI,UAAW65G,EAAMj6G,SACjBmE,UAAW81G,EAAMj6G,SACjBe,cAAek5G,EAAMl5G,cACrBa,iBAAkBq4G,EAAMr4G,iBACxBlB,eAAgBu5G,EAAMv5G,eACtBw5G,mBAAoBD,EAAMC,oBAGxBrK,EAAmBlkJ,OAAOC,KAAKuuJ,GAChC/kJ,KAAKib,GAAQ8pI,EAAe9pI,KAC5BwqD,mBAEC6zE,EAA4Bx8E,IAC9B,IAAIuC,GAAU,EACV66E,EAAoB3jJ,OAAOC,KAAKsmE,GACpC,IAAK,IAAIpmE,EAAI,EAAGA,EAAIwjJ,EAAkBjmJ,OAAQyC,IAC1C,GAAI+jJ,EAAiB7lJ,SAASslJ,EAAkBxjJ,IAAK,CACjD2oE,GAAU,EACV,KACJ,CAGJ,OAAOA,CAAO,EAGZz0B,EAAWA,CAAC3vB,EAAKggD,EAAUu+E,KAC7B,IAAIM,GAAQ,EACRkL,EAAUxL,EAASv+H,GAEvB,UAAW+pI,IAAYnnI,EAAAA,QAAOonI,UAC1B,OAAQhqF,EAASv2C,UACb,KAAK8lB,EAAUK,cACAm6G,IAAYx6G,EAAUK,QAA6B,KAAnBm6G,EAAQ94H,SAAe4tH,GAAQ,GAC1E,MACJ,KAAKtvG,EAAUC,cACAu6G,IAAYx6G,EAAUC,SAAQqvG,GAAQ,GACjD,MACJ,KAAKtvG,EAAUsC,QACP7mC,EAAAA,QAAMu1D,UAAUwpF,KAAUlL,GAAQ,GAKlD,MAAO,CACHoL,UAAWjqI,EACX6+H,MAAOA,EACPC,SAAU8K,EAAMj6G,SAChBovG,cAAc,EACd5+H,YAAa,uBAAuB6/C,EAASv2C,WAC7C81H,UAAW,CAAEz/I,MAAOiqJ,GACpB9kJ,KAAMs5I,EAASt5I,KAClB,EAGC8qC,EAAYA,CAAC/vB,EAAKggD,EAAUu+E,KAC9B,IAAI2L,EAAiBv6G,EAAS3vB,EAAKggD,EAAUu+E,GACzCz+I,EAAQy+I,EAASv+H,GAErB,MAAO,CACHiqI,UAAWjqI,EACX6+H,MAAOt9H,MAAMC,QAAQw+C,EAASnwB,WAAaq6G,EAAerL,OAAS7+E,EAASnwB,SAASl2C,SAASmG,GAC9Fg/I,SAAU8K,EAAMj6G,SAChBovG,cAAc,EACd5+H,YAAc+pI,EAAerL,MAAqC,uBAA7BqL,EAAe/pI,YACpDo/H,UAAY2K,EAAerL,MAErB,CAAE/+I,MAAOA,EAAO+vC,SAAUtuB,MAAMC,QAAQw+C,EAASnwB,UAAYmwB,EAASnwB,SAASrpC,OAAS,IADxF0jJ,EAAe3K,UAErBt6I,KAAMs5I,EAASt5I,KAClB,EAGCklJ,EAAuBA,CAACnqI,EAAKggD,EAAUu+E,EAAU6L,KACnD,IAAIF,EAAiBv6G,EAAS3vB,EAAKggD,EAAUu+E,GAC7C,OAAQ6L,EAAc7L,IAAa2L,EAAerL,MAAQ,CAAEA,OAAO,GAASqL,CAAc,EAGxFx5G,EAAgBA,CAAC1wB,EAAKggD,EAAUu+E,KAClC,IAAI77I,EAASynJ,EAAqBnqI,EAAKggD,EAAUu+E,GAAWA,IAChDA,EAASxsG,cAErB,MAAO,CACHk4G,UAAWjqI,EACX6+H,MAAOn8I,EAAOm8I,MACdC,SAAU8K,EAAMl5G,cAChBquG,cAAc,EACd5+H,YAAazd,EAAOyd,YACpBo/H,UAAW78I,EAAO68I,UAClBt6I,KAAMs5I,EAASt5I,KAClB,EAGCssC,EAAmBA,CAACvxB,EAAKggD,EAAUu+E,KACrC,IAAI77I,EAASynJ,EAAqBnqI,EAAKggD,EAAUu+E,GAAWA,GACjDA,EAASvsG,iBAEpB,MAAO,CACHi4G,UAAWjqI,EACX6+H,MAAOn8I,EAAOm8I,MACdC,SAAU8K,EAAMr4G,iBAChBwtG,cAAc,EACd5+H,YAAazd,EAAOyd,YACpBo/H,UAAW78I,EAAO68I,UAClBt6I,KAAMs5I,EAASt5I,KAClB,EAGC6uC,EAAYA,CAAC9zB,EAAKggD,EAAUu+E,KAC9B,IAAI77I,EAASitC,EAAS3vB,EAAKggD,EAAUu+E,GACjCzoG,EAAa,CAAC91B,GACd1O,EAAS,CAACitI,EAASv+H,IAEvB,IAAKtd,EAAOm8I,MACR,IAAK,IAAIpjJ,EAAI,EAAGA,EAAIukE,EAASnsB,WAAW76C,OAAQyC,IAAK,CACjD,IAAI4uJ,EAAYrqF,EAASnsB,WAAWp4C,GAIpC,GAHAiH,EAASitC,EAAS06G,EAAWrqF,EAAUu+E,GACvCzoG,EAAWp6C,KAAK2uJ,GAChB/4I,EAAO5V,KAAK6iJ,EAAS8L,IACjB3nJ,EAAOm8I,MAAO,KACtB,CAGJ,MAAO,CACHoL,UAAWjqI,EACX6+H,MAAOn8I,EAAOm8I,MACdC,SAAU8K,EAAMj6G,SAChBovG,cAAc,EACd5+H,YAAa,uBACbo/H,UAAW,CAAEzpG,WAAYA,EAAYxkC,OAAQA,GAC7CrM,KAAMs5I,EAASt5I,KAClB,EAGC6sC,EAAUA,CAAC9xB,EAAKggD,EAAUu+E,KACvB5uG,EAAS3vB,EAAKggD,EAAUu+E,GAAUM,QACnCN,EAASv+H,GAAOggD,EAASloE,SAGtB,CACH+mJ,OAAO,IAITxuG,EAAiBA,CAACrwB,EAAKggD,EAAU3iE,KACnC,IAAI6sJ,EAAiBv6G,EAAS3vB,EAAKggD,EAAU3iE,GACzCyC,EAAQzC,EAAI2iB,GAEhB,MAAO,CACHiqI,UAAWjqI,EACX8+H,SAAU8K,EAAMv5G,eAChBwuG,MAAOqL,EAAerL,OAASxhJ,EAAI40C,mBAAmBt4C,SAASmG,GAC/Di/I,cAAc,EACd5+H,YAAc+pI,EAAerL,MAAqC,iCAA7BqL,EAAe/pI,YACpDo/H,UAAY2K,EAAerL,MAErB,CAAE/+I,MAAOA,EAAOzC,IAAKA,EAAI4H,KAAMg/C,QAAS5mD,EAAI40C,mBAAmBzrC,QAD/D0jJ,EAAe3K,UAErBt6I,KAAM5H,EAAI4H,KACb,EAGCitC,EAAsBA,CAAClyB,EAAKggD,EAAU3iE,KACxC,IAAIitJ,EAAiB,GASrB,OARYjtJ,EAAI2iB,GAEVrO,SAAS6lB,IACNwoC,EAAS7c,cAAcxpD,SAAS69B,IACjC8yH,EAAe5uJ,KAAK87B,EACxB,IAGG,CACHyyH,UAAWjqI,EACX8+H,SAAU8K,EAAMC,mBAChBhL,OAAQyL,EAAetxJ,OACvB+lJ,cAAc,EACd5+H,YAAa,qCACbo/H,UAAW,CAAE+K,eAAgBA,EAAe9jJ,QAC5CvB,KAAM5H,EAAI4H,KACb,EAGCyqC,EAAa,CACfC,SAAUA,EACVmC,QAASA,EACT/B,UAAWA,EACXW,cAAeA,EACfa,iBAAkBA,EAClBuC,UAAWA,EACXzD,eAAgBA,EAChB6B,oBAAqBA,4ECnKzB,SAAeq4G,EAAAA,EAAAA,qBAAmB,KAAM,CACtCC,cAAcA,EAAAA,EAAAA,cAAuF,OAAiB,CACpHC,qBAAqB,IAEvBC,cAAAA,GAAkB,EAClBC,eAAAA,CAAgBvlI,EAAQ7kB,EAAOiL,GAG5B,IAFDo/I,YAAaj5B,KAAOhkG,GAAK,MACzBk9H,GACDr/I,EACCmmH,EAAGpxH,EAASotB,EAAMk9H,EACpB,EACAC,cAAAA,GAAkB,EAClBC,eAAAA,GAAmB,KACjB,kFC1DJ,MAAMC,GAIKhvJ,SAAAA,GAAAnE,EAAW,OAAsBmzJ,QAkE5C,GAAeT,EAAAA,EAAAA,qBAAmB,KAAM,CACtCC,cAAyFA,EAAAA,EAAAA,cAAa,OAAQ,CAC5GC,qBAAqB,IAIvBC,eAAcA,KACL,CACLnqJ,QAAS,OAGboqJ,eAAAA,CAAgBhyC,EAAOp4G,EAASotB,GAE9BgrF,EAAMp4G,QAAUA,EAKdotB,EAAKi9H,WAAWj5I,SAAQ,SACxBgc,EAAKk9H,OAASvvJ,OAAOgW,OAAOqc,EAAKk9H,MAErC,EACAC,cAAAA,CAAct/I,EAEXmiB,GAAM,IAFM,QACbptB,GACDiL,GACMmmH,KAAOi5B,GAAcj9H,EAAKi9H,WAK7Bj9H,EAAKi9H,WAAWj5I,SAAQ,SACxBgc,EAAKk9H,OAASvvJ,OAAOgW,OAAOqc,EAAKk9H,OACjCG,GAAQ,KACNr5B,EAAGpxH,EAASqqJ,EAAYj9H,EAAKk9H,MAAM,GAKzC,EACAE,eAAAA,GAAmB,KACjB,kFCvEJ,SAAeR,EAAAA,EAAAA,qBAAmB,KAAM,CACtCC,cAAcA,EAAAA,EAAAA,cAAuF,OAAiB,CACpHC,qBAAqB,IAEvBC,eAAcA,KACL,CACLnqJ,QAAS,OAGboqJ,eAAAA,CAAgBhyC,EAAOp4G,GACrBo4G,EAAMp4G,QAAUA,CAClB,EACAuqJ,cAAAA,GAAkB,EAClBC,eAAAA,CAAev/I,EAEZmiB,GAAM,IAFO,QACdptB,GACDiL,GACMmmH,KAAOi5B,GAAcj9H,EAAKi9H,WAC/Bj5B,EAAGpxH,EAASqqJ,EAAYj9H,EAAKk9H,MAC/B,KACE,sEC5DW,MAAMI,EAKnB7wJ,WAAAA,CAAY8wJ,EAAO/1G,EAAMg2G,IAAO7wJ,EAAAA,EAAAA,GAAA,YAJzB,IAACA,EAAAA,EAAAA,GAAA,cACC,IAACA,EAAAA,EAAAA,GAAA,YACH,GAGLR,KAAKoxJ,MAAQA,EACbpxJ,KAAKq7C,KAAOA,EACZr7C,KAAKqxJ,MAAQA,EACbrxJ,KAAKqxJ,MAAQA,GAAS,IAAIC,GAC5B,CAEAtjI,GAAAA,CAAI9H,GACF,IAAIlgB,EAAQhG,KAAKqxJ,MAAMrjI,IAAI9H,GAE3B,OAAIlmB,KAAKqxJ,MAAM//I,IAAI4U,IACjBlmB,KAAKuxJ,OACEvxJ,KAAKqxJ,MAAMrjI,IAAI9H,KAEtBlmB,KAAKwxJ,SACLxrJ,EAAQhG,KAAK+V,IAAImQ,EAAKlmB,KAAKq7C,KAAKn1B,IAG3BlgB,EACT,CAEA+P,GAAAA,CAAImQ,EAAKlgB,GAMP,OALIhG,KAAKoxJ,MAAQpxJ,KAAKwhB,OACpBxhB,KAAKwhB,OACLxhB,KAAKqxJ,MAAMt7I,IAAImQ,EAAKlgB,IAGfA,CACT,CAEAyrJ,KAAAA,GACEzxJ,KAAKqxJ,MAAM5wC,QACXzgH,KAAKwhB,KAAO,EACZxhB,KAAKuxJ,KAAO,EACZvxJ,KAAKwxJ,OAAS,CAChB,ECrBF,MAAME,EAA0B,QAE1BC,GADyB,IAAIR,EAAM,KAAMjrI,IAAO0rI,OA6E3B7yJ,EA7EsCmnB,EA8ExD2rI,EAAiB7jI,IAAIjvB,IA9EwCsf,QAAQqzI,EAAyB,KA6EhG,IAAoB3yJ,CA7EgF,IAC1E,uBAC3B+yJ,EAA2B,iBAI3BC,GAHiB,IAAIZ,EAAM,KAAMjrI,GAAOA,EAAI7H,QAAQszI,GAA0B,CAACK,EAAQC,EAAYC,IAAQA,EAAMA,EAAI3qJ,cAAgB,KAAI8W,QAAQyzI,GAA2BroJ,GAE7KA,EAAMgD,kBACsB,gBAC3B0lJ,EAA2B,yBAC3BC,EAA2B,oBAgB3BC,GAfiB,IAAIlB,EAAM,KAAMpyJ,IACrC,MAAMuzJ,EAAWA,CAACN,EAAQC,EAAYC,IAAQA,EAAM,IAAIA,EAAI3qJ,gBAAkB,GAExEgrJ,EAAWA,CAACP,EAAQQ,EAAaP,EAAYC,IAAQM,GAAeN,EAAMA,EAAI3qJ,cAAgB,IAE9FkiE,EAAQ1qE,EAAIkJ,MAAM,KAExB,IAAK,IAAItG,EAAI,EAAGA,EAAI8nE,EAAMvqE,OAAQyC,IAChC8nE,EAAM9nE,GAAK8nE,EAAM9nE,GAAG0c,QAAQ0zI,EAA0BO,GAAUj0I,QAAQ8zI,EAA0BI,GAGpG,OAAO9oF,EAAM/8D,KAAK,KAAK2R,QAAQ+zI,GAA2B3oJ,GAErDA,EAAMlC,eAAc,IAEQ,sBAC7BkrJ,EAA6B,UAC7BC,EAAmB,IAAIvB,EAAM,KAAMpyJ,GAAOA,EAAIsf,QAAQg0I,EAA4B,SAASh0I,QAAQo0I,EAA4B,KAAKhmJ,gBACpIkmJ,EAA2B,8BAI3BC,GAHmB,IAAIzB,EAAM,KAAMpyJ,GAAOA,EAAIsf,QAAQs0I,GAA2BlpJ,GAElFA,EAAMlC,kBACsB,qBAC3BsqJ,EAAmB,IAAIV,EAAM,KAAMpyJ,GAAOA,EAAIsf,QAAQu0I,EAA0B,SAASnmJ,gBAuIxF,SAASomJ,EAAW9zJ,GACzB,OAAO2zJ,EAAiB1kI,IAAIjvB,EAC9B,kFCvLA,MAAM+zJ,EAAU,WAEd,IAAIC,EAAa,eACbC,EAFiC,oBAAXlvB,OAEAA,OAAOmvB,IAAIF,GAAcA,EAC/C91E,EAASi2E,IACTC,EAAUl2E,EAAO+1E,GAIrB,YAHgB7yI,IAAZgzI,IACFA,EAAUl2E,EAAO+1E,GAAU,IAAI1B,KAE1B6B,CACT,CAVgB,GAchB,SAASD,IAEP,GAA0B,oBAAfE,WAA4B,OAAiBA,WACxD,GAAoB,oBAAT54G,KAAsB,OAAiBA,KAClD,GAAsB,oBAAX18C,OAAwB,OAAiBA,OACpD,GAAsB,oBAAXm/E,OAAwB,OAAiBA,OACpD,MAAM,IAAIx+E,MAAM,iCAClB,CAUIqC,IAAAA,OACFuyJ,EAAAA,EAAAA,iBAAe,MAyDV,WACL,IAAIzqJ,EAAS,CACX0qJ,QAAS,EACTH,QAAS,CAAC,GASZ,OAPAL,EAAQj7I,SAAQ07I,IACd,IAAKA,EAAOC,YAAa,CACvB5qJ,EAAO0qJ,UACP,IAAIG,EAAYF,EAAOE,YACvB7qJ,EAAOuqJ,QAAQI,EAAO50J,MAAQ80J,IAAa,CAC7C,KAEK7qJ,CACT,CAQc8qJ,GACCJ,QAAU,aCvCzB,MAAMK,EACJrzJ,WAAAA,CAAY3B,GACVqB,KAAKrB,KAAOA,CACd,CACAi1J,UAAAA,GACE,OAAO5zJ,IACT,CACA6zJ,QAAAA,GAAY,CACZL,SAAAA,GACE,OAAO,CACT,CACAC,SAAAA,GACE,MAAO,EACT,CACAxsJ,KAAAA,GAAS,EAgCI,SAAS6sJ,EAAYn1J,GAQhC,OAAO,IAAIg1J,EAAeh1J,EAW9B,CCtHe,SAASovE,EAAegmF,EAASl3I,GAY9C,OAXak3I,CAYf,CApCuBD,EAAY,sCCuCVA,EAAY,6GCgJtB,MAAME,EASnB1zJ,WAAAA,CAAY2zJ,EAAOpgI,GAlMrB,IAAyBD,EAAGm/C,EAAG1vE,EAANuwB,EA2NL5zB,KA3NWqD,OA2NG,GA3NU0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAApBthF,EA2NF,WA3N4Cn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,EA+NzKrD,KAAK6zB,KAAOA,GACZygI,EAAAA,EAAAA,UAASt0J,KAAMi0J,EACjB,CACA,gBAAIM,GACF,OAAOA,EAAAA,EAAAA,GAAav0J,KACtB,CACA,eAAIogB,GACF,OAAOA,EAAAA,EAAAA,GAAYpgB,KACrB,CAKAw0J,WAAAA,GAAe,gFC3OV,MAAMD,EAAezzJ,IAAAA,cACfsf,EAActf,IAAAA,6ICM3B,MAAM,aACJ2zJ,EAAY,cACZC,GACEC,EACEC,GAEJlE,EAAAA,EAAAA,cAAa,OAAQ,CACrBmE,YAAY,EACZC,yBAAyB,EACzBC,YAAY,IAaRC,EAAiBl0J,IAAAA,QAUjBm0J,EAA4Bn0J,IAAAA,oBAQlC,MAAMo0J,UCrCS,SAA8BZ,EAAUa,EAAUzE,GAC/D,OAAO,MACL,aAAOtuJ,CAAOgzJ,GAEZ,OAAO,IAAIp1J,KADCm1J,EAASC,GAEvB,CACA90J,WAAAA,CAAY2zJ,GAjBhB,IAAyBrgI,EAAGm/C,EAAG1vE,EAANuwB,EAkBH5zB,KAlBSqD,EAkBaqtJ,GAlBA39E,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAApBthF,EAkBA,mBAlB0Cn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,EAmBvKixJ,EAASt0J,KAAMi0J,EACjB,CACAoB,eAAAA,CAAgBC,EAAgBzhI,GAI9B,OAAO,IAAIyhI,EAAeH,EAASn1J,MAAO6zB,EAAKk9H,MACjD,CACA56C,UAAAA,CAAW9yD,GACT,OAAOA,CACT,EAEJ,CDiB2CkyG,CAAqBjB,EAAAA,SAAUa,EAAAA,SAAUP,IAClFS,eAAAA,CAAgBC,EAAgBzhI,GAC9B,MAAMwvB,EAAYpgD,MAAMoyJ,gBAAgBC,EAAgBzhI,GAMxD,OAJEohI,EAAmB5xG,GAAW,KAC5BA,EAAUmxG,aAAa,IAGpBnxG,CACT,CACAmyG,gBAAAA,CAAiBnyG,GACf2xG,EAAQ3xG,EACV,EAiBF,2JEnEA,IAAIoyG,SAAmBC,GAwCrBC,EAAAA,EAAAA,sBAAoB1B,GACX,IAAI2B,EAAAA,EAAwB3B,IAClCwB,GAIL,sECvDI,MAAM,OAAEI,EAAM,QAAE7mJ,GAAY8mJ,sGCDzB,MAAMC,EAAgB,kBAChBC,EAAwB,kCACxBC,EAAY,cCMlB,SAASC,EAAWztE,GAAc,IAAXrtC,EAAI76C,UAAArB,OAAA,QAAAihB,IAAA5f,UAAA,GAAAA,UAAA,GAAG,CAAC,EACpC,MAAMg9F,EAAU98F,EAAAA,QAAO01J,IAAI54D,QAI3B,IAAI64D,EAAch7G,EAAKg7G,aAAeh7G,EAAKi7G,QACvCC,EAAUl7G,EAAKk7G,SAAWl7G,EAAKm7G,YAE/B9sJ,EAAQ,KAgBZ,OAdI2sJ,IACEh7G,EAAKo7G,eACP/sJ,EAAQ8zF,EAAQ9zF,MAAMusJ,IAGnBvsJ,IACHA,EAAQ8zF,EAAQ9zF,MAAMssJ,KAItBO,IACF7sJ,EAAQ8zF,EAAQ9zF,MAAMwsJ,IAGjBxsJ,EAAQA,EAAM,GAAK8zF,CAC5B,CAEA,SAAeviD,EAAAA,EAAAA,QAAOk7G,sFChCtB,IAAIv3J,EAAM4+F,EACN98F,EAAAA,QAAO01J,MACTx3J,EAAO8B,EAAAA,QAAO01J,IAAIx3J,KAClB4+F,EAAU98F,EAAAA,QAAO01J,IAAI54D,SAGvB,SACE5+F,KAAM,cACN83J,WCTa,SAA4B93J,EAAM4+F,GAC/C,IAAIm5D,GAAa,EAEjB,OAAO,YACAA,GAAc/3J,GAAQ4+F,IACzBo5D,EAAAA,UAAUC,SAASj4J,EAAM4+F,GACzBm5D,GAAa,EAEjB,CACF,CDAcG,CAAmBl4J,EAAM4+F,uFEVvC,IAAIu5D,ECCOC,ECiBX,SAASC,EAAapgJ,EAAQsP,EAAK+wI,EAAYC,GAM7C,MAAMC,EAAqBF,EAAWv4J,aAAeu4J,EAAWjpI,KAAO,MAAgB,GACvF,MAAO,CACLA,GAAAA,GACE,MAAMopI,EAAWp3J,KAAK6zB,KAAK3N,GAc3B,YAbiC/F,IAAbi3I,EAAyBA,EAAWD,EAAmBnwJ,KAAKhH,KAclF,EAEJ,CACe,SAASq3J,IAAa,QAAAC,EAAA/2J,UAAArB,OAAN20B,EAAI,IAAApM,MAAA6vI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1jI,EAAI0jI,GAAAh3J,UAAAg3J,GACjC,GC7Ca,WAAsC,QAAAD,EAAA/2J,UAAArB,OAAN20B,EAAI,IAAApM,MAAA6vI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ1jI,EAAI0jI,GAAAh3J,UAAAg3J,GACjD,MAAOC,EAAaC,EAAUC,GAAa7jI,EAC3C,OAEkB,IAAhBA,EAAK30B,SAEkB,mBAAhBs4J,GAAqD,iBAAhBA,GAA4C,OAAhBA,IAEpD,iBAAbC,IAEc,iBAAdC,GAAwC,OAAdA,GAAsB,eAAgBA,GAAa,iBAAkBA,QAExFv3I,IAAdu3I,EAEJ,CD+BMC,IAAuB9jI,GACzB,OAAOmjI,KAAgBnjI,GAEzB,MAAOqjI,GAAarjI,EACpB,OAAO,WAA2B,QAAA+jI,EAAAr3J,UAAArB,OAAN20B,EAAI,IAAApM,MAAAmwI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJhkI,EAAIgkI,GAAAt3J,UAAAs3J,GAC9B,OAAOb,KAAoBnjI,EAAMqjI,EACnC,CACF,CFnCEJ,EAAoBA,KAClB,MAAM,IAAIr4J,MAAM,qDAAqD,EIjB1DX,OAAAC,QADQ,gCACyB,eHqD9Cg5J,EAAUA,KACR,MAAM,IAAIt4J,MAAM,2CAA2C,ECjDvCqlI,OAAO,qBGP/B,SAAAxlI,UAAAA,uBADuB,CAAC,GAAK,WAAW,MAAQ,+cAAmgB,WAAa,8LAA8L,cAAe,QCCzwBgE,EAAME,EAAOiC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOpC,EAAQo1J,EAASj1J,EAAaC,EAAcC,EAAc6G,EAAcC,EAAcC,EAAcC,EAAcC,YAC7K,SAASpH,EAA2BgxB,EAAGjyB,EAAGoxE,EAAGW,GAAKX,GAAKvxE,OAAOirC,eAAe7Y,EAAGjyB,EAAG,CAAEwC,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAAK0sE,QAAK,GAAW,CAI7N,SAASzvE,EAA0BtC,EAAGiyB,EAAGm/C,EAAG4B,EAAGjB,GAAK,IAAInxD,EAAI,CAAC,EAAG,OAAO/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GAAImxD,QAAK,IAAWnxD,EAAE7jB,cAAgB6jB,EAAEvc,MAAQuc,EAAE7jB,YAAc6jB,EAAE7jB,YAAYsI,KAAK0sE,QAAK,EAAQnxD,EAAE7jB,iBAAc,QAAS,IAAW6jB,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,CAAG,CAOlgB,IAAIw1I,GAAuBz1J,EAAO+0J,GAAIW,EAAAA,EAAAA,WAAU,CAACzlB,EAAAA,OAAQl3F,EAAAA,QAAS74C,EAAQ60J,GAAIW,EAAAA,EAAAA,WAAU,CAACzlB,EAAAA,OAAQl3F,EAAAA,QAAS52C,EAAQ4yJ,GAAIY,EAAAA,EAAAA,OAAM,CAAC,OAAQ,SAAUvzJ,EAAQ2yJ,EAAIa,EAAAA,SAAUvzJ,EAAQ0yJ,GAAIW,EAAAA,EAAAA,WAAU,CAACzlB,EAAAA,OAAQ9rI,EAAAA,WAAY7B,EAAQyyJ,EAAI9kB,EAAAA,QAAS1tI,EAAQwyJ,EAAIa,EAAAA,SAAUpzJ,EAAQuyJ,EAAIa,EAAAA,SAAoCJ,EAAU,cAAkCn1J,EAAAA,EACrVrC,WAAAA,GAXF,IAAyBszB,EAAGm/C,EAAG1vE,EAY3BJ,SAAM1C,WAZeqzB,EAaL5zB,KAbQ+yE,EAaF,OAbK1vE,GAaG80J,EAAAA,EAAAA,SAAQn4J,OAbE+yE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,EAczKT,EAA2B5C,KAAM,OAAQ6C,EAAa7C,MACtD4C,EAA2B5C,KAAM,SAAU8C,EAAc9C,MACzD4C,EAA2B5C,KAAM,SAAU+C,EAAc/C,MACzD4C,EAA2B5C,KAAM,qBAAsB4J,EAAc5J,MACrE4C,EAA2B5C,KAAM,YAAa6J,EAAc7J,MAC5D4C,EAA2B5C,KAAM,aAAc8J,EAAc9J,MAC7D4C,EAA2B5C,KAAM,UAAW+J,EAAc/J,MAC1D4C,EAA2B5C,KAAM,YAAagK,EAAchK,KAC9D,GACE6C,EAAcoB,EAA0B6zJ,EAAQl4J,UAAW,OAAQ,CAAC0C,GAAO,CAC7E4B,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXoE,EAAemB,EAA0B6zJ,EAAQl4J,UAAW,SAAU,CAAC4C,GAAQ,CACjF0B,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXqE,EAAekB,EAA0B6zJ,EAAQl4J,UAAW,SAAU,CAAC6E,GAAQ,CACjFP,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXkL,EAAe3F,EAA0B6zJ,EAAQl4J,UAAW,qBAAsB,CAAC8E,GAAQ,CAC7FR,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXmL,EAAe5F,EAA0B6zJ,EAAQl4J,UAAW,YAAa,CAAC+E,GAAQ,CACpFT,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXoL,EAAe7F,EAA0B6zJ,EAAQl4J,UAAW,aAAc,CAACgF,GAAQ,CACrFV,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,WACX,MAAO,QACT,IACEqL,EAAe9F,EAA0B6zJ,EAAQl4J,UAAW,UAAW,CAACiF,GAAQ,CAClFX,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,OACXsL,EAAe/F,EAA0B6zJ,EAAQl4J,UAAW,YAAa,CAACkF,GAAQ,CACpFZ,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,QAtDkRgE,EAuD5Ro1J,IAAap1J,IACwB4B,EAAAA,EAAAA,sBAAAC,EAAAwzJ,kHClE3B,MAAMK,UAAmC18G,KACtDp7C,WAAAA,GACE2C,SAAS1C,WACT,MAAMgC,GAAU4yJ,EAAAA,EAAAA,UAASn1J,MAAMq4J,OAAO,oBACtCr4J,KAAKs4J,aAAa/1J,GAAUA,EAAQ+1J,UACtC,CACA38G,OAAAA,CAAOjqC,GAAW,IAATZ,GAAOY,EACd,MAAM,WACJ4mJ,GACEt4J,KACJ,OAAOs4J,GAAqBC,IAAAA,YAAwBznJ,EACtD,wGCbF,MAAqBqgJ,EAKnB7wJ,WAAAA,CACU8wJ,EACA/1G,EACAg2G,GAFA,KAAAD,MAAAA,EACA,KAAA/1G,KAAAA,EACA,KAAAg2G,MAAAA,EAPV,KAAO7vI,KAAO,EACd,KAAOgwI,OAAS,EAChB,KAAOD,KAAO,EAOP,KAAAF,MAAQA,GAAS,IAAIC,GAC5B,CAEAtjI,GAAAA,CAAI9H,GACF,IAAIlgB,EAAQhG,KAAKqxJ,MAAMrjI,IAAI9H,GAE3B,OAAIlmB,KAAKqxJ,MAAM//I,IAAI4U,IACZ,KAAAqrI,OAEEvxJ,KAAKqxJ,MAAMrjI,IAAI9H,KAEjB,KAAAsrI,SACLxrJ,EAAQhG,KAAK+V,IAAImQ,EAAKlmB,KAAKq7C,KAAKn1B,IAG3BlgB,EACT,CAEA+P,GAAAA,CAAImQ,EAAQlgB,GAMH,OALHhG,KAAKoxJ,MAAQpxJ,KAAKwhB,OACf,KAAAA,OACA,KAAA6vI,MAAMt7I,IAAImQ,EAAKlgB,IAGfA,CACT,CAEAyrJ,KAAAA,GACEzxJ,KAAKqxJ,MAAM5wC,QACXzgH,KAAKwhB,KAAO,EACZxhB,KAAKuxJ,KAAO,EACZvxJ,KAAKwxJ,OAAS,CAChB,EClBF,MAAME,EAA0B,QAM1BC,GAJyB,IAAIR,EAAsB,KAAOjrI,IAC9D0rI,OA+GyB7yJ,EA/GdmnB,EAgHJ2rI,EAAiB7jI,IAAIjvB,IAhHZsf,QAAQqzI,EAAyB,KA+G5C,IAAoB3yJ,CA9G3B,IAEiC,uBAC3B+yJ,EAA2B,iBAY3BC,GAViB,IAAIZ,EAAsB,KAAOjrI,GACtDA,EACG7H,QAAQszI,GAA0B,CAACK,EAAQC,EAAYC,IACtDA,EAAMA,EAAI3qJ,cAAgB,KAE3B8W,QAAQyzI,GAA2BroJ,GAClCA,EAAMgD,kBAIqB,gBAC3B0lJ,EAA2B,yBAC3BC,EAA2B,oBA0B3BC,GAxBiB,IAAIlB,EAAsB,KAAOpyJ,IAChD,MAAAuzJ,EAAWA,CAACN,EAAgBC,EAAoBC,IACpDA,EAAM,IAAIA,EAAI3qJ,gBAAkB,GAC5BgrJ,EAAWA,CACfP,EACAQ,EACAP,EACAC,IACGM,GAAeN,EAAMA,EAAI3qJ,cAAgB,IACxCkiE,EAAQ1qE,EAAIkJ,MAAM,KAExB,IAAK,IAAItG,EAAI,EAAGA,EAAI8nE,EAAMvqE,OAAQyC,IAC1B8nE,EAAA9nE,GAAM8nE,EAAc9nE,GACvB0c,QAAQ0zI,EAA0BO,GAClCj0I,QAAQ8zI,EAA0BI,GAGhC,OAAA9oF,EACJ/8D,KAAK,KACL2R,QAAQ+zI,GAA2B3oJ,GAClCA,EAAMlC,eAAY,IAIW,sBAC7BkrJ,EAA6B,UAS7BE,GAPmB,IAAIxB,EAAsB,KAAOpyJ,GACxDA,EACGsf,QAAQg0I,EAA4B,SACpCh0I,QAAQo0I,EAA4B,KACpChmJ,gBAG4B,+BAE3B+rJ,EAAmB,IAAIrH,EAAsB,KAAOpyJ,GACxDA,EAAIsf,QAAQs0I,GAA2BlpJ,GACrCA,EAAMlC,kBAIJqrJ,EAA2B,oBAE3Bf,EAAmB,IAAIV,EAAsB,KAAOpyJ,GACxDA,EAAIsf,QAAQu0I,EAA0B,SAASnmJ,8BCvFjD,MAAMgsJ,EAAmB,CAAC,UAAW,SAuCrC,IAAIC,EAEFA,GAAoBjnJ,EAAAA,EAAAA,IAxCtB,SAAmBhL,EAASq0C,EAAQM,GAClC,MAAM,OACJtqC,EAAS,OAAM,UACfG,EAAS,mBAKT0nJ,GAAqB,EAAI,OACzB/hJ,EAAM,KACN2f,GACE6kB,EACJ30C,EAAQge,aAAa,wBAAyB3T,IACzC8nJ,EAAAA,EAAAA,SAAQriI,IACX9vB,EAAQge,aAAa,sBAAuB8R,IAEzCqiI,EAAAA,EAAAA,SAAQhiJ,IACXnQ,EAAQge,aAAa,wBAAyB7N,IAE5CgiJ,EAAAA,EAAAA,SAAQnyJ,EAAQshJ,QAAQ8Q,cAC1BpyJ,EAAQge,aAAa,qBAAqB0zI,EAAAA,EAAAA,SAAQ1xJ,IAEpD,MAAMqyJ,GAAiC,IAAvBH,EAA+BlyJ,EAAU,sBAAsBA,EAAQshJ,QAAQ8Q,eACzF3wH,EAAY,IAAIqwH,IAAJ,CAAgBO,EAAS,CACzCviI,KAAsB,mBAATA,EAAsBA,OAAOpW,EAC1ClP,UAAgC,iBAAdA,EAAyBwG,SAAS8I,cAActP,GAAaA,EAC/E2F,WAUF,OARA6hJ,EAAiB5gJ,SAAQuS,IACvB8d,EAAUnxB,GAAGqT,GAAO,KAClB,IAAK3jB,EAAQqwB,SAAU,CACrB,MAAMhmB,EAASsqC,EAAK,KDqNDr8C,ECrNiBqrB,EDsNnCouI,EAAiBxqI,IAAIjvB,MCrNtB+R,SAAAA,KAAYvQ,UACd,CDmNC,IAAoBxB,CCnNrB,GACA,IAEG,IAAMmpC,EAAU8sH,SACzB,GAG0C,CACtC9iJ,OAAO,IAKX,yECrDIxP,EAAQG,wCAUZ,IAAIk2J,GAAoBr2J,EAAS,cAA+Bg5C,KAC9Dp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,OAAIE,EAAAA,EAAAA,SAAQpzJ,MACNqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,YACvB,GAYJr5J,KAAKoD,KAAKk2J,WAAWtzJ,EAAOqD,EACrC,GAhCiC1H,EAiCSe,EAAO9C,UAjCbg0B,EAiCwB,OAjCrBm/C,EAiC6B,CAACxwE,EAAAA,QAjC3BoyE,EAiCqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MArCyC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GAiC9T1f,OAjCub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAsC1f7f,GAtCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,gECLpD7f,EAAQG,wCAUZ,IAAI02J,GAAoB72J,EAAS,cAA+Bg5C,KAC9Dp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,2CAEpB,CACA,OAAOuB,KAAKoD,KAAKo2J,WAAWxzJ,EAAOqD,EACrC,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iECLpD7f,EAAQG,wCAUZ,IAAI42J,GAAuB/2J,EAAS,cAAkCg5C,KACpEp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,8CAEpB,CACA,OAAOuB,KAAKoD,KAAKs2J,cAAc1zJ,EAAOqD,EACxC,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iECLpD7f,EAAQG,wCAUZ,IAAI82J,GAAsBj3J,EAAS,cAAiCg5C,KAClEp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,6CAEpB,CACA,OAAOuB,KAAKoD,KAAKw2J,aAAa5zJ,EAAOqD,EACvC,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iECLpD7f,EAAQG,wCAUZ,IAAIg3J,GAAwBn3J,EAAS,cAAmCg5C,KACtEp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,+CAEpB,CACA,OAAOuB,KAAKoD,KAAK02J,eAAe9zJ,EAAOqD,EACzC,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iECLpD7f,EAAQG,wCAUZ,IAAIk3J,GAAoBr3J,EAAS,cAA+Bg5C,KAC9Dp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,2CAEpB,CACA,OAAOuB,KAAKoD,KAAK42J,WAAWh0J,EAAOqD,EACrC,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iECLpD7f,EAAQG,wCAUZ,IAAIo3J,GAAWv3J,EAAS,cAAsBg5C,KAC5Cp7C,WAAAA,GAVF,IAA0CyyE,EAYtC9vE,SAAS1C,YAZ6BwyE,EAeGlwE,IAfUrB,OAAOirC,eAe/BzsC,KAAM,OAf8C,CAAEmE,WAAY4uE,EAAE5uE,WAAYD,aAAc6uE,EAAE7uE,aAAcE,SAAU2uE,EAAE3uE,SAAU4B,MAAO+sE,EAAEr0E,YAAcq0E,EAAEr0E,YAAYsI,KAe9IhH,WAfwJ,IAClN,SAAyB4zB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAe/K7C,CAAgBR,KAAM,cAAc,GACpCA,KAAKoD,KAAK41J,gBAAgBh5J,KAAKi5J,UAAWj5J,KAC5C,CACA27C,OAAAA,CAAOjqC,EAA6BwnJ,GAAc,IAAzClzJ,EAAOmzJ,GAAkBznJ,EAChC,MAAMrI,EAAU8vJ,EAAoB33J,OAAOyqC,OAAO,CAAC,EAAGktH,EAAmBD,GAAgBA,EACzF,IAAIE,EAAAA,EAAAA,SAAQpzJ,GAAQ,CAClB,IAAIqD,aAAO,EAAPA,EAASgwJ,aAAcr5J,KAAKq5J,WAC9B,MAAO,GAET,QAAqB,IAAVrzJ,EACT,MAAM,IAAIvH,MAAM,iCAEpB,CACA,OAAOuB,KAAKoD,KAAKC,EAAE2C,EAAOqD,EAC5B,GA1BiC1H,EA2BSe,EAAO9C,UA3Bbg0B,EA2BwB,OA3BrBm/C,EA2B6B,CAACxwE,EAAAA,QA3B3BoyE,EA2BqC,CAC/EzwE,cAAc,EACdC,YAAY,EACZC,UAAU,EACV1F,YAAa,MA/ByC6jB,EAAI,CAAC,EAAU/gB,OAAOC,KAAKkzE,GAAG98D,SAAQ,SAAUlW,GAAK4gB,EAAE5gB,GAAKgzE,EAAEhzE,EAAI,IAAI4gB,EAAEpe,aAAeoe,EAAEpe,WAAYoe,EAAEre,eAAiBqe,EAAEre,cAAe,UAAWqe,GAAKA,EAAE7jB,eAAiB6jB,EAAEne,UAAW,GAAKme,EAAIwwD,EAAEn0E,QAAQ0jG,UAAU/4B,QAAO,SAAUwJ,EAAG4B,GAAK,OAAOA,EAAEhzE,EAAGiyB,EAAGm/C,IAAMA,CAAG,GAAGxwD,GA2B9T1f,OA3Bub,IAAW0f,EAAE7jB,aAAe8C,OAAOirC,eAAe9qC,EAAGiyB,EAAGrR,GAAI,MAAQA,EAgC1f7f,GAhCL,IAAmCf,EAAGiyB,EAAGm/C,EAAG4B,EAAYpyD,iJCFxD,cCKe,MAAM23I,EACnB,WAAI7wJ,GACF,MAAO,EACT,EAXF,IAAyBuqB,EAAGm/C,EAAG1vE,EAANuwB,EAaTsmI,EAbe72J,OAaQ,GAbK0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAApBthF,EAaG,WAbuCn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,ECQ9J,MAAM82J,UAAmBC,EACtCpiJ,MAAAA,CAAO5U,GAAwB,QAAAk0J,EAAA/2J,UAAArB,OAAAwS,EAAA,IAAA+V,MAAA6vI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7lJ,EAAA6lJ,EAAA,GAAAh3J,UAAAg3J,GAAA,IAAdvxJ,EAAOi1E,GAAKvpE,EAC3B,OAAOtO,EAAKk2J,WAAWtzJ,EAAOi1E,EAChC,GAXF,SAAyBrnD,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAanL7C,CAAgB25J,EAAY,OAAQ,QCJrB,MAAME,UAAmBD,EACtCpiJ,MAAAA,CAAO5U,GAAwB,QAAAk0J,EAAA/2J,UAAArB,OAAAwS,EAAA,IAAA+V,MAAA6vI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7lJ,EAAA6lJ,EAAA,GAAAh3J,UAAAg3J,GAAA,IAAdvxJ,EAAOi1E,GAAKvpE,EAC3B,OAAOtO,EAAKo2J,WAAWxzJ,EAAOi1E,EAChC,GAZF,SAAyBrnD,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAcnL7C,CAAgB65J,EAAY,OAAQ,sBCRpC,MAAMC,EAAU,CACd,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UAEDC,EAAe,YACfC,EAAgB,aAwCP,MAAMC,UAAsBL,EAMzCpiJ,MAAAA,CAAO5U,EAAMs3J,EAAcrxJ,GACzB,MAAMsxJ,EAAatxJ,GAAWA,EAAQuG,SAChCgrJ,EAAiBD,EArC3B,SAAuBpvD,GACrB,GAAsB,iBAAXA,EACT,OAEF,MAAMsvD,EAAc,CAAC,EAmBrB,OAlBAr5J,OAAOC,KAAK8pG,GAAQ1zF,SAAQqO,IAC1B,MAAMlgB,EAAQulG,EAAOrlF,IACjBy0I,EAAAA,EAAAA,YAAW30J,GAOb60J,EAAY30I,GAAOlgB,EAAM80J,SAGzBD,EAAY30I,GAFc,iBAAVlgB,EAvBtB,SAA0BA,GACxB,OAAKu0J,EAAazxJ,KAAK9C,GAGhBA,EAAMqY,QAAQm8I,GAAeO,GAC3BT,EAAQS,KAHR/0J,CAKX,CAkByBg1J,CAAiBh1J,GAGjBA,CACrB,IAEK60J,CACT,CAawCI,CAAc5xJ,GAAWA,EACvD6xJ,EAAOR,GAAwC,iBAAjBA,EAA4BA,EAAe,CAC7En0J,GAAIm0J,EACJS,eAAgBT,GAEZ9xJ,EAASxF,EAAKs2J,cAAcwB,EAAMN,EAAgB,CACtDQ,WAAW,IAEb,OAAOT,GAAa/qJ,EAAAA,EAAAA,UAAShH,GAAUA,CACzC,GAzEF,SAAyBgrB,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CA2EnL7C,CAAgBi6J,EAAe,OAAQ,WClExB,MAAMY,UAAqBjB,EACxCpiJ,MAAAA,CAAO5U,GAAwB,QAAAk0J,EAAA/2J,UAAArB,OAAAwS,EAAA,IAAA+V,MAAA6vI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7lJ,EAAA6lJ,EAAA,GAAAh3J,UAAAg3J,GAAA,IAAdvxJ,EAAOi1E,GAAKvpE,EAC3B,OAAOtO,EAAKw2J,aAAa5zJ,EAAOi1E,EAClC,GAZF,SAAyBrnD,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAcnL7C,CAAgB66J,EAAc,OAAQ,UCKvB,MAAMC,UAAuBlB,EAC1CpiJ,MAAAA,CAAO5U,EAAM4C,EAAOu1J,GAElB,MAAM,OACJvjJ,GACEujJ,EACJ,IAAI7jI,EAAO6jI,EAAc7jI,KACrBujD,EAAOsgF,EAKX,OAJK7jI,GAAQ1f,GAAU5U,EAAKo4J,QAAQC,WAAaxgF,EAAO73E,EAAKo4J,QAAQC,SAASzjJ,MAC5E0f,EAAOujD,EAAKvjD,MAGPt0B,EAAKs4J,mBAAmB11J,EAAO0xB,EAAMujD,EAC9C,GAhCF,SAAyBrnD,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAkCnL7C,CAAgB86J,EAAgB,OAAQ,YCzBzB,MAAMK,UAAmBvB,EACtCpiJ,MAAAA,CAAO5U,GAAwB,QAAAk0J,EAAA/2J,UAAArB,OAAAwS,EAAA,IAAA+V,MAAA6vI,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7lJ,EAAA6lJ,EAAA,GAAAh3J,UAAAg3J,GAAA,IAAdvxJ,EAAOi1E,GAAKvpE,EAC3B,OAAOtO,EAAK42J,WAAWh0J,EAAOi1E,EAChC,GAZF,SAAyBrnD,EAAGm/C,EAAG1vE,IAAa0vE,EAC5C,SAAwB1vE,GAAK,IAAI1B,EACjC,SAAsB0B,EAAG0vE,GAAK,GAAI,iBAAmB1vE,IAAMA,EAAG,OAAOA,EAAG,IAAIuwB,EAAIvwB,EAAEygI,OAAOowB,aAAc,QAAI,IAAWtgI,EAAG,CAAE,IAAIjyB,EAAIiyB,EAAE5sB,KAAK3D,EAAG0vE,UAAiB,GAAI,iBAAmBpxE,EAAG,OAAOA,EAAG,MAAM,IAAIwyJ,UAAU,+CAAiD,CAAE,OAAyBx0J,OAAiB0D,EAAI,CADlR+wJ,CAAa/wJ,GAAc,MAAO,iBAAmB1B,EAAIA,EAAIA,EAAI,EAAI,CAD1D0yJ,CAAethF,MAAOn/C,EAAIpyB,OAAOirC,eAAe7Y,EAAGm/C,EAAG,CAAE/sE,MAAO3C,EAAGc,YAAY,EAAID,cAAc,EAAIE,UAAU,IAAQwvB,EAAEm/C,GAAK1vE,CAAM,CAcnL7C,CAAgBm7J,EAAY,OAAQ,QCEpC,IAAIC,EAAgB,SAAS35J,EAAGu3B,GAI9B,OAHAoiI,EAAgBp6J,OAAOq6J,gBAClB,CAAEt9C,UAAW,cAAgB92F,OAAS,SAAUxlB,EAAGu3B,GAAKv3B,EAAEs8G,UAAY/kF,CAAG,GAC1E,SAAUv3B,EAAGu3B,GAAK,IAAK,IAAI86C,KAAK96C,EAAOh4B,OAAO5B,UAAUmH,eAAeC,KAAKwyB,EAAG86C,KAAIryE,EAAEqyE,GAAK96C,EAAE86C,GAAI,EAC7FsnF,EAAc35J,EAAGu3B,EAC1B,EAEO,SAASsiI,EAAU75J,EAAGu3B,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI26H,UAAU,uBAAyBx0J,OAAO65B,GAAK,iCAE7D,SAASuiI,IAAO/7J,KAAKM,YAAc2B,CAAG,CADtC25J,EAAc35J,EAAGu3B,GAEjBv3B,EAAErC,UAAkB,OAAN45B,EAAah4B,OAAOY,OAAOo3B,IAAMuiI,EAAGn8J,UAAY45B,EAAE55B,UAAW,IAAIm8J,EACjF,CAEO,IC/BIC,ECAAC,EAwCAC,EFTAC,EAAW,WAQpB,OAPAA,EAAW36J,OAAOyqC,QAAU,SAAkB5oC,GAC1C,IAAK,IAAI4d,EAAGtf,EAAI,EAAGgzE,EAAIp0E,UAAUrB,OAAQyC,EAAIgzE,EAAGhzE,IAE5C,IAAK,IAAI2yE,KADTrzD,EAAI1gB,UAAUoB,GACOH,OAAO5B,UAAUmH,eAAeC,KAAKia,EAAGqzD,KAAIjxE,EAAEixE,GAAKrzD,EAAEqzD,IAE9E,OAAOjxE,CACX,EACO84J,EAAS35I,MAAMxiB,KAAMO,UAC9B,EA6KO,SAAS67J,EAAcn9C,EAAIt2C,EAAMzhE,GACtC,GAAIA,GAA6B,IAArB3G,UAAUrB,OAAc,IAAK,IAA4BskG,EAAxB7hG,EAAI,EAAG+xE,EAAI/K,EAAKzpE,OAAYyC,EAAI+xE,EAAG/xE,KACxE6hG,GAAQ7hG,KAAKgnE,IACR66B,IAAIA,EAAK/7E,MAAM7nB,UAAUhB,MAAMoI,KAAK2hE,EAAM,EAAGhnE,IAClD6hG,EAAG7hG,GAAKgnE,EAAKhnE,IAGrB,OAAOs9G,EAAG/uC,OAAOszB,GAAM/7E,MAAM7nB,UAAUhB,MAAMoI,KAAK2hE,GACpD,CE7KO,SAAS0zF,EAAiB37B,GAC7B,OAAOA,EAAGh4H,OAASuzJ,EAAKK,OAC5B,CACO,SAASC,EAAkB77B,GAC9B,OAAOA,EAAGh4H,OAASuzJ,EAAKO,QAC5B,CACO,SAASC,EAAgB/7B,GAC5B,OAAOA,EAAGh4H,OAASuzJ,EAAKhjE,MAC5B,CACO,SAASyjE,EAAch8B,GAC1B,OAAOA,EAAGh4H,OAASuzJ,EAAKtjB,IAC5B,CACO,SAASgkB,EAAcj8B,GAC1B,OAAOA,EAAGh4H,OAASuzJ,EAAKljG,IAC5B,CACO,SAAS6jG,EAAgBl8B,GAC5B,OAAOA,EAAGh4H,OAASuzJ,EAAKY,MAC5B,CACO,SAASC,EAAgBp8B,GAC5B,OAAOA,EAAGh4H,OAASuzJ,EAAKc,MAC5B,CACO,SAASC,EAAet8B,GAC3B,OAAOA,EAAGh4H,OAASuzJ,EAAKgB,KAC5B,CACO,SAASC,EAAax8B,GACzB,OAAOA,EAAGh4H,OAASuzJ,EAAKrxB,GAC5B,CACO,SAASuyB,EAAiBz8B,GAC7B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGh4H,OAASwzJ,EAAcjjE,OACxE,CACO,SAASmkE,EAAmB18B,GAC/B,SAAUA,GAAoB,iBAAPA,GAAmBA,EAAGh4H,OAASwzJ,EAAcmB,SACxE,CFwE6B77J,OAAOY,OA0GXZ,OAAOY,OAyDkB,mBAApBk7J,iBAAiCA,gBC1T/D,SAAWtB,GAEPA,EAAUA,EAAyC,8BAAI,GAAK,gCAE5DA,EAAUA,EAA0B,eAAI,GAAK,iBAE7CA,EAAUA,EAA8B,mBAAI,GAAK,qBAEjDA,EAAUA,EAAgC,qBAAI,GAAK,uBAEnDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAmC,wBAAI,GAAK,0BAEtDA,EAAUA,EAAsC,2BAAI,GAAK,6BAEzDA,EAAUA,EAAkC,uBAAI,GAAK,yBAErDA,EAAUA,EAAqC,0BAAI,IAAM,4BAEzDA,EAAUA,EAA4C,iCAAI,IAAM,mCAEhEA,EAAUA,EAA0C,+BAAI,IAAM,iCAE9DA,EAAUA,EAA+C,oCAAI,IAAM,sCAEnEA,EAAUA,EAAgD,qCAAI,IAAM,uCAEpEA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAAoD,yCAAI,IAAM,2CAKxEA,EAAUA,EAAoD,yCAAI,IAAM,2CAExEA,EAAUA,EAA4C,iCAAI,IAAM,mCAKhEA,EAAUA,EAA8C,mCAAI,IAAM,qCAIlEA,EAAUA,EAA8C,mCAAI,IAAM,qCAElEA,EAAUA,EAAgC,qBAAI,IAAM,uBAEpDA,EAAUA,EAAuB,YAAI,IAAM,cAE3CA,EAAUA,EAA4B,iBAAI,IAAM,mBAEhDA,EAAUA,EAAiC,sBAAI,IAAM,wBAErDA,EAAUA,EAAwB,aAAI,IAAM,cAC/C,CA7DD,CA6DGA,IAAcA,EAAY,CAAC,IC7D9B,SAAWC,GAIPA,EAAKA,EAAc,QAAI,GAAK,UAI5BA,EAAKA,EAAe,SAAI,GAAK,WAI7BA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAa,OAAI,GAAK,SAK3BA,EAAKA,EAAY,MAAI,GAAK,QAI1BA,EAAKA,EAAU,IAAI,GAAK,KAC3B,CAtCD,CAsCGA,IAASA,EAAO,CAAC,IAEpB,SAAWC,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CAHD,CAGGA,IAAkBA,EAAgB,CAAC,IC3C/B,IAAIqB,EAAwB,+CCI/BC,EAAkB,4KAOf,SAASC,EAAsBC,GAClC,IAAI90J,EAAS,CAAC,EA0Gd,OAzGA80J,EAASr/I,QAAQm/I,GAAiB,SAAU/zJ,GACxC,IAAIkxD,EAAMlxD,EAAMvK,OAChB,OAAQuK,EAAM,IAEV,IAAK,IACDb,EAAO+0J,IAAc,IAARhjG,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACD/xD,EAAOiwI,KAAe,IAARl+E,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACDh1J,EAAOkwI,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAUn+E,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,2CACzB,IAAK,IACDh1J,EAAOmwI,IAAM,CAAC,UAAW,WAAWp+E,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,6DAEzB,IAAK,IACDh1J,EAAOi1J,QAAkB,IAARljG,EAAY,OAAiB,IAARA,EAAY,SAAW,QAC7D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAIijG,WAAW,iDAEzBh1J,EAAOi1J,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASljG,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAIijG,WAAW,iDAEzBh1J,EAAOi1J,QAAU,CAAC,QAAS,OAAQ,SAAU,SAASljG,EAAM,GAC5D,MAEJ,IAAK,IACD/xD,EAAOk1J,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIF,WAAW,8DAEzB,IAAK,IACDh1J,EAAOm1J,UAAY,MACnBn1J,EAAOo1J,KAAO,CAAC,UAAW,WAAWrjG,EAAM,GAC3C,MACJ,IAAK,IACD/xD,EAAOm1J,UAAY,MACnBn1J,EAAOo1J,KAAO,CAAC,UAAW,WAAWrjG,EAAM,GAC3C,MACJ,IAAK,IACD/xD,EAAOm1J,UAAY,MACnBn1J,EAAOo1J,KAAO,CAAC,UAAW,WAAWrjG,EAAM,GAC3C,MACJ,IAAK,IACD/xD,EAAOm1J,UAAY,MACnBn1J,EAAOo1J,KAAO,CAAC,UAAW,WAAWrjG,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,oEAEzB,IAAK,IACDh1J,EAAOq1J,OAAS,CAAC,UAAW,WAAWtjG,EAAM,GAC7C,MAEJ,IAAK,IACD/xD,EAAOs1J,OAAS,CAAC,UAAW,WAAWvjG,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,8DAEzB,IAAK,IACDh1J,EAAOu1J,aAAexjG,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIijG,WAAW,wEAE7B,MAAO,EACX,IACOh1J,CACX,CCvHO,IAAIw1J,EAAoB,wCC8B3BC,EAA2B,mCAC3BC,EAA8B,wBAC9BC,EAAsB,0BACtBC,EAA8B,SAClC,SAASC,EAA0B1/J,GAC/B,IAAI6J,EAAS,CAAC,EA6Bd,MA5B4B,MAAxB7J,EAAIA,EAAIG,OAAS,GACjB0J,EAAO81J,iBAAmB,gBAEG,MAAxB3/J,EAAIA,EAAIG,OAAS,KACtB0J,EAAO81J,iBAAmB,iBAE9B3/J,EAAIsf,QAAQigJ,GAA6B,SAAU71E,EAAGk2E,EAAIC,GAoBtD,MAlBkB,iBAAPA,GACPh2J,EAAOi2J,yBAA2BF,EAAGz/J,OACrC0J,EAAOk2J,yBAA2BH,EAAGz/J,QAGzB,MAAP0/J,EACLh2J,EAAOi2J,yBAA2BF,EAAGz/J,OAGtB,MAAVy/J,EAAG,GACR/1J,EAAOk2J,yBAA2BH,EAAGz/J,QAIrC0J,EAAOi2J,yBAA2BF,EAAGz/J,OACrC0J,EAAOk2J,yBACHH,EAAGz/J,QAAwB,iBAAP0/J,EAAkBA,EAAG1/J,OAAS,IAEnD,EACX,IACO0J,CACX,CACA,SAASm2J,EAAUhgK,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACHigK,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,SAG7B,CACA,SAASE,EAAyCC,GAE9C,IAAIv2J,EAaJ,GAZgB,MAAZu2J,EAAK,IAA0B,MAAZA,EAAK,IACxBv2J,EAAS,CACLw2J,SAAU,eAEdD,EAAOA,EAAKvgK,MAAM,IAED,MAAZugK,EAAK,KACVv2J,EAAS,CACLw2J,SAAU,cAEdD,EAAOA,EAAKvgK,MAAM,IAElBgK,EAAQ,CACR,IAAIo2J,EAAcG,EAAKvgK,MAAM,EAAG,GAShC,GARoB,OAAhBogK,GACAp2J,EAAOo2J,YAAc,SACrBG,EAAOA,EAAKvgK,MAAM,IAEG,OAAhBogK,IACLp2J,EAAOo2J,YAAc,aACrBG,EAAOA,EAAKvgK,MAAM,KAEjB4/J,EAA4B11J,KAAKq2J,GAClC,MAAM,IAAI1gK,MAAM,6CAEpBmK,EAAOy2J,qBAAuBF,EAAKjgK,MACvC,CACA,OAAO0J,CACX,CACA,SAAS02J,GAAqBvmF,GAG1B,OADegmF,EAAUhmF,IADZ,CAAC,CAMlB,CAIO,SAASwmF,GAAoBC,GAEhC,IADA,IAAI52J,EAAS,CAAC,EACLmjH,EAAK,EAAG0zC,EAAWD,EAAQzzC,EAAK0zC,EAASvgK,OAAQ6sH,IAAM,CAC5D,IAAI2zC,EAAQD,EAAS1zC,GACrB,OAAQ2zC,EAAMP,MACV,IAAK,UACL,IAAK,IACDv2J,EAAO2Y,MAAQ,UACf,SACJ,IAAK,QACD3Y,EAAO2Y,MAAQ,UACf3Y,EAAO85B,MAAQ,IACf,SACJ,IAAK,WACD95B,EAAO2Y,MAAQ,WACf3Y,EAAO+2J,SAAWD,EAAMr2J,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACDT,EAAOg3J,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACDh3J,EAAOi3J,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACDj3J,EAAO2Y,MAAQ,OACf3Y,EAAO8uB,KAAqBgoI,EAAMr2J,QAAQ,GArJ1CgV,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACDzV,EAAOw2J,SAAW,UAClBx2J,EAAOk3J,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACDl3J,EAAOw2J,SAAW,UAClBx2J,EAAOk3J,eAAiB,OACxB,SACJ,IAAK,aACDl3J,EAASuzJ,EAASA,EAASA,EAAS,CAAC,EAAGvzJ,GAAS,CAAEw2J,SAAU,eAAiBM,EAAMr2J,QAAQkgE,QAAO,SAAUn6D,EAAK2pE,GAAO,OAAQojF,EAASA,EAAS,CAAC,EAAG/sJ,GAAMkwJ,GAAqBvmF,GAAQ,GAAG,CAAC,IAC9L,SACJ,IAAK,cACDnwE,EAASuzJ,EAASA,EAASA,EAAS,CAAC,EAAGvzJ,GAAS,CAAEw2J,SAAU,gBAAkBM,EAAMr2J,QAAQkgE,QAAO,SAAUn6D,EAAK2pE,GAAO,OAAQojF,EAASA,EAAS,CAAC,EAAG/sJ,GAAMkwJ,GAAqBvmF,GAAQ,GAAG,CAAC,IAC/L,SACJ,IAAK,kBACDnwE,EAAOw2J,SAAW,WAClB,SAEJ,IAAK,oBACDx2J,EAAOm3J,gBAAkB,eACzBn3J,EAAOo3J,YAAc,SACrB,SACJ,IAAK,mBACDp3J,EAAOm3J,gBAAkB,OACzBn3J,EAAOo3J,YAAc,QACrB,SACJ,IAAK,uBACDp3J,EAAOm3J,gBAAkB,OACzBn3J,EAAOo3J,YAAc,OACrB,SACJ,IAAK,sBACDp3J,EAAOm3J,gBAAkB,SACzB,SACJ,IAAK,QACDn3J,EAAO85B,MAAQtrB,WAAWsoJ,EAAMr2J,QAAQ,IACxC,SACJ,IAAK,sBACDT,EAAOq3J,aAAe,QACtB,SACJ,IAAK,wBACDr3J,EAAOq3J,aAAe,OACtB,SACJ,IAAK,qBACDr3J,EAAOq3J,aAAe,QACtB,SACJ,IAAK,mBACDr3J,EAAOq3J,aAAe,SACtB,SACJ,IAAK,0BACDr3J,EAAOq3J,aAAe,WACtB,SACJ,IAAK,0BACDr3J,EAAOq3J,aAAe,YACtB,SACJ,IAAK,wBACDr3J,EAAOq3J,aAAe,aACtB,SAEJ,IAAK,gBACD,GAAIP,EAAMr2J,QAAQnK,OAAS,EACvB,MAAM,IAAI0+J,WAAW,4DAEzB8B,EAAMr2J,QAAQ,GAAGgV,QAAQkgJ,GAAqB,SAAU91E,EAAGk2E,EAAIC,EAAIsB,EAAIC,EAAIC,GACvE,GAAIzB,EACA/1J,EAAOy2J,qBAAuBT,EAAG1/J,WAEhC,IAAIghK,GAAMC,EACX,MAAM,IAAI1hK,MAAM,sDAEf,GAAI2hK,EACL,MAAM,IAAI3hK,MAAM,mDACpB,CACA,MAAO,EACX,IACA,SAGR,GAAI+/J,EAA4B11J,KAAK42J,EAAMP,MACvCv2J,EAAOy2J,qBAAuBK,EAAMP,KAAKjgK,YAG7C,GAAIm/J,EAAyBv1J,KAAK42J,EAAMP,MAAxC,CAII,GAAIO,EAAMr2J,QAAQnK,OAAS,EACvB,MAAM,IAAI0+J,WAAW,iEAEzB8B,EAAMP,KAAK9gJ,QAAQggJ,GAA0B,SAAU51E,EAAGk2E,EAAIC,EAAIsB,EAAIC,EAAIC,GAkBtE,MAhBW,MAAPxB,EACAh2J,EAAOy3J,sBAAwB1B,EAAGz/J,OAG7BghK,GAAgB,MAAVA,EAAG,GACdt3J,EAAOi3J,sBAAwBK,EAAGhhK,OAG7BihK,GAAMC,GACXx3J,EAAOy3J,sBAAwBF,EAAGjhK,OAClC0J,EAAOi3J,sBAAwBM,EAAGjhK,OAASkhK,EAAGlhK,SAG9C0J,EAAOy3J,sBAAwB1B,EAAGz/J,OAClC0J,EAAOi3J,sBAAwBlB,EAAGz/J,QAE/B,EACX,IACA,IAAI65E,EAAM2mF,EAAMr2J,QAAQ,GAEZ,MAAR0vE,EACAnwE,EAASuzJ,EAASA,EAAS,CAAC,EAAGvzJ,GAAS,CAAE03J,oBAAqB,mBAE1DvnF,IACLnwE,EAASuzJ,EAASA,EAAS,CAAC,EAAGvzJ,GAAS61J,EAA0B1lF,IAG1E,MAEA,GAAIulF,EAA4Bx1J,KAAK42J,EAAMP,MACvCv2J,EAASuzJ,EAASA,EAAS,CAAC,EAAGvzJ,GAAS61J,EAA0BiB,EAAMP,WAD5E,CAIA,IAAIoB,EAAWxB,EAAUW,EAAMP,MAC3BoB,IACA33J,EAASuzJ,EAASA,EAAS,CAAC,EAAGvzJ,GAAS23J,IAE5C,IAAIC,EAAsCtB,EAAyCQ,EAAMP,MACrFqB,IACA53J,EAASuzJ,EAASA,EAAS,CAAC,EAAGvzJ,GAAS43J,GAP5C,CASJ,CACA,OAAO53J,CACX,CCzTO,ICFHoqE,GDEOytF,GAAW,CAClB,MAAO,CACH,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MA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A,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,KAC7B,CEvvCA,SAAS2zI,GAAcC,GACnBA,EAAI9xJ,SAAQ,S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AK,eACL,IAAK,eACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,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AK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,GAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL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","sources":["webpack://adcdriver/webpack/runtime/chunk loaded","webpack://adcdriver/webpack/runtime/create fake namespace object","webpack://adcdriver/webpack/runtime/load script","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/-internals/metal","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/application/namespace","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/application","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/array","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/component/helper","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/component/template-only","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/component","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/controller","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/debug/container-debug-adapter","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/debug","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/destroyable","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/modifier","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/object/compat","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/object/computed","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/object/internals","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/object/mixin","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/object","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/owner","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/routing/route","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/routing/router","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/runloop","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/service","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/template","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/template-factory","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/test","webpack://adcdriver/../../../../@embroider/ext-cjs/@ember/utils","webpack://adcdriver/../../../../@embroider/ext-cjs/@glimmer/tracking","webpack://adcdriver/../../../../@embroider/ext-cjs/@glimmer/validator","webpack://adcdriver/../../../../@embroider/ext-cjs/ember","webpack://adcdriver/../../../../@embroider/ext-cjs/jquery","webpack://adcdriver/../../../../@embroider/ext-cjs/require","webpack://adcdriver/../../../../@embroider/ext-cjs/rsvp","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/@ebiz+ember-aditools-device-table@6.3.2_@babel+core@7.25.2_@ebiz+aditools-styles@4.1.0_ember-_2vcffvgvxmvirqjxtjqvuzsigq/node_modules/@ebiz/ember-aditools-device-table/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-tracked-storage-polyfill.ae77ab9f/node_modules/ember-tracked-storage-polyfill/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/tracked-built-ins@3.3.0/node_modules/tracked-built-ins/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/string.dfd6560d/node_modules/@ember/string/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/@ebiz+ember-aditools-page@14.2.3_@babel+core@7.25.2_@ebiz+aditools-styles@4.1.0_ember-intl@6._63fypd2v7xoaqhw7pga5e4rzky/node_modules/@ebiz/ember-aditools-page/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-window-mock.919b5cf0/node_modules/ember-window-mock/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/ember-browser-services@4.0.4/node_modules/ember-browser-services/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@embroider/macros.bc5eeced/node_modules/@embroider/macros/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-test-loader.d6a8c5e5/node_modules/ember-cli-test-loader/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/ember-qunit@8.1.1_@ember+test-helpers@3.3.1_@babel+core@7.25.2_ember-source@5.12.0_@glimmer+c_utyo66ctvueis2ybci4kegajqu/node_modules/ember-qunit/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/jquery.a857ee4b/node_modules/@ember/jquery/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-modifier-manager-polyfill.d61cc541/node_modules/ember-modifier-manager-polyfill/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/render-modifiers.a9830d30/node_modules/@ember/render-modifiers/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/test-waiters.5e5d7bd1/node_modules/@ember/test-waiters/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-auto-import.594cf6d4/node_modules/ember-auto-import/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/test-helpers.78a30aef/node_modules/@ember/test-helpers/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-code-coverage.89f461a9/node_modules/ember-cli-code-coverage/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-app-version.d34c3123/node_modules/ember-cli-app-version/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-get-config.68efa56c/node_modules/ember-get-config/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-arg-types.2ebfa02d/node_modules/ember-arg-types/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-deprecation-workflow.04295ee4/node_modules/ember-cli-deprecation-workflow/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-copy.977b4775/node_modules/ember-copy/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-load-initializers.1a579b99/node_modules/ember-load-initializers/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-source.262d2afc/node_modules/ember-source/-embroider-implicit-modules.js","webpack://adcdriver/./-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@ember/optional-features.b077701d/node_modules/@ember/optional-features/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/@glimmer/tracking.f3f86254/node_modules/@glimmer/tracking/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/broccoli-asset-rev.20b67168/node_modules/broccoli-asset-rev/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-babel.2dc9b218/node_modules/ember-cli-babel/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-babel.e2bbb07e/node_modules/ember-cli-babel/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-bundle-analyzer.3b5e23bf/node_modules/ember-cli-bundle-analyzer/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-clean-css.234f71bf/node_modules/ember-cli-clean-css/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-dependency-checker.ac2903b8/node_modules/ember-cli-dependency-checker/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-htmlbars.55bc8cd7/node_modules/ember-cli-htmlbars/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-htmlbars.e38775d9/node_modules/ember-cli-htmlbars/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-inject-live-reload.56c0870a/node_modules/ember-cli-inject-live-reload/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-sass.6d044d87/node_modules/ember-cli-sass/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-sri.c7094d83/node_modules/ember-cli-sri/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-terser.990695aa/node_modules/ember-cli-terser/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-typescript.38f76d3d/node_modules/ember-cli-typescript/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-typescript.5a76a2c5/node_modules/ember-cli-typescript/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-cli-typescript.eedc7cb1/node_modules/ember-cli-typescript/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/ember-compatibility-helpers.5444e829/node_modules/ember-compatibility-helpers/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/loader.js.a5278f6f/node_modules/loader.js/-embroider-implicit-modules.js","webpack://adcdriver/../rewritten-packages/localize-hack.907b55f8/node_modules/localize-hack/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/@ebiz+ember-aditools-analytics@7.0.0_@ember+string@4.0.0_ember-source@5.12.0_@glimmer+compone_wv7wnz6d5h5ihghmje5uga2eai/node_modules/@ebiz/ember-aditools-analytics/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/@ebiz+ember-aditools-site@4.0.2_@ember+string@4.0.0_ember-source@5.12.0_@glimmer+component@1._dgtgpo5a7lfq7f5yn43a3mejay/node_modules/@ebiz/ember-aditools-site/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/ember-modifier@4.2.0_@babel+core@7.25.2_ember-source@5.12.0_@glimmer+component@1.1.2_@babel+c_g5nzllh4heaok44z5y4vbc76lq/node_modules/ember-modifier/-embroider-implicit-modules.js","webpack://adcdriver/../../.pnpm/ember-page-title@8.2.3_ember-source@5.12.0_@glimmer+component@1.1.2_@babel+core@7.25.2__rsvp@4.8.5_webpack@5.95.0_/node_modules/ember-page-title/-embroider-implicit-modules.js","webpack://adcdriver/./templates/application.hbs","webpack://adcdriver/./templates/browser.hbs","webpack://adcdriver/./templates/index.hbs","webpack://adcdriver/./templates/thanks.hbs","webpack://adcdriver/../rewritten-packages/ember-load-initializers.1a579b99/node_modules/ember-load-initializers/index.js","webpack://adcdriver/./app.js","webpack://adcdriver/./assets/adcdriver.js","webpack://adcdriver/./components/ac-tab.hbs","webpack://adcdriver/./components/ac-tab.js","webpack://adcdriver/./components/adc-noise-bandwidth.hbs","webpack://adcdriver/./components/adc-noise-bandwidth.js","webpack://adcdriver/../../src/utils/partial-text-filter.ts","webpack://adcdriver/../../src/utils/engineering-filter.ts","webpack://adcdriver/../../src/utils/validation.ts","webpack://adcdriver/../../src/utils/selection-filter.ts","webpack://adcdriver/./components/adc-select.hbs","webpack://adcdriver/./components/adc-select.js","webpack://adcdriver/./components/adi-component.hbs","webpack://adcdriver/./components/adi-component.js","webpack://adcdriver/./components/application-view.hbs","webpack://adcdriver/./components/application-view.js","webpack://adcdriver/./components/blank-template.hbs","webpack://adcdriver/./components/blank-template.js","webpack://adcdriver/./components/browser-error.hbs","webpack://adcdriver/./components/browser-error.js","webpack://adcdriver/./components/charts/base-chart.hbs","webpack://adcdriver/./components/charts/base-chart.js","webpack://adcdriver/./components/charts/driver-performance-chart.js","webpack://adcdriver/./components/charts/input-settling-chart.js","webpack://adcdriver/./components/charts/noise-chart.js","webpack://adcdriver/./components/circuit-panel.hbs","webpack://adcdriver/./components/circuit-panel.js","webpack://adcdriver/./components/controls/adi-input.hbs","webpack://adcdriver/./components/controls/adi-input.js","webpack://adcdriver/../rewritten-packages/ember-copy.977b4775/node_modules/ember-copy/copyable.js","webpack://adcdriver/../rewritten-packages/ember-copy.977b4775/node_modules/ember-copy/copy.js","webpack://adcdriver/./components/controls/custom-select.hbs","webpack://adcdriver/./components/controls/custom-select.js","webpack://adcdriver/./components/controls/svg-widget.hbs","webpack://adcdriver/./components/controls/svg-widget.js","webpack://adcdriver/./components/dc-tab.hbs","webpack://adcdriver/./components/dc-tab.js","webpack://adcdriver/./components/driver-performance-panel.hbs","webpack://adcdriver/./components/driver-performance-panel.js","webpack://adcdriver/./components/driver-select.hbs","webpack://adcdriver/./components/driver-select.js","webpack://adcdriver/./components/info-modal-button.hbs","webpack://adcdriver/./components/info-modal-button.js","webpack://adcdriver/./components/input-group.hbs","webpack://adcdriver/./components/input-group.js","webpack://adcdriver/./components/inputs/adc-inputs.hbs","webpack://adcdriver/./components/inputs/adc-inputs.js","webpack://adcdriver/./components/inputs/driver-inputs.hbs","webpack://adcdriver/./components/inputs/driver-inputs.js","webpack://adcdriver/./components/inputs/filter-inputs.hbs","webpack://adcdriver/./components/inputs/filter-inputs.js","webpack://adcdriver/./components/inputs/signal-inputs.hbs","webpack://adcdriver/./components/inputs/signal-inputs.js","webpack://adcdriver/./components/legend-overlay.hbs","webpack://adcdriver/./components/legend-overlay.js","webpack://adcdriver/./components/muxed-tab.hbs","webpack://adcdriver/./components/muxed-tab.js","webpack://adcdriver/./components/next-steps-panel.hbs","webpack://adcdriver/./components/next-steps-panel.js","webpack://adcdriver/./components/noise-calculations-tab.hbs","webpack://adcdriver/./components/noise-calculations-tab.js","webpack://adcdriver/./components/noise-panel.hbs","webpack://adcdriver/./components/noise-panel.js","webpack://adcdriver/./components/noise-tab-panel.hbs","webpack://adcdriver/./components/noise-tab-panel.js","webpack://adcdriver/./components/noise-table-column-header.hbs","webpack://adcdriver/./components/noise-table-column-header.js","webpack://adcdriver/./components/noise-table.hbs","webpack://adcdriver/./components/noise-table.js","webpack://adcdriver/./components/sar-tab-item.hbs","webpack://adcdriver/./components/sar-tab-item.js","webpack://adcdriver/./components/settling-panel.hbs","webpack://adcdriver/./components/settling-panel.js","webpack://adcdriver/./components/settling-tab-panel.hbs","webpack://adcdriver/./components/settling-tab-panel.js","webpack://adcdriver/./components/settling-value-overlay.hbs","webpack://adcdriver/./components/settling-value-overlay.js","webpack://adcdriver/./components/share-modal.hbs","webpack://adcdriver/./components/share-modal.js","webpack://adcdriver/./components/tab-content.hbs","webpack://adcdriver/./components/tab-content.js","webpack://adcdriver/./components/tab-error.hbs","webpack://adcdriver/./components/tab-error.js","webpack://adcdriver/./components/tab-header-area.hbs","webpack://adcdriver/./components/tab-header-area.js","webpack://adcdriver/./components/tab-pane.hbs","webpack://adcdriver/./components/tab-pane.js","webpack://adcdriver/./components/thd-tab.hbs","webpack://adcdriver/./components/thd-tab.js","webpack://adcdriver/./components/variant-selector.hbs","webpack://adcdriver/./components/variant-selector.js","webpack://adcdriver/./components/volts-kickback-overlay.hbs","webpack://adcdriver/./components/volts-kickback-overlay.js","webpack://adcdriver/./config/environment.js","webpack://adcdriver/./controllers/index.js","webpack://adcdriver/./data/configurationdata.js","webpack://adcdriver/./data/defaultmodeldata.js","webpack://adcdriver/./data/ltspicedata.js","webpack://adcdriver/./data/modaldata.js","webpack://adcdriver/./data/plotdata.js","webpack://adcdriver/./data/tabdata.js","webpack://adcdriver/./data/tooldata.js","webpack://adcdriver/./data/validationdata.js","webpack://adcdriver/./data/variantdata.js","webpack://adcdriver/./deprecation-workflow.js","webpack://adcdriver/./helpers/and.js","webpack://adcdriver/./helpers/eq.js","webpack://adcdriver/./helpers/is-not.js","webpack://adcdriver/./helpers/math-round.js","webpack://adcdriver/./helpers/ne.js","webpack://adcdriver/./helpers/object-creator.js","webpack://adcdriver/./helpers/or.js","webpack://adcdriver/./helpers/pretty-num.js","webpack://adcdriver/./helpers/safe-legend-color.js","webpack://adcdriver/./modifiers/load-svg.js","webpack://adcdriver/./modifiers/non-interactive-event.js","webpack://adcdriver/./modifiers/on-click-outside.js","webpack://adcdriver/./modifiers/set-qa-attr.js","webpack://adcdriver/./modifiers/toggle-qa-attr.js","webpack://adcdriver/./modifiers/update-ui-value.js","webpack://adcdriver/./router.js","webpack://adcdriver/./routes/adc.js","webpack://adcdriver/./routes/browser.js","webpack://adcdriver/./routes/index.js","webpack://adcdriver/./routes/thanks.js","webpack://adcdriver/./services/circuit-configurations.js","webpack://adcdriver/./services/component-manager.js","webpack://adcdriver/../../.pnpm/@ebiz+aditools-adcdriving@0.2.56/node_modules/@ebiz/aditools-adcdriving/src/models/noiseModels/AD7134noiseModel.js","webpack://adcdriver/./services/data.js","webpack://adcdriver/../../.pnpm/@ebiz+aditools-adcdriving@0.2.56/node_modules/@ebiz/aditools-adcdriving/src/models/adc-noise-model.js","webpack://adcdriver/./services/driver-service.js","webpack://adcdriver/./services/driver-supply-service.js","webpack://adcdriver/./services/error-handling.js","webpack://adcdriver/./services/hash-data-service.js","webpack://adcdriver/./services/hash-selected-data-service.js","webpack://adcdriver/./services/hash-service.js","webpack://adcdriver/./services/initial-data.js","webpack://adcdriver/./services/logging.js","webpack://adcdriver/./services/lt-spice.js","webpack://adcdriver/./services/part-data.js","webpack://adcdriver/../../.pnpm/fflate@0.4.8/node_modules/fflate/esm/browser.js","webpack://adcdriver/../src/libs/globalObject.js","webpack://adcdriver/../src/libs/console.js","webpack://adcdriver/../src/libs/FileSaver.js","webpack://adcdriver/../src/libs/AtobBtoa.js","webpack://adcdriver/../src/libs/rgbcolor.js","webpack://adcdriver/../src/libs/md5.js","webpack://adcdriver/../src/libs/rc4.js","webpack://adcdriver/../src/libs/pdfsecurity.js","webpack://adcdriver/../src/libs/pdfname.js","webpack://adcdriver/../src/jspdf.js","webpack://adcdriver/../src/modules/acroform.js","webpack://adcdriver/../src/modules/annotations.js","webpack://adcdriver/../src/libs/fontFace.js","webpack://adcdriver/../src/modules/addimage.js","webpack://adcdriver/../src/modules/arabic.js","webpack://adcdriver/../src/modules/autoprint.js","webpack://adcdriver/../src/modules/canvas.js","webpack://adcdriver/../src/modules/cell.js","webpack://adcdriver/../src/modules/javascript.js","webpack://adcdriver/../src/modules/context2d.js","webpack://adcdriver/../src/modules/filters.js","webpack://adcdriver/../src/modules/fileloading.js","webpack://adcdriver/../src/modules/html.js","webpack://adcdriver/../src/modules/outline.js","webpack://adcdriver/../src/modules/jpeg_support.js","webpack://adcdriver/../src/libs/png.js","webpack://adcdriver/../src/modules/split_text_to_size.js","webpack://adcdriver/../src/libs/omggif.js","webpack://adcdriver/../src/libs/JPEGEncoder.js","webpack://adcdriver/../src/libs/BMPDecoder.js","webpack://adcdriver/../src/libs/WebPDecoder.js","webpack://adcdriver/../src/modules/png_support.js","webpack://adcdriver/../src/modules/gif_support.js","webpack://adcdriver/../src/modules/bmp_support.js","webpack://adcdriver/../src/modules/webp_support.js","webpack://adcdriver/../src/modules/rgba_support.js","webpack://adcdriver/../src/modules/setlanguage.js","webpack://adcdriver/../src/modules/standard_fonts_metrics.js","webpack://adcdriver/../src/modules/ttfsupport.js","webpack://adcdriver/../src/modules/svg.js","webpack://adcdriver/../src/modules/total_pages.js","webpack://adcdriver/../src/modules/viewerpreferences.js","webpack://adcdriver/../src/modules/xmp_metadata.js","webpack://adcdriver/../src/modules/utf8.js","webpack://adcdriver/../src/modules/vfs.js","webpack://adcdriver/../src/libs/bidiEngine.js","webpack://adcdriver/../src/libs/ttffont.js","webpack://adcdriver/./services/pdf-export.js","webpack://adcdriver/./services/plot-data-service.js","webpack://adcdriver/./services/plot-data.js","webpack://adcdriver/./services/selection-data.js","webpack://adcdriver/./services/sigma-delta-data.js","webpack://adcdriver/./services/tab-service.js","webpack://adcdriver/./services/tool-data.js","webpack://adcdriver/./services/url-data.js","webpack://adcdriver/./services/validation.js","webpack://adcdriver/./services/variant-data.js","webpack://adcdriver/./utils/array-extension.js","webpack://adcdriver/./utils/browser-detector.js","webpack://adcdriver/./utils/complex.js","webpack://adcdriver/./utils/console-extension.js","webpack://adcdriver/./utils/constants.js","webpack://adcdriver/./utils/fonts/ARIAL-normal.js","webpack://adcdriver/./utils/fonts/ARIALBD-bold.js","webpack://adcdriver/./utils/fonts/ARIALI-italic.js","webpack://adcdriver/./utils/formulas.js","webpack://adcdriver/./utils/lt-spice.js","webpack://adcdriver/./utils/number-extension.js","webpack://adcdriver/./utils/pretty-num-wrapper.js","webpack://adcdriver/./utils/string-extension.js","webpack://adcdriver/./utils/utils.js","webpack://adcdriver/./utils/validation.js","webpack://adcdriver/../rewritten-packages/@ember/render-modifiers.a9830d30/node_modules/@ember/render-modifiers/modifiers/did-insert.js","webpack://adcdriver/../rewritten-packages/@ember/render-modifiers.a9830d30/node_modules/@ember/render-modifiers/modifiers/did-update.js","webpack://adcdriver/../rewritten-packages/@ember/render-modifiers.a9830d30/node_modules/@ember/render-modifiers/modifiers/will-destroy.js","webpack://adcdriver/../rewritten-packages/@ember/string.dfd6560d/node_modules/@ember/string/cache.js","webpack://adcdriver/../rewritten-packages/@ember/string.dfd6560d/node_modules/@ember/string/index.js","webpack://adcdriver/../rewritten-packages/@ember/test-waiters.5e5d7bd1/node_modules/@ember/test-waiters/waiter-manager.js","webpack://adcdriver/../rewritten-packages/@ember/test-waiters.5e5d7bd1/node_modules/@ember/test-waiters/build-waiter.js","webpack://adcdriver/../rewritten-packages/@ember/test-waiters.5e5d7bd1/node_modules/@ember/test-waiters/wait-for-promise.js","webpack://adcdriver/../rewritten-packages/@ember/test-waiters.5e5d7bd1/node_modules/@ember/test-waiters/wait-for.js","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/-private/component.js","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/-private/destroyables.js","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/-private/ember-component-manager.js","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/-private/base-component-manager.js","webpack://adcdriver/../rewritten-packages/@glimmer/component.f57b7961/node_modules/@glimmer/component/index.js","webpack://adcdriver/../rewritten-packages/@glimmer/tracking.f3f86254/node_modules/@glimmer/tracking/index.js","webpack://adcdriver/../rewritten-packages/ember-cli-app-version.d34c3123/node_modules/ember-cli-app-version/utils/regexp.js","webpack://adcdriver/../rewritten-packages/ember-cli-app-version.d34c3123/node_modules/ember-cli-app-version/_app_/helpers/app-version.js","webpack://adcdriver/../rewritten-packages/ember-cli-app-version.d34c3123/node_modules/ember-cli-app-version/_app_/initializers/app-version.js","webpack://adcdriver/../rewritten-packages/ember-cli-app-version.d34c3123/node_modules/ember-cli-app-version/initializer-factory.js","webpack://adcdriver/../rewritten-packages/ember-arg-types.2ebfa02d/node_modules/ember-arg-types/-private/throw-console-error.js","webpack://adcdriver/../rewritten-packages/ember-arg-types.2ebfa02d/node_modules/ember-arg-types/-private/closest-string.js","webpack://adcdriver/../rewritten-packages/ember-arg-types.2ebfa02d/node_modules/ember-arg-types/decorator.js","webpack://adcdriver/../rewritten-packages/ember-arg-types.2ebfa02d/node_modules/ember-arg-types/-private/is-element-descriptor.js","webpack://adcdriver/../rewritten-packages/ember-get-config.68efa56c/node_modules/ember-get-config/index.js","webpack://adcdriver/../rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/components/copy-button.hbs","webpack://adcdriver/../rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/components/copy-button.js","webpack://adcdriver/../rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/helpers/is-clipboard-supported.js","webpack://adcdriver/../src/cache.ts","webpack://adcdriver/../src/index.ts","webpack://adcdriver/../rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/modifiers/clipboard.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-date.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-list.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-message.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-number.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-relative.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/format-time.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/helpers/t.js","webpack://adcdriver/../../.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/-base.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-date.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-list.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-message.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-number.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-relative.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/formatters/format-time.js","webpack://adcdriver/../../.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-skeleton-parser@1.8.0/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://adcdriver/../../.pnpm/@formatjs+icu-messageformat-parser@2.7.6/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://adcdriver/../../.pnpm/@formatjs+fast-memoize@2.2.0/node_modules/@formatjs/fast-memoize/lib/index.js","webpack://adcdriver/../../.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/error.js","webpack://adcdriver/../../.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/formatters.js","webpack://adcdriver/../../.pnpm/intl-messageformat@10.5.11/node_modules/intl-messageformat/lib/src/core.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/error.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/utils.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/number.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/plural.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/message.js","webpack://adcdriver/../../.pnpm/@formatjs+ecma402-abstract@1.18.2/node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/list.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/displayName.js","webpack://adcdriver/../../.pnpm/@formatjs+intl@2.10.1/node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/formatjs.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/translations.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/locale.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/translations.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/services/intl.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/hydrate.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/get-dom.js","webpack://adcdriver/../rewritten-packages/ember-intl.1b2893ef/node_modules/ember-intl/-private/utils/missing-message.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-private/compat.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-private/class/modifier-manager.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-private/class/modifier.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-private/function-based/modifier-manager.js","webpack://adcdriver/../rewritten-packages/ember-modifier.f2cfbeb7/node_modules/ember-modifier/-private/function-based/modifier.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/container-debug-adapter.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/string/cache.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/string/index.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/index.js","webpack://adcdriver/../rewritten-packages/ember-resolver.baf397e6/node_modules/ember-resolver/utils/class-factory.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/gt.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/gte.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/is-array.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/is-empty.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/is-equal.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/lt.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/lte.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/not-equal.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/not.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/helpers/xor.js","webpack://adcdriver/../rewritten-packages/ember-truth-helpers.4198182d/node_modules/ember-truth-helpers/utils/truth-convert.js","webpack://adcdriver/../../.pnpm/@ebiz+aditools-precisionstudio-menu@1.4.0/node_modules/@ebiz/aditools-precisionstudio-menu/lib/index.js","webpack://adcdriver/../src/utils/analytics.ts","webpack://adcdriver/../../src/services/aditools-analytics.ts","webpack://adcdriver/../../.pnpm/xlsx@https+++cdn.sheetjs.com+xlsx-0.20.2+xlsx-0.20.2.tgz/node_modules/xlsx/xlsx.mjs","webpack://adcdriver/../../src/modifiers/aditools-renderer.ts","webpack://adcdriver/../../src/utils/export-to-excel.ts","webpack://adcdriver/../../src/utils/download.ts","webpack://adcdriver/../../.pnpm/sortablejs@1.15.3/node_modules/sortablejs/modular/sortable.esm.js","webpack://adcdriver/../../src/components/aditools-device-table.ts","webpack://adcdriver/../../src/components/aditools-parameter-selector.ts","webpack://adcdriver/../../src/utils/comparator.ts","webpack://adcdriver/../../src/components/aditools-card-checkbox.hbs","webpack://adcdriver/../../src/components/aditools-card-checkbox.ts","webpack://adcdriver/../../src/components/aditools-card-part-number.hbs","webpack://adcdriver/../../src/components/aditools-card-part-number.ts","webpack://adcdriver/../../src/components/aditools-card-tooltip.hbs","webpack://adcdriver/../../src/components/aditools-card-tooltip.ts","webpack://adcdriver/../../src/components/aditools-card.hbs","webpack://adcdriver/../../src/components/aditools-card.ts","webpack://adcdriver/../../src/components/aditools-confirmation-dialog.hbs","webpack://adcdriver/../../src/components/aditools-confirmation-dialog.ts","webpack://adcdriver/../../src/components/aditools-content-wrap.hbs","webpack://adcdriver/../../src/components/aditools-content-wrap.ts","webpack://adcdriver/../../src/components/aditools-dialog-load.hbs","webpack://adcdriver/../../src/components/aditools-dialog-load.ts","webpack://adcdriver/../rewritten-packages/ember-tracked-storage-polyfill.ae77ab9f/node_modules/ember-tracked-storage-polyfill/index.js","webpack://adcdriver/../../src/-private/map.ts","webpack://adcdriver/../../src/-private/set.ts","webpack://adcdriver/../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","webpack://adcdriver/../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js","webpack://adcdriver/../../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","webpack://adcdriver/../../src/-private/array.ts","webpack://adcdriver/../../src/-private/object.js","webpack://adcdriver/../../src/components/aditools-dialog-samples.hbs","webpack://adcdriver/../../src/components/aditools-dialog-samples.ts","webpack://adcdriver/../../src/components/aditools-dialog-save.hbs","webpack://adcdriver/../../src/components/aditools-dialog-save.ts","webpack://adcdriver/../../src/components/aditools-dialog-share.hbs","webpack://adcdriver/../../src/components/aditools-dialog-share.ts","webpack://adcdriver/../../src/components/aditools-dialog.hbs","webpack://adcdriver/../../src/components/aditools-dialog.ts","webpack://adcdriver/../../src/components/aditools-feedback-dialog.hbs","webpack://adcdriver/../../src/components/aditools-feedback-dialog.ts","webpack://adcdriver/../../src/components/aditools-footer.hbs","webpack://adcdriver/../../src/components/aditools-footer.ts","webpack://adcdriver/../../src/components/aditools-header.hbs","webpack://adcdriver/../../src/components/aditools-header.ts","webpack://adcdriver/../../src/components/aditools-help-dialog.hbs","webpack://adcdriver/../../src/components/aditools-help-dialog.ts","webpack://adcdriver/../../src/components/aditools-help-tooltip.hbs","webpack://adcdriver/../../src/components/aditools-help-tooltip.ts","webpack://adcdriver/../../src/components/aditools-menubar.hbs","webpack://adcdriver/../../src/components/aditools-menubar.ts","webpack://adcdriver/../../src/components/aditools-narrow-menubar.hbs","webpack://adcdriver/../../src/components/aditools-narrow-menubar.ts","webpack://adcdriver/../../src/components/aditools-section-header.hbs","webpack://adcdriver/../../src/components/aditools-section-header.ts","webpack://adcdriver/../../src/components/aditools-section-subheader.hbs","webpack://adcdriver/../../src/components/aditools-section-subheader.ts","webpack://adcdriver/../../src/components/aditools-studio-dropdown.hbs","webpack://adcdriver/../../src/components/aditools-studio-dropdown.ts","webpack://adcdriver/../../src/components/aditools-system-dialog.hbs","webpack://adcdriver/../../src/components/aditools-system-dialog.ts","webpack://adcdriver/../../src/components/aditools-tab-bar.hbs","webpack://adcdriver/../../src/components/aditools-tab-bar.ts","webpack://adcdriver/../../src/utils/fit-text.ts","webpack://adcdriver/../../src/components/aditools-tight-menubar.hbs","webpack://adcdriver/../../src/components/aditools-tight-menubar.ts","webpack://adcdriver/../../src/components/aditools-toolbar-action.hbs","webpack://adcdriver/../../src/components/aditools-toolbar-action.ts","webpack://adcdriver/../../src/components/aditools-toolbar-tab.hbs","webpack://adcdriver/../../src/components/aditools-toolbar-tab.ts","webpack://adcdriver/../../src/components/aditools-toolbar.hbs","webpack://adcdriver/../../src/components/aditools-toolbar.ts","webpack://adcdriver/../../src/components/email-input.hbs","webpack://adcdriver/../../src/components/email-input.ts","webpack://adcdriver/../../src/components/input-list.hbs","webpack://adcdriver/../../src/components/input-list.ts","webpack://adcdriver/../../.pnpm/@floating-ui+utils@0.2.7/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://adcdriver/../../.pnpm/@floating-ui+core@1.6.7/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://adcdriver/../../.pnpm/@floating-ui+utils@0.2.7/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://adcdriver/../../.pnpm/@floating-ui+dom@1.6.10/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://adcdriver/../src/events.ts","webpack://adcdriver/../src/popover-helpers.ts","webpack://adcdriver/../src/popover.ts","webpack://adcdriver/../../src/modifiers/aditools-positioner.ts","webpack://adcdriver/../../src/components/aditools-menu-context.hbs","webpack://adcdriver/../../src/components/aditools-menu-context.ts","webpack://adcdriver/../../src/components/aditools-menu-link.hbs","webpack://adcdriver/../../src/components/aditools-menu-link.ts","webpack://adcdriver/../../src/components/aditools-menu-links.hbs","webpack://adcdriver/../../src/components/aditools-menu-links.ts","webpack://adcdriver/../../src/components/aditools-menu-tab.hbs","webpack://adcdriver/../../src/components/aditools-menu-tab.ts","webpack://adcdriver/../../src/components/aditools-menu-tabs.hbs","webpack://adcdriver/../../src/components/aditools-menu-tabs.ts","webpack://adcdriver/../src/constants.ts","webpack://adcdriver/../../src/utils/aditools-site.ts","webpack://adcdriver/../../src/services/aditools-site.ts","webpack://adcdriver/../../.pnpm/@ebiz+pretty-num@2.3.0/node_modules/@ebiz/pretty-num/pretty-num.js","webpack://adcdriver/../../.pnpm/@embroider+macros@1.13.0/node_modules/@embroider/macros/src/addon/es-compat2.js","webpack://adcdriver/../../.pnpm/@messageformat+core@3.3.0/node_modules/@messageformat/core/messageformat.js","webpack://adcdriver/../../.pnpm/clipboard@2.0.11/node_modules/clipboard/dist/clipboard.js","webpack://adcdriver/../../../src/services/browser/document.ts","webpack://adcdriver/../../../src/services/browser/local-storage.ts","webpack://adcdriver/../../../src/services/browser/navigator.ts","webpack://adcdriver/../../../src/services/browser/session-storage.ts","webpack://adcdriver/../../../src/services/browser/window.ts","webpack://adcdriver/../../../src/services/browser/-proxy-service.ts","webpack://adcdriver/../src/-private/class-based/modifier-manager.ts","webpack://adcdriver/../src/-private/class-based/modifier.ts","webpack://adcdriver/../src/-private/function-based/modifier.ts","webpack://adcdriver/../src/-private/function-based/modifier-manager.ts","webpack://adcdriver/../../src/helpers/page-title.ts","webpack://adcdriver/../../src/services/page-title.ts","webpack://adcdriver/../../.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","webpack://adcdriver/../../.pnpm/jquery@3.7.1/node_modules/jquery/dist/jquery.js","webpack://adcdriver/../../.pnpm/lodash.camelcase@4.3.0/node_modules/lodash.camelcase/index.js","webpack://adcdriver/../../.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js","webpack://adcdriver/../../.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js","webpack://adcdriver/../../.pnpm/lodash.snakecase@4.1.1/node_modules/lodash.snakecase/index.js","webpack://adcdriver/../../.pnpm/lodash.upperfirst@4.3.1/node_modules/lodash.upperfirst/index.js","webpack://adcdriver/../../.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","webpack://adcdriver/../../.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","webpack://adcdriver/../../.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://adcdriver/../../src/slick.core.ts","webpack://adcdriver/../../src/plugins/slick.autotooltips.ts","webpack://adcdriver/../../src/plugins/slick.cellrangedecorator.ts","webpack://adcdriver/../../src/slick.interactions.ts","webpack://adcdriver/../../src/plugins/slick.cellrangeselector.ts","webpack://adcdriver/../../src/plugins/slick.rowselectionmodel.ts","webpack://adcdriver/../../src/slick.groupitemmetadataprovider.ts","webpack://adcdriver/../../src/slick.dataview.ts","webpack://adcdriver/../../src/slick.editors.ts","webpack://adcdriver/../../src/slick.grid.ts","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js","webpack://adcdriver/../../.pnpm/@babel+runtime@7.22.6/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://adcdriver/../src/runtime.ts","webpack://adcdriver/webpack/bootstrap","webpack://adcdriver/webpack/runtime/compat get default export","webpack://adcdriver/webpack/runtime/define property getters","webpack://adcdriver/webpack/runtime/ensure chunk","webpack://adcdriver/webpack/runtime/get javascript chunk filename","webpack://adcdriver/webpack/runtime/get mini-css chunk filename","webpack://adcdriver/webpack/runtime/hasOwnProperty shorthand","webpack://adcdriver/webpack/runtime/make namespace object","webpack://adcdriver/webpack/runtime/node module decorator","webpack://adcdriver/webpack/runtime/publicPath","webpack://adcdriver/webpack/runtime/jsonp chunk loading","webpack://adcdriver/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"adcdriver:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\nconst m = window.require(\"@ember/-internals/metal\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/application/namespace\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/application\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/array\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/component/helper\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/component/template-only\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/component\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/controller\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/debug/container-debug-adapter\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/debug\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/destroyable\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/modifier\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/object/compat\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/object/computed\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/object/internals\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/object/mixin\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/object\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/owner\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/routing/route\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/routing/router\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/runloop\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/service\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/template\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/template-factory\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/test\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@ember/utils\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@glimmer/tracking\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"@glimmer/validator\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"ember\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"jquery\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.requirejs;\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nconst m = window.require(\"rsvp\");\nif (m.default && !m.__esModule) {\n m.__esModule = true;\n}\nmodule.exports = m;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-typescript/-embroider-implicit-modules.js\";\nimport \"ember-compatibility-helpers/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-compatibility-helpers/-embroider-implicit-modules.js\";\nimport \"ember-cli-typescript/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"@glimmer/component/-embroider-implicit-modules.js\";\nimport \"@glimmer/tracking/-embroider-implicit-modules.js\";\nimport \"ember-modifier/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-htmlbars/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-tracked-storage-polyfill/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"tracked-built-ins/-embroider-implicit-modules.js\";\nimport \"@glimmer/component/-embroider-implicit-modules.js\";\nimport \"@glimmer/tracking/-embroider-implicit-modules.js\";\nimport \"ember-modifier/-embroider-implicit-modules.js\";\nimport \"@ember/string/-embroider-implicit-modules.js\";\nimport \"ember-truth-helpers/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-htmlbars/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-window-mock/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\nimport \"ember-cli-test-loader/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-compatibility-helpers/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\nimport \"ember-modifier-manager-polyfill/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\nimport \"@ember/test-waiters/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\nimport \"ember-cli-htmlbars/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-typescript/-embroider-implicit-modules.js\";\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\nimport \"ember-get-config/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-modifier/-embroider-implicit-modules.js\";\nimport \"@embroider/macros/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\nimport \"ember-cli-htmlbars/-embroider-implicit-modules.js\";\nimport \"ember-arg-types/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"@ember/string/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-typescript/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-typescript/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\nimport \"@ebiz/ember-aditools-analytics/-embroider-implicit-modules.js\";\nimport \"@ebiz/ember-aditools-device-table/-embroider-implicit-modules.js\";\nimport \"@ebiz/ember-aditools-page/-embroider-implicit-modules.js\";\nimport \"@ebiz/ember-aditools-site/-embroider-implicit-modules.js\";\nimport \"ember-browser-services/-embroider-implicit-modules.js\";\nimport \"ember-cli-babel/-embroider-implicit-modules.js\";\nimport \"ember-cli-bundle-analyzer/-embroider-implicit-modules.js\";\nimport \"ember-modifier/-embroider-implicit-modules.js\";\nimport \"ember-page-title/-embroider-implicit-modules.js\";\nimport \"ember-qunit/-embroider-implicit-modules.js\";\nimport \"tracked-built-ins/-embroider-implicit-modules.js\";\nimport \"ember-cli-inject-live-reload/-embroider-implicit-modules.js\";\nimport \"@glimmer/component/-embroider-implicit-modules.js\";\nimport \"@glimmer/tracking/-embroider-implicit-modules.js\";\nimport \"@ember/jquery/-embroider-implicit-modules.js\";\nimport \"@ember/optional-features/-embroider-implicit-modules.js\";\nimport \"@ember/render-modifiers/-embroider-implicit-modules.js\";\nimport \"@ember/test-waiters/-embroider-implicit-modules.js\";\nimport \"ember-auto-import/-embroider-implicit-modules.js\";\nimport \"ember-cli-htmlbars/-embroider-implicit-modules.js\";\nimport \"@ember/test-helpers/-embroider-implicit-modules.js\";\nimport \"ember-cli-code-coverage/-embroider-implicit-modules.js\";\nimport \"ember-cli-app-version/-embroider-implicit-modules.js\";\nimport \"ember-cli-clean-css/-embroider-implicit-modules.js\";\nimport \"ember-cli-clipboard/-embroider-implicit-modules.js\";\nimport \"ember-cli-dependency-checker/-embroider-implicit-modules.js\";\nimport \"ember-cli-deprecation-workflow/-embroider-implicit-modules.js\";\nimport \"ember-cli-sass/-embroider-implicit-modules.js\";\nimport \"broccoli-asset-rev/-embroider-implicit-modules.js\";\nimport \"ember-cli-terser/-embroider-implicit-modules.js\";\nimport \"ember-cli-sri/-embroider-implicit-modules.js\";\nimport \"ember-copy/-embroider-implicit-modules.js\";\nimport \"ember-intl/-embroider-implicit-modules.js\";\nimport \"ember-load-initializers/-embroider-implicit-modules.js\";\nimport \"ember-resolver/-embroider-implicit-modules.js\";\nimport \"ember-source/-embroider-implicit-modules.js\";\nimport \"loader.js/-embroider-implicit-modules.js\";\nimport \"localize-hack/-embroider-implicit-modules.js\";\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","\nimport { importSync as i } from '@embroider/macros';\nlet d = window.define;\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{outlet}}\",{ moduleName: \"adcdriver/templates/application.hbs\" })","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"adcdriver/templates/browser.hbs\" })","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if this.model.isReady}}\\r\\n \\r\\n{{/if}}\",{ moduleName: \"adcdriver/templates/index.hbs\" })","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"

{{t \\\"messages.feedback_thanks\\\"}}

\",{ moduleName: \"adcdriver/templates/thanks.hbs\" })","import require from 'require';\nfunction resolveInitializer(moduleName) {\n var module = require(moduleName, null, null, true);\n if (!module) {\n throw new Error(moduleName + ' must export an initializer.');\n }\n var initializer = module['default'];\n if (!initializer) {\n throw new Error(moduleName + ' must have a default export');\n }\n if (!initializer.name) {\n initializer.name = moduleName.slice(moduleName.lastIndexOf('/') + 1);\n }\n return initializer;\n}\nfunction registerInitializers(app, moduleNames) {\n for (var i = 0; i < moduleNames.length; i++) {\n app.initializer(resolveInitializer(moduleNames[i]));\n }\n}\nfunction registerInstanceInitializers(app, moduleNames) {\n for (var i = 0; i < moduleNames.length; i++) {\n app.instanceInitializer(resolveInitializer(moduleNames[i]));\n }\n}\nfunction _endsWith(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n}\n\n/**\n * Configure your application as it boots\n */\nexport default function loadInitializers(app, prefix) {\n var initializerPrefix = prefix + '/initializers/';\n var instanceInitializerPrefix = prefix + '/instance-initializers/';\n var initializers = [];\n var instanceInitializers = [];\n // this is 2 pass because generally the first pass is the problem\n // and is reduced, and resolveInitializer has potential to deopt\n var moduleNames = Object.keys(requirejs._eak_seen);\n for (var i = 0; i < moduleNames.length; i++) {\n var moduleName = moduleNames[i];\n if (moduleName.lastIndexOf(initializerPrefix, 0) === 0) {\n if (!_endsWith(moduleName, '-test')) {\n initializers.push(moduleName);\n }\n } else if (moduleName.lastIndexOf(instanceInitializerPrefix, 0) === 0) {\n if (!_endsWith(moduleName, '-test')) {\n instanceInitializers.push(moduleName);\n }\n }\n }\n registerInitializers(app, initializers);\n registerInstanceInitializers(app, instanceInitializers);\n}","import Application from '@ember/application';\r\nimport Ember from 'ember';\r\nimport Resolver from 'ember-resolver';\r\nimport loadInitializers from 'ember-load-initializers';\r\nimport config from './config/environment';\r\nimport $ from 'jquery';\r\nimport './deprecation-workflow';\r\n//#region polyfills\r\n\r\n// Math.log10 polyfill for IE\r\nMath.log10 =\r\n Math.log10 ||\r\n function (x) {\r\n return Math.log(x) * Math.LOG10E;\r\n };\r\n\r\n// Math.sign polyfill for IE\r\nif (!Math.sign) {\r\n Math.sign = function (x) {\r\n // If x is NaN, the result is NaN.\r\n // If x is -0, the result is -0.\r\n // If x is +0, the result is +0.\r\n // If x is negative and not -0, the result is -1.\r\n // If x is positive and not +0, the result is +1.\r\n x = +x; // convert to a number\r\n if (x === 0 || isNaN(x)) {\r\n return Number(x);\r\n }\r\n return x > 0 ? 1 : -1;\r\n };\r\n}\r\n\r\n// String.prototype.includes polyfill for IE\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function (search, start) {\r\n 'use strict';\r\n if (typeof start !== 'number') {\r\n start = 0;\r\n }\r\n\r\n if (start + search.length > this.length) {\r\n return false;\r\n } else {\r\n return this.indexOf(search, start) !== -1;\r\n }\r\n };\r\n}\r\n\r\n// endsWith polyfill for IE\r\nif (typeof String.prototype.endsWith !== 'function') {\r\n String.prototype.endsWith = function (suffix) {\r\n return this.indexOf(suffix, this.length - suffix.length) !== -1;\r\n };\r\n}\r\n\r\n$.fn.exists = function () {\r\n return this.length !== 0;\r\n};\r\n//#endregion polyfills\r\n\r\n// const App = Application.extend({\r\n// \tmodulePrefix: config.modulePrefix,\r\n// \tpodModulePrefix: config.podModulePrefix,\r\n// \tResolver\r\n// });\r\nexport default class App extends Application {\r\n modulePrefix = config.modulePrefix;\r\n podModulePrefix = config.podModulePrefix;\r\n Resolver = Resolver;\r\n customEvents = {\r\n mousedown: 'mouseDown',\r\n };\r\n}\r\n\r\nEmber.onerror = function (error) {\r\n if (Ember.testing) {\r\n throw error;\r\n } else {\r\n console.error(error);\r\n }\r\n};\r\n\r\nloadInitializers(App, config.modulePrefix);\r\n","\nimport { importSync as i, macroCondition, getGlobalConfig } from '@embroider/macros';\nlet w = window;\nlet d = w.define;\n\n\ni(\"./-embroider-implicit-modules.js\");\n\nd(\"adcdriver/app\", function(){ return i(\"adcdriver/app.js\");});\nd(\"adcdriver/config/environment\", function(){ return i(\"adcdriver/config/environment.js\");});\nd(\"adcdriver/data/configurationdata\", function(){ return i(\"adcdriver/data/configurationdata.js\");});\nd(\"adcdriver/data/defaultmodeldata\", function(){ return i(\"adcdriver/data/defaultmodeldata.js\");});\nd(\"adcdriver/data/ltspicedata\", function(){ return i(\"adcdriver/data/ltspicedata.js\");});\nd(\"adcdriver/data/modaldata\", function(){ return i(\"adcdriver/data/modaldata.js\");});\nd(\"adcdriver/data/plotdata\", function(){ return i(\"adcdriver/data/plotdata.js\");});\nd(\"adcdriver/data/tabdata\", function(){ return i(\"adcdriver/data/tabdata.js\");});\nd(\"adcdriver/data/tooldata\", function(){ return i(\"adcdriver/data/tooldata.js\");});\nd(\"adcdriver/data/validationdata\", function(){ return i(\"adcdriver/data/validationdata.js\");});\nd(\"adcdriver/data/variantdata\", function(){ return i(\"adcdriver/data/variantdata.js\");});\nd(\"adcdriver/deprecation-workflow\", function(){ return i(\"adcdriver/deprecation-workflow.js\");});\nd(\"adcdriver/router\", function(){ return i(\"adcdriver/router.js\");});\nd(\"adcdriver/services/circuit-configurations\", function(){ return i(\"adcdriver/services/circuit-configurations.js\");});\nd(\"adcdriver/services/component-manager\", function(){ return i(\"adcdriver/services/component-manager.js\");});\nd(\"adcdriver/services/data\", function(){ return i(\"adcdriver/services/data.js\");});\nd(\"adcdriver/services/driver-service\", function(){ return i(\"adcdriver/services/driver-service.js\");});\nd(\"adcdriver/services/driver-supply-service\", function(){ return i(\"adcdriver/services/driver-supply-service.js\");});\nd(\"adcdriver/services/error-handling\", function(){ return i(\"adcdriver/services/error-handling.js\");});\nd(\"adcdriver/services/hash-data-service\", function(){ return i(\"adcdriver/services/hash-data-service.js\");});\nd(\"adcdriver/services/hash-selected-data-service\", function(){ return i(\"adcdriver/services/hash-selected-data-service.js\");});\nd(\"adcdriver/services/hash-service\", function(){ return i(\"adcdriver/services/hash-service.js\");});\nd(\"adcdriver/services/initial-data\", function(){ return i(\"adcdriver/services/initial-data.js\");});\nd(\"adcdriver/services/logging\", function(){ return i(\"adcdriver/services/logging.js\");});\nd(\"adcdriver/services/lt-spice\", function(){ return i(\"adcdriver/services/lt-spice.js\");});\nd(\"adcdriver/services/part-data\", function(){ return i(\"adcdriver/services/part-data.js\");});\nd(\"adcdriver/services/pdf-export\", function(){ return i(\"adcdriver/services/pdf-export.js\");});\nd(\"adcdriver/services/plot-data-service\", function(){ return i(\"adcdriver/services/plot-data-service.js\");});\nd(\"adcdriver/services/plot-data\", function(){ return i(\"adcdriver/services/plot-data.js\");});\nd(\"adcdriver/services/selection-data\", function(){ return i(\"adcdriver/services/selection-data.js\");});\nd(\"adcdriver/services/sigma-delta-data\", function(){ return i(\"adcdriver/services/sigma-delta-data.js\");});\nd(\"adcdriver/services/tab-service\", function(){ return i(\"adcdriver/services/tab-service.js\");});\nd(\"adcdriver/services/tool-data\", function(){ return i(\"adcdriver/services/tool-data.js\");});\nd(\"adcdriver/services/url-data\", function(){ return i(\"adcdriver/services/url-data.js\");});\nd(\"adcdriver/services/validation\", function(){ return i(\"adcdriver/services/validation.js\");});\nd(\"adcdriver/services/variant-data\", function(){ return i(\"adcdriver/services/variant-data.js\");});\nd(\"adcdriver/utils/array-extension\", function(){ return i(\"adcdriver/utils/array-extension.js\");});\nd(\"adcdriver/utils/browser-detector\", function(){ return i(\"adcdriver/utils/browser-detector.js\");});\nd(\"adcdriver/utils/complex\", function(){ return i(\"adcdriver/utils/complex.js\");});\nd(\"adcdriver/utils/console-extension\", function(){ return i(\"adcdriver/utils/console-extension.js\");});\nd(\"adcdriver/utils/constants\", function(){ return i(\"adcdriver/utils/constants.js\");});\nd(\"adcdriver/utils/fonts/ARIAL-normal\", function(){ return i(\"adcdriver/utils/fonts/ARIAL-normal.js\");});\nd(\"adcdriver/utils/fonts/ARIALBD-bold\", function(){ return i(\"adcdriver/utils/fonts/ARIALBD-bold.js\");});\nd(\"adcdriver/utils/fonts/ARIALI-italic\", function(){ return i(\"adcdriver/utils/fonts/ARIALI-italic.js\");});\nd(\"adcdriver/utils/formulas\", function(){ return i(\"adcdriver/utils/formulas.js\");});\nd(\"adcdriver/utils/lt-spice\", function(){ return i(\"adcdriver/utils/lt-spice.js\");});\nd(\"adcdriver/utils/number-extension\", function(){ return i(\"adcdriver/utils/number-extension.js\");});\nd(\"adcdriver/utils/pretty-num-wrapper\", function(){ return i(\"adcdriver/utils/pretty-num-wrapper.js\");});\nd(\"adcdriver/utils/string-extension\", function(){ return i(\"adcdriver/utils/string-extension.js\");});\nd(\"adcdriver/utils/utils\", function(){ return i(\"adcdriver/utils/utils.js\");});\nd(\"adcdriver/utils/validation\", function(){ return i(\"adcdriver/utils/validation.js\");});\nd(\"adcdriver/services/aditools-analytics\", function(){ return i(\"adcdriver/services/aditools-analytics.js\");});\nd(\"adcdriver/services/aditools-site\", function(){ return i(\"adcdriver/services/aditools-site.js\");});\nd(\"adcdriver/services/browser/document\", function(){ return i(\"adcdriver/services/browser/document.js\");});\nd(\"adcdriver/services/browser/local-storage\", function(){ return i(\"adcdriver/services/browser/local-storage.js\");});\nd(\"adcdriver/services/browser/navigator\", function(){ return i(\"adcdriver/services/browser/navigator.js\");});\nd(\"adcdriver/services/browser/session-storage\", function(){ return i(\"adcdriver/services/browser/session-storage.js\");});\nd(\"adcdriver/services/browser/window\", function(){ return i(\"adcdriver/services/browser/window.js\");});\nd(\"adcdriver/services/page-title\", function(){ return i(\"adcdriver/services/page-title.js\");});\nd(\"adcdriver/component-managers/glimmer\", function(){ return i(\"adcdriver/component-managers/glimmer.js\");});\nd(\"adcdriver/initializers/app-version\", function(){ return i(\"adcdriver/initializers/app-version.js\");});\nd(\"adcdriver/services/intl\", function(){ return i(\"adcdriver/services/intl.js\");});\nd(\"adcdriver/utils/intl/missing-message\", function(){ return i(\"adcdriver/utils/intl/missing-message.js\");});\nd(\"adcdriver/container-debug-adapter\", function(){ return i(\"adcdriver/container-debug-adapter.js\");});\nd(\"adcdriver/components/ac-tab\", function(){ return i(\"adcdriver/components/ac-tab.js\");});\nd(\"adcdriver/components/adc-noise-bandwidth\", function(){ return i(\"adcdriver/components/adc-noise-bandwidth.js\");});\nd(\"adcdriver/components/adc-select\", function(){ return i(\"adcdriver/components/adc-select.js\");});\nd(\"adcdriver/components/adi-component\", function(){ return i(\"adcdriver/components/adi-component.js\");});\nd(\"adcdriver/components/application-view\", function(){ return i(\"adcdriver/components/application-view.js\");});\nd(\"adcdriver/components/blank-template\", function(){ return i(\"adcdriver/components/blank-template.js\");});\nd(\"adcdriver/components/browser-error\", function(){ return i(\"adcdriver/components/browser-error.js\");});\nd(\"adcdriver/components/charts/base-chart\", function(){ return i(\"adcdriver/components/charts/base-chart.js\");});\nd(\"adcdriver/components/charts/driver-performance-chart\", function(){ return i(\"adcdriver/components/charts/driver-performance-chart.js\");});\nd(\"adcdriver/components/charts/input-settling-chart\", function(){ return i(\"adcdriver/components/charts/input-settling-chart.js\");});\nd(\"adcdriver/components/charts/noise-chart\", function(){ return i(\"adcdriver/components/charts/noise-chart.js\");});\nd(\"adcdriver/components/circuit-panel\", function(){ return i(\"adcdriver/components/circuit-panel.js\");});\nd(\"adcdriver/components/controls/adi-input\", function(){ return i(\"adcdriver/components/controls/adi-input.js\");});\nd(\"adcdriver/components/controls/custom-select\", function(){ return i(\"adcdriver/components/controls/custom-select.js\");});\nd(\"adcdriver/components/controls/svg-widget\", function(){ return i(\"adcdriver/components/controls/svg-widget.js\");});\nd(\"adcdriver/components/dc-tab\", function(){ return i(\"adcdriver/components/dc-tab.js\");});\nd(\"adcdriver/components/driver-performance-panel\", function(){ return i(\"adcdriver/components/driver-performance-panel.js\");});\nd(\"adcdriver/components/driver-select\", function(){ return i(\"adcdriver/components/driver-select.js\");});\nd(\"adcdriver/components/info-modal-button\", function(){ return i(\"adcdriver/components/info-modal-button.js\");});\nd(\"adcdriver/components/input-group\", function(){ return i(\"adcdriver/components/input-group.js\");});\nd(\"adcdriver/components/inputs/adc-inputs\", function(){ return i(\"adcdriver/components/inputs/adc-inputs.js\");});\nd(\"adcdriver/components/inputs/driver-inputs\", function(){ return i(\"adcdriver/components/inputs/driver-inputs.js\");});\nd(\"adcdriver/components/inputs/filter-inputs\", function(){ return i(\"adcdriver/components/inputs/filter-inputs.js\");});\nd(\"adcdriver/components/inputs/signal-inputs\", function(){ return i(\"adcdriver/components/inputs/signal-inputs.js\");});\nd(\"adcdriver/components/legend-overlay\", function(){ return i(\"adcdriver/components/legend-overlay.js\");});\nd(\"adcdriver/components/muxed-tab\", function(){ return i(\"adcdriver/components/muxed-tab.js\");});\nd(\"adcdriver/components/next-steps-panel\", function(){ return i(\"adcdriver/components/next-steps-panel.js\");});\nd(\"adcdriver/components/noise-calculations-tab\", function(){ return i(\"adcdriver/components/noise-calculations-tab.js\");});\nd(\"adcdriver/components/noise-panel\", function(){ return i(\"adcdriver/components/noise-panel.js\");});\nd(\"adcdriver/components/noise-tab-panel\", function(){ return i(\"adcdriver/components/noise-tab-panel.js\");});\nd(\"adcdriver/components/noise-table-column-header\", function(){ return i(\"adcdriver/components/noise-table-column-header.js\");});\nd(\"adcdriver/components/noise-table\", function(){ return i(\"adcdriver/components/noise-table.js\");});\nd(\"adcdriver/components/sar-tab-item\", function(){ return i(\"adcdriver/components/sar-tab-item.js\");});\nd(\"adcdriver/components/settling-panel\", function(){ return i(\"adcdriver/components/settling-panel.js\");});\nd(\"adcdriver/components/settling-tab-panel\", function(){ return i(\"adcdriver/components/settling-tab-panel.js\");});\nd(\"adcdriver/components/settling-value-overlay\", function(){ return i(\"adcdriver/components/settling-value-overlay.js\");});\nd(\"adcdriver/components/share-modal\", function(){ return i(\"adcdriver/components/share-modal.js\");});\nd(\"adcdriver/components/tab-content\", function(){ return i(\"adcdriver/components/tab-content.js\");});\nd(\"adcdriver/components/tab-error\", function(){ return i(\"adcdriver/components/tab-error.js\");});\nd(\"adcdriver/components/tab-header-area\", function(){ return i(\"adcdriver/components/tab-header-area.js\");});\nd(\"adcdriver/components/tab-pane\", function(){ return i(\"adcdriver/components/tab-pane.js\");});\nd(\"adcdriver/components/thd-tab\", function(){ return i(\"adcdriver/components/thd-tab.js\");});\nd(\"adcdriver/components/variant-selector\", function(){ return i(\"adcdriver/components/variant-selector.js\");});\nd(\"adcdriver/components/volts-kickback-overlay\", function(){ return i(\"adcdriver/components/volts-kickback-overlay.js\");});\nd(\"adcdriver/components/aditools-device-table\", function(){ return i(\"adcdriver/components/aditools-device-table.js\");});\nd(\"adcdriver/components/aditools-parameter-selector\", function(){ return i(\"adcdriver/components/aditools-parameter-selector.js\");});\nd(\"adcdriver/components/aditools-card-checkbox\", function(){ return i(\"adcdriver/components/aditools-card-checkbox.js\");});\nd(\"adcdriver/components/aditools-card-part-number\", function(){ return i(\"adcdriver/components/aditools-card-part-number.js\");});\nd(\"adcdriver/components/aditools-card-tooltip\", function(){ return i(\"adcdriver/components/aditools-card-tooltip.js\");});\nd(\"adcdriver/components/aditools-card\", function(){ return i(\"adcdriver/components/aditools-card.js\");});\nd(\"adcdriver/components/aditools-confirmation-dialog\", function(){ return i(\"adcdriver/components/aditools-confirmation-dialog.js\");});\nd(\"adcdriver/components/aditools-content-wrap\", function(){ return i(\"adcdriver/components/aditools-content-wrap.js\");});\nd(\"adcdriver/components/aditools-dialog-load\", function(){ return i(\"adcdriver/components/aditools-dialog-load.js\");});\nd(\"adcdriver/components/aditools-dialog-samples\", function(){ return i(\"adcdriver/components/aditools-dialog-samples.js\");});\nd(\"adcdriver/components/aditools-dialog-save\", function(){ return i(\"adcdriver/components/aditools-dialog-save.js\");});\nd(\"adcdriver/components/aditools-dialog-share\", function(){ return i(\"adcdriver/components/aditools-dialog-share.js\");});\nd(\"adcdriver/components/aditools-dialog\", function(){ return i(\"adcdriver/components/aditools-dialog.js\");});\nd(\"adcdriver/components/aditools-feedback-dialog\", function(){ return i(\"adcdriver/components/aditools-feedback-dialog.js\");});\nd(\"adcdriver/components/aditools-footer\", function(){ return i(\"adcdriver/components/aditools-footer.js\");});\nd(\"adcdriver/components/aditools-header\", function(){ return i(\"adcdriver/components/aditools-header.js\");});\nd(\"adcdriver/components/aditools-help-dialog\", function(){ return i(\"adcdriver/components/aditools-help-dialog.js\");});\nd(\"adcdriver/components/aditools-help-tooltip\", function(){ return i(\"adcdriver/components/aditools-help-tooltip.js\");});\nd(\"adcdriver/components/aditools-menu-context\", function(){ return i(\"adcdriver/components/aditools-menu-context.js\");});\nd(\"adcdriver/components/aditools-menu-link\", function(){ return i(\"adcdriver/components/aditools-menu-link.js\");});\nd(\"adcdriver/components/aditools-menu-links\", function(){ return i(\"adcdriver/components/aditools-menu-links.js\");});\nd(\"adcdriver/components/aditools-menu-tab\", function(){ return i(\"adcdriver/components/aditools-menu-tab.js\");});\nd(\"adcdriver/components/aditools-menu-tabs\", function(){ return i(\"adcdriver/components/aditools-menu-tabs.js\");});\nd(\"adcdriver/components/aditools-menubar\", function(){ return i(\"adcdriver/components/aditools-menubar.js\");});\nd(\"adcdriver/components/aditools-narrow-menubar\", function(){ return i(\"adcdriver/components/aditools-narrow-menubar.js\");});\nd(\"adcdriver/components/aditools-section-header\", function(){ return i(\"adcdriver/components/aditools-section-header.js\");});\nd(\"adcdriver/components/aditools-section-subheader\", function(){ return i(\"adcdriver/components/aditools-section-subheader.js\");});\nd(\"adcdriver/components/aditools-studio-dropdown\", function(){ return i(\"adcdriver/components/aditools-studio-dropdown.js\");});\nd(\"adcdriver/components/aditools-system-dialog\", function(){ return i(\"adcdriver/components/aditools-system-dialog.js\");});\nd(\"adcdriver/components/aditools-tab-bar\", function(){ return i(\"adcdriver/components/aditools-tab-bar.js\");});\nd(\"adcdriver/components/aditools-tight-menubar\", function(){ return i(\"adcdriver/components/aditools-tight-menubar.js\");});\nd(\"adcdriver/components/aditools-toolbar-action\", function(){ return i(\"adcdriver/components/aditools-toolbar-action.js\");});\nd(\"adcdriver/components/aditools-toolbar-tab\", function(){ return i(\"adcdriver/components/aditools-toolbar-tab.js\");});\nd(\"adcdriver/components/aditools-toolbar\", function(){ return i(\"adcdriver/components/aditools-toolbar.js\");});\nd(\"adcdriver/components/email-input\", function(){ return i(\"adcdriver/components/email-input.js\");});\nd(\"adcdriver/components/input-list\", function(){ return i(\"adcdriver/components/input-list.js\");});\nd(\"adcdriver/components/copy-button\", function(){ return i(\"adcdriver/components/copy-button.js\");});\nd(\"adcdriver/helpers/and\", function(){ return i(\"adcdriver/helpers/and.js\");});\nd(\"adcdriver/helpers/eq\", function(){ return i(\"adcdriver/helpers/eq.js\");});\nd(\"adcdriver/helpers/is-not\", function(){ return i(\"adcdriver/helpers/is-not.js\");});\nd(\"adcdriver/helpers/math-round\", function(){ return i(\"adcdriver/helpers/math-round.js\");});\nd(\"adcdriver/helpers/ne\", function(){ return i(\"adcdriver/helpers/ne.js\");});\nd(\"adcdriver/helpers/object-creator\", function(){ return i(\"adcdriver/helpers/object-creator.js\");});\nd(\"adcdriver/helpers/or\", function(){ return i(\"adcdriver/helpers/or.js\");});\nd(\"adcdriver/helpers/pretty-num\", function(){ return i(\"adcdriver/helpers/pretty-num.js\");});\nd(\"adcdriver/helpers/safe-legend-color\", function(){ return i(\"adcdriver/helpers/safe-legend-color.js\");});\nd(\"adcdriver/helpers/page-title\", function(){ return i(\"adcdriver/helpers/page-title.js\");});\nd(\"adcdriver/helpers/gt\", function(){ return i(\"adcdriver/helpers/gt.js\");});\nd(\"adcdriver/helpers/gte\", function(){ return i(\"adcdriver/helpers/gte.js\");});\nd(\"adcdriver/helpers/is-array\", function(){ return i(\"adcdriver/helpers/is-array.js\");});\nd(\"adcdriver/helpers/is-empty\", function(){ return i(\"adcdriver/helpers/is-empty.js\");});\nd(\"adcdriver/helpers/is-equal\", function(){ return i(\"adcdriver/helpers/is-equal.js\");});\nd(\"adcdriver/helpers/lt\", function(){ return i(\"adcdriver/helpers/lt.js\");});\nd(\"adcdriver/helpers/lte\", function(){ return i(\"adcdriver/helpers/lte.js\");});\nd(\"adcdriver/helpers/not-eq\", function(){ return i(\"adcdriver/helpers/not-eq.js\");});\nd(\"adcdriver/helpers/not\", function(){ return i(\"adcdriver/helpers/not.js\");});\nd(\"adcdriver/helpers/xor\", function(){ return i(\"adcdriver/helpers/xor.js\");});\nd(\"adcdriver/helpers/app-version\", function(){ return i(\"adcdriver/helpers/app-version.js\");});\nd(\"adcdriver/helpers/is-clipboard-supported\", function(){ return i(\"adcdriver/helpers/is-clipboard-supported.js\");});\nd(\"adcdriver/helpers/format-date\", function(){ return i(\"adcdriver/helpers/format-date.js\");});\nd(\"adcdriver/helpers/format-list\", function(){ return i(\"adcdriver/helpers/format-list.js\");});\nd(\"adcdriver/helpers/format-message\", function(){ return i(\"adcdriver/helpers/format-message.js\");});\nd(\"adcdriver/helpers/format-number\", function(){ return i(\"adcdriver/helpers/format-number.js\");});\nd(\"adcdriver/helpers/format-relative\", function(){ return i(\"adcdriver/helpers/format-relative.js\");});\nd(\"adcdriver/helpers/format-time\", function(){ return i(\"adcdriver/helpers/format-time.js\");});\nd(\"adcdriver/helpers/t\", function(){ return i(\"adcdriver/helpers/t.js\");});\nd(\"adcdriver/modifiers/load-svg\", function(){ return i(\"adcdriver/modifiers/load-svg.js\");});\nd(\"adcdriver/modifiers/non-interactive-event\", function(){ return i(\"adcdriver/modifiers/non-interactive-event.js\");});\nd(\"adcdriver/modifiers/on-click-outside\", function(){ return i(\"adcdriver/modifiers/on-click-outside.js\");});\nd(\"adcdriver/modifiers/set-qa-attr\", function(){ return i(\"adcdriver/modifiers/set-qa-attr.js\");});\nd(\"adcdriver/modifiers/toggle-qa-attr\", function(){ return i(\"adcdriver/modifiers/toggle-qa-attr.js\");});\nd(\"adcdriver/modifiers/update-ui-value\", function(){ return i(\"adcdriver/modifiers/update-ui-value.js\");});\nd(\"adcdriver/modifiers/aditools-positioner\", function(){ return i(\"adcdriver/modifiers/aditools-positioner.js\");});\nd(\"adcdriver/modifiers/aditools-renderer\", function(){ return i(\"adcdriver/modifiers/aditools-renderer.js\");});\nd(\"adcdriver/modifiers/did-insert\", function(){ return i(\"adcdriver/modifiers/did-insert.js\");});\nd(\"adcdriver/modifiers/did-update\", function(){ return i(\"adcdriver/modifiers/did-update.js\");});\nd(\"adcdriver/modifiers/will-destroy\", function(){ return i(\"adcdriver/modifiers/will-destroy.js\");});\nd(\"adcdriver/modifiers/clipboard\", function(){ return i(\"adcdriver/modifiers/clipboard.js\");});\nd(\"adcdriver/templates/index\", function(){ return i(\"adcdriver/templates/index.hbs\");});\nd(\"adcdriver/controllers/index\", function(){ return i(\"adcdriver/controllers/index.js\");});\nd(\"adcdriver/routes/index\", function(){ return i(\"adcdriver/routes/index.js\");});\nd(\"adcdriver/routes/adc\", function(){ return i(\"adcdriver/routes/adc.js\");});\nd(\"adcdriver/templates/browser\", function(){ return i(\"adcdriver/templates/browser.hbs\");});\nd(\"adcdriver/routes/browser\", function(){ return i(\"adcdriver/routes/browser.js\");});\nd(\"adcdriver/templates/thanks\", function(){ return i(\"adcdriver/templates/thanks.hbs\");});\nd(\"adcdriver/routes/thanks\", function(){ return i(\"adcdriver/routes/thanks.js\");});\nd(\"adcdriver/templates/application\", function(){ return i(\"adcdriver/templates/application.hbs\");});\n\n\n\n\n\nif (!runningTests) {\n i(\"../app\").default.create({\"name\":\"adcdriver\",\"version\":\"2.13.0+e2847f13\"});\n}\n\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!-- AC Input Signal --}}\\r\\n
\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/ac-tab.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './ac-tab.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\n\r\nexport default class AcTab extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n @service selectionData;\r\n\r\n acInputSignalBodyArgs = {};\r\n\r\n init() {\r\n super.init();\r\n\r\n this.acInputSignalBodyArgs = {\r\n analogFrontEndDesignArticleLink: this.intl.t('urls.articles.frontEndDesign'),\r\n };\r\n }\r\n\r\n @computed(\r\n 'selectionData.selectedAdc.partCore',\r\n 'model.inputSettlingArrays.inputFrequencyWhereSlewDominatesKickback',\r\n )\r\n get acKickbackWarningArgs() {\r\n return {\r\n adc: this.selectionData.selectedAdc.partCore,\r\n frequencyCutoff: PrettyNum.eng3(this.model.inputSettlingArrays.inputFrequencyWhereSlewDominatesKickback),\r\n };\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#if this.sigmaDeltaData.isSigmaDeltaAdc}}\\r\\n {{t\\r\\n {{t \\\"info_modal.adc_noise_bandwidth.image_details\\\" htmlSafe=true}}\\r\\n {{t \\\"info_modal.adc_noise_bandwidth.table_header\\\"}}\\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
{{t \\\"column_headers.rc_filter_equiv_bw\\\"}}{{t \\\"info_modal.adc_noise_bandwidth.formula_labels.fp\\\"}}{{this.prettyRcFilterEquivBw}}
{{t \\\"column_headers.adc_bw\\\"}}{{t \\\"info_modal.adc_noise_bandwidth.formula_labels.fc\\\"}}{{this.prettyAdcEquivBw}}
{{t \\\"column_headers.adc_eff_sample_rate\\\"}}{{t \\\"info_modal.adc_noise_bandwidth.formula_labels.fs\\\"}}{{this.prettySamplingRate}}
{{t \\\"column_headers.num_aliased_passbands\\\"}}{{t \\\"info_modal.adc_noise_bandwidth.formula_labels.aliasedPassbands\\\"}}{{this.prettyNumberOfAliasedPassbands}}
{{t \\\"column_headers.eff_noise_bw_of_driver_noise\\\"}}{{t \\\"info_modal.adc_noise_bandwidth.formula_labels.eff_noise\\\"}}{{this.prettyEffectiveBW}}
\\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/adc-noise-bandwidth.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './adc-noise-bandwidth.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\n\r\nexport default class AdcNoiseBandwidth extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n @service sigmaDeltaData;\r\n\r\n @computed('model.filterBandwidth') get rcFilterEquivBw() {\r\n if (!(this.model.filterBandwidth || this.model.filterBandwidth === 0)) {\r\n return null;\r\n }\r\n return this.model.filterBandwidth * 1.57;\r\n }\r\n\r\n @computed('rcFilterEquivBw', 'model.samplingRate') get numberOfAliasedPassbands() {\r\n if (\r\n !(this.rcFilterEquivBw || this.rcFilterEquivBw === 0) ||\r\n !(this.model.samplingRate || this.model.samplingRate === 0)\r\n ) {\r\n return null;\r\n }\r\n\r\n return Math.ceil(this.rcFilterEquivBw / this.model.samplingRate) + 1;\r\n }\r\n\r\n @computed('rcFilterEquivBw') get prettyRcFilterEquivBw() {\r\n return `${PrettyNum.eng3(this.rcFilterEquivBw)}${this.intl.t('units.hz')}`;\r\n }\r\n\r\n @computed('model.noiseCalculations.adc.equivBW') get prettyAdcEquivBw() {\r\n return `${PrettyNum.eng3(this.model.noiseCalculations.adc.equivBW)}${this.intl.t('units.hz')}`;\r\n }\r\n\r\n @computed('model.samplingRate') get prettySamplingRate() {\r\n return `${PrettyNum.eng3(this.model.samplingRate)}${this.intl.t('units.hz')}`;\r\n }\r\n\r\n @computed('numberOfAliasedPassbands') get prettyNumberOfAliasedPassbands() {\r\n return `${PrettyNum.eng3(this.numberOfAliasedPassbands)}`;\r\n }\r\n\r\n @computed('model.noiseCalculations.rfilt.effectiveBW') get prettyEffectiveBW() {\r\n return `${PrettyNum.eng3(this.model.noiseCalculations.rfilt.effectiveBW)}${this.intl.t('units.hz')}`;\r\n }\r\n}\r\n","import { assert } from '@ember/debug';\nimport type { Column } from 'slickgrid';\nimport type { ColumnFilter, DeviceData } from '../components/aditools-device-table.ts';\n\nexport default class PartialTextFilter implements ColumnFilter {\n value: string;\n qaName?: string;\n\n constructor(initialValue?: string, qaName?: string) {\n this.value = initialValue ? initialValue : '';\n this.qaName = qaName;\n }\n\n populate(column: Column): HTMLElement {\n if (!column) {\n throw 'column passed to populate is invalid';\n }\n const selection = $(this.generateDOMElement(column));\n selection.val(this.value);\n assert('At least one element is always generated', selection[0]);\n return selection[0];\n }\n\n generateDOMElement(column: Column): string {\n const inputQaElement = this.qaName ? `data-qa-element=\"device_table_${this.qaName}_input\"` : '';\n return ``;\n }\n\n update(element: HTMLInputElement): void {\n this.value = element.value;\n }\n\n unpack(packedValues: string): void {\n if (packedValues) {\n const initialValues = JSON.parse(packedValues);\n if (Object.prototype.hasOwnProperty.call(initialValues, 'value')) {\n this.value = initialValues.value;\n }\n }\n }\n\n reset(): void {\n this.value = '';\n }\n\n pack(): string {\n return JSON.stringify({ value: this.value });\n }\n\n hasValue(): boolean {\n return this.value !== '';\n }\n\n filter(field: string): boolean {\n const effectiveField = field ?? '';\n return effectiveField.toUpperCase().indexOf(this.value.toUpperCase()) > -1;\n }\n}\n","import { userEntryToNumber } from '@ebiz/pretty-num';\nimport { assert } from '@ember/debug';\nimport type { Column } from 'slickgrid';\nimport type { ColumnFilter, DeviceData } from '../components/aditools-device-table.ts';\nimport Validation from './validation.ts';\n\nconst _stripTrailingDecimal = function (item: string) {\n const dotted = item.split('.');\n return dotted.length === 2 && dotted[1] && dotted[1].length === 0 ? item.slice(0, -1) : item;\n};\n\nexport default class EngineeringFilter implements ColumnFilter {\n defaultRelation: string;\n relation: string;\n initialValue: string;\n value: string;\n qaName?: string;\n constructor(defaultRelation: string, initialValue?: string, qaName?: string) {\n this.defaultRelation = defaultRelation ?? 'GT';\n this.relation = this.defaultRelation;\n this.initialValue = initialValue ?? '';\n this.value = this.initialValue;\n this.qaName = qaName;\n }\n\n populate(column: Column): HTMLElement {\n if (!column) {\n throw 'column passed to populate is invalid';\n }\n const selection = $(this.generateDOMElement(column));\n selection.find('select').val(this.relation);\n selection.find('input').val(this.value);\n assert('At least one element is always generated', selection[0]);\n return selection[0];\n }\n\n generateDOMElement(column: Column): string {\n const selectQaElement = this.qaName ? `data-qa-element=\"device_table_${this.qaName}_select\"` : '';\n const inputQaElement = this.qaName ? `data-qa-element=\"device_table_${this.qaName}_input\"` : '';\n return `
\n \n \n
`;\n }\n\n update(element: HTMLInputElement): void {\n const children = element.parentElement?.children;\n if (children) {\n this.relation = (children[0]).value;\n this.value = (children[1]).value;\n }\n }\n\n unpack(packedValues: string): void {\n if (packedValues) {\n const initialValues = JSON.parse(packedValues);\n if (\n Object.prototype.hasOwnProperty.call(initialValues, 'relation') &&\n Object.prototype.hasOwnProperty.call(initialValues, 'value')\n ) {\n this.relation = initialValues.relation;\n this.value = initialValues.value;\n }\n }\n }\n\n pack(): string {\n return JSON.stringify({ relation: this.relation, value: this.value });\n }\n\n hasValue(): boolean {\n return this.value !== '';\n }\n\n reset(): void {\n this.relation = this.defaultRelation;\n this.value = this.initialValue;\n }\n\n filter(field: string): boolean {\n // Temporary workaround for Package Area\n const cleanedField = field ? (field.includes('mm') ? (field.split('mm')[0] ?? '') : field) : field;\n let fieldValue = cleanedField === '' || cleanedField === '-' ? 0 : userEntryToNumber(cleanedField, Infinity);\n fieldValue = isNaN(fieldValue) ? Infinity : fieldValue;\n const filterRelation = this.relation;\n const filterValueString = _stripTrailingDecimal(this.value);\n if (Validation.validateFieldInput(filterValueString, 'ENGINEERING')) {\n const filterValue = userEntryToNumber(filterValueString, Infinity);\n if ((fieldValue || fieldValue === 0) && (filterValue || filterValue === 0)) {\n switch (filterRelation) {\n case 'EQ':\n return fieldValue === filterValue;\n case 'LE':\n return fieldValue <= filterValue;\n case 'LT':\n return fieldValue < filterValue;\n case 'GE':\n return fieldValue >= filterValue;\n case 'GT':\n return fieldValue > filterValue;\n }\n }\n }\n return true;\n }\n}\n","import { isUserEntryNumeric } from '@ebiz/pretty-num/';\n\n////////////////////////////////////////////////////////////////////////////////////\n// validation - Class containing function for character and field validation //\n////////////////////////////////////////////////////////////////////////////////////\n\nexport default {\n ////////////////////////////////////////////////////////////////////////////////\n // Functions //\n ////////////////////////////////////////////////////////////////////////////////\n\n // Function for Character Validation\n // Inputs: value - value to be validated\n // type - value field type\n // scope - used for custom validation, usually contains a Regular Expression, otherwise null\n // Returns: result - true when valid\n validateCharacterInput: function (value: string, type: string, scope?: RegExp): boolean {\n return this.validateFieldInput(value, type, scope);\n },\n\n // Function for Field Validation\n // Inputs: value - value to be validated\n // type - value field type\n // scope - used for custom validation, usually contains a Regular Expression, otherwise null\n // Returns: result - true when valid\n validateFieldInput: function (value: string, type: string, scope?: RegExp): boolean {\n let result = true;\n let pattern = /^/;\n switch (type) {\n case 'ALPHANUMERIC':\n pattern = /^[0-9a-zA-Z]+$/;\n result = pattern.test(value.toString());\n break;\n case 'ALPHABET':\n pattern = /^[a-zA-Z]+$/;\n result = pattern.test(value.toString());\n break;\n case 'NUMERIC':\n case 'NUMERICDECIMAL':\n case 'ENGINEERING': {\n result = isUserEntryNumeric(value.toString());\n break;\n }\n case 'CUSTOM':\n if (scope) {\n pattern = scope;\n result = pattern.test(value.toString());\n }\n break;\n case 'ALLCHARS':\n default:\n break;\n }\n return result;\n },\n};\n","import { assert } from '@ember/debug';\nimport type { Column } from 'slickgrid';\nimport type { ColumnFilter, DeviceData } from '../components/aditools-device-table.ts';\n\nexport interface FilterValues {\n value: string;\n display: string;\n match?: string;\n}\n\nexport default class SelectionFilter implements ColumnFilter {\n filterValues: FilterValues[];\n value: string;\n qaName?: string;\n\n constructor(filterValues: FilterValues[], initialValue?: string, qaName?: string) {\n this.filterValues = filterValues;\n this.value = initialValue ? initialValue : '';\n this.qaName = qaName;\n }\n\n populate(column: Column): HTMLElement {\n if (!column) {\n throw 'column passed to populate is invalid';\n }\n const selection = $(this.generateDOMElement(column));\n selection.val(this.value);\n assert('At least one element is always generated', selection[0]);\n return selection[0];\n }\n\n generateDOMElement(column: Column): string {\n const selectQaElement = this.qaName ? `data-qa-element=\"device_table_${this.qaName}_select\"` : '';\n let options = '';\n for (const item of this.filterValues) {\n options += ``;\n }\n return ``;\n }\n\n update(element: HTMLInputElement): void {\n this.value = element.value;\n }\n\n unpack(packedValues: string): void {\n if (packedValues) {\n const initialValues = JSON.parse(packedValues);\n if (Object.prototype.hasOwnProperty.call(initialValues, 'value')) {\n this.value = initialValues.value;\n }\n }\n }\n\n reset(): void {\n this.value = '';\n }\n\n pack(): string {\n return JSON.stringify({ value: this.value });\n }\n\n hasValue(): boolean {\n return this.value !== '';\n }\n\n filter(field: string): boolean {\n if (this.value) {\n const parm = this.filterValues.find((aParm: { value: string }) => {\n return this.value === aParm.value;\n });\n if (field) {\n return field === (parm?.match ? parm?.match : parm?.display);\n } else {\n return false;\n }\n }\n return true;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:default>\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n <:footer as |closeDialog|>\\r\\n \\r\\n \\r\\n
\\r\\n\",{ moduleName: \"adcdriver/components/adc-select.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './adc-select.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\nimport { alias } from '@ember/object/computed';\r\nimport { htmlSafe } from '@ember/template';\r\n\r\nimport Comparator from '@ebiz/ember-aditools-device-table/utils/comparator';\r\nimport PartialTextFilter from '@ebiz/ember-aditools-device-table/utils/partial-text-filter';\r\nimport EngineeringFilter from '@ebiz/ember-aditools-device-table/utils/engineering-filter';\r\nimport SelectionFilter from '@ebiz/ember-aditools-device-table/utils/selection-filter';\r\n\r\nimport { tracked } from '@glimmer/tracking';\r\nimport { eng3 } from '@ebiz/pretty-num';\r\n\r\nimport Constants from '../utils/constants';\r\n\r\nexport default class AdcSelect extends Component {\r\n tagName = '';\r\n\r\n @service('aditools-analytics') analytics;\r\n @service('aditools-site') site;\r\n @service('data') model;\r\n @service intl;\r\n @service urlData;\r\n @service selectionData;\r\n @service sigmaDeltaData;\r\n @service driverService;\r\n @service driverSupplyService;\r\n @service hashDataService;\r\n @service partData;\r\n\r\n @alias('selectionData.selectedAdc') selectedItem;\r\n @alias('selectionData.previousAdc') previousItem;\r\n\r\n @tracked locale = this.site.AdiLocale;\r\n @tracked selectableAdcOptions = this.model.selectableAdcOptions;\r\n @tracked selectedPart = '';\r\n\r\n @tracked pstLinks = [\r\n {\r\n href: {\r\n all: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.AD_CONVERTERS}`,\r\n inThisTool: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.AD_CONVERTERS}#/p0=${this.urlData.adcFilterString}`,\r\n },\r\n name: {\r\n all: this.intl.t('parametric_search.ad_converters.all'),\r\n inThisTool: this.intl.t('parametric_search.ad_converters.in_this_tool'),\r\n },\r\n },\r\n ];\r\n\r\n @tracked htmlGridNotes = htmlSafe(\r\n this.intl.t('messages.adc_note', {\r\n footnote: this.intl.t('footnote'),\r\n freq: `${eng3(this.model.frequency, { separatedUnit: true })}${this.intl.t('units.hz')}`,\r\n rext: `${eng3(this.model.rext, { separatedUnit: true })}${this.intl.t('units.ohms')}`,\r\n }),\r\n );\r\n\r\n @tracked options = {\r\n asyncEditorLoading: true,\r\n showHeaderRow: true,\r\n resizable: true,\r\n forceFitColumns: false,\r\n multiSelect: false,\r\n headerRowHeight: 30,\r\n rowHeight: 25,\r\n autoHeight: false,\r\n enableColumnReorder: false,\r\n multiColumnSort: true,\r\n frozenColumn: this.frozenColumn || 0,\r\n explicitInitialization: true,\r\n };\r\n @tracked data = [];\r\n @tracked columns = [];\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // User Functions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n populateRows() {\r\n this.data = [];\r\n this.data = this.selectableAdcOptions.map((row) => {\r\n return {\r\n id: row.part,\r\n part: row.part,\r\n bits: eng3(row.bits),\r\n maxSampleRate: eng3(row.maxSampleRate),\r\n inputType: row.inputType,\r\n inputPolarity: row.inputPolarity,\r\n ADCSNR: eng3(row.ADCSNR),\r\n thd: eng3(row.thd),\r\n vrefMax: eng3(row.vrefMax),\r\n vrefMin: eng3(row.vrefMin),\r\n price: eng3(row.price),\r\n channels: eng3(row.channels),\r\n package: row.package,\r\n datasheet: row.datasheet, // for link in the field \"id\"\r\n vintage: row.id, // for default sort\r\n };\r\n });\r\n }\r\n\r\n constructColumns() {\r\n let linkFormatter = function (row, cell, value, columnDef, dataContext) {\r\n return [\r\n '',\r\n value,\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n };\r\n\r\n this.columns = [\r\n {\r\n id: 'part',\r\n name: this.intl.t('column_headers.device'),\r\n field: 'part',\r\n width: 115,\r\n sortable: true,\r\n formatter: linkFormatter,\r\n filter: new PartialTextFilter('', 'part'),\r\n toolTip: this.intl.t('column_headers.device'),\r\n },\r\n {\r\n id: 'bits',\r\n name: `${this.intl.t('column_headers.resolution')} (${this.intl.t('units.bits')})`,\r\n field: 'bits',\r\n width: 140,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'bits'),\r\n toolTip: `${this.intl.t('column_headers.resolution')} (${this.intl.t('units.bits')})`,\r\n },\r\n {\r\n id: 'maxSampleRate',\r\n name: `${this.intl.t('column_headers.sampling_rate')} (${this.intl.t('units.sps')})`,\r\n field: 'maxSampleRate',\r\n width: 155,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'maxSampleRate'),\r\n toolTip: `${this.intl.t('column_headers.sampling_rate')} (${this.intl.t('units.sps')})`,\r\n },\r\n {\r\n id: 'inputType',\r\n name: this.intl.t('column_headers.input_type'),\r\n field: 'inputType',\r\n width: 150,\r\n sortable: true,\r\n filter: new SelectionFilter([\r\n { value: '', display: 'All' },\r\n { value: 'Differential', match: 'Differential', display: 'Differential' },\r\n { value: 'Pseudo Diff', match: 'Pseudo Diff', display: 'Pseudo Diff' },\r\n ]),\r\n toolTip: this.intl.t('column_headers.input_type'),\r\n },\r\n {\r\n id: 'inputPolarity',\r\n name: this.intl.t('column_headers.input_polarity'),\r\n field: 'inputPolarity',\r\n width: 170,\r\n sortable: true,\r\n filter: new PartialTextFilter('', 'inputPolarity'),\r\n toolTip: this.intl.t('column_headers.input_polarity'),\r\n },\r\n {\r\n id: 'snr',\r\n name: `${this.intl.t('column_headers.snr')} (${this.intl.t('units.db')})`,\r\n field: 'ADCSNR',\r\n width: 115,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'ADCSNR'),\r\n toolTip: `${this.intl.t('column_headers.snr')} (${this.intl.t('units.db')})`,\r\n },\r\n\r\n {\r\n id: 'thd',\r\n name: `${this.intl.t('column_headers.thd')} (${this.intl.t('units.db')}) \r\n ${this.intl.t('sup', {\r\n val: this.intl.t('footnote'),\r\n })}\r\n `,\r\n field: 'thd',\r\n width: 115,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'thd'),\r\n toolTip: `${this.intl.t('column_headers.thd')} (${this.intl.t('units.db')})`,\r\n },\r\n {\r\n id: 'vrefMax',\r\n name: `${this.intl.t('column_headers.vref_max')} (${this.intl.t('units.v')})`,\r\n field: 'vrefMax',\r\n width: 115,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'vrefMax'),\r\n toolTip: `${this.intl.t('column_headers.vref_max')} (${this.intl.t('units.v')})`,\r\n },\r\n {\r\n id: 'vrefMin',\r\n name: `${this.intl.t('column_headers.vref_min')} (${this.intl.t('units.v')})`,\r\n field: 'vrefMin',\r\n width: 115,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'vrefMin'),\r\n toolTip: `${this.intl.t('column_headers.vref_min')} (${this.intl.t('units.v')})`,\r\n },\r\n {\r\n id: 'price',\r\n name: `${this.intl.t('column_headers.price')} (${this.intl.t('units.price')})`,\r\n field: 'price',\r\n width: 130,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'price'),\r\n toolTip: `${this.intl.t('column_headers.price')} (${this.intl.t('units.price')})`,\r\n },\r\n {\r\n id: 'channels',\r\n name: this.intl.t('column_headers.adc_channels'),\r\n field: 'channels',\r\n width: 130,\r\n sortable: true,\r\n comparator: Comparator.engineeringComparator,\r\n filter: new EngineeringFilter('GT', '', 'channels'),\r\n toolTip: this.intl.t('column_headers.adc_channels'),\r\n },\r\n {\r\n id: 'package',\r\n name: this.intl.t('column_headers.package'),\r\n field: 'package',\r\n width: 200,\r\n sortable: false,\r\n filter: new PartialTextFilter('', 'package'),\r\n toolTip: this.intl.t('column_headers.package'),\r\n },\r\n ];\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Component Actions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n @action insertingGrid() {\r\n this.populateRows();\r\n this.constructColumns();\r\n\r\n const selectedItem = this.selectedItem.part.split('|')[0];\r\n this.selectedPart = this.data.find((item) => item.part === selectedItem).part;\r\n }\r\n\r\n @action resetFilters() {\r\n this.insertingGrid();\r\n\r\n this.analytics.setWebEvent(this.partData.toolName, 'Reset Filters', `Selected adc: ${this.selectedPart}`);\r\n }\r\n\r\n @action selectItem(closeDialog) {\r\n const selectedAdc = this.selectableAdcOptions.find((adc) => adc.part === this.selectedPart);\r\n this.previousItem = this.selectionData.selectedAdc;\r\n this.selectedItem = selectedAdc;\r\n\r\n // Handle adc variant processing\r\n this.model.updateShowVariant();\r\n this.model.switchVariant();\r\n this.sigmaDeltaData.refreshSigmaDeltaDefaults();\r\n\r\n /**\r\n * This is where the driver is reset.\r\n * Anything that relies on the selectedDriver must\r\n * be run after this.\r\n */\r\n this.model.setDefaultAdcData();\r\n\r\n this.model.setMultiplexedMetadata();\r\n\r\n this.driverService.setTopologyStatus();\r\n this.driverService.defaultRf();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n this.hashDataService.setUrlParameter('model.vref');\r\n this.hashDataService.setUrlParameter('model.multiplexed');\r\n this.hashDataService.setUrlParameter('model.rext');\r\n this.hashDataService.setUrlParameter('model.cext');\r\n this.hashDataService.setUrlParameter('model.vcm', this.model.isVcmFixed);\r\n this.hashDataService.setUrlParameter('model.showAdcVariant');\r\n this.hashDataService.setUrlParameter('model.showDriverVariant');\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.mclk');\r\n\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'mclkDiv');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'powerMode');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'filterType');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'decimationRate');\r\n\r\n this.hashDataService.setUrlParameterWithSelectedPart('driver');\r\n this.hashDataService.setUrlParameterWithSelectedPart('adc');\r\n\r\n this.hashDataService.setUrlParameterWithSelectedId('sourceType');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n\r\n this.hashDataService.setUrlParameterForObject('showAdcVariants');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n\r\n this.analytics.setWebEvent(this.partData.toolName, 'Selected ADC', `${this.selectedPart}`);\r\n\r\n closeDialog();\r\n }\r\n\r\n @action adcChanged(adc) {\r\n this.selectedPart = adc;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{component \\r\\n this.internalName \\r\\n id=this.id\\r\\n class=this.classNames\\r\\n updateAppData=this.updateAppData\\r\\n openHelp=this.openHelp}}\",{ moduleName: \"adcdriver/components/adi-component.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './adi-component.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed } from '@ember/object';\r\nimport Utils from '../utils/utils';\r\n\r\nexport default class AdiComponent extends Component {\r\n tagName = '';\r\n defaultName = 'blank-template';\r\n\r\n updateAppData = () => {};\r\n openHelp = () => {};\r\n\r\n @computed('name') get internalName() {\r\n let container = Utils.getAppContainer(),\r\n componentExists = false;\r\n\r\n if (container && container.registry) {\r\n componentExists = container.registry.has(`component:${this.name}`);\r\n }\r\n\r\n return componentExists ? this.name : this.defaultName;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\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 {{#if this.model.filterEnabled}}\\r\\n \\r\\n {{/if}}\\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{{#if this.generalDialog.enabled}}\\r\\n \\r\\n{{/if}}\\r\\n\\r\\n{{#if this.adcDeviceTable.enabled}}\\r\\n \\r\\n{{/if}}\\r\\n\\r\\n{{#if this.driverDeviceTable.enabled}}\\r\\n \\r\\n{{/if}}\",{ moduleName: \"adcdriver/components/application-view.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './application-view.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\nimport { scheduleOnce } from '@ember/runloop';\r\nimport { modifier } from 'ember-modifier';\r\nimport ENV from '../config/environment';\r\nimport Constants from '../utils/constants';\r\nimport { tracked } from '@glimmer/tracking';\r\n\r\nlet delay = function (t, v) {\r\n return new Promise(function (resolve) {\r\n setTimeout(resolve.bind(null, v), t);\r\n });\r\n};\r\n\r\nconst widthTracker = modifier(\r\n (element, [getDimensions]) => {\r\n let resizer = () => {\r\n const rect = element.getBoundingClientRect();\r\n getDimensions(rect.width, rect.height);\r\n };\r\n resizer(); // On first priming, make sure it is off the item\r\n window.addEventListener('resize', resizer);\r\n return () => {\r\n window.removeEventListener('resize', resizer);\r\n };\r\n },\r\n { eager: false },\r\n);\r\n\r\nexport default class ApplicationView extends Component {\r\n tagName = '';\r\n\r\n @service('aditools-analytics') analytics;\r\n @service('aditools-site') site;\r\n @service selectionData;\r\n @service intl;\r\n @service urlData;\r\n @service hashService;\r\n @service tabService;\r\n @service('data') model;\r\n @service componentManager;\r\n\r\n trackSize = widthTracker;\r\n @tracked appWidth;\r\n @tracked generalDialog = null;\r\n @tracked adcDeviceTable = null;\r\n @tracked driverDeviceTable = null;\r\n @tracked systemDialog = null;\r\n @tracked deviceTableName = null;\r\n\r\n init() {\r\n super.init();\r\n // TODO: Can we find a better solution than invoking the runloop's scheduleOnce?\r\n // Calling this._loadTool(); syncronously from here doesn't work\r\n scheduleOnce('afterRender', this, '_loadTool');\r\n }\r\n\r\n _loadTool() {\r\n if (this.hashService.loadedWithHash) {\r\n this.componentManager.initialLoadWithHash();\r\n this.analytics.setWebEvent(ENV.toolname, 'hashAtStart', this.hashService.locationHash, true);\r\n } else {\r\n this.componentManager.initialLoadWithoutHash();\r\n }\r\n\r\n this.tabService.updateTabs(this.model);\r\n this.hashService.handleUrlParameters();\r\n\r\n this.generalDialog = { title: '', message: '', enabled: false };\r\n this.adcDeviceTable = { title: '', enabled: false };\r\n this.driverDeviceTable = { title: '', enabled: false };\r\n this.systemDialog = { message: '', enabled: false };\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Controller Actions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n @action setAppWidth(width) {\r\n this.appWidth = width;\r\n }\r\n\r\n @action updateAppData() {\r\n this.tabService.updateTabs(this.model);\r\n this.hashService.handleUrlParameters();\r\n }\r\n\r\n @action giveFeedback(feedbackModel) {\r\n let feedbackData = {\r\n ToolId: Constants.API_TOOL_ID,\r\n Name: encodeURIComponent(feedbackModel.name),\r\n Email: encodeURIComponent(feedbackModel.email),\r\n Feedback: encodeURIComponent(feedbackModel.feedback),\r\n };\r\n\r\n return Promise.resolve()\r\n .then(() => {\r\n this._systemDialogFunc('ON', 'applicationBusy');\r\n return delay(250).then(() => {\r\n return;\r\n });\r\n })\r\n .then(() => {\r\n return fetch(this.urlData.feedbackUrl, {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n body: JSON.stringify(feedbackData),\r\n })\r\n .then((response) => {\r\n return response.json();\r\n })\r\n .catch(() => {\r\n return { status: -1 };\r\n });\r\n })\r\n .then((result) => {\r\n this._systemDialogFunc('OFF', '');\r\n if (result.status === 0) {\r\n this.openDialog('icon_modal.feedback.title', 'icon_modal.feedback.feedbackDialogOkMessage');\r\n } else {\r\n this.openDialog('icon_modal.feedback.title', 'icon_modal.feedback.feedbackDialogNgMessage');\r\n }\r\n })\r\n .catch(() => {\r\n this._systemDialogFunc('OFF', '');\r\n this.openDialog('icon_modal.feedback.title', 'icon_modal.feedback.feedbackDialogNgMessage');\r\n });\r\n }\r\n\r\n @action openDialog(title, message, msgparams) {\r\n let adjparams = msgparams;\r\n if (adjparams) {\r\n adjparams.htmlSafe = 'true';\r\n } else {\r\n adjparams = { htmlSafe: 'true' };\r\n }\r\n this.generalDialog = {\r\n title: this.intl.t(title, { htmlSafe: 'true' }),\r\n message: this.intl.t(message, adjparams),\r\n enabled: true,\r\n };\r\n\r\n this.analytics.setWebEvent(ENV.toolname, 'Help Dialog', this.generalDialog.title.toString());\r\n }\r\n\r\n @action closeDialog() {\r\n this.generalDialog = { enabled: false, title: '', message: '' };\r\n }\r\n\r\n @action openDeviceTable(name) {\r\n this.deviceTableName = name;\r\n if (name === 'adc') {\r\n this.adcDeviceTable = { enabled: true, title: this.intl.t('adc_modal.title') };\r\n } else {\r\n this.driverDeviceTable = { enabled: true, title: this.intl.t('driver_modal.title') };\r\n }\r\n\r\n this.analytics.setWebEvent(\r\n ENV.toolname,\r\n this.deviceTableName === 'adc'\r\n ? `${this.adcDeviceTable.title.toString()}`\r\n : `${this.driverDeviceTable.title.toString()}`,\r\n this.deviceTableName === 'adc'\r\n ? this.selectionData.selectedAdc.part\r\n : this.selectionData.selectedDriver.part,\r\n );\r\n }\r\n\r\n @action closeAdcDeviceTable() {\r\n if (this.deviceTableName === 'adc') {\r\n this.adcDeviceTable = { enabled: false, title: '' };\r\n } else {\r\n this.driverDeviceTable = { enabled: false, title: '' };\r\n }\r\n\r\n this.analytics.setWebEvent(\r\n ENV.toolname,\r\n this.deviceTableName === 'adc' ? `Adc Device Table Closed` : `Driver Device Table Closed`,\r\n this.deviceTableName === 'adc'\r\n ? this.selectionData.selectedAdc.part\r\n : this.selectionData.selectedDriver.part,\r\n );\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Internal Support Functions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n _systemDialogFunc(status, message) {\r\n switch (status) {\r\n case 'ON':\r\n this.systemDialog = { enabled: true, message: this.intl.t(`icon_modal.system.${message}`) };\r\n break;\r\n case 'OFF':\r\n this.systemDialog = { enabled: false, message: '' };\r\n break;\r\n case 'NONE':\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!template-lint-disable no-yield-only}}\\r\\n{{yield}}\",{ moduleName: \"adcdriver/components/blank-template.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './blank-template.hbs'; */\nimport Component from '@ember/component';\r\n\r\n/**\r\n * This is just a blank template useful for yielding multiple\r\n * items in other components\r\n * See: https://dockyard.com/blog/2018/11/26/how-to-yield-an-ember-component-in-multiple-places\r\n */\r\nexport default class BlankTemplate extends Component {\r\n tagName = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n
\\r\\n
\\r\\n
{{this.warning.title}}
\\r\\n
\\r\\n {{this.warning.text}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\",{ moduleName: \"adcdriver/components/browser-error.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './browser-error.hbs'; */\nimport Component from '@ember/component';\r\nimport BrowserDetector from '../utils/browser-detector';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class BrowserError extends Component {\r\n tagName = '';\r\n\r\n @service urlData;\r\n\r\n warning = null;\r\n\r\n init() {\r\n super.init();\r\n this.set('warning', BrowserDetector.badBrowserWarning('SAR Driver'));\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#if this.zoomEnabled}}\\r\\n \\r\\n {{/if}}\\r\\n {{! template-lint-disable no-pointer-down-event-binding }}\\r\\n
\\r\\n
\\r\\n {{#if this.zoomFit}}\\r\\n \\r\\n {{/if}}\\r\\n {{#if this.sequencerEnabled}}\\r\\n \\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/charts/base-chart.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './base-chart.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\nimport $ from 'jquery';\r\nimport PrettyNum from '../../utils/pretty-num-wrapper';\r\nimport Formulas from '../../utils/formulas';\r\n\r\nexport default class BaseChart extends Component {\r\n layoutName = 'components/charts/base-chart';\r\n tagName = '';\r\n\r\n @service('data') model;\r\n\r\n zoomFit = false;\r\n updateAppData = () => {};\r\n\r\n init() {\r\n super.init();\r\n this.removeLegendIndexes = [];\r\n }\r\n\r\n @action performZoomFit() {\r\n this.set('model.zoomFitScaling', true);\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action resetZoom() {\r\n this.plot.resetZoom();\r\n this.onZoomOut();\r\n }\r\n\r\n @action pointerDown() {\r\n if (window.getSelection && window.getSelection().empty) {\r\n window.getSelection().empty();\r\n }\r\n }\r\n\r\n enableZoom(plot) {\r\n this.set('zoomed', false);\r\n this.set('plot', plot);\r\n\r\n let t = plot.target;\r\n\r\n t.off('jqplotZoom', this.onZoomIn);\r\n t.off('dblclick', this.onZoomOut);\r\n t.on('jqplotZoom', $.proxy(this.onZoomIn, this));\r\n t.on('dblclick', $.proxy(this.onZoomOut, this));\r\n\r\n t.addClass('zoom-enabled');\r\n this.setCssForZoom();\r\n }\r\n\r\n // Align the magnifying glass on zoomable charts.\r\n setCssForZoom() {\r\n let eventCanvas = this.plot.target.find('> canvas.jqplot-event-canvas');\r\n let top = parseFloat(eventCanvas.css('top'));\r\n let left = parseFloat(eventCanvas.css('left'));\r\n\r\n eventCanvas.css({ top: top - 9, left: left - 10, 'z-index': 0 });\r\n }\r\n\r\n onZoomIn() {\r\n this.set('zoomed', true);\r\n this.set('justZoomed', true);\r\n this.setCssForZoom();\r\n this.trimLegend();\r\n }\r\n\r\n onZoomOut() {\r\n this.set('zoomed', false);\r\n this.setCssForZoom();\r\n this.trimLegend();\r\n }\r\n\r\n trimLegend() {\r\n Object.values(document.querySelectorAll(`#${this.chartId} tr.jqplot-table-legend`))\r\n .filter(\r\n (item) =>\r\n !(item && item.children.length === 2 && item.children[1].textContent) ||\r\n item.children[1].textContent.includes('Series'),\r\n )\r\n .forEach((item) => item.remove());\r\n }\r\n\r\n // Formatters\r\n numberTickFormatter(format, val) {\r\n return '' + Math.round(val * 100) / 100 + '';\r\n }\r\n\r\n preciseNumberTickFormatter(format, val) {\r\n return '' + Math.round(val * 10000) / 10000 + '';\r\n }\r\n\r\n roundingTickFormatter(format, val) {\r\n return '' + val.toFixed(2) + '';\r\n }\r\n\r\n prettyTickFormatter(format, val) {\r\n return `${PrettyNum.eng3(val)}`;\r\n }\r\n\r\n roundToNsPrettyTickFormatter(format, val) {\r\n return `${PrettyNum.roundToNs(val)}`;\r\n }\r\n\r\n stringTickFormatter(format, val) {\r\n return '' + val + '';\r\n }\r\n\r\n baseFormatter(format, val) {\r\n return val;\r\n }\r\n\r\n // For log axes\r\n setLogTicks(start, stop) {\r\n let subDecadeVal,\r\n decadeVal,\r\n valString,\r\n result = [];\r\n\r\n subDecadeVal = start;\r\n decadeVal = start;\r\n\r\n while (subDecadeVal < stop) {\r\n if (subDecadeVal == decadeVal) {\r\n valString = PrettyNum.eng3(decadeVal);\r\n result.push([subDecadeVal, valString]);\r\n } else {\r\n valString = '';\r\n result.push([subDecadeVal, valString]);\r\n }\r\n\r\n decadeVal = Formulas.getDecade(subDecadeVal);\r\n subDecadeVal = Formulas.getSubDecade(subDecadeVal);\r\n }\r\n\r\n valString = PrettyNum.eng3(stop);\r\n result.push([stop, valString]);\r\n\r\n return result;\r\n }\r\n}\r\n","import BaseChart from './base-chart';\r\nimport { inject as service } from '@ember/service';\r\nimport Formulas from '../../utils/formulas';\r\n\r\nimport $ from 'jquery';\r\n\r\nexport default class DriverPerformanceChart extends BaseChart {\r\n @service tabService;\r\n @service componentManager;\r\n @service errorHandling;\r\n @service('data') model;\r\n @service toolData;\r\n @service intl;\r\n\r\n didRender() {\r\n super.didRender();\r\n this.draw();\r\n }\r\n\r\n draw() {\r\n let model = this.model;\r\n\r\n if (this.errorHandling.tabError || model.driverPerformanceData.tempABError) return;\r\n\r\n let selfRef = this,\r\n colors = this.toolData.data.colors;\r\n\r\n let frequency = model.driverPerformanceData.abFrequencyArray,\r\n phase = model.driverPerformanceData.abPhaseArray,\r\n magnitude = model.driverPerformanceData.abMagnitudeArray,\r\n magnitudeLine = [],\r\n phaseLine = [];\r\n\r\n // xaxis\r\n let fLen = frequency.length,\r\n frequencyStart = 1000,\r\n frequencyEnd = Formulas.getDecade(model.selectedDriver.unityGain),\r\n frequencyAxisValues = this.setLogTicks(frequencyStart, frequencyEnd);\r\n\r\n // Find the first index that is plotted.\r\n let startIndex = 0;\r\n for (startIndex; startIndex < fLen; startIndex++) if (frequency[startIndex] >= frequencyStart) break;\r\n\r\n // yaxis left\r\n let magnitudeStart = 0.1,\r\n magnitudeEnd = Formulas.getDecade(magnitude[startIndex]),\r\n magnitudeAxisValues = this.setLogTicks(magnitudeStart, magnitudeEnd);\r\n\r\n for (let i = 0; i < fLen; i++) {\r\n // Do not add points to the line that will not be shown.\r\n if (frequency[i] < frequencyStart) continue;\r\n else if (frequency[i] > frequencyEnd) break;\r\n\r\n magnitudeLine.push([frequency[i], magnitude[i]]);\r\n phaseLine.push([frequency[i], phase[i]]);\r\n }\r\n\r\n // Find frequency where mangnitude is 1\r\n let mLLen = magnitudeLine.length,\r\n magnitudeMarker = 1,\r\n fDiff = Math.abs(magnitudeMarker - magnitudeLine[0][1]),\r\n freqAtMag1 = 0;\r\n\r\n for (let i = 1; i < mLLen; i++) {\r\n let newFDiff = Math.abs(magnitudeMarker - magnitudeLine[i][1]);\r\n\r\n if (newFDiff < fDiff) {\r\n fDiff = newFDiff;\r\n freqAtMag1 = magnitudeLine[i][0];\r\n }\r\n }\r\n\r\n // Create vertical and horizontal line for freqAtMag1.\r\n let verticalLine = [\r\n [freqAtMag1, magnitudeStart],\r\n [freqAtMag1, magnitudeEnd],\r\n ],\r\n horizontalLine = [\r\n [frequencyStart, magnitudeMarker],\r\n [freqAtMag1, magnitudeMarker],\r\n ];\r\n\r\n // Find the phase at the freqAtMag1.\r\n let pLLen = phaseLine.length,\r\n phaseAtFreq = 0;\r\n\r\n for (let i = 1; i < pLLen; i++) {\r\n if (phaseLine[i][0] === freqAtMag1) {\r\n phaseAtFreq = phaseLine[i][1];\r\n break;\r\n }\r\n }\r\n\r\n // Create horizontal line for phaseAtFreq.\r\n let horizontalLine2 = [\r\n [freqAtMag1, phaseAtFreq],\r\n [frequencyEnd, phaseAtFreq],\r\n ];\r\n\r\n // Clear the plot.\r\n let $currentPlot = $('#' + this.chartId);\r\n if ($currentPlot) $currentPlot.empty();\r\n\r\n window.jQuery.jqplot(this.chartId, [magnitudeLine, phaseLine, verticalLine, horizontalLine, horizontalLine2], {\r\n title: 'A * β',\r\n axesDefaults: {\r\n syncTicks: false,\r\n labelRenderer: window.jQuery.jqplot.CanvasAxisLabelRenderer,\r\n tickOptions: {\r\n showGridline: false,\r\n formatter: selfRef.prettyTickFormatter,\r\n alignTicks: true,\r\n },\r\n },\r\n seriesDefaults: {\r\n showMarker: false,\r\n shadow: false,\r\n disableStack: false,\r\n rendererOptions: {\r\n smooth: true,\r\n },\r\n },\r\n highlighter: {\r\n show: true,\r\n useAxesFormatters: true,\r\n },\r\n axes: {\r\n xaxis: {\r\n renderer: window.jQuery.jqplot.LogAxisRenderer,\r\n min: frequencyStart,\r\n max: frequencyEnd,\r\n label: selfRef.intl.t('chart_labels.frequency'),\r\n rendererOptions: {\r\n base: 10,\r\n },\r\n ticks: frequencyAxisValues,\r\n pad: 0,\r\n },\r\n yaxis: {\r\n label: 'Magnitude',\r\n renderer: window.jQuery.jqplot.LogAxisRenderer,\r\n rendererOptions: {\r\n base: 10,\r\n },\r\n ticks: magnitudeAxisValues,\r\n pad: 0,\r\n },\r\n y2axis: {\r\n label: 'Phase',\r\n min: -180,\r\n },\r\n },\r\n series: [\r\n {\r\n xaxis: 'xaxis',\r\n yaxis: 'yaxis',\r\n },\r\n {\r\n xaxis: 'xaxis',\r\n yaxis: 'y2axis',\r\n },\r\n {\r\n lineWidth: 2,\r\n linePattern: 'dashed',\r\n xaxis: 'xaxis',\r\n yaxis: 'yaxis',\r\n },\r\n {\r\n lineWidth: 2,\r\n linePattern: 'dashed',\r\n xaxis: 'xaxis',\r\n yaxis: 'yaxis',\r\n },\r\n {\r\n lineWidth: 2,\r\n linePattern: 'dashed',\r\n xaxis: 'xaxis',\r\n yaxis: 'y2axis',\r\n },\r\n ],\r\n cursor: {\r\n show: true,\r\n showTooltip: true,\r\n },\r\n grid: {\r\n borderColor: '#E5E5E5',\r\n shadow: false,\r\n background: '#FFFFFF',\r\n },\r\n legend: {\r\n show: true,\r\n location: 'sw',\r\n placement: 'insideGrid',\r\n labels: ['Magnitude', 'Phase'],\r\n },\r\n seriesColors: [colors.noiseSource, colors.noiseDriver, '#D9D9D9', '#D9D9D9', '#D9D9D9'],\r\n });\r\n\r\n // Removes all of the 'Series' lines from the legend.\r\n this.trimLegend();\r\n }\r\n}\r\n","import BaseChart from './base-chart';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Utils from '../../utils/utils';\r\nimport Constants from '../../utils/constants';\r\n\r\nexport default class InputSettlingChart extends BaseChart {\r\n @service tabService;\r\n @service pdfExport;\r\n @service('data') model;\r\n @service errorHandling;\r\n @service intl;\r\n @service plotData;\r\n @service componentManager;\r\n @service sigmaDeltaData;\r\n\r\n tagName = '';\r\n\r\n init() {\r\n super.init();\r\n this.set('pdfExport.tabs.' + this.chartId, this);\r\n }\r\n\r\n didRender() {\r\n super.didRender();\r\n if (!this.justZoomed) this.draw();\r\n else this.set('justZoomed', false);\r\n }\r\n\r\n @computed('chartId') get chartType() {\r\n return this.chartId.replace('Chart', '');\r\n }\r\n\r\n _setPlotData() {\r\n let plotData = this.plotData.getData(this.chartType, this.model.inputSettlingChart);\r\n this.setProperties(plotData);\r\n }\r\n\r\n _roundTickValueToRange(value, step, range) {\r\n return step === 0\r\n ? Utils.roundTo(value / range.value, 0) * range.value + range.partial\r\n : Utils.roundToStep(value, step);\r\n }\r\n\r\n _getTickInterval(tickStep, yDiff) {\r\n let initialValue = (yDiff * this.padY) / this.numPlotTicks,\r\n numericRange = Utils.getNumericRange(initialValue, true),\r\n tickInterval = this._roundTickValueToRange(initialValue, tickStep, numericRange);\r\n\r\n return tickInterval < tickStep ? tickStep : tickInterval;\r\n }\r\n\r\n _getInitialTick(minY, maxY) {\r\n let yDiff = maxY - minY,\r\n tickStep = this.tickStep,\r\n tickInterval = this._getTickInterval(tickStep, yDiff),\r\n intervalNumericRange = Utils.getNumericRange(tickInterval),\r\n initialValue = maxY + tickInterval * this.ticksAbove;\r\n\r\n return {\r\n value: this._roundTickValueToRange(initialValue, tickStep, intervalNumericRange),\r\n interval: tickInterval,\r\n };\r\n }\r\n\r\n _generateTicks(minY, maxY) {\r\n this.ticks = [];\r\n\r\n let totalPlotTicks = this.numPlotTicks + this.ticksAbove + this.ticksBelow,\r\n i = totalPlotTicks - 1,\r\n tickData = this._getInitialTick(minY, maxY);\r\n\r\n this.ticks[i] = tickData.value;\r\n this.tickInterval = tickData.interval;\r\n\r\n while (i > 0) {\r\n i -= 1;\r\n this.ticks[i] = this.ticks[i + 1] - this.tickInterval;\r\n }\r\n }\r\n\r\n draw(force = false) {\r\n if (window.$('#' + this.chartId)) {\r\n window.$('#' + this.chartId).empty();\r\n }\r\n\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n\r\n this._setPlotData();\r\n\r\n if (!force && (this.errorHandling.tabError || this.errorHandling.vSupplyError)) {\r\n this.set('zoomed', false);\r\n return;\r\n }\r\n\r\n let chartElement = document.querySelector(`#${this.chartId}`);\r\n\r\n // Make sure the chart container is there and has width before we initialize the chart with jqplot\r\n if (!(force || (chartElement && chartElement.offsetWidth))) return;\r\n\r\n let selfRef = this,\r\n series = [],\r\n seriesColors = [],\r\n legendLabels = [],\r\n plotLines = this.plotLines,\r\n x = this.x;\r\n\r\n let start = x[0],\r\n end = x[x.length - 1];\r\n\r\n let lines = [],\r\n // ticks = [],\r\n yMaxes = [],\r\n yMins = [];\r\n\r\n for (let i = 0; i < plotLines.length; i++) {\r\n let plotLine = plotLines[i],\r\n s = {};\r\n\r\n if (plotLines[i].hidden) continue;\r\n\r\n if (plotLine.markers) {\r\n s = {\r\n showLine: false,\r\n showMarker: true,\r\n markerRenderer: window.jQuery.jqplot.markerRenderer,\r\n markerOptions: {\r\n show: true,\r\n style: 'filledDiamond',\r\n size: 14,\r\n lineWidth: 2,\r\n },\r\n };\r\n } else if (plotLine.dashed) s.linePattern = 'dashed';\r\n else s.lineWidth = 3;\r\n\r\n series.push(s);\r\n seriesColors.push(plotLine.color);\r\n if (!plotLine.hideLegend) legendLabels.push(plotLine.name.toString());\r\n\r\n // Builds up the lines here\r\n let _y,\r\n _x,\r\n line = [];\r\n\r\n if (plotLine.arrayWithX) {\r\n let points = plotLine.arrayWithX,\r\n jLen = points.length;\r\n\r\n _y = [];\r\n _x = [];\r\n\r\n for (let j = 0; j < jLen; j++) {\r\n _x.push(points[j][0]);\r\n _y.push(points[j][1]);\r\n }\r\n } else {\r\n _y = plotLine.array;\r\n _x = x;\r\n }\r\n\r\n let _min = _y[0],\r\n _max = _y[0],\r\n loopLen = _x.length;\r\n\r\n for (let j = 0; j < loopLen; j++) {\r\n if (_y[j] !== false) {\r\n // Get the current lines max and min y values.\r\n let a = _y[j],\r\n currentMin = a,\r\n currentMax = a;\r\n\r\n if (_min > currentMin) _min = currentMin;\r\n if (_max < currentMax) _max = currentMax;\r\n\r\n // Add value to line.\r\n line.push([_x[j], _y[j]]);\r\n }\r\n }\r\n\r\n yMaxes.push(_max);\r\n yMins.push(_min);\r\n lines.push(line);\r\n }\r\n\r\n let minY = Math.min.apply(null, yMins),\r\n maxY = Math.max.apply(null, yMaxes);\r\n\r\n this._generateTicks(minY, maxY);\r\n\r\n // #region Markers for conversion and acquisition.\r\n // Code to get the cycle labels on the chart...\r\n // TODO: Not Dynamic. Put this in a child....\r\n // var labelLocationY = this.cycleLabelTop ? (maxY + ((maxY - minY) * 0.05)) : (minY - ((maxY - minY) * 0.05));\r\n let labelLocationY = this.cycleLabelTop ? maxY : minY - (maxY - minY) * 0.04;\r\n labelLocationY -= this.tickInterval / 4;\r\n\r\n // var percentToReduce = totalWidth * 0.008;\r\n let percentToReduce = 0;\r\n\r\n // Conversion cycle marker line.\r\n let cycleStart = this.cycle1End + percentToReduce;\r\n let cycleEnd = this.timeAtKickback - percentToReduce;\r\n let centerX = (cycleStart + cycleEnd) / 2;\r\n\r\n if (!this.sigmaDeltaData.isSigmaDeltaAdc) {\r\n lines.push([\r\n [cycleStart, labelLocationY, '|'],\r\n [centerX, labelLocationY, selfRef.intl.t('chart_labels.conversion_cycle')],\r\n [cycleEnd, labelLocationY, '|'],\r\n ]);\r\n } else {\r\n lines.push([\r\n [cycleStart, labelLocationY, '|'],\r\n [centerX, labelLocationY, ''],\r\n [cycleEnd, labelLocationY, '|'],\r\n ]);\r\n }\r\n\r\n // Acquisition cycle marker line.\r\n cycleStart = this.timeAtKickback + percentToReduce;\r\n cycleEnd = this.cycle3Start - percentToReduce;\r\n centerX = (cycleStart + cycleEnd) / 2;\r\n\r\n if (!this.sigmaDeltaData.isSigmaDeltaAdc) {\r\n lines.push([\r\n [cycleStart, labelLocationY, '|'],\r\n [centerX, labelLocationY, selfRef.intl.t('chart_labels.acquisition_cycle')],\r\n [cycleEnd, labelLocationY, '|'],\r\n ]);\r\n } else {\r\n lines.push([\r\n [cycleStart, labelLocationY, '|'],\r\n [centerX, labelLocationY, ''],\r\n [cycleEnd, labelLocationY, '|'],\r\n ]);\r\n }\r\n\r\n let labelSeries = {\r\n showLine: true,\r\n showHighlight: false,\r\n lineWidth: 4,\r\n pointLabels: {\r\n show: true,\r\n ypadding: -20,\r\n formatString: ' ', // This has to be set to something truthy\r\n },\r\n };\r\n\r\n series.push(labelSeries, labelSeries);\r\n seriesColors.push('#333', '#333');\r\n // #endregion Markers for conversion and acquisition.\r\n\r\n let cursor;\r\n\r\n if (this.zoomEnabled) {\r\n cursor = {\r\n tooltipLocation: this.tooltipLocation,\r\n show: true,\r\n zoom: true,\r\n style: `url(images/cursor_zoom.cur), default`,\r\n };\r\n } else {\r\n cursor = {\r\n tooltipLocation: this.tooltipLocation,\r\n show: true,\r\n showTooltip: true,\r\n };\r\n }\r\n\r\n // TODO: Not Dynamic. Put this in a child....\r\n let canvasOverlay = {};\r\n if (typeof this.cycle1End !== 'undefined' && typeof this.cycle3Start !== 'undefined') {\r\n canvasOverlay = {\r\n show: true,\r\n objects: [\r\n {\r\n rectangle: {\r\n xmin: start,\r\n xmax: selfRef.cycle1End,\r\n xminOffset: '0px',\r\n xmaxOffset: '0px',\r\n yminOffset: '0px',\r\n ymaxOffset: '0px',\r\n color: 'rgba(0, 0, 0, 0.1)',\r\n shadow: false,\r\n },\r\n },\r\n\r\n {\r\n rectangle: {\r\n xmin: selfRef.cycle3Start,\r\n xmax: end,\r\n xminOffset: '0px',\r\n xmaxOffset: '0px',\r\n yminOffset: '0px',\r\n ymaxOffset: '0px',\r\n color: 'rgba(0, 0, 0, 0.1)',\r\n shadow: false,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n\r\n let plot = window.jQuery.jqplot(this.chartId, lines, {\r\n height: 450,\r\n canvasOverlay: canvasOverlay,\r\n axesDefaults: {\r\n labelRenderer: window.jQuery.jqplot.CanvasAxisLabelRenderer,\r\n },\r\n seriesDefaults: {\r\n showMarker: false,\r\n shadow: false,\r\n // Note: This can show false points, but it usually makes the line more appealing.\r\n rendererOptions: {\r\n smooth: false,\r\n },\r\n },\r\n highlighter: {\r\n show: true,\r\n useAxesFormatters: true,\r\n },\r\n series: series,\r\n axes: {\r\n xaxis: {\r\n label: selfRef.xLabel,\r\n tickOptions: {\r\n formatter: selfRef.roundToNsPrettyTickFormatter,\r\n },\r\n min: start,\r\n max: end,\r\n pad: 0,\r\n numberTicks: 8,\r\n },\r\n yaxis: {\r\n label: selfRef.yLabel,\r\n tickOptions: {\r\n formatter: selfRef.prettyTickFormatter,\r\n },\r\n min: selfRef.minY,\r\n max: selfRef.maxY,\r\n\r\n pad: 1.65,\r\n\r\n // the ticks can't be specified if we want to use jqplot's zoom\r\n //ticks: selfRef.ticks,\r\n },\r\n },\r\n cursor: cursor,\r\n grid: {\r\n borderColor: '#E5E5E5',\r\n shadow: false,\r\n background: '#FFFFFF',\r\n },\r\n legend: {\r\n show: this.showLegend,\r\n location: 'e', //selfRef.legendLocation,\r\n placement: 'insideGrid',\r\n labels: legendLabels,\r\n },\r\n seriesColors: seriesColors,\r\n });\r\n\r\n if (this.zoomEnabled) this.enableZoom(plot);\r\n\r\n this.trimLegend();\r\n\r\n let eventCanvasElement = document.querySelector(`#${this.chartId} .jqplot-event-canvas`);\r\n if (eventCanvasElement)\r\n eventCanvasElement.setAttribute(\r\n Constants.QA_ATTR_NAME,\r\n `${Constants.QA_ATTR_PREFIX}_${this.chartType}_graph`,\r\n );\r\n\r\n let resizeTimeout;\r\n const onResize = () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => {\r\n if (plot && chartElement && chartElement.offsetWidth > 0) {\r\n plot.replot({ resetAxes: false }); // Re-draw the plot\r\n this.trimLegend();\r\n }\r\n }, 100);\r\n };\r\n window.addEventListener('resize', onResize);\r\n }\r\n}\r\n","import BaseChart from './base-chart';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Consts from '../../utils/constants';\r\n\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nexport default class NoiseChart extends BaseChart {\r\n @service('data') model;\r\n @service errorHandling;\r\n @service tabService;\r\n @service pdfExport;\r\n @service intl;\r\n @service toolData;\r\n @service plotData;\r\n @service plotDataService;\r\n @service selectionData;\r\n @service componentManager;\r\n\r\n ampLine = [];\r\n adcLine = [];\r\n systemLine = [];\r\n sourceLine = [];\r\n frequencyLine = [];\r\n\r\n minY = 0;\r\n maxY = 0;\r\n\r\n ticks = [];\r\n\r\n fixedTicks = {};\r\n fixedMinY = {};\r\n fixedMaxY = {};\r\n\r\n labels = [];\r\n seriesColors = [];\r\n series = [];\r\n graphLines = [];\r\n\r\n sourceCalculated = false;\r\n\r\n init() {\r\n super.init();\r\n\r\n this.fixedTicks = cloneDeep(this.plotData.defaultNoiseObject);\r\n this.fixedMinY = cloneDeep(this.plotData.defaultNoiseObject);\r\n this.fixedMaxY = cloneDeep(this.plotData.defaultNoiseObject);\r\n\r\n this.set('pdfExport.tabs.noiseChart', this);\r\n }\r\n\r\n didRender() {\r\n super.didRender();\r\n this.draw();\r\n }\r\n\r\n @computed('chartId') get chartType() {\r\n return this.chartId.replace('Chart', '');\r\n }\r\n\r\n _resetPlot(plotData) {\r\n this.setProperties({\r\n ampLine: [],\r\n adcLine: [],\r\n systemLine: [],\r\n sourceLine: [],\r\n frequencyLine: [],\r\n ticks: [],\r\n labels: [],\r\n seriesColors: [],\r\n series: [],\r\n graphLines: [],\r\n minY: plotData.amp[0],\r\n maxY: plotData.amp[0],\r\n sourceCalculated: false,\r\n });\r\n }\r\n\r\n _resetGraphObjects() {\r\n let intl = this.intl,\r\n graphObjects = this.plotData.noiseDistortionGraphObjects;\r\n\r\n Object.keys(graphObjects).forEach((key) => {\r\n let graphObject = graphObjects[key];\r\n if (!graphObject.required || this.model[graphObject.required]) {\r\n this.labels.push(intl.t(graphObject.translation).toString());\r\n this.seriesColors.push(this.toolData.data.colors[graphObject.color]);\r\n this.series.push(graphObject.series);\r\n this.graphLines.push(this[graphObject.graphLine]);\r\n }\r\n });\r\n\r\n if (window.$(`#${this.chartId}`)) {\r\n window.$(`#${this.chartId}`).empty();\r\n }\r\n }\r\n\r\n _removeTicksOutsidePlotScope(frequency, xAxisValues, plotData) {\r\n let xAxisEnd = xAxisValues[xAxisValues.length - 1][0];\r\n\r\n if (Math.floor(frequency[frequency.length - 1]) > xAxisEnd) {\r\n let removeIndex = -1;\r\n\r\n for (let i = 0; i < frequency.length; i++) {\r\n if (frequency[i] > xAxisEnd) {\r\n removeIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n if (removeIndex !== -1) {\r\n // Remove all values that are not being shown on plot.\r\n frequency.splice(removeIndex);\r\n plotData.amp.splice(removeIndex);\r\n plotData.adc.splice(removeIndex);\r\n plotData.system.splice(removeIndex);\r\n if (!this.sourceCalculated) plotData.source.splice(removeIndex);\r\n }\r\n }\r\n }\r\n\r\n _generateTicks(plotData) {\r\n // Generate the y-axis tick marks.\r\n let count = plotData.getStartingPoint(this.minY);\r\n while (count <= this.maxY) this.ticks.push((count += plotData.tickIncrement));\r\n\r\n // So that there is some top margin\r\n if (count - this.maxY < plotData.requiredYPadding) this.ticks.push((count += plotData.tickIncrement));\r\n\r\n if (this.ticks.length > 0) {\r\n this.minY = this.ticks[0];\r\n this.maxY = this.ticks[this.ticks.length - 1];\r\n }\r\n }\r\n\r\n _calculateScale(...scalingGroup) {\r\n let tempMin = Math.min(...scalingGroup),\r\n tempMax = Math.max(...scalingGroup);\r\n\r\n if (this.minY > tempMin) this.minY = tempMin;\r\n if (this.maxY < tempMax) this.maxY = tempMax;\r\n }\r\n\r\n _scale(plotData) {\r\n let _this = this,\r\n type = this.type,\r\n enableDisabledPlot =\r\n Array.isArray(this.fixedTicks[type]) &&\r\n !this.fixedTicks[type].length &&\r\n Array.isArray(this.ticks) &&\r\n this.ticks.length;\r\n\r\n if (!plotData.zoomFitAllowed || this.model.zoomFitScaling || enableDisabledPlot) {\r\n this.fixedMinY[type] = this.minY;\r\n this.fixedMaxY[type] = this.maxY;\r\n this.fixedTicks[type] = this.ticks;\r\n\r\n if (plotData.zoomFitAllowed) {\r\n // This round of scaling should be completed\r\n this.set('model.zoomFitScaling', false);\r\n this.set('model.showZoomFit', false);\r\n }\r\n } else if (\r\n !(\r\n this.fixedTicks[type].length === this.ticks.length &&\r\n this.fixedTicks[type].every(function (v, i) {\r\n return v === _this.ticks[i];\r\n })\r\n )\r\n ) {\r\n this.set('model.showZoomFit', true);\r\n } else {\r\n this.set('model.showZoomFit', false);\r\n }\r\n }\r\n\r\n _generatePlotLines(plotData, frequency, start, end) {\r\n this._resetPlot(plotData);\r\n\r\n if (!Array.isArray(plotData.source)) {\r\n // Convert single point to a graph line\r\n this.sourceLine = [\r\n [start, plotData.source],\r\n [end, plotData.source],\r\n ];\r\n this.sourceCalculated = true;\r\n }\r\n\r\n for (let i = 0; i < frequency.length; i++) {\r\n let x = plotData.amp[i],\r\n y = plotData.adc[i],\r\n z = plotData.system[i],\r\n a = plotData.source[i],\r\n scalingGroup = this.model.showOptionalSourceSettings ? [x, y, z, a] : [x, y, z];\r\n\r\n this._calculateScale(...scalingGroup);\r\n\r\n this.ampLine[i] = [frequency[i], x];\r\n this.adcLine[i] = [frequency[i], y];\r\n this.systemLine[i] = [frequency[i], z];\r\n if (!this.sourceCalculated) this.sourceLine[i] = [frequency[i], a];\r\n }\r\n\r\n this._generateTicks(plotData);\r\n\r\n this._scale(plotData);\r\n\r\n let indexAtFreq = this.plotDataService.noiseArrays.indexAtFreq,\r\n type = this.type;\r\n this.frequencyLine = [\r\n [frequency[indexAtFreq], this.fixedMinY[type]],\r\n [frequency[indexAtFreq], this.fixedMaxY[type]],\r\n ];\r\n }\r\n\r\n draw(force = false) {\r\n let intl = this.intl,\r\n selfRef = this,\r\n plotData = this.plotDataService.noiseArrays.noisePlotData[this.type];\r\n\r\n if (\r\n !force &&\r\n (this.errorHandling.tabError ||\r\n this.errorHandling.isNoiseSimInputsError ||\r\n this.errorHandling.vSupplyError ||\r\n this.errorHandling.isSettlingNoiseError ||\r\n this.errorHandling.isNoiseSimInputsError ||\r\n this.errorHandling.disabledTHDTabError)\r\n )\r\n return;\r\n\r\n let chartElement = document.querySelector(`#${this.chartId}`);\r\n\r\n // Make sure the chart container is there and has width before we initialize the chart with jqplot\r\n if (!(force || (chartElement && chartElement.offsetWidth))) return;\r\n\r\n let yTitle = intl.t(`chart_labels.${this.type}`),\r\n frequency = this.plotDataService.noiseArrays.frequencyArray,\r\n // Get the start and end values of the x axis.\r\n start = frequency[0],\r\n end = Math.min(this.model.samplingRate * 0.5, this.selectionData.selectedAdc.freqMax),\r\n // Get the log tick marks for the x-axis.\r\n xAxisValues = this.setLogTicks(start, end);\r\n\r\n this._removeTicksOutsidePlotScope(frequency, xAxisValues, plotData);\r\n\r\n this._generatePlotLines(plotData, frequency, start, end);\r\n\r\n this._resetGraphObjects();\r\n\r\n let plot = window.jQuery.jqplot(this.chartId, this.graphLines, {\r\n height: 450,\r\n axesDefaults: {\r\n labelRenderer: window.jQuery.jqplot.CanvasAxisLabelRenderer,\r\n },\r\n seriesDefaults: {\r\n showMarker: false,\r\n shadow: false,\r\n rendererOptions: {\r\n smooth: true,\r\n },\r\n },\r\n highlighter: {\r\n show: true,\r\n useAxesFormatters: true,\r\n },\r\n series: selfRef.series,\r\n axes: {\r\n xaxis: {\r\n renderer: window.jQuery.jqplot.LogAxisRenderer,\r\n min: start,\r\n max: end,\r\n label: intl.t('chart_labels.frequency'),\r\n rendererOptions: {\r\n base: 10,\r\n },\r\n ticks: xAxisValues,\r\n tickOptions: {\r\n formatter: selfRef.prettyTickFormatter,\r\n alignTicks: true,\r\n },\r\n pad: 0,\r\n },\r\n yaxis: {\r\n label: yTitle,\r\n tickOptions: {\r\n formatter: selfRef.prettyTickFormatter,\r\n },\r\n min: selfRef.fixedMinY[selfRef.type],\r\n max: selfRef.fixedMaxY[selfRef.type],\r\n ticks: selfRef.fixedTicks[selfRef.type],\r\n pad: 0,\r\n },\r\n },\r\n cursor: {\r\n show: true,\r\n showTooltip: true,\r\n },\r\n grid: {\r\n borderColor: '#E5E5E5',\r\n shadow: false,\r\n background: '#FFFFFF',\r\n },\r\n legend: {\r\n show: true,\r\n location: plotData.legendLocation,\r\n placement: 'insideGrid',\r\n labels: selfRef.labels,\r\n },\r\n seriesColors: selfRef.seriesColors,\r\n });\r\n\r\n let eventCanvasElement = document.querySelector(`#${this.chartId} .jqplot-event-canvas`);\r\n if (eventCanvasElement)\r\n eventCanvasElement.setAttribute(Consts.QA_ATTR_NAME, `${Consts.QA_ATTR_PREFIX}_${this.chartType}_graph`);\r\n\r\n let resizeTimeout;\r\n const onResize = () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => {\r\n if (plot && chartElement && chartElement.offsetWidth > 0) {\r\n plot.replot({ resetAxes: true }); // Re-draw the plot\r\n }\r\n }, 100);\r\n };\r\n window.addEventListener('resize', onResize);\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n {{#each this.model.circuitInfoModals as |infoModal|}}\\r\\n \\r\\n {{/each}}\\r\\n
\",{ moduleName: \"adcdriver/components/circuit-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './circuit-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport ConfigurationData from '../data/configurationdata';\r\n\r\nexport default class CircuitPanel extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service circuitConfigurations;\r\n @service tabService;\r\n\r\n svgReplacements = ConfigurationData.svgReplacements;\r\n svgHiddenGroups = ConfigurationData.svgHiddenGroups;\r\n\r\n @computed('circuitConfigurations.currentCircuitConfig.svg') get svgLocation() {\r\n let svgName = this.circuitConfigurations.currentCircuitConfig.svg;\r\n return svgName ? `circuit-configurations/${svgName}.svg` : null;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"adcdriver/components/controls/adi-input.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './adi-input.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport PrettyNum from '../../utils/pretty-num-wrapper';\r\nimport Utils from '../../utils/utils';\r\nimport Constants from '../../utils/constants';\r\n\r\nconst DEFAULT_PRETTY_NUM_TYPE = 'eng3';\r\n\r\nexport default class AdiInput extends Component {\r\n @service intl;\r\n\r\n tagName = '';\r\n\r\n popover = {\r\n show: false,\r\n message: '',\r\n showDuration: 5000,\r\n triggerElement: '',\r\n triggerEvents: [],\r\n };\r\n\r\n isPretty = false;\r\n\r\n init() {\r\n super.init();\r\n this.set('popover.triggerElement', `#${this.inputId}`);\r\n }\r\n\r\n @computed('value', 'isPretty') get uiValue() {\r\n return this.isPretty ? this.prettyNumFn(this.value) : this.value;\r\n }\r\n\r\n @computed('qaAttrValue') get tooltipAttrText() {\r\n return `${this.qaAttrValue}_msg`;\r\n }\r\n\r\n @action handleUIChange() {\r\n this.set(\r\n 'inputValue',\r\n (this.value || this.value === 0) && this.isPretty ? this.prettyNumFn(this.value) : this.value,\r\n );\r\n }\r\n\r\n @action onKeyDown(event) {\r\n if (Constants.KEYS.ENTER.includes(event.key)) this.handleValueChange();\r\n }\r\n\r\n @action onChange() {\r\n this.handleValueChange();\r\n }\r\n\r\n handleValueChange() {\r\n let values = this.getValues();\r\n\r\n // Ensure handling only happens once even if multiple events are triggered\r\n if (values.hasChanged || values.errorMessage) {\r\n this.set('value', values.raw);\r\n this.setInput((values.raw || values.raw === 0) && values.pretty ? values.pretty : values.raw);\r\n\r\n if (values.hasChanged && this.onValueChange) this.onValueChange(this.value);\r\n\r\n if (values.errorMessage) this.displayErrorPopover(values.errorMessage);\r\n }\r\n }\r\n\r\n setInput(value) {\r\n this.set('inputValue', value);\r\n document.querySelector(`#${this.inputId}`).value = value;\r\n }\r\n\r\n getValues() {\r\n let result = {},\r\n inputValue = document.querySelector(`#${this.inputId}`).value;\r\n\r\n if (this.isPretty) {\r\n result.raw = PrettyNum.userEntryToNumber(inputValue);\r\n\r\n if (isNaN(result.raw) && Utils.isNumeric(inputValue)) {\r\n result.raw = Number(inputValue);\r\n }\r\n\r\n if (isNaN(result.raw)) {\r\n result.raw = this.value;\r\n result.errorMessage = this.intl.t('messages.multiplier_numeric');\r\n }\r\n } else if (Utils.isNumeric(inputValue)) {\r\n // Set the precision if provided\r\n if (this.precision && inputValue.includes('.') && inputValue.length - 1 > Number(this.precision)) {\r\n inputValue = inputValue.slice(0, Number(this.precision) + (inputValue.startsWith('.') ? 0 : 1));\r\n }\r\n\r\n result.raw = Number(inputValue);\r\n } else if (!isNaN(PrettyNum.userEntryToNumber(inputValue))) {\r\n result.errorMessage = this.intl.t('messages.multiplier');\r\n result.raw = this.value;\r\n } else {\r\n result.errorMessage = this.intl.t('messages.numeric');\r\n result.raw = this.value;\r\n }\r\n\r\n if (this.isPretty) {\r\n result.pretty = this.prettyNumFn(result.raw);\r\n }\r\n\r\n result.hasChanged = !(this.value === result.raw);\r\n\r\n return result;\r\n }\r\n\r\n displayErrorPopover(message) {\r\n let selfRef = this;\r\n this.set('popover.message', message);\r\n this.set('popover.show', true);\r\n\r\n this.popoverTimeout = setTimeout(() => {\r\n if (selfRef._state != 'inDOM') return;\r\n selfRef.set('popover.show', false);\r\n selfRef.set('popover.message', '');\r\n }, this.popover.showDuration);\r\n }\r\n\r\n prettyNumFn(value) {\r\n let prettyNumType = this.prettyNumType || DEFAULT_PRETTY_NUM_TYPE;\r\n return prettyNumType in PrettyNum ? PrettyNum[prettyNumType](value) : value;\r\n }\r\n}\r\n","\nimport Mixin from '@ember/object/mixin';\n\n/**\n Implements some standard methods for copying an object. Add this mixin to\n any object you create that can create a copy of itself. This mixin is\n added automatically to the built-in array.\n\n You should generally implement the `copy()` method to return a copy of the\n receiver.\n\n @class Copyable\n*/\n// eslint-disable-next-line ember/no-new-mixins\nexport default Mixin.create({\n /**\n __Required.__ You must implement this method to apply this mixin.\n\n Override to return a copy of the receiver. Default implementation raises\n an exception.\n\n @method copy\n @param {Boolean} deep if `true`, a deep copy of the object should be made\n @return {Object} copy of receiver\n */\n copy: null\n});\n","import { assert } from '@ember/debug';\nimport EmberObject from '@ember/object';\nimport Copyable from './copyable';\n\nfunction _copy(obj, deep, seen, copies) {\n // primitive data types are immutable, just return them.\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n let ret, loc;\n\n // avoid cyclical loops\n if (deep && (loc = seen.indexOf(obj)) >= 0) {\n return copies[loc];\n }\n\n if (deep) {\n seen.push(obj);\n }\n\n // IMPORTANT: this specific test will detect a native array only. Any other\n // object will need to implement Copyable.\n if (Array.isArray(obj)) {\n ret = obj.slice();\n\n if (deep) {\n copies.push(ret);\n loc = ret.length;\n\n while (--loc >= 0) {\n ret[loc] = _copy(ret[loc], deep, seen, copies);\n }\n }\n } else if (Copyable.detect(obj)) {\n ret = obj.copy(deep, seen, copies);\n if (deep) {\n copies.push(ret);\n }\n } else if (obj instanceof Date) {\n ret = new Date(obj.getTime());\n if (deep) {\n copies.push(ret);\n }\n } else {\n assert(\n 'Cannot clone an EmberObject that does not implement Copyable',\n !(obj instanceof EmberObject) || Copyable.detect(obj)\n );\n\n ret = {};\n if (deep) {\n copies.push(ret);\n }\n\n let key;\n for (key in obj) {\n // support Null prototype\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n continue;\n }\n\n // Prevents browsers that don't respect non-enumerability from\n // copying internal Ember properties\n if (key.substring(0, 2) === '__') {\n continue;\n }\n\n ret[key] = deep ? _copy(obj[key], deep, seen, copies) : obj[key];\n }\n }\n\n return ret;\n}\n\n/**\n Creates a shallow copy of the passed object. A deep copy of the object is\n returned if the optional `deep` argument is `true`.\n\n If the passed object implements the `Copyable` interface, then this\n function will delegate to the object's `copy()` method and return the\n result. See `Copyable` for further details.\n\n For primitive values (which are immutable in JavaScript), the passed object\n is simply returned.\n\n @function copy\n @param {Object} obj The object to clone\n @param {Boolean} [deep=false] If true, a deep copy of the object is made.\n @return {Object} The copied object\n*/\nexport default function copy(obj, deep) {\n // fast paths\n if ('object' !== typeof obj || obj === null) {\n return obj; // can't copy primitives\n }\n\n if (!Array.isArray(obj) && Copyable.detect(obj)) {\n return obj.copy(deep);\n }\n\n return _copy(obj, deep, deep ? [] : null, deep ? [] : null);\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n \\r\\n {{#if this.prompt}}\\r\\n \\r\\n {{/if}}\\r\\n {{#each this.options as |item|}}\\r\\n {{#if item.divider}}\\r\\n \\r\\n {{else}}\\r\\n \\r\\n {{/if}}\\r\\n {{/each}}\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/controls/custom-select.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './custom-select.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed, action } from '@ember/object';\r\nimport { copy } from 'ember-copy';\r\n\r\nexport default class CustomSelect extends Component {\r\n tagName = '';\r\n\r\n idField = 'id';\r\n descriptionField = 'description';\r\n\r\n @action onChange() {\r\n let selectElement = document.querySelector(`#${this.selectId}`);\r\n if (selectElement) {\r\n let selectedIndex = this.prompt ? selectElement.selectedIndex - 1 : selectElement.selectedIndex;\r\n this.set('value', this.content[selectedIndex]);\r\n }\r\n\r\n if (this.onValueChange) this.onValueChange();\r\n }\r\n\r\n @computed('qaAttrValue', 'selectId') get internalQaAttrValue() {\r\n return this.qaAttrValue || this.selectId;\r\n }\r\n\r\n @computed('value', 'content.[]') get options() {\r\n let content = copy(this.content),\r\n tmpContent = [],\r\n id = this.value[this.idField];\r\n\r\n if (typeof content === 'undefined' || !Array.isArray(content)) return [];\r\n\r\n for (var i = 0; i < content.length; i++) {\r\n var item = content[i];\r\n tmpContent.push({\r\n id: item[this.idField],\r\n description: item[this.descriptionField],\r\n selected: item.id == id,\r\n isDisabled: item.isDisabled,\r\n divider: item.divider,\r\n });\r\n }\r\n\r\n return tmpContent;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\",{ moduleName: \"adcdriver/components/controls/svg-widget.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './svg-widget.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed, action } from '@ember/object';\r\nimport Utils from '../../utils/utils';\r\nimport Constants from '../../utils/constants';\r\nimport PrettyNum from '../../utils/pretty-num-wrapper';\r\n\r\nexport default class SvgWidget extends Component {\r\n tagName = '';\r\n\r\n location = null;\r\n replacements = {};\r\n\r\n @computed('location', 'replacements.[]', 'hiddenGroups.[]', 'tabLastUpdateDate') get lastUpdateDate() {\r\n return new Date();\r\n }\r\n\r\n @action handleSvgRender(element) {\r\n let svgElement = element.querySelector('svg'),\r\n modifyElement = (elementToModify, textToReplace, replacement, qaAttrValue) => {\r\n if (elementToModify) {\r\n elementToModify.innerHTML = elementToModify.innerHTML.replace(textToReplace, replacement);\r\n if (qaAttrValue)\r\n elementToModify.setAttribute(\r\n Constants.QA_ATTR_NAME,\r\n `${Constants.QA_ATTR_PREFIX}_ckt_${qaAttrValue}_val`,\r\n );\r\n }\r\n };\r\n\r\n if (svgElement) {\r\n Object.keys(this.replacements).forEach((key) => {\r\n let config = this.replacements[key],\r\n modelValue = this.get(`model.${config.reference}`),\r\n elementsToModify = [];\r\n\r\n if (!config.link) {\r\n let replacementValue = Utils.isNumeric(modelValue) ? PrettyNum.eng3(modelValue) : modelValue;\r\n if (config.calculate) {\r\n replacementValue = PrettyNum.eng3(config.calculate(modelValue));\r\n }\r\n elementsToModify = Object.values(svgElement.querySelectorAll('tspan')).filter((element) =>\r\n element.innerHTML.includes(key),\r\n );\r\n elementsToModify.push(\r\n ...Object.values(svgElement.querySelectorAll('text')).filter((element) =>\r\n element.innerHTML.includes(key),\r\n ),\r\n );\r\n elementsToModify.forEach((elementToModify) =>\r\n modifyElement(elementToModify, key, replacementValue, config.qaAttrValue || config.reference),\r\n );\r\n } else {\r\n let datasheet = this.get(`model.${config.link}`),\r\n linkHTML = `${modelValue}`;\r\n\r\n elementsToModify = Object.values(svgElement.querySelectorAll('text')).filter(\r\n (element) => element.innerHTML === key,\r\n );\r\n elementsToModify.forEach((elementToModify) =>\r\n modifyElement(elementToModify, key, linkHTML, config.qaAttrValue || config.reference),\r\n );\r\n }\r\n });\r\n\r\n (this.hiddenGroups || [])\r\n .filter((hiddenGroup) => hiddenGroup.meetsRequirements(this.model))\r\n .forEach((hiddenGroup) => {\r\n let hiddenElement = document.querySelector(`#${hiddenGroup.key}`);\r\n /**\r\n * NOTE: Anything that modifies the css instead of the element itself will\r\n * not be reflected in the download.\r\n */\r\n if (hiddenElement) hiddenElement.style.display = 'none'; //hiddenElement.classList.add('hidden');\r\n });\r\n\r\n svgElement.setAttribute(Constants.QA_ATTR_NAME, `${Constants.QA_ATTR_PREFIX}_ckt`);\r\n }\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n\t{{!-- DC Input Signal --}}\\r\\n\t\\r\\n
\",{ moduleName: \"adcdriver/components/dc-tab.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './dc-tab.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class DcTab extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n\r\n dcInputSignalBodyArgs = {};\r\n\r\n init() {\r\n super.init();\r\n\r\n this.dcInputSignalBodyArgs = {\r\n analogFrontEndDesignArticleLink: this.intl.t('urls.articles.frontEndDesign'),\r\n analogLtSpiceSimulatingSarArticleLink: this.intl.t('urls.articles.ltSpiceSimulatingSar'),\r\n };\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/driver-performance-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './driver-performance-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class DriverPerformancePanel extends Component {\r\n @service tabService;\r\n\r\n tagName = '';\r\n\r\n updateAppData = () => {};\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:default>\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n <:footer as |closeDialog|>\\r\\n \\r\\n \\r\\n
\\r\\n\",{ moduleName: \"adcdriver/components/driver-select.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './driver-select.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { alias } from '@ember/object/computed';\r\nimport { action } from '@ember/object';\r\nimport { tracked } from '@glimmer/tracking';\r\n\r\nimport Constants from '../utils/constants';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport Utils from '../utils/utils';\r\n\r\nimport {\r\n SlickDataView,\r\n SlickGrid,\r\n SlickRowSelectionModel,\r\n SlickAutoTooltips,\r\n SlickGroupItemMetadataProvider,\r\n} from 'slickgrid';\r\nimport 'slickgrid/dist/styles/css/slick-icons.css';\r\nimport 'slickgrid/dist/styles/css/slick-alpine-theme.css';\r\nimport $ from 'jquery';\r\n\r\nexport default class DriverSelect extends Component {\r\n tagName = '';\r\n\r\n @service('aditools-analytics') analytics;\r\n @service intl;\r\n @service urlData;\r\n @service('data') model;\r\n @service selectionData;\r\n @service driverService;\r\n @service driverSupplyService;\r\n @service hashDataService;\r\n @service componentManager;\r\n @service partData;\r\n\r\n qaAttrValue = 'sel_a_driver';\r\n gridId = 'driver-select-grid';\r\n headerColumnRows = 1;\r\n\r\n @alias('selectionData.selectedDriver') selectedItem;\r\n\r\n @alias('selectionData.previousDriver') previousItem;\r\n\r\n @alias('selectionData.selectedAdc') selectedAdc;\r\n\r\n @alias('selectionData.driverInputTypeOptions') driverInputTypeOptions;\r\n\r\n @tracked frozenColumn = 1;\r\n @tracked pstLinks = [\r\n {\r\n href: {\r\n all: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.OPAMPS}`,\r\n inThisTool: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.OPAMPS}#/p0=${this.urlData.opAmpFilterString}`,\r\n },\r\n name: {\r\n all: this.intl.t('parametric_search.op_amps.all'),\r\n inThisTool: this.intl.t('parametric_search.op_amps.in_this_tool'),\r\n },\r\n },\r\n {\r\n href: {\r\n all: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.DIFFAMPS}`,\r\n inThisTool: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.DIFFAMPS}#/p0=${this.urlData.diffAmpFilterString}`,\r\n },\r\n name: {\r\n all: this.intl.t('parametric_search.diff_amps.all'),\r\n inThisTool: this.intl.t('parametric_search.diff_amps.in_this_tool'),\r\n },\r\n },\r\n ];\r\n @tracked data = this.model.selectableDriverOptions;\r\n @tracked options = {\r\n asyncEditorLoading: true,\r\n showHeaderRow: true,\r\n resizable: true,\r\n forceFitColumns: false,\r\n multiSelect: false,\r\n headerRowHeight: 30,\r\n rowHeight: 25,\r\n autoHeight: false,\r\n enableColumnReorder: false,\r\n multiColumnSort: true,\r\n numberedMultiColumnSort: true,\r\n tristateMultiColumnSort: true,\r\n frozenColumn: this.frozenColumn || 0,\r\n explicitInitialization: true,\r\n };\r\n @tracked columns = [];\r\n @tracked errorCells = {};\r\n @tracked selectedPart = '';\r\n // Configuration for grouping\r\n @tracked groupItemMetadataProvider = null;\r\n @tracked groupingConfig = {\r\n getter(value) {\r\n return !value.recommended;\r\n },\r\n displayTotalsRow: false,\r\n formatter: (g) => {\r\n let part = this.selectedAdc.partCore;\r\n if (g.value == false) {\r\n // Actually true, but getter inverts it\r\n let qaAttr = `${Constants.QA_ATTR_NAME}=\"${Constants.QA_ATTR_PREFIX}_${this.qaAttrValue}_dlg_rec_drivers_lbl\"`;\r\n return `${this.intl.t('driver_modal.subheadings.recommended_drivers_for', {\r\n part,\r\n })}`;\r\n } else {\r\n let qaAttr = `${Constants.QA_ATTR_NAME}=\"${Constants.QA_ATTR_PREFIX}_${this.qaAttrValue}_dlg_rec_drivers_on_product_pg_link\"`;\r\n return ``;\r\n }\r\n },\r\n };\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Component Actions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n @action insertingGrid() {\r\n const selectedItem = this.selectedItem.part.split('|')[0];\r\n this.selectedPart = this.data.find((item) => item.part === selectedItem).part;\r\n\r\n this.constructColumns();\r\n this.createSlickGrid();\r\n this._resetFilters();\r\n }\r\n\r\n @action resetFilters() {\r\n this._resetFilters();\r\n\r\n this.analytics.setWebEvent(this.partData.toolName, 'Reset Filters', `Selected driver: ${this.selectedPart}`);\r\n }\r\n\r\n @action selectItem(closeDialog) {\r\n const selectedDriver = this.data.find((item) => item.part === this.selectedPart);\r\n this.set('previousItem', this.selectionData.selectedDriver);\r\n this.set('selectedItem', selectedDriver);\r\n\r\n this.model.updateShowVariant('driver');\r\n this.model.switchVariant('driver');\r\n\r\n this.model.overrideRCValues({ resetRext: true });\r\n this.model.setDefaultTopology();\r\n\r\n this.driverService.setTopologyStatus();\r\n\r\n this.driverService.defaultRf();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n\r\n this.hashDataService.setUrlParameter('model.showDriverVariant');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n this.hashDataService.setUrlParameter('model.rext');\r\n this.hashDataService.setUrlParameter('model.cext');\r\n\r\n this.hashDataService.setUrlParameterWithSelectedPart('driver');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n\r\n this.hashDataService.setUrlParameterForObject('showDriverVariants');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n\r\n this.analytics.setWebEvent(this.partData.toolName, 'Selected Driver', `${this.selectedPart}`);\r\n\r\n closeDialog();\r\n }\r\n\r\n @action screenResized() {\r\n if (this.grid) {\r\n this.grid.resizeCanvas();\r\n }\r\n }\r\n\r\n constructColumns() {\r\n // Formatters\r\n const starFormatter = (row, cell, value, columnDef, dataContext) => {\r\n let recommended = dataContext.recommended;\r\n if (recommended)\r\n return ``;\r\n return '';\r\n };\r\n // hyperlink, maybe bold\r\n const hyperlinkFormatterBold = (row, cell, value, columnDef, dataContext) => {\r\n let recommended = dataContext.recommended,\r\n link = dataContext.datasheet,\r\n // If there is no datasheet url, the datasheet link will not show in the column\r\n datasheetHtml = link\r\n ? ``\r\n : '';\r\n return value\r\n ? `${value}${datasheetHtml}`\r\n : '';\r\n };\r\n const prettyNumFormatter = (row, cell, value, columnDef) => {\r\n return Utils.formatCell(columnDef.dataType, PrettyNum.eng3(value));\r\n };\r\n const currencyFormatter = (row, cell, value, columnDef) => {\r\n let displayValue = value;\r\n\r\n if (!isNaN(value) && value !== null && value !== false && value !== true)\r\n displayValue = '$' + Number(value).toFixed(2).toString();\r\n else displayValue = '';\r\n\r\n return Utils.formatCell(columnDef.dataType, displayValue);\r\n };\r\n const numericFormatter = (row, cell, value, columnDef) => {\r\n return Utils.formatCell(columnDef.dataType, value);\r\n };\r\n\r\n this.columns = [\r\n {\r\n id: 'vfoe',\r\n name: '',\r\n field: 'recommended',\r\n width: 30,\r\n originalWidth: 30,\r\n formatter: starFormatter,\r\n dataType: 'boolean',\r\n },\r\n {\r\n name: this.intl.t('column_headers.device'),\r\n field: 'part',\r\n id: 'part',\r\n qaAttrValue: 'dev',\r\n width: 115,\r\n originalWidth: 115,\r\n sortable: true,\r\n dataType: 'string',\r\n formatterType: 'hyperlink',\r\n formatter: hyperlinkFormatterBold,\r\n toolTip: this.intl.t('column_headers.device'),\r\n },\r\n {\r\n name: this.intl.t('column_headers.driver_type'),\r\n field: 'driverTypeFormatted',\r\n id: 'type',\r\n qaAttrValue: 'typ',\r\n width: 105,\r\n sortable: true,\r\n dataType: 'string',\r\n options: this.driverInputTypeOptions,\r\n toolTip: this.intl.t('column_headers.driver_type'),\r\n },\r\n {\r\n id: 'noiseDensity',\r\n name: `${this.intl.t('column_headers.vnoise_density')} (${this.intl.t('units.v_rthz')})`,\r\n field: 'vn',\r\n width: 180,\r\n originalWidth: 180,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.vnoise_density')} (${this.intl.t('units.v_rthz')})`,\r\n },\r\n {\r\n id: 'slewRateVus',\r\n name: `${this.intl.t('column_headers.slew_rate')} (${this.intl.t('units.v_us')})`,\r\n field: 'slewRateVus',\r\n width: 135,\r\n originalWidth: 135,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.slew_rate')} (${this.intl.t('units.v_us')})`,\r\n },\r\n {\r\n id: 'GBWP',\r\n name: `${this.intl.t('column_headers.gbw')} (${this.intl.t('units.hz')})`,\r\n field: 'GBWP',\r\n width: 110,\r\n originalWidth: 110,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.gbw')} (${this.intl.t('units.hz')})`,\r\n },\r\n {\r\n id: 'is',\r\n name: `${this.intl.t('column_headers.iq')} (${this.intl.t('units.a')})`,\r\n field: 'is',\r\n width: 110,\r\n originalWidth: 110,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.iq')} (${this.intl.t('units.a')})`,\r\n },\r\n {\r\n id: 'VsMin',\r\n name: `${this.intl.t('column_headers.vs_span_min')} (${this.intl.t('units.v')})`,\r\n field: 'VsMin',\r\n width: 130,\r\n originalWidth: 130,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.vs_span_min')} (${this.intl.t('units.v')})`,\r\n },\r\n {\r\n id: 'VsMax',\r\n name: `${this.intl.t('column_headers.vs_span_max')} (${this.intl.t('units.v')})`,\r\n field: 'VsMax',\r\n width: 130,\r\n originalWidth: 130,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: prettyNumFormatter,\r\n toolTip: `${this.intl.t('column_headers.vs_span_max')} (${this.intl.t('units.v')})`,\r\n },\r\n {\r\n id: 'Price',\r\n name: `${this.intl.t('column_headers.price')} (${this.intl.t('units.price')})`,\r\n field: 'Price',\r\n width: 130,\r\n originalWidth: 130,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'pretty-numeric',\r\n formatter: currencyFormatter,\r\n toolTip: `${this.intl.t('column_headers.price')} (${this.intl.t('units.price')})`,\r\n },\r\n {\r\n id: 'numAmps',\r\n name: this.intl.t('column_headers.amps_per_package'),\r\n field: 'numAmps',\r\n width: 125,\r\n originalWidth: 125,\r\n sortable: true,\r\n defaultFilterOption: 'greaterthan',\r\n dataType: 'numeric',\r\n formatter: numericFormatter,\r\n toolTip: this.intl.t('column_headers.amps_per_package'),\r\n },\r\n {\r\n id: 'package',\r\n name: this.intl.t('column_headers.package'),\r\n field: 'package',\r\n width: 200,\r\n originalWidth: 200,\r\n dataType: 'string',\r\n sortable: false,\r\n toolTip: this.intl.t('column_headers.package'),\r\n },\r\n ];\r\n }\r\n\r\n createSlickGrid() {\r\n // add selected property to data\r\n this.data = this.data.map((item) => {\r\n return {\r\n ...item,\r\n selected: item.part === this.selectedPart,\r\n };\r\n });\r\n\r\n this.columnFilters = {};\r\n var selfRef = this;\r\n\r\n // Initialize CSS Variable for Header\r\n const cssRoot = document.querySelector(':root');\r\n this.headerColumnRows = 1;\r\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\r\n\r\n this.groupItemMetadataProvider = new SlickGroupItemMetadataProvider();\r\n this.groupItemMetadataProvider.getGroupRowMetadata = () => {\r\n let columns = [];\r\n for (var i = 0; i <= this.frozenColumn; i++) columns[i] = this.columns[i];\r\n\r\n columns.push({\r\n colspan: '*',\r\n formatter: (row, cell, value, columnDef, item) => item.title,\r\n editor: null,\r\n });\r\n\r\n return {\r\n selectable: false,\r\n focusable: false,\r\n cssClasses: 'slick-group',\r\n columns: columns,\r\n };\r\n };\r\n\r\n if ($('#' + this.gridId).length) {\r\n $('#' + this.gridId).empty();\r\n\r\n let groupItemMetadataProvider = this.groupItemMetadataProvider;\r\n this.dataView = new SlickDataView({ inlineFilters: true, groupItemMetadataProvider });\r\n this.dataView.setItems(this.data);\r\n\r\n this.grid = new SlickGrid(`#${this.gridId}`, this.dataView, this.columns, this.options);\r\n\r\n this.grid.setSelectionModel(new SlickRowSelectionModel({ selectActiveRow: true }));\r\n\r\n this.grid.registerPlugin(new SlickAutoTooltips({ enableForHeaderCells: true }));\r\n if (groupItemMetadataProvider) {\r\n this.grid.registerPlugin(groupItemMetadataProvider);\r\n }\r\n\r\n // wire up model events to drive the grid\r\n this.dataView.onRowCountChanged.subscribe(() => {\r\n this.grid.updateRowCount();\r\n this.grid.render();\r\n });\r\n\r\n this.dataView.onRowsChanged.subscribe((_e, data) => {\r\n if (this.grid) {\r\n this.grid.invalidateRows(data.rows);\r\n this.grid.render();\r\n if (this.selectedItem) {\r\n this.scrollSelectedPartToTop(this.selectedPart, this.dataView, this.grid);\r\n }\r\n }\r\n });\r\n\r\n // Selection handling\r\n this.grid.onSelectedRowsChanged.subscribe(() => {\r\n const selectedRowIndices = this.grid.getSelectedRows(); // Get the indices of selected rows\r\n if (selectedRowIndices && selectedRowIndices.length > 0) {\r\n const selectedData = selectedRowIndices.map((index) => {\r\n return this.dataView.getItem(index); // Assuming you're using dataView\r\n });\r\n this.selectedPart = selectedData[0].part;\r\n }\r\n });\r\n\r\n // set the dataView metadata defined in driver-select\r\n const getItemMetadata = function (i) {\r\n const item = selfRef.dataView.rows[i];\r\n if (item === undefined) {\r\n return null;\r\n }\r\n // overrides for grouping rows\r\n if (item.__group) {\r\n return selfRef.dataView._options.groupItemMetadataProvider.getGroupRowMetadata(item);\r\n }\r\n // overrides for totals rows\r\n if (item.__groupTotals) {\r\n return selfRef.dataView._options.groupItemMetadataProvider.getTotalsRowMetadata(item);\r\n }\r\n return null;\r\n };\r\n this.dataView.getItemMetadata = this.dataViewMetadata(getItemMetadata);\r\n\r\n // Filtering\r\n $(this.grid.getHeaderRow()).delegate(':input', 'change keyup', function () {\r\n let columnId = $(this).data('columnId');\r\n if (columnId != null) {\r\n selfRef.columnFilters[columnId] = $.trim($(this).val());\r\n selfRef.dataView.refresh();\r\n }\r\n });\r\n\r\n this.grid.onHeaderCellRendered.subscribe((_e, data) => {\r\n $(data.node).empty();\r\n $(selfRef.generateTitleFromColumn(data.column)).appendTo(data.node);\r\n });\r\n\r\n // Populate the header row with the filters.\r\n this.grid.onHeaderRowCellRendered.subscribe(function (e, args) {\r\n $(args.node).empty();\r\n let filterQaAttrValue = args.column.qaAttrValue || args.column.id;\r\n\r\n if (args.column.options) {\r\n let qaAttr = `${Constants.QA_ATTR_NAME}=\"${Constants.QA_ATTR_PREFIX}_${selfRef.qaAttrValue}_dlg_${filterQaAttrValue}_dd\"`;\r\n let inputString = ``;\r\n\r\n $(inputString)\r\n .data('columnId', args.column.id)\r\n .val(selfRef.columnFilters[args.column.id])\r\n .appendTo(args.node);\r\n } else {\r\n switch (args.column.dataType) {\r\n case 'numeric':\r\n case 'pretty-numeric': {\r\n $(\r\n '',\r\n )\r\n .data('columnId', args.column.id)\r\n .val(selfRef.columnFilters[args.column.id])\r\n .appendTo(args.node);\r\n\r\n let qaAttr = `${Constants.QA_ATTR_NAME}=\"${Constants.QA_ATTR_PREFIX}_${selfRef.qaAttrValue}_dlg_${filterQaAttrValue}_txtbx\"`;\r\n $(\r\n ``,\r\n )\r\n .data('columnId', args.column.id)\r\n .val(selfRef.columnFilters[args.column.id])\r\n .appendTo(args.node);\r\n\r\n break;\r\n }\r\n case 'string': {\r\n let qaAttr = `${Constants.QA_ATTR_NAME}=\"${Constants.QA_ATTR_PREFIX}_${selfRef.qaAttrValue}_dlg_${filterQaAttrValue}_txtbx\"`;\r\n $(\r\n ``,\r\n )\r\n .data('columnId', args.column.id)\r\n .val(selfRef.columnFilters[args.column.id])\r\n .appendTo(args.node);\r\n\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Change the selected row on row click.\r\n this.grid.onClick.subscribe(function (e) {\r\n var cell = selfRef.grid.getCellFromEvent(e);\r\n\r\n if (e && e.target && e.target.className && e.target.className.includes('no-row-select')) return;\r\n else selfRef.grid.setSelectedRows([cell.row]);\r\n });\r\n\r\n // Hovering\r\n this.grid.onMouseEnter.subscribe((_e, args) => {\r\n const rowObj = this.getDesiredRowObject(_e, args.grid);\r\n if (rowObj) {\r\n rowObj.classList.add('row-hover');\r\n if (!rowObj.classList.contains('even')) {\r\n rowObj.classList.remove('odd');\r\n }\r\n }\r\n });\r\n this.grid.onMouseLeave.subscribe((_e, args) => {\r\n const rowObj = this.getDesiredRowObject(_e, args.grid);\r\n if (rowObj) {\r\n rowObj.classList.remove('row-hover');\r\n if (!rowObj.classList.contains('even')) {\r\n rowObj.classList.add('odd');\r\n }\r\n }\r\n });\r\n\r\n // Sorting\r\n this.grid.onSort.subscribe(function (e, args) {\r\n var columns = args.sortCols;\r\n if (columns.length > 0) {\r\n selfRef.data.sort(function (dataRow1, dataRow2) {\r\n let result = 0;\r\n for (let i = 0; i < columns.length; i++) {\r\n var field = columns[i].sortCol.field,\r\n sign = columns[i].sortAsc ? 1 : -1,\r\n value1 = dataRow1[field],\r\n value2 = dataRow2[field];\r\n\r\n switch (columns[i].sortCol.dataType) {\r\n case 'numeric':\r\n case 'pretty-numeric': {\r\n value1 = Number(PrettyNum.userEntryToNumber(value1));\r\n value2 = Number(PrettyNum.userEntryToNumber(value2));\r\n break;\r\n }\r\n }\r\n\r\n result = (value1 == value2 ? 0 : value1 > value2 ? 1 : -1) * sign;\r\n if (result !== 0) return result;\r\n }\r\n return result;\r\n });\r\n } else {\r\n selfRef.defaultSort();\r\n }\r\n\r\n selfRef.dataView.setItems(selfRef.data);\r\n selfRef.dataView.refresh();\r\n });\r\n\r\n // Turn on the lights!\r\n this.grid.init();\r\n\r\n // All of the code so far in the modifier has been happening _during_ rendering.\r\n // We're set up, but we don't want to perform a DataView update while we're still rendering, so punt it a micro-cycle.\r\n Promise.resolve().then(() => {\r\n this.dataView.beginUpdate();\r\n this.dataView.setItems(this.data);\r\n\r\n if (this.groupingConfig) {\r\n this.dataView.setGrouping(this.groupingConfig);\r\n }\r\n\r\n this.dataView.setFilterArgs({\r\n selfRef: this,\r\n PrettyNum: PrettyNum,\r\n });\r\n // Grid filter function - gets passed into and created by SlickGrid.\r\n this.dataView.setFilter(function (item, filterArguments) {\r\n var _selfRef = filterArguments.selfRef;\r\n var _PrettyNum = filterArguments.PrettyNum;\r\n\r\n for (var columnId in _selfRef.columnFilters) {\r\n if (typeof columnId !== 'undefined' && _selfRef.columnFilters[columnId] !== '') {\r\n var c = _selfRef.grid.getColumns()[_selfRef.grid.getColumnIndex(columnId)];\r\n var itemVal = item[c.field];\r\n\r\n var filterOptionId = '#' + columnId + '_filteroption';\r\n var filterTextId = '#' + columnId + '_filtertext';\r\n var foundMatch = false;\r\n\r\n switch (c.dataType) {\r\n case 'numeric':\r\n case 'pretty-numeric': {\r\n const value = _PrettyNum.userEntryToNumber(\r\n document.querySelector(filterTextId).value,\r\n );\r\n if (\r\n !_selfRef.filterTypeTextColumn(_PrettyNum.userEntryToNumber(itemVal), {\r\n type: document.querySelector(filterOptionId).value,\r\n text: !isNaN(value) ? value : '',\r\n })\r\n )\r\n foundMatch = true;\r\n\r\n break;\r\n }\r\n case 'string':\r\n if (\r\n !item[c.field]\r\n .toLowerCase()\r\n .match(_selfRef.columnFilters[columnId].toLowerCase())\r\n )\r\n foundMatch = true;\r\n\r\n break;\r\n default:\r\n if (\r\n !item[c.field]\r\n .toLowerCase()\r\n .match(_selfRef.columnFilters[columnId].toLowerCase())\r\n )\r\n foundMatch = true;\r\n\r\n break;\r\n }\r\n\r\n if (foundMatch) return 0;\r\n }\r\n }\r\n\r\n return 1;\r\n });\r\n\r\n this.dataView.endUpdate();\r\n if (this.grid) {\r\n this.dataView.syncGridSelection(this.grid, true);\r\n }\r\n\r\n // set data-qa-element on selected-row and first-row\r\n this.grid.onRendered.subscribe(() => {\r\n // Get the container element where the rows are rendered\r\n const container = this.grid.getContainerNode();\r\n // Find all row elements within the container\r\n const rowElements = container.querySelectorAll('.slick-row');\r\n // Loop through each row element\r\n rowElements.forEach((rowElement) => {\r\n // Check if the row has the specified classes before adding the attribute\r\n if (rowElement.classList.contains('selected-row')) {\r\n rowElement.setAttribute(\r\n 'data-qa-element',\r\n `${Constants.QA_ATTR_PREFIX}_${this.qaAttrValue}_dlg_sel_row`,\r\n );\r\n }\r\n\r\n if (rowElement.classList.contains('first-row')) {\r\n rowElement.setAttribute(\r\n 'data-qa-element',\r\n `${Constants.QA_ATTR_PREFIX}_${this.qaAttrValue}_dlg_1st_row`,\r\n );\r\n }\r\n });\r\n });\r\n\r\n window.addEventListener('resize', this.screenResized);\r\n // Delay needed on resize so that Firefox gets benefit - the need for it is a hack, anyway\r\n setTimeout(() => {\r\n this.screenResized();\r\n }, 0);\r\n });\r\n }\r\n }\r\n\r\n dataViewMetadata(old_metadata_provider) {\r\n let selfRef = this;\r\n\r\n return function (row) {\r\n let item = selfRef.dataView.getItem(row);\r\n let ret = old_metadata_provider(row) || {};\r\n\r\n ret.cssClasses = ret.cssClasses || '';\r\n if (row === 1) ret.cssClasses += ' first-row';\r\n\r\n if (item) {\r\n if ('disabled' in item && item.disabled) {\r\n ret.cssClasses += ' disabled-row';\r\n ret.selectable = false;\r\n }\r\n\r\n if (item['selected']) ret.cssClasses += ' selected-row';\r\n\r\n // Set slew validation.\r\n if (typeof item.slewRateVus !== 'undefined') {\r\n if (typeof this.errorCells === 'undefined') {\r\n this.errorCells = { ...this.errorCells, [row]: {} };\r\n }\r\n\r\n if (item.slewRateVus < selfRef.requiredSlew) {\r\n this.errorCells = { ...this.errorCells, [row]: { slewRateVus: 'error-cell' } };\r\n } else {\r\n this.errorCells = { ...this.errorCells, [row]: { slewRateVus: '' } };\r\n }\r\n }\r\n\r\n selfRef.grid.setCellCssStyles('errorCells', this.errorCells);\r\n }\r\n\r\n if (ret.cssClasses) ret.cssClasses = ret.cssClasses.trim();\r\n\r\n return ret;\r\n };\r\n }\r\n\r\n generateTitleFromColumn(column) {\r\n let numberedMultiColumnSortElem = '';\r\n const cssRoot = document.querySelector(':root');\r\n if (column.sortable) {\r\n const options = this.grid?.getOptions();\r\n numberedMultiColumnSortElem =\r\n options && options.numberedMultiColumnSort ? '' : '';\r\n }\r\n let fieldContextRow = '';\r\n if (typeof column.fieldContext !== 'undefined') {\r\n fieldContextRow = `${column.fieldContext}`;\r\n if (this.headerColumnRows < 2) {\r\n this.headerColumnRows = 2;\r\n }\r\n }\r\n if (typeof column.unit != 'undefined' && column.unit !== null) {\r\n this.headerColumnRows =\r\n this.headerColumnRows === 3 ||\r\n (this.headerColumnRows === 2 && typeof column.fieldContext !== 'undefined')\r\n ? 3\r\n : 2;\r\n const unitText = column.unit && column.unit != 'n/a' ? column.unit : '';\r\n const minMaxText = column.minMaxTyp ?? '';\r\n let contextText = ' ';\r\n if (unitText !== '' && minMaxText !== '') {\r\n contextText = `${minMaxText} | ${unitText}`;\r\n } else if (unitText !== '') {\r\n contextText = unitText;\r\n }\r\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\r\n return (\r\n // Avoid newlines in the generated HTML\r\n '
' +\r\n `${column.name}` +\r\n `${numberedMultiColumnSortElem}
` +\r\n fieldContextRow +\r\n `${contextText}
`\r\n );\r\n } else {\r\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\r\n if (column.sortable) {\r\n return (\r\n `
` +\r\n `${column.name}${numberedMultiColumnSortElem}
${fieldContextRow}
\r\n `\r\n );\r\n } else {\r\n return `
${column.name}${fieldContextRow}
\r\n `;\r\n }\r\n }\r\n }\r\n\r\n getDesiredRowObject(e, gridObj) {\r\n const cell = gridObj.getCellFromEvent(e);\r\n let result;\r\n if (cell) {\r\n const frozenColumn = gridObj.getOptions().frozenColumn;\r\n if (cell.cell > frozenColumn) {\r\n result = gridObj.getCellNode(cell.row, 0)?.parentElement;\r\n } else {\r\n //left table row is hovered, gets right table row object\r\n const columnIndex = this.findVisibleColumn(e, gridObj);\r\n result = gridObj.getCellNode(cell.row, columnIndex)?.parentElement;\r\n }\r\n }\r\n return result || null;\r\n }\r\n\r\n findVisibleColumn(e, gridObj) {\r\n const cell = gridObj.getCellFromEvent(e);\r\n const columns = gridObj.getColumns();\r\n const frozenColumn = gridObj.getOptions().frozenColumn;\r\n let index = 0; //set to zero at default, for the case where there is no column in the right side of the table.\r\n if (cell) {\r\n for (let i = frozenColumn; i < columns.length; i++) {\r\n if (gridObj.getCellNode(cell.row, i + 1)) {\r\n index = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n return index;\r\n }\r\n\r\n filterTypeTextColumn(itemVal, filterObj) {\r\n if (!Utils.isNullOrWhiteSpace(filterObj.text)) {\r\n switch (filterObj.type) {\r\n case 'greaterthan':\r\n if (\r\n !PrettyNum.greaterThan(PrettyNum.eng3(Number(itemVal)), PrettyNum.eng3(Number(filterObj.text)))\r\n ) {\r\n return false;\r\n }\r\n break;\r\n case 'greaterthanequal':\r\n if (\r\n !PrettyNum.greaterThanEqualTo(\r\n PrettyNum.eng3(Number(itemVal)),\r\n PrettyNum.eng3(Number(filterObj.text)),\r\n )\r\n ) {\r\n return false;\r\n }\r\n break;\r\n case 'equal':\r\n if (!PrettyNum.equalTo(PrettyNum.eng3(Number(itemVal)), PrettyNum.eng3(Number(filterObj.text)))) {\r\n return false;\r\n }\r\n break;\r\n case 'lessthan':\r\n if (!PrettyNum.lessThan(PrettyNum.eng3(Number(itemVal)), PrettyNum.eng3(Number(filterObj.text)))) {\r\n return false;\r\n }\r\n break;\r\n case 'lessthanequal':\r\n if (\r\n !PrettyNum.lessThanEqualTo(\r\n PrettyNum.eng3(Number(itemVal)),\r\n PrettyNum.eng3(Number(filterObj.text)),\r\n )\r\n ) {\r\n return false;\r\n }\r\n break;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n scrollSelectedPartToTop(selectedPart, dataView, grid) {\r\n if (selectedPart) {\r\n let selectedRow = -1;\r\n const columns = grid.getColumns();\r\n const nameColumn = columns[1];\r\n if (columns.length > 1 && typeof nameColumn['field'] === 'string') {\r\n const fieldval = nameColumn.field;\r\n for (let i = 0; i < dataView.getLength(); i++) {\r\n if (dataView.getItem(i)[fieldval] === selectedPart) {\r\n selectedRow = i;\r\n }\r\n }\r\n }\r\n if (selectedRow !== -1) {\r\n grid.setSelectedRows([selectedRow]);\r\n setTimeout(() => {\r\n grid.scrollRowToTop(selectedRow - 1.75);\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n _resetFilters() {\r\n // Clear the column filters.\r\n this.columnFilters = {};\r\n\r\n // Reset columns widths.\r\n for (let i = 0, iLen = this.columns.length; i < iLen; i++) {\r\n if (this.columns[i].originalWidth) this.columns[i].width = this.columns[i].originalWidth;\r\n }\r\n\r\n this.grid.setColumns(this.columns);\r\n\r\n // Reset the scroll position.\r\n var $viewport = $('#' + this.gridId + ' .slick-viewport');\r\n\r\n $viewport.scrollLeft(0);\r\n $viewport.scrollTop(0);\r\n\r\n // Find selected item\r\n var selectedItem = this.selectedItem;\r\n\r\n for (let i = 0; i < this.data.length; i++)\r\n this.data[i].selected = this.data[i].id == selectedItem.id ? true : false;\r\n\r\n for (let i = 0; i < this.columns.length; i++) {\r\n // Clear filter text box and reset the selected option to default.\r\n if (this.columns[i].dataType === 'numeric' || this.columns[i].dataType === 'pretty-numeric') {\r\n $('#' + this.columns[i].id + '_filtertext').val('');\r\n $('#' + this.columns[i].id + '_filteroption').val(this.columns[i].defaultFilterOption);\r\n }\r\n }\r\n\r\n this.defaultSort();\r\n this.grid.setSortColumns([]);\r\n this.dataView.setItems(this.data);\r\n this.dataView.refresh();\r\n this.grid.setSelectedRows(this.getSelectedRowsIndexes());\r\n }\r\n\r\n defaultSort() {\r\n this.data.sort(function (a, b) {\r\n return a.disabled === b.disabled ? Utils.compare(a.part, b.part) : a.disabled ? 1 : -1;\r\n });\r\n }\r\n\r\n getSelectedRowsIndexes() {\r\n // Find selected item\r\n if (this.selectedPart) {\r\n let selectedRow = -1;\r\n const columns = this.grid.getColumns();\r\n const nameColumn = columns[1];\r\n if (columns.length > 1 && typeof nameColumn['field'] === 'string') {\r\n const fieldval = nameColumn.field;\r\n for (let i = 0; i < this.dataView.getLength(); i++) {\r\n if (this.dataView.getItem(i)[fieldval] === this.selectedPart) {\r\n selectedRow = i;\r\n }\r\n }\r\n }\r\n\r\n return [selectedRow];\r\n }\r\n\r\n return [];\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"adcdriver/components/info-modal-button.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './info-modal-button.hbs'; */\nimport Component from '@ember/component';\r\nimport { action } from '@ember/object';\r\n\r\nexport default class InfoModalButton extends Component {\r\n tagName = '';\r\n\r\n name = 'default';\r\n bodyArgs = {};\r\n useBody = true;\r\n size = null;\r\n openHelp = null;\r\n\r\n /**\r\n * Any overrides to the default behavior will have to be\r\n * provided to the component\r\n */\r\n @action onClick(event) {\r\n event = event || window.event;\r\n event.preventDefault();\r\n\r\n this.openHelp(`info_modal.${this.name}.title`, `info_modal.${this.name}.body`, { ...this.bodyArgs });\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n {{#if this.readOnly}}\\r\\n
\\r\\n {{this.inputValue}}\\r\\n
\\r\\n {{else if this.options}}\\r\\n \\r\\n {{else if this.isNumeric}}\\r\\n \\r\\n {{else}}\\r\\n \\r\\n {{/if}}\\r\\n {{#unless this.options}}\\r\\n \\r\\n {{/unless}}\\r\\n
\\r\\n{{#if this.message}}\\r\\n
\t\t\t\\r\\n
\t\t\t\t\t\\r\\n {{this.message}}\\r\\n
\\r\\n
\\r\\n{{/if}}\",{ moduleName: \"adcdriver/components/input-group.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './input-group.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed, action } from '@ember/object';\r\nimport snakeCase from 'lodash.snakecase';\r\n\r\nexport default class InputGroup extends Component {\r\n tagName = '';\r\n\r\n @action onInputGroupValueChange() {\r\n if (this.onValueChange) this.onValueChange();\r\n }\r\n\r\n @computed('inputId') get errorId() {\r\n return `${this.inputId}Error`;\r\n }\r\n\r\n @computed('qaAttrValue', 'inputId') get internalQaAttrValue() {\r\n return this.qaAttrValue || snakeCase(this.inputId.replace('Input', ''));\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:header>\\r\\n \\r\\n \\r\\n \\r\\n <:default>\\r\\n {{#if this.sigmaDeltaData.isSigmaDeltaAdc}}\\r\\n {{#if this.sigmaDeltaData.allowOdrInput}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n {{#if this.sigmaDeltaData.allowMclkInput}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n {{#if this.sigmaDeltaData.allowMclkDivInput}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n \\r\\n {{!-- FMOD --}}\\r\\n {{#if this.sigmaDeltaData.showFmod}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{\\r\\n t \\\"messages.fmod\\\"\\r\\n fmod=(pretty-num value=this.sigmaDeltaData.fmod uom=(t \\\"units.hz\\\"))\\r\\n }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ this.errorHandling.fmodError }}\\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n\\r\\n \\r\\n\\r\\n {{#if this.sigmaDeltaData.allowChannelAveragingInput}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n {{#if this.sigmaDeltaData.allowDecimationRateInput}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n {{!-- ODR --}}\\r\\n {{#unless this.sigmaDeltaData.allowOdrInput}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{\\r\\n t \\\"messages.odr\\\"\\r\\n odr=(pretty-num value=this.sigmaDeltaData.odr uom=(t \\\"units.hz\\\"))\\r\\n }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{\\r\\n t \\\"messages.sampling_rate\\\"\\r\\n samplingRate=(pretty-num value=this.model.samplingRate uom=(t \\\"units.sps\\\"))\\r\\n }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n {{#if this.errorHandling.samplingRateError}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{ this.errorHandling.samplingRateError }}\\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n {{/unless}}\\r\\n\\r\\n {{else}}\\r\\n \\r\\n\\r\\n {{/if}}\\r\\n\\r\\n {{#if (and this.vrefOptions this.model.vrefSelect)}}\\r\\n \\r\\n {{else}}\\r\\n \\r\\n {{/if}}\\r\\n\\r\\n {{!-- Variant --}}\\r\\n \\r\\n\\r\\n {{!-- ADC Note --}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{\\r\\n t \\\"messages.adc\\\"\\r\\n partNumber=this.selectionData.selectedAdc.partCore\\r\\n maxSampleRate=(pretty-num value=this.selectionData.selectedAdc.maxSampleRate uom=(t \\\"units.sps\\\"))\\r\\n vrefMax=this.selectionData.selectedAdc.vrefMax\\r\\n vrefUom=(t \\\"units.v\\\")\\r\\n }}\\r\\n {{! was partNumber=this.selectionData.selectedAdc.part }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/inputs/adc-inputs.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './adc-inputs.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\n\r\nimport Constants from '../../utils/constants';\r\n\r\nexport default class AdcInputs extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n @service errorHandling;\r\n @service urlData;\r\n @service selectionData;\r\n @service sigmaDeltaData;\r\n @service componentManager;\r\n @service hashService;\r\n @service hashDataService;\r\n @service driverSupplyService;\r\n @service driverService;\r\n\r\n // qaAttrValue = `${Constants.QA_ATTR_PREFIX}_adc_bx`;\r\n\r\n panelHeadingBodyArgs = {};\r\n bodyArgsByVariant = {};\r\n\r\n init() {\r\n super.init();\r\n\r\n this.panelHeadingBodyArgs = {\r\n sarAdcParametricSearchUrl: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.SAR_ADCS}`,\r\n precisionAdcParametricSearchUrl: `${this.urlData.analogBaseParametricSearchUrl}/${Constants.URL.PRECISION_ADCS}`,\r\n };\r\n\r\n this.bodyArgsByVariant[Constants.VARIANT.ADC.HIZ] = {\r\n analogPinCompatibleArticleLink: this.intl.t('urls.articles.pinCompatible'),\r\n };\r\n\r\n this.set('componentManager.adcInputs', this);\r\n }\r\n\r\n @action showDeviceTable() {\r\n if (this.openDeviceTable) {\r\n this.openDeviceTable('adc');\r\n }\r\n }\r\n\r\n @action openCardTooltip() {\r\n if (this.openHelp) {\r\n this.openHelp(`info_modal.adc_input.title`, `info_modal.adc_input.body`, { ...this.panelHeadingBodyArgs });\r\n }\r\n }\r\n\r\n @action onSamplingRateChange() {\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onVrefSelectChange() {\r\n this.set('model.vref', this.model.vrefSelect.id);\r\n this.onVrefChange();\r\n }\r\n\r\n @action onVrefChange() {\r\n this.model.handleVcm();\r\n this.driverSupplyService.calculateVSupply();\r\n this.hashDataService.setUrlParameter('model.vref');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onAdcVariantChange() {\r\n this.model.switchVariant();\r\n this.set('model.zoomFitScaling', true);\r\n\r\n this.hashDataService.setUrlParameterWithSelectedPart('adc');\r\n this.hashDataService.setUrlParameter('model.showAdcVariant');\r\n this.hashDataService.setUrlParameterForObject('showAdcVariants');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onOdrChange() {\r\n this.model.overrideFsample();\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.odrInput');\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onMclkChange() {\r\n this.model.overrideFsample();\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.mclk');\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onMclkDivChange() {\r\n this.model.overrideFsample();\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'mclkDiv');\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onPowerModeChange() {\r\n this.model.overrideRCValues();\r\n\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'powerMode');\r\n this.hashDataService.setUrlParameter('model.rext');\r\n this.hashDataService.setUrlParameter('model.cext');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onFilterTypeChange() {\r\n this.sigmaDeltaData.setFilterTypeProperties();\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'filterType');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'decimationRate');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onChannelAveragingChange() {\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'channelAveraging');\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onDecimationRateChange() {\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'decimationRate');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @computed('selectionData.selectedAdc.vrefOptions') get vrefOptions() {\r\n return this.selectionData.selectedAdc.vrefOptions\r\n ? this.selectionData.selectedAdc.vrefOptions.map((option) => {\r\n return { id: option, description: option };\r\n })\r\n : null;\r\n }\r\n\r\n /**\r\n * These should be the same for all variant codes\r\n * Variations go in bodyArgsByVariant\r\n */\r\n @computed('selectionData.selectedAdc.{partCore,datasheet}') get variantModalBodyArgs() {\r\n return {\r\n adc: this.selectionData.selectedAdc.partCore,\r\n datasheet: this.selectionData.selectedAdc.datasheet,\r\n lastUpdateDate: new Date(),\r\n };\r\n }\r\n\r\n /**\r\n * Can only be used in initialLoadWithHash\r\n */\r\n canCalculateProperty(propertyName) {\r\n let hashValues = this.hashService.parsedLocationHash;\r\n return !(hashValues[propertyName] && Number(hashValues[propertyName]) !== 0);\r\n }\r\n\r\n initialLoadWithHash() {\r\n if (this.canCalculateProperty('multiplexed')) {\r\n this.model.setMultiplexedMetadata();\r\n }\r\n\r\n if (this.canCalculateProperty('showAdcVariant')) this.model.updateShowVariant();\r\n this.model.switchVariant();\r\n this.sigmaDeltaData.refreshSigmaDeltaDefaults();\r\n this.model.resetVrefSelect();\r\n this.model.overrideFsample();\r\n\r\n let canCalculateSDRext = this.sigmaDeltaData.isSigmaDeltaAdc && this.canCalculateProperty('rext'),\r\n canCalculateSDCext = this.sigmaDeltaData.isSigmaDeltaAdc && this.canCalculateProperty('cext');\r\n\r\n this.model.overrideRCValues({\r\n resetRext: false,\r\n resetSDRext: canCalculateSDRext,\r\n resetSDCext: canCalculateSDCext,\r\n });\r\n\r\n this.model.handleVcm(this.canCalculateProperty('vcm'));\r\n\r\n this.hashDataService.setUrlParameter('model.showAdcVariant');\r\n this.hashDataService.setUrlParameterForObject('showAdcVariants');\r\n\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n this.hashDataService.setUrlParameter('model.vref');\r\n this.hashDataService.setUrlParameterWithSelectedPart('adc');\r\n\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.odrInput');\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.mclk');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'mclkDiv');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'powerMode');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'filterType');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'channelAveraging');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'decimationRate');\r\n }\r\n\r\n initialLoadWithoutHash() {\r\n // Make sure all the data is loaded\r\n this.model.setMultiplexedMetadata();\r\n this.model.updateShowVariant();\r\n this.model.switchVariant();\r\n this.sigmaDeltaData.refreshSigmaDeltaDefaults();\r\n this.model.resetVrefSelect();\r\n this.model.overrideFsample();\r\n this.model.overrideRCValues();\r\n this.model.handleVcm();\r\n\r\n this.hashDataService.setUrlParameter('model.showAdcVariant');\r\n this.hashDataService.setUrlParameterForObject('showAdcVariants');\r\n\r\n this.hashDataService.setUrlParameter('model.samplingRate');\r\n this.hashDataService.setUrlParameter('model.vref');\r\n this.hashDataService.setUrlParameterWithSelectedPart('adc');\r\n\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.odrInput');\r\n this.hashDataService.setUrlParameter('sigmaDeltaData.mclk');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'mclkDiv');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'powerMode');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'filterType');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'channelAveraging');\r\n this.hashDataService.setUrlParameterWithId('sigmaDeltaData', 'decimationRate');\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:header>\\r\\n \\r\\n \\r\\n \\r\\n <:default>\\r\\n {{!-- Variant --}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{#if this.errorHandling.driverError}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{this.errorHandling.driverError}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/inputs/driver-inputs.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './driver-inputs.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport Constants from '../../utils/constants';\r\n\r\nexport default class DriverInputs extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service selectionData;\r\n @service driverSupplyService;\r\n @service driverService;\r\n @service sigmaDeltaData;\r\n\r\n @service hashService;\r\n @service hashDataService;\r\n @service componentManager;\r\n @service errorHandling;\r\n\r\n panelHeadingBodyArgs = {};\r\n qaAttrValue = `${Constants.QA_ATTR_PREFIX}_driver_bx`;\r\n\r\n init() {\r\n super.init();\r\n this.set('componentManager.driverInputs', this);\r\n }\r\n\r\n @action showDeviceTable() {\r\n if (this.openDeviceTable) {\r\n this.openDeviceTable('driver');\r\n }\r\n }\r\n\r\n @action openCardTooltip() {\r\n if (this.openHelp) {\r\n this.openHelp(`info_modal.driver_input.title`, `info_modal.driver_input.body`, {\r\n ...this.panelHeadingBodyArgs,\r\n });\r\n }\r\n }\r\n\r\n @action onDriverVariantChange() {\r\n this.model.switchVariant('driver');\r\n this.driverService.setTopologyStatus();\r\n\r\n this.driverService.defaultRf();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n // Set url parameters\r\n this.hashDataService.setUrlParameterWithSelectedPart('driver');\r\n this.hashDataService.setUrlParameter('model.showDriverVariant');\r\n this.hashDataService.setUrlParameterForObject('showDriverVariants');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onSelectedTopologyChange() {\r\n this.driverService.setTopologyStatus();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onGainChange() {\r\n this.driverService.setTopologyStatus();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onRfChange() {\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onVSupplyPosChange() {\r\n this.driverSupplyService.makeRoundingModifications();\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onVSupplyNegChange() {\r\n this.driverSupplyService.makeRoundingModifications();\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n /**\r\n * These should be the same for all variant codes\r\n * Variations go in bodyArgsByVariant\r\n */\r\n @computed('selectionData.selectedDriver.{partCore,datasheet}') get variantModalBodyArgs() {\r\n return {\r\n driver: this.selectionData.selectedDriver.partCore,\r\n datasheet: this.selectionData.selectedDriver.datasheet,\r\n lastUpdateData: new Date(),\r\n };\r\n }\r\n\r\n /**\r\n * Can only be used in initialLoadWithHash\r\n */\r\n canCalculateProperty(propertyName) {\r\n let hashValues = this.hashService.parsedLocationHash;\r\n return !(hashValues[propertyName] && Number(hashValues[propertyName]) !== 0);\r\n }\r\n\r\n initialLoadWithHash() {\r\n // Make sure all the data is loaded\r\n this.model.switchVariant('driver');\r\n\r\n this.driverService.setTopologyStatus(this.canCalculateProperty('selectedTopology'));\r\n this.driverService.defaultRf(this.canCalculateProperty('rf'));\r\n this.driverService.resetGain(this.canCalculateProperty('gain'));\r\n this.driverService.resetRf(this.canCalculateProperty('rf'));\r\n\r\n if (this.canCalculateProperty('vSupplyPos') && this.canCalculateProperty('vSupplyNeg')) {\r\n this.driverSupplyService.calculateVSupply();\r\n }\r\n\r\n // Set Url Parameters\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n this.hashDataService.setUrlParameterWithSelectedPart('driver');\r\n this.hashDataService.setUrlParameter('model.showDriverVariant');\r\n this.hashDataService.setUrlParameterForObject('showDriverVariants');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n }\r\n\r\n initialLoadWithoutHash() {\r\n // Make sure all the data is loaded\r\n this.model.updateShowVariant('driver');\r\n this.model.switchVariant('driver');\r\n this.driverService.setTopologyStatus();\r\n this.driverService.defaultRf();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n // Set Url Parameters\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n this.hashDataService.setUrlParameterWithSelectedPart('driver');\r\n this.hashDataService.setUrlParameter('model.showDriverVariant');\r\n this.hashDataService.setUrlParameterForObject('showDriverVariants');\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:header>\\r\\n \\r\\n \\r\\n <:default>\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\",{ moduleName: \"adcdriver/components/inputs/filter-inputs.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './filter-inputs.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\n\r\nimport Constants from '../../utils/constants';\r\n\r\nexport default class FilterInputs extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service intl;\r\n @service componentManager;\r\n @service errorHandling;\r\n @service hashDataService;\r\n\r\n panelHeadingBodyArgs = {};\r\n qaAttrValue = `${Constants.QA_ATTR_PREFIX}_filter_bx`;\r\n\r\n init() {\r\n super.init();\r\n this.set('componentManager.filterInputs', this);\r\n }\r\n\r\n @action openCardTooltip() {\r\n if (this.openHelp) {\r\n this.openHelp(`info_modal.filter_input.title`, `info_modal.filter_input.body`, {\r\n ...this.panelHeadingBodyArgs,\r\n });\r\n }\r\n }\r\n\r\n @action onRextChange() {\r\n this.hashDataService.setUrlParameter('model.rext');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onCextChange() {\r\n this.hashDataService.setUrlParameter('model.cext');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n initialLoadWithHash() {\r\n this.hashDataService.setUrlParameter('model.rext');\r\n this.hashDataService.setUrlParameter('model.cext');\r\n }\r\n\r\n initialLoadWithoutHash() {\r\n this.hashDataService.setUrlParameter('model.rext');\r\n this.hashDataService.setUrlParameter('model.cext');\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:header>\\r\\n \\r\\n \\r\\n <:default>\\r\\n
\\r\\n \\r\\n {{#if this.errorHandling.sourceTypeError}}{{this.errorHandling.sourceTypeError}}{{/if}}\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{#unless this.model.hideMultiplexed}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/unless}}\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/inputs/signal-inputs.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './signal-inputs.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport Consts from '../../utils/constants';\r\nimport PrettyNum from '../../utils/pretty-num-wrapper';\r\n\r\nexport default class SignalInputs extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service intl;\r\n @service urlData;\r\n @service selectionData;\r\n @service driverSupplyService;\r\n @service driverService;\r\n @service componentManager;\r\n @service errorHandling;\r\n @service hashDataService;\r\n @service hashService;\r\n @service sigmaDeltaData;\r\n\r\n multiplexedBodyArgs = {};\r\n\r\n panelHeadingBodyArgs = {};\r\n qaAttrValue = `${Consts.QA_ATTR_PREFIX}_input_bx`;\r\n\r\n init() {\r\n super.init();\r\n\r\n this.multiplexedBodyArgs = {\r\n analogDemystifyingDataArticleLink: this.intl.t('urls.articles.demystifyingData'),\r\n analogFrontEndDesignArticleLink: this.intl.t('urls.articles.frontEndDesign'),\r\n };\r\n\r\n this.set('componentManager.signalInputs', this);\r\n }\r\n\r\n @action openCardTooltip() {\r\n if (this.openHelp) {\r\n this.openHelp(`info_modal.input_signal_input.title`, `info_modal.input_signal_input.body`, {\r\n ...this.panelHeadingBodyArgs,\r\n });\r\n }\r\n }\r\n\r\n @action onSelectedSourceTypeChange() {\r\n this.driverService.setTopologyStatus();\r\n this.driverService.defaultRf();\r\n this.driverService.resetGain();\r\n this.driverService.resetRf();\r\n\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.rf');\r\n this.hashDataService.setUrlParameter('model.gain');\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n this.hashDataService.setUrlParameterWithSelectedId('topology');\r\n this.hashDataService.setUrlParameterWithSelectedId('sourceType');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onFrequencyChange() {\r\n this.hashDataService.setUrlParameter('model.frequency');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onVcmChange() {\r\n this.driverSupplyService.calculateVSupply();\r\n\r\n this.hashDataService.setUrlParameter('model.vcm', this.model.isVcmFixed);\r\n this.hashDataService.setUrlParameter('model.vSupplyPos');\r\n this.hashDataService.setUrlParameter('model.vSupplyNeg');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onMultiplexedChange() {\r\n // Not sure why this needs to be done or if it will need to be done when we convert to <> syntax\r\n this.set('model.multiplexed', !this.model.multiplexed);\r\n\r\n this.hashDataService.setUrlParameter('model.multiplexed');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @computed('selectionData.selectedAdc.type') get inputTypeDisabled() {\r\n return this.selectionData.selectedAdc.type === Consts.ADC_TYPE.SE;\r\n }\r\n\r\n @computed('model.{vout,gain}', 'selectionData.{selectedDriver.type,selectedSourceType.id}') get vinDisplay() {\r\n let vout = this.model.vout,\r\n gain = this.model.gain,\r\n driverType = this.selectionData.selectedDriver.type,\r\n sourceType = this.selectionData.selectedSourceType.id,\r\n vin;\r\n\r\n vin = vout / gain;\r\n\r\n if (driverType === Consts.DRIVER_TYPE.DIFF_AMP && sourceType === Consts.SOURCE_TYPE.SE) {\r\n vin = vin * 2;\r\n }\r\n\r\n return PrettyNum.eng4(vin);\r\n }\r\n\r\n /**\r\n * Can only be used in initialLoadWithHash\r\n */\r\n canCalculateProperty(propertyName) {\r\n let hashValues = this.hashService.parsedLocationHash;\r\n return !(hashValues[propertyName] && Number(hashValues[propertyName]) !== 0);\r\n }\r\n\r\n initialLoadWithHash() {\r\n // Make sure the url data is set\r\n this.hashDataService.setUrlParameter('model.vcm', this.model.isVcmFixed);\r\n this.hashDataService.setUrlParameter('model.frequency');\r\n this.hashDataService.setUrlParameter('model.multiplexed');\r\n this.hashDataService.setUrlParameterWithSelectedId('sourceType');\r\n }\r\n\r\n initialLoadWithoutHash() {\r\n // Make sure the url data is set\r\n this.hashDataService.setUrlParameter('model.vcm', this.model.isVcmFixed);\r\n this.hashDataService.setUrlParameter('model.frequency');\r\n this.hashDataService.setUrlParameter('model.multiplexed');\r\n this.hashDataService.setUrlParameterWithSelectedId('sourceType');\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\",{ moduleName: \"adcdriver/components/legend-overlay.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './legend-overlay.hbs'; */\nimport Component from '@ember/component';\r\n\r\nexport default class LegendOverlay extends Component {\r\n tagName = '';\r\n\r\n infoBodyArgs = {};\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{!-- Multiplexed --}}\\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/muxed-tab.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './muxed-tab.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class MuxedTab extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n\r\n muxedInputSignalBodyArgs = {};\r\n\r\n init() {\r\n super.init();\r\n\r\n this.muxedInputSignalBodyArgs = {\r\n analogDemystifyingDataArticleLink: this.intl.t('urls.articles.demystifyingData'),\r\n analogFrontEndDesignArticleLink: this.intl.t('urls.articles.frontEndDesign'),\r\n };\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n {{#if this.pdfExport.zoomInvalid}}\\r\\n
\\r\\n
\\r\\n

\\r\\n {{t \\\"messages.browser_zoom\\\"}}\\r\\n {{!-- then refresh this page. --}}\\r\\n

\\r\\n
\\r\\n
\\r\\n

{{t \\\"messages.browser_zoom_instructions\\\"}}

\\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/next-steps-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './next-steps-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\n\r\nexport default class NextStepsPanel extends Component {\r\n tagName = '';\r\n\r\n @service('aditools-analytics') analytics;\r\n @service pdfExport;\r\n @service ltSpice;\r\n @service partData;\r\n @service selectionData;\r\n\r\n @computed('selectionData.{selectedAdc.disableLTspice,selectedDriver.disableLTspice}')\r\n get disableLtSpiceSimulation() {\r\n return (\r\n this.selectionData.selectedAdc.disableLTspice || this.selectionData.selectedDriver.disableLTspice || false\r\n );\r\n }\r\n\r\n @action downloadSummary(event) {\r\n this.blurButton(event);\r\n this.analytics.setWebEvent(\r\n this.partData.toolName,\r\n `downloadSummary`,\r\n '', // data\r\n );\r\n\r\n this.pdfExport.generatePdf();\r\n }\r\n\r\n @action downloadLtspice(event) {\r\n this.blurButton(event);\r\n this.analytics.setWebEvent(\r\n this.partData.toolName,\r\n `downloadLtspice`,\r\n '', // data\r\n );\r\n\r\n this.ltSpice.downloadSimulation();\r\n }\r\n\r\n @action refreshPage() {\r\n window.location.reload();\r\n }\r\n\r\n // De-focus a button after it's been clicked.\r\n blurButton(event) {\r\n event = event || window.event;\r\n event.target.blur();\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{t \\\"tabs.noise_calculations.title\\\"}}\\r\\n

\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{this.rmsNoiseExpandCollapseIconInfo.alt}}\\r\\n \\r\\n

\\r\\n {{t \\\"noise_calculations.table_headers.rms\\\"}}\\r\\n

\\r\\n \\r\\n
\\r\\n\\r\\n {{#if this.rmsNoiseCalculationsMaximized}}\\r\\n \\r\\n {{/if}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{this.noiseDensityExpandCollapseIconInfo.alt}}\\r\\n \\r\\n

\\r\\n {{t \\\"noise_calculations.table_headers.noise_density\\\"}}\\r\\n

\\r\\n \\r\\n
\\r\\n\\r\\n {{#if this.noiseDensityCalculationsMaximized}}\\r\\n \\r\\n {{/if}}\\r\\n
\\r\\n
\\r\\n
\",{ moduleName: \"adcdriver/components/noise-calculations-tab.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './noise-calculations-tab.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nimport { alias } from '@ember/object/computed';\r\nimport { computed, action } from '@ember/object';\r\n\r\nexport default class NoiseCalculationsTab extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service urlData;\r\n @service intl;\r\n\r\n rmsNoiseCalculationsMaximized = false;\r\n noiseDensityCalculationsMaximized = false;\r\n\r\n modalBodyArgs = {};\r\n rmsNoiseBodyArgs = {};\r\n noiseDensityDetailsArg = {};\r\n\r\n @alias('model.noiseCalculations') noiseCalculations;\r\n\r\n init() {\r\n super.init();\r\n\r\n let sourceNoiseText = this.intl.t('info_modal.noise_contributions.source_noise_text');\r\n\r\n this.modalBodyArgs = {\r\n sourceNoiseText: this.model.showOptionalSourceSettings ? sourceNoiseText : '',\r\n opAmpVideoLink: this.intl.t('urls.videos.nonInvertingOpAmp'),\r\n mt047Pdf: this.intl.t('urls.articles.mt047'),\r\n };\r\n\r\n this.rmsNoiseBodyArgs = {\r\n video: this.intl.t('urls.videos.calculatingSpectralNoiseDensityToRMSNoise'),\r\n };\r\n\r\n this.noiseDensityDetailsArgs = {\r\n mt049Pdf: this.intl.t('urls.articles.mt049'),\r\n nonInvertingOpAmpVideo: this.intl.t('urls.videos.nonInvertingOpAmp'),\r\n };\r\n }\r\n\r\n @action showHideRmsNoiseCalculations() {\r\n this.set('rmsNoiseCalculationsMaximized', !this.rmsNoiseCalculationsMaximized);\r\n }\r\n\r\n @action showHideNoiseDensityCalculations() {\r\n this.set('noiseDensityCalculationsMaximized', !this.noiseDensityCalculationsMaximized);\r\n }\r\n\r\n @computed('noiseCalculations.driver.ibPlus.sourceInputDensity') get showIbPlusRows() {\r\n if (!(this.noiseCalculations.driver && this.noiseCalculations.driver.ibPlus)) return false;\r\n return !!this.noiseCalculations.driver.ibPlus.sourceInputDensity;\r\n }\r\n\r\n @computed('noiseCalculations.driver.ibMinus.sourceInputDensity') get showIbMinusRows() {\r\n if (!(this.noiseCalculations.driver && this.noiseCalculations.driver.ibMinus)) return false;\r\n return !!this.noiseCalculations.driver.ibMinus.sourceInputDensity;\r\n }\r\n\r\n @computed('rmsNoiseCalculationsMaximized') get rmsNoiseExpandCollapseIconInfo() {\r\n return this.getExpandCollapseIconInfo(this.rmsNoiseCalculationsMaximized);\r\n }\r\n\r\n @computed('noiseDensityCalculationsMaximized') get noiseDensityExpandCollapseIconInfo() {\r\n return this.getExpandCollapseIconInfo(this.noiseDensityCalculationsMaximized);\r\n }\r\n\r\n getExpandCollapseIconInfo(maximized) {\r\n if (maximized)\r\n return {\r\n alt: this.intl.t('labels.collapse'),\r\n src: 'svgs/icons/Icon_Collapse.svg',\r\n };\r\n else\r\n return {\r\n alt: this.intl.t('labels.expand'),\r\n src: 'svgs/icons/Icon_Expand.svg',\r\n };\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n
\\r\\n \\r\\n <:default>\\r\\n {{#if this.errorHandling.disableNoiseAndDistortionSummary}}\\r\\n {{!-- Blanks out following fields --}}\\r\\n {{!-- System THD ERROR--}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.thd\\\" freq=this.prettyFrequency}}\\r\\n
\\r\\n
\\r\\n\\r\\n {{!-- SINAD ERROR --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.sinad\\\" freq=this.prettyFrequency}}\\r\\n
\\r\\n
\\r\\n\\r\\n {{!-- ENOB ERROR --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.enob\\\" freq=this.prettyFrequency}}\\r\\n
\\r\\n
\\r\\n {{else}}\\r\\n {{#unless this.errorHandling.disabledTHDTabError}}\\r\\n {{!-- System THD --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.thd\\\" freq=this.prettyFrequency}}\\r\\n {{this.prettySystemThdAtF}}\\r\\n
\\r\\n
\\r\\n {{#if this.errorHandling.thdFreqWarn}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{this.errorHandling.thdFreqWarn}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n {{#if this.errorHandling.thdDriverWarn}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{this.errorHandling.thdDriverWarn}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n\\r\\n {{!-- ENOB --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.enob\\\" freq=this.prettyFrequency}}\\r\\n {{this.prettyEnobAtF}}\\r\\n
\\r\\n
\\r\\n\\r\\n {{!-- SINAD --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.sinad\\\" freq=this.prettyFrequency}}\\r\\n {{this.prettySinadAtF}}\\r\\n
\\r\\n
\\r\\n\\r\\n {{/unless}}\\r\\n {{/if}}\\r\\n\\r\\n {{!-- SNR --}}\\r\\n
\\r\\n
\\r\\n {{t \\\"summary.noise_and_distortion.labels.snr\\\"}}\\r\\n {{this.prettyTotalSnr}}\\r\\n
\\r\\n
\\r\\n\\r\\n {{!-- System Noise --}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{t \\\"summary.noise_and_distortion.labels.noise\\\"}}\\r\\n \\r\\n {{this.prettyTotalVrms}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{t \\\"summary.noise_and_distortion.labels.driver_noise\\\"}}{{this.prettyDriverTotalVrms}}\\r\\n \\r\\n {{#if this.errorHandling.systemNoiseWarn}}\\r\\n \\r\\n {{this.errorHandling.systemNoiseWarn}}\\r\\n \\r\\n {{/if}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n {{#if this.errorHandling.thdAdjustmentWarning}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{this.errorHandling.thdAdjustmentWarning}}\\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}{{!errorHandling.thdAdjustmentWarning}}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{#if this.model.showOptionalSourceSettings}}\\r\\n \\r\\n <:default>\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{/if}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n {{#each this.tabService.tabs.items.noise as |tab|}}\\r\\n \\r\\n {{/each}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\",{ moduleName: \"adcdriver/components/noise-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './noise-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport { alias } from '@ember/object/computed';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\n\r\nexport default class NoisePanel extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n @service tabService;\r\n @service errorHandling;\r\n @service hashDataService;\r\n @service plotDataService;\r\n @service componentManager;\r\n\r\n @alias('model.noiseCalculations') noiseCalculations;\r\n\r\n menuId = 'noise-tabs';\r\n\r\n updateAppData = () => {};\r\n\r\n @computed('model.frequency') get prettyFrequency() {\r\n return `${PrettyNum.eng3(this.model.frequency)}${this.intl.t('units.hz')}`;\r\n }\r\n\r\n @computed('plotDataService.noiseArrays.systemThdAtF') get prettySystemThdAtF() {\r\n if (!this.plotDataService.noiseArrays) return null;\r\n return `${PrettyNum.eng3(this.plotDataService.noiseArrays.systemThdAtF, { separatedUnit: true })}${this.intl.t(\r\n 'units.db',\r\n )}`;\r\n }\r\n\r\n @computed('plotDataService.noiseArrays.enobAtF') get prettyEnobAtF() {\r\n if (!this.plotDataService.noiseArrays) return null;\r\n return `${PrettyNum.eng3(this.plotDataService.noiseArrays.enobAtF, { separatedUnit: true })}${this.intl.t(\r\n 'units.bits',\r\n )}`;\r\n }\r\n\r\n @computed('plotDataService.noiseArrays.sinadAtF') get prettySinadAtF() {\r\n if (!this.plotDataService.noiseArrays) return null;\r\n return `${PrettyNum.eng3(this.plotDataService.noiseArrays.sinadAtF, { separatedUnit: true })}${this.intl.t(\r\n 'units.db',\r\n )}`;\r\n }\r\n\r\n @computed('noiseCalculations.total.totalSnr') get prettyTotalSnr() {\r\n if (!(this.noiseCalculations && this.noiseCalculations.total)) return null;\r\n return `${PrettyNum.eng4(this.noiseCalculations.total.totalSnr, {\r\n scale: 1,\r\n separatedUnit: true,\r\n })}${this.intl.t('units.db')}`;\r\n }\r\n\r\n @computed('noiseCalculations.total.totalVrms') get prettyTotalVrms() {\r\n if (!(this.noiseCalculations && this.noiseCalculations.total)) return null;\r\n return `${PrettyNum.eng3(this.noiseCalculations.total.totalVrms, { separatedUnit: true })}${this.intl.t(\r\n 'units.vrms',\r\n )}`;\r\n }\r\n\r\n @computed('noiseCalculations.driver.totalVrms') get prettyDriverTotalVrms() {\r\n if (!(this.noiseCalculations && this.noiseCalculations.driver)) return null;\r\n return `${PrettyNum.eng3(this.noiseCalculations.driver.totalVrms, { separatedUnit: true })}${this.intl.t(\r\n 'units.vrms',\r\n )}`;\r\n }\r\n\r\n @action onOptionalSourceSettingsChange() {\r\n this.set('model.showOptionalSourceSettings', !this.model.showOptionalSourceSettings);\r\n this.hashDataService.setOptionalSourceSettingsProperties();\r\n\r\n this.hashDataService.setUrlParameter('model.wbNoise');\r\n this.hashDataService.setUrlParameter('model.thd');\r\n\r\n this.hashDataService.setUrlParameter('model.showOptionalSourceSettings');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onWbNoiseChange() {\r\n this.hashDataService.setUrlParameter('model.wbNoise');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n @action onThdChange() {\r\n this.hashDataService.setUrlParameter('model.thd');\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#if this.errorHandling.disabledTHDTabError}}\\r\\n {{this.errorHandling.disabledTHDTabError}}\\r\\n {{else}}\\r\\n {{#if (or this.errorHandling.isNoiseSimInputsError this.errorHandling.isSettlingNoiseError this.errorHandling.vSupplyError)}}\\r\\n \\r\\n {{else}}\\r\\n
\\r\\n

\\r\\n {{ this.title }}\\r\\n

\\r\\n \\r\\n
\\r\\n {{yield}}\\r\\n {{/if}}\\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/noise-tab-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './noise-tab-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\n\r\nexport default class NoiseTabPanel extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service selectionData;\r\n @service errorHandling;\r\n @service componentManager;\r\n\r\n type = null;\r\n title = null;\r\n modalBodyArgs = {};\r\n\r\n @computed('type') get chartId() {\r\n return `${this.type}Chart`;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n
\\r\\n {{this.columnHeaderText}}\\r\\n {{#if this.columnInfoModal}}\\r\\n \\r\\n {{/if}}\\r\\n
\\r\\n
\\r\\n {{this.columnDataType}}\\r\\n
\\r\\n\",{ moduleName: \"adcdriver/components/noise-table-column-header.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './noise-table-column-header.hbs'; */\nimport Component from '@ember/component';\r\n\r\nexport default class NoiseTableColumnHeader extends Component {\r\n tagName = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{#unless this.hideTotalNoiseRow}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/unless}}\\r\\n\\r\\n {{#if this.totalNoiseMaximized}}\\r\\n {{#if this.model.showOptionalSourceSettings}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseSource}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/if}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{#if this.driverTotalMaximized}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{#if this.showIbPlusRow}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/if}}\\r\\n {{#if this.showIbMinusRow}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/if}}\\r\\n {{#unless this.model.rfRemoved}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/unless}}\\r\\n {{#unless this.model.rgInf}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/unless}}\\r\\n {{/if}}\\r\\n {{#if this.model.filterEnabled}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseDriver}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/if}}\\r\\n {{#unless this.hideAdcNoiseRow}}\\r\\n \\r\\n {{!-- {{safe-legend-color toolData.data.colors.noiseAdc}} --}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{/unless}}\\r\\n {{/if}}\\r\\n \\r\\n
\\r\\n \\r\\n {{this.totalNoiseExpandCollapseIconInfo.alt}}\\r\\n \\r\\n {{t \\\"noise_calculations.row_headers.noise\\\"}}\\r\\n {{this.totalNoiseColumn1}}{{this.totalNoiseColumn2}}{{this.totalNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.source\\\"}}{{this.sourceNoiseColumn1}}{{this.sourceNoiseColumn2}}{{this.sourceNoiseColumn3}}
\\r\\n \\r\\n {{this.driverTotalNoiseExpandCollapseIconInfo.alt}}\\r\\n \\r\\n {{t \\\"noise_calculations.row_headers.driver\\\"}}\\r\\n {{this.totalDriverNoiseColumn1}}{{this.totalDriverNoiseColumn2}}{{this.totalDriverNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.vn\\\"}}{{this.vnNoiseColumn1}}{{this.vnNoiseColumn2}}{{this.vnNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.ibplus\\\"}}{{this.ibNoisePlusColumn1}}{{this.ibNoisePlusColumn2}}{{this.ibNoisePlusColumn3}}
{{t \\\"noise_calculations.row_headers.ibminus\\\"}}{{this.ibNoiseMinusColumn1}}{{this.ibNoiseMinusColumn2}}{{this.ibNoiseMinusColumn3}}
{{t \\\"noise_calculations.row_headers.rf\\\"}}{{this.rfNoiseColumn1}}{{this.rfNoiseColumn2}}{{this.rfNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.rg\\\"}}{{this.rgNoiseColumn1}}{{this.rgNoiseColumn2}}{{this.rgNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.rfilt\\\"}}{{this.rfiltNoiseColumn1}}{{this.rfiltNoiseColumn2}}{{this.rfiltNoiseColumn3}}
{{t \\\"noise_calculations.row_headers.adc\\\"}}{{this.adcNoiseColumn1}}{{this.adcNoiseColumn2}}{{this.adcNoiseColumn3}}
\\r\\n
\",{ moduleName: \"adcdriver/components/noise-table.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './noise-table.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\n\r\nexport default class NoiseTable extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service intl;\r\n\r\n totalNoiseMaximized = false;\r\n driverTotalMaximized = false;\r\n\r\n @computed('totalNoiseMaximized') get totalNoiseExpandCollapseIconInfo() {\r\n return this.getExpandCollapseIconInfo(this.totalNoiseMaximized);\r\n }\r\n\r\n @computed('driverTotalMaximized') get driverTotalNoiseExpandCollapseIconInfo() {\r\n return this.getExpandCollapseIconInfo(this.driverTotalMaximized);\r\n }\r\n\r\n @action showHideNoiseDetails() {\r\n this.set('totalNoiseMaximized', !this.totalNoiseMaximized);\r\n }\r\n\r\n @action showHideDriverNoiseDetails() {\r\n this.set('driverTotalMaximized', !this.driverTotalMaximized);\r\n }\r\n\r\n getExpandCollapseIconInfo(maximized) {\r\n if (maximized)\r\n return {\r\n alt: this.intl.t('labels.collapse'),\r\n src: 'svgs/icons/Icon_Collapse.svg',\r\n };\r\n else\r\n return {\r\n alt: this.intl.t('labels.expand'),\r\n src: 'svgs/icons/Icon_Expand.svg',\r\n };\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#unless this.tab.hide}}\\r\\n \\r\\n{{/unless}}\",{ moduleName: \"adcdriver/components/sar-tab-item.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './sar-tab-item.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport Consts from '../utils/constants';\r\n\r\nexport default class SarTabItem extends Component {\r\n @service('aditools-analytics') analytics;\r\n @service('data') model;\r\n @service intl;\r\n @service hashService;\r\n @service tabService;\r\n @service componentManager;\r\n @service partData;\r\n\r\n tagName = '';\r\n\r\n // @computed('tab.{appName,type.name}', 'model.showAdcVariants.Seq', 'model.selectedAdc.internalMux') get text() {\r\n @computed('tab.{appName,type.name}', 'model.{showAdcVariants.Seq,selectedAdc.internalMux}') get text() {\r\n let isInSequencerMode = this.model.showAdcVariants && this.model.showAdcVariants.Seq,\r\n isInternalMux = this.model.selectedAdc.internalMux;\r\n\r\n if (this.tab.type.name === Consts.TAB_TYPE.SETTLING && isInSequencerMode) {\r\n return this.intl.t(`tabs.${this.tab.appName}.switching_text`);\r\n } else if (this.tab.type.name === Consts.TAB_TYPE.SETTLING && isInternalMux) {\r\n return this.intl.t(`tabs.${this.tab.appName}.static_text`);\r\n } else return this.intl.t(`tabs.${this.tab.appName}.text`);\r\n }\r\n\r\n @computed('tab.name') get tabId() {\r\n return `${this.tab.name}-tab`;\r\n }\r\n\r\n @computed('tab.type.qaAttrValue') get qaAttrText() {\r\n return `selected${this.tab.type.qaAttrValue ? `_${this.tab.type.qaAttrValue}_` : '_'}tab`;\r\n }\r\n\r\n @action selectTab() {\r\n this.tabService.goToTab(this.tab);\r\n this.hashService.handleUrlParameters();\r\n\r\n if (this.handleSelectTab) this.handleSelectTab(this.tab);\r\n if (this.updateAppData) this.updateAppData();\r\n\r\n if (this.tab.type.sendAnalyticsEventOnTabChange) {\r\n this.analytics.setWebEvent(\r\n this.partData.toolName,\r\n `${this.tab.type.urlKey}Selected`,\r\n this.tab.description || this.tab.name,\r\n );\r\n }\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if this.settlingPanelMessage}}\\r\\n\t
\\r\\n\t\t
\\r\\n\t\t\t
\\r\\n\t\t\t\t\\r\\n\t\t\t\t\t{{this.settlingPanelMessage}}\\r\\n\t\t\t\t\\r\\n\t\t\t
\\r\\n\t\t
\\r\\n\t
\\r\\n{{else}}\\r\\n\t
\\r\\n\t\t
\\r\\n\t\t\t\\r\\n\t\t\t\t<:default>\\r\\n\t\t\t\t\t{{#if this.errorHandling.vSupplyError}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"labels.unable_to_calc\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- Sampling Period --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"summary.adc_input_settling.labels.sample_period\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- Conversion Time --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"summary.adc_input_settling.labels.conversion_time\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- Acquisition Time --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"summary.adc_input_settling.labels.acquisition_time\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- RC Bandwidth --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"summary.adc_input_settling.labels.filter_bandwidth\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- One LSB --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t\\r\\n\t\t\t\t\t\t\t\t\t\\\"summary.adc_input_settling.labels.one_lsb\\\"}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t{{else}}\\r\\n\t\t\t\t\t\t{{!-- Sampling Period --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t \\\"summary.adc_input_settling.labels.sample_period\\\"}}\\r\\n\t\t\t\t\t\t\t\t{{this.prettySamplePeriod}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- Conversion Time --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t \\\"summary.adc_input_settling.labels.conversion_time\\\"}}\\r\\n\t\t\t\t\t\t\t\t{{this.prettyConversionTime}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- Acquisition Time --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t \\\"summary.adc_input_settling.labels.acquisition_time\\\"}}\\r\\n\t\t\t\t\t\t\t\t{{this.prettyAcquisitionTime}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{!-- RC Bandwidth --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t\t\\r\\n\t\t\t\t\t\t\t\t\t\t{{t \\\"summary.adc_input_settling.labels.filter_bandwidth\\\"}}\\r\\n\t\t\t\t\t\t\t\t\t\\r\\n\t\t\t\t\t\t\t\t\t\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\\r\\n\t\t\t\t\t\t\t\t{{this.prettyFilterBandwidth}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{#if this.bwWarnings.rcBw}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t\t{{this.bwWarnings.rcBw}}\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{/if}}\\r\\n\\r\\n\t\t\t\t\t\t{{!-- One LSB --}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t{{t \\\"summary.adc_input_settling.labels.one_lsb\\\"}}\\r\\n\t\t\t\t\t\t\t\t{{this.prettyOneLsb}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\\r\\n\t\t\t\t\t\t{{!-- {{! #if model.debugMode}}\\r\\n\t\t\t\t\t\t{{! All these divs are needed for a simple button, don\\'t remove any of them}}\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t\t\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{! /if}}\\r\\n\t\t\t\t\t\t--}}\\r\\n\t\t\t\t\t\t{{#if this.bwWarnings.settlingRinging}}\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t\t\t{{this.bwWarnings.settlingRinging}}\\r\\n\t\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t\t
\\r\\n\t\t\t\t\t\t{{/if}}\\r\\n\t\t\t\t\t{{/if}}\\r\\n\t\t\t\t\\r\\n\t\t\t\\r\\n\t\t
\\r\\n\\r\\n\t\t
\\r\\n\t\t\t
\\r\\n\t\t\t\t
\\r\\n\t\t\t\t\t{{#each this.tabService.tabs.items.settling as |tab|}}\\r\\n\t\t\t\t\t\\r\\n\t\t\t\t\t{{/each}}\\r\\n\t\t\t\t
\\r\\n\t\t\t
\\r\\n\\r\\n\t\t\t\\r\\n\t\t
\\r\\n\t
\\r\\n{{/if}}\",{ moduleName: \"adcdriver/components/settling-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './settling-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { alias } from '@ember/object/computed';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport { computed, action } from '@ember/object';\r\n\r\nexport default class SettlingPanel extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service tabService;\r\n @service ltSpice;\r\n @service selectionData;\r\n @service errorHandling;\r\n @service intl;\r\n\r\n @alias('errorHandling.bwWarnings') bwWarnings;\r\n\r\n menuId = 'settling-tabs';\r\n\r\n updateAppData = () => {};\r\n\r\n @computed('selectionData.selectedAdc.{partCore,cadc}') get rcFilterBandwidthBodyArgs() {\r\n return {\r\n selectedAdc: this.selectionData.selectedAdc.partCore,\r\n cadc: PrettyNum.eng3(this.selectionData.selectedAdc.cadc),\r\n cadcUom: this.intl.t('units.f'),\r\n };\r\n }\r\n\r\n // {{pretty-num value=this.model.samplePeriod uom=(t \"units.s\") separatedUnit=true}}\r\n @computed('model.samplePeriod') get prettySamplePeriod() {\r\n return `${PrettyNum.eng3(this.model.samplePeriod, { separatedUnit: true })}${this.intl.t('units.s')}`;\r\n }\r\n\r\n // {{pretty-num value=this.model.inputSettlingArrays.conversionTime uom=(t \"units.s\") separatedUnit=true}}\r\n @computed('model.inputSettlingArrays.conversionTime') get prettyConversionTime() {\r\n return `${PrettyNum.eng3(this.model.inputSettlingArrays.conversionTime, { separatedUnit: true })}${this.intl.t(\r\n 'units.s',\r\n )}`;\r\n }\r\n\r\n // {{pretty-num value=this.model.inputSettlingArrays.acquisitionTime uom=(t \"units.s\") separatedUnit=true}}\r\n @computed('model.inputSettlingArrays.acquisitionTime') get prettyAcquisitionTime() {\r\n return `${PrettyNum.eng3(this.model.inputSettlingArrays.acquisitionTime, { separatedUnit: true })}${this.intl.t(\r\n 'units.s',\r\n )}`;\r\n }\r\n\r\n // {{pretty-num value=this.model.filterBandwidth uom=(t \"units.hz\") separatedUnit=true}}\r\n @computed('model.filterBandwidth') get prettyFilterBandwidth() {\r\n return `${PrettyNum.eng3(this.model.filterBandwidth, { separatedUnit: true })}${this.intl.t('units.hz')}`;\r\n }\r\n\r\n // {{pretty-num value=this.model.oneLsb uom=(t \"units.v\") separatedUnit=true}}\r\n @computed('model.oneLsb') get prettyOneLsb() {\r\n return `${PrettyNum.eng3(this.model.oneLsb, { separatedUnit: true })}${this.intl.t('units.v')}`;\r\n }\r\n\r\n @computed('selectionData.selectedAdc.settlingPanelMessageIntl') get settlingPanelMessage() {\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n return selectedAdc.settlingPanelMessageIntl\r\n ? this.intl.t(`messages.${selectedAdc.settlingPanelMessageIntl}`, { adc: selectedAdc.partCore })\r\n : null;\r\n }\r\n\r\n @action downloadSimulation() {\r\n this.ltSpice.downloadSimulation();\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#if this.errorHandling.vSupplyError}}\\r\\n \\r\\n {{else}}\\r\\n
\\r\\n

\\r\\n {{ this.gridTitle }}\\r\\n

\\r\\n \\r\\n
\\r\\n {{#if this.warning}}\\r\\n

\\r\\n {{ this.warningMessage }}\\r\\n

\\r\\n {{/if}}\\r\\n\\r\\n {{#if this.error}}\\r\\n
\\r\\n {{this.errorMessage}}\\r\\n
\\r\\n {{else}}\\r\\n
\\r\\n {{#if (is-not this.sigmaDeltaData.isSigmaDeltaAdc)}}\\r\\n \\r\\n {{/if}}\\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 {{/if}}\\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/settling-tab-panel.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './settling-tab-panel.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, action } from '@ember/object';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport { htmlSafe } from '@ember/template';\r\n\r\nexport default class SettlingTabPanel extends Component {\r\n tagName = '';\r\n\r\n @service intl;\r\n @service('data') model;\r\n @service toolData;\r\n @service plotData;\r\n @service errorHandling;\r\n @service componentManager;\r\n @service hashDataService;\r\n @service sigmaDeltaData;\r\n @service tabService;\r\n\r\n panelId = null;\r\n\r\n gridType = '';\r\n modalBodyArgs = {};\r\n errorArgs = {};\r\n\r\n error = null;\r\n errorTranslation = '';\r\n\r\n @computed('model.isSequencerEnabled') get showLegend() {\r\n return this.model.isSequencerEnabled;\r\n }\r\n\r\n @computed(\r\n 'lsbError',\r\n 'cycleLsbLine',\r\n 'vcap',\r\n 'cycleLine',\r\n 'ppmError',\r\n 'cyclePpmLine',\r\n 'model.{inputSettlingChart,isSequencerEnabled}',\r\n )\r\n get inputSettlingChartPlotLines() {\r\n let result = [\r\n {\r\n array: this.lsbError,\r\n name: this.model.isSequencerEnabled\r\n ? this.intl.t('legend_labels.inx')\r\n : this.intl.t('legend_labels.actual_adc_input'),\r\n color: this.toolData.data.colors.noiseDriver,\r\n hidden: this.model.inputSettlingChart != 1,\r\n },\r\n {\r\n arrayWithX: this.cycleLsbLine,\r\n name: 'cycle2Lsb',\r\n color: '#333',\r\n markers: true,\r\n hideLegend: true,\r\n hidden: this.model.inputSettlingChart != 1,\r\n },\r\n {\r\n array: this.vcap,\r\n name: this.model.isSequencerEnabled\r\n ? this.intl.t('legend_labels.inx')\r\n : this.intl.t('legend_labels.actual_adc_input'),\r\n color: this.toolData.data.colors.noiseDriver,\r\n hidden: this.model.inputSettlingChart != 2,\r\n },\r\n {\r\n arrayWithX: this.cycleLine,\r\n name: 'cycle2',\r\n color: '#333',\r\n markers: true,\r\n hideLegend: true,\r\n hidden: this.model.inputSettlingChart != 2,\r\n },\r\n {\r\n array: this.ppmError,\r\n name: this.model.isSequencerEnabled ? this.intl.t('legend_labels.inx') : this.intl.t('chart_tabs.ppm'),\r\n color: this.toolData.data.colors.noiseDriver,\r\n hidden: this.model.inputSettlingChart != 3,\r\n },\r\n {\r\n arrayWithX: this.cyclePpmLine,\r\n name: 'cycle2Ppm',\r\n color: '#333',\r\n markers: true,\r\n hideLegend: true,\r\n hidden: this.model.inputSettlingChart != 3,\r\n },\r\n ];\r\n\r\n let foundPlotLine = result.find((item) => !!item.array && !item.hidden);\r\n if (foundPlotLine && this.model.isSequencerEnabled) {\r\n let inyData = foundPlotLine.array.map(() => 0);\r\n result.unshift({\r\n array: inyData,\r\n name: this.intl.t('legend_labels.iny'),\r\n color: 'orange',\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n @computed('model.inputSettlingChart') get yLabel() {\r\n let result = null;\r\n\r\n switch (this.model.inputSettlingChart) {\r\n case 1:\r\n result = this.intl.t('chart_tabs.lsb'); //'LSB Error';\r\n break;\r\n case 2:\r\n result = this.intl.t('chart_tabs.adc_input'); //'ADC Input (Volts)';\r\n break;\r\n case 3:\r\n result = this.intl.t('chart_tabs.ppm'); //'PPM Error';\r\n break;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n @computed('gridType', 'model.frequency') get gridTitle() {\r\n return this.intl.t(`tabs.${this.gridType}.title`, { frequency: PrettyNum.eng3(this.model.frequency) });\r\n }\r\n\r\n @computed('errorTranslation', 'errorArgs') get errorMessage() {\r\n if (this.errorTranslation) {\r\n return htmlSafe(this.intl.t(this.errorTranslation, this.errorArgs));\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('warningTranslation', 'warningArgs') get warningMessage() {\r\n return this.intl.t(this.warningTranslation, this.warningArgs);\r\n }\r\n\r\n @computed('gridType') get warningQAAttrText() {\r\n return `${this.gridType}_in_sig_tab_msg`;\r\n }\r\n\r\n @computed('gridType') get modalName() {\r\n return `${this.gridType}_input_signal`;\r\n }\r\n\r\n @computed('gridType') get chartId() {\r\n return `${this.gridType}Chart`;\r\n }\r\n\r\n @computed('gridType', 'model.showLsbChart') get cycleLabelTop() {\r\n return this.gridType === this.plotData.inputSettlingConfig.ac.name && this.model.showLsbChart;\r\n }\r\n\r\n @action toggleChart(toggled) {\r\n this.set('model.inputSettlingChart', toggled);\r\n this.setInputSettlingChartUrlParameter();\r\n\r\n if (this.updateAppData) this.updateAppData();\r\n }\r\n\r\n setInputSettlingChartUrlParameter() {\r\n this.hashDataService.setUrlParameter('model.inputSettlingChart');\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n {{#if (eq this.model.inputSettlingChart 1)}}\\r\\n {{t \\\"chart_labels.general_settling\\\" error=(math-round @lsb step=0.5 func=\\\"ceil\\\" adjustedStep=true) uom=(t \\\"units.lsbs\\\")}}\\r\\n {{else}}\\r\\n {{#if (eq this.model.inputSettlingChart 3)}}\\r\\n {{t \\\"chart_labels.general_settling\\\" error=(math-round @ppm step=0.5 func=\\\"ceil\\\" adjustedStep=true) uom=(t \\\"units.ppms\\\")}}\\r\\n {{else}}\\r\\n {{t \\\"chart_labels.volts_settling\\\" volts=(pretty-num value=@volts) uom=(t \\\"units.v\\\")}}\\r\\n {{/if}}\\r\\n {{/if}}\\r\\n\",{ moduleName: \"adcdriver/components/settling-value-overlay.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './settling-value-overlay.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class SettlingValueOverlay extends Component {\r\n @service('data') model;\r\n\r\n tagName = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n
\\r\\n \\r\\n

\\r\\n {{t \\\"icon_modal.share.title\\\"}}\\r\\n

\\r\\n

{{t \\\"icon_modal.share.p1\\\"}}

\\r\\n

\\r\\n \\r\\n {{this.currentUrl}}\\r\\n \\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n {{this.copyResultMessage}}\\r\\n \\r\\n {{#if (eq this.copyResult \\\"success\\\")}}\\r\\n {{!-- template-lint-disable no-html-comments --}}\\r\\n \\r\\n {{/if}}\\r\\n {{#if (eq this.copyResult \\\"fail\\\")}}\\r\\n {{!-- template-lint-disable no-html-comments --}}\\r\\n \\r\\n {{/if}}\\r\\n \\r\\n \\r\\n
\\r\\n

{{t \\\"icon_modal.share.p2\\\"}}

\\r\\n
\\r\\n
\\r\\n

\\r\\n {{t \\\"icon_modal.share.subHeader2\\\"}}\\r\\n

\\r\\n

\\r\\n \\r\\n {{t \\\"icon_modal.share.blog\\\"}}\\r\\n \\r\\n

\\r\\n
\\r\\n
\",{ moduleName: \"adcdriver/components/share-modal.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './share-modal.hbs'; */\nimport Component from '@glimmer/component';\r\nimport { tracked } from '@glimmer/tracking';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\nimport { modifier } from 'ember-modifier';\r\n\r\nexport default class ShareModal extends Component {\r\n @service intl;\r\n @service('aditools-site') siteconfig;\r\n @service hashService;\r\n @tracked copyResultClass = null;\r\n @tracked copyResultMessage = null;\r\n @tracked copyResult = null;\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Component Actions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n\r\n get currentUrl() {\r\n return `${this.siteconfig.AdcDriverUrl}/${this.hashService.locationHash}`;\r\n }\r\n\r\n sharePopup = modifier(() => {\r\n this.copyResultClass = '';\r\n this.copyResultMessage = '';\r\n this.copyResult = '';\r\n });\r\n\r\n @action copyClick() {\r\n navigator.clipboard.writeText(this.currentUrl).then(\r\n () => {\r\n this.copyResultClass = 'share-confirmation-ok';\r\n this.copyResultMessage = this.intl.t('icon_modal.share.copy');\r\n this.copyResult = 'success';\r\n },\r\n () => {\r\n this.copyResultClass = 'share-confirmation-ng';\r\n this.copyResultMessage = this.intl.t('icon_modal.share.copyFail');\r\n this.copyResult = 'fail';\r\n },\r\n );\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#each this.tabs as |tab|}}\\r\\n {{#if tab.type.isMain}}\\r\\n \\r\\n \\r\\n \\r\\n {{else}}\\r\\n \\r\\n {{/if}}\\r\\n {{/each}}\\r\\n
\",{ moduleName: \"adcdriver/components/tab-content.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './tab-content.hbs'; */\nimport Component from '@ember/component';\r\n\r\nexport default class TabContent extends Component {\r\n tagName = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n
\\r\\n !\\r\\n
\\r\\n
\\r\\n {{this.primaryMessage}}\\r\\n
    \\r\\n {{#each this.ulArray as |item|}}\\r\\n
  • {{item}}
  • \\r\\n {{/each}}\\r\\n
\\r\\n
\\r\\n
\",{ moduleName: \"adcdriver/components/tab-error.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './tab-error.hbs'; */\nimport Component from '@ember/component';\r\n\r\nexport default class TabError extends Component {\r\n tagName = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n <:context>\\r\\n
{{this.selectionData.selectedAdc.partCore}}
\\r\\n
\\r\\n {{t \\\"labels.with_driver\\\"}} {{this.selectionData.selectedDriver.partCore}}\\r\\n
\\r\\n \\r\\n <:tabs>\\r\\n {{#each this.enabledTabs as |tab|}}\\r\\n {{#unless tab.hide}}\\r\\n \\r\\n {{/unless}}\\r\\n {{/each}}\\r\\n \\r\\n <:actions>\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{! template-lint-disable no-invalid-interactive}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\",{ moduleName: \"adcdriver/components/tab-header-area.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './tab-header-area.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\nimport { action } from '@ember/object';\r\nimport { tracked } from '@glimmer/tracking';\r\nimport { htmlSafe } from '@ember/template';\r\nimport { modifier } from 'ember-modifier';\r\n\r\nexport default class TabHeaderArea extends Component {\r\n tagName = '';\r\n\r\n @service('aditools-analytics') analytics;\r\n @service('data') model;\r\n @service intl;\r\n @service hashService;\r\n @service tabService;\r\n @service selectionData;\r\n @service errorHandling;\r\n @service partData;\r\n\r\n @tracked enabledTabs = this.tabService.tabs.items.main;\r\n @tracked activeTab = this.enabledTabs.find((x) => x.isSelected).name;\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Properties //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n\r\n get videoMessage() {\r\n const translationArgs = {\r\n analogInputModel: this.intl.t('urls.videos.analogInputModel'),\r\n kickbackCalculations: this.intl.t('urls.videos.kickbackCalculations'),\r\n designingRCFilter: this.intl.t('urls.videos.designingRCFilter'),\r\n simulatingAnalogInputModel: this.intl.t('urls.videos.simulatingAnalogInputModel'),\r\n precisionAdcDriverTool: this.intl.t('urls.videos.precisionAdcDriverTool'),\r\n driverRingingAndInstability: this.intl.t('urls.videos.driverRingingAndInstability'),\r\n distortionCausedByLargeRfilt: this.intl.t('urls.videos.distortionCausedByLargeRfilt'),\r\n sarAdcsWithReducedKickback: this.intl.t('urls.videos.sarAdcsWithReducedKickback'),\r\n loopGainInOpAmps: this.intl.t('urls.videos.loopGainInOpAmps'),\r\n bodePlotsAndOpAmps: this.intl.t('urls.videos.bodePlotsAndOpAmps'),\r\n decompensatedOpAmps: this.intl.t('urls.videos.decompensatedOpAmps'),\r\n drivingACapacitiveLoad: this.intl.t('urls.videos.drivingACapacitiveLoad'),\r\n parasiticCapacitanceInOpAmps: this.intl.t('urls.videos.parasiticCapacitanceInOpAmps'),\r\n };\r\n return htmlSafe(this.intl.t('icon_modal.video.body', translationArgs));\r\n }\r\n\r\n get helpMessage() {\r\n return htmlSafe(this.intl.t('icon_modal.about_help.body'));\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////////\r\n // Component Actions //\r\n ////////////////////////////////////////////////////////////////////////////////\r\n @action selectTab(tab) {\r\n this.activeTab = tab;\r\n\r\n const selectedTab = this.tabService.tabs.items.main.find((x) => x.name === tab);\r\n this.tabService.goToTab(selectedTab);\r\n this.tabService.updateTabs(this.model);\r\n this.hashService.handleUrlParameters();\r\n\r\n if (selectedTab.type.sendAnalyticsEventOnTabChange) {\r\n this.analytics.setWebEvent(this.partData.toolName, 'Main Tab', selectedTab.description || selectedTab.name);\r\n }\r\n }\r\n\r\n @action tabIsDisabled(tab) {\r\n return !this.enabledTabs.map((x) => x.name).includes(tab);\r\n }\r\n\r\n @action openToolbarAction(toolbar) {\r\n this.analytics.setWebEvent(this.partData.toolName, 'Toolbar Link', `${toolbar}`);\r\n }\r\n\r\n sharePopup = modifier(() => {\r\n const dialog = document.querySelector('#share-dialog');\r\n dialog.showModal();\r\n });\r\n\r\n @action closeShareDialog(doClose, evt) {\r\n const dialog = document.querySelector('#share-dialog');\r\n const popup = document.querySelector('#share-popup');\r\n const target = evt.target;\r\n if (!popup.contains(target)) {\r\n dialog.close();\r\n doClose();\r\n }\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n {{#if this.error}}\\r\\n \\r\\n {{else}}\\r\\n {{yield}}\\r\\n {{/if}}\\r\\n
\",{ moduleName: \"adcdriver/components/tab-pane.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './tab-pane.hbs'; */\nimport Component from '@ember/component';\r\n\r\nexport default class TabPane extends Component {\r\n tagName = '';\r\n errorList = [];\r\n error = '';\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
\\r\\n \\r\\n \\r\\n \\r\\n
\",{ moduleName: \"adcdriver/components/thd-tab.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './thd-tab.hbs'; */\nimport Component from '@ember/component';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class ThdTab extends Component {\r\n tagName = '';\r\n\r\n @service('data') model;\r\n @service toolData;\r\n @service tabService;\r\n\r\n thdHelpBodyArgs = {};\r\n\r\n init() {\r\n super.init();\r\n\r\n let colors = this.toolData.data.colors;\r\n\r\n this.thdHelpBodyArgs = {\r\n freqContainerStyle: this.getLegendStyle(colors.noiseSignal, true),\r\n sourceContainerStyle: this.getLegendStyle(colors.noiseSource),\r\n driverContainerStyle: this.getLegendStyle(colors.noiseDriver),\r\n adcContainerStyle: this.getLegendStyle(colors.noiseAdc),\r\n systemContainerStyle: this.getLegendStyle(colors.noiseSystem, true),\r\n };\r\n }\r\n\r\n getLegendStyle(color, solid) {\r\n let result = 'padding-left: 15px;';\r\n\r\n if (solid) result += 'border-left: 3px solid ' + color + ';';\r\n else\r\n result +=\r\n 'background-image: linear-gradient(to bottom, ' +\r\n color +\r\n ' 60%, rgba(255, 255, 255, 0) 0%);' +\r\n 'background-position: left;' +\r\n 'background-size: 2px 16px;' +\r\n 'background-repeat: repeat-y;';\r\n\r\n return result;\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if this.selectedItem.hasVariant}}\\r\\n {{#if this.variants}}\\r\\n {{#each this.variants as |variant|}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/each}}\\r\\n {{else}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{/if}}\\r\\n{{/if}}\",{ moduleName: \"adcdriver/components/variant-selector.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './variant-selector.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed, action } from '@ember/object';\r\nimport Constants from '../utils/constants';\r\n\r\nimport snakeCase from 'lodash.snakecase';\r\n\r\nexport default class VariantSelector extends Component {\r\n tagName = '';\r\n\r\n variantModalBodyArgs = {};\r\n\r\n showVariants = {};\r\n\r\n @action onVariantSelectorChange(variantCode) {\r\n // This should automatically update the model variables\r\n\r\n if (this.selectedItem.variants) {\r\n if (variantCode in this.showVariants)\r\n this.set(`showVariants.${variantCode}`, !this.showVariants[variantCode]);\r\n else this.set(`showVariants.${variantCode}`, true);\r\n\r\n this.set(\r\n 'showVariant',\r\n Object.values(this.showVariants).some((value) => value),\r\n );\r\n } else this.set('showVariant', !this.showVariant);\r\n\r\n if (this.onVariantChange) this.onVariantChange(variantCode);\r\n }\r\n\r\n @computed('selectedItem.variants.@each.{code,display}', 'showVariants') get variants() {\r\n if (this.selectedItem.variants) {\r\n return this.selectedItem.variants.map((variant) => {\r\n return {\r\n inputId: `${variant.code}-${this.inputId}`,\r\n code: variant.code,\r\n inputDisplay: variant.display,\r\n checked: variant.code in this.showVariants ? this.showVariants[variant.code] : false,\r\n qaAttrValue: `${Constants.QA_ATTR_PREFIX}_enable_${snakeCase(\r\n variant.display.toLowerCase(),\r\n )}_mode_cb`,\r\n modalBodyArgs: Object.assign(\r\n {},\r\n this.variantModalBodyArgs,\r\n variant.code in this.bodyArgsByVariant ? this.bodyArgsByVariant[variant.code] : {},\r\n ),\r\n };\r\n });\r\n } else return null;\r\n }\r\n\r\n @computed('selectedItem.variant.code') get modalName() {\r\n let variant = this.selectedItem.variant;\r\n return variant ? variant.code : null;\r\n }\r\n\r\n @computed('selectedItem.variant.display') get inputDisplay() {\r\n let variant = this.selectedItem.variant;\r\n return variant ? variant.display : null;\r\n }\r\n\r\n @computed('selectedItem.variant.display') get qaAttrValue() {\r\n let variant = this.selectedItem.variant;\r\n if (variant) {\r\n let value = snakeCase(variant.display.toLowerCase());\r\n return `${Constants.QA_ATTR_PREFIX}_enable_${value}_mode_cb`;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n @computed('variantModelBodyArgs.lastUpdateDate', 'selectedItem.variant.code', 'bodyArgsByVariant.lastUpdateDate')\r\n get modalBodyArgs() {\r\n let code = this.selectedItem.variant ? this.selectedItem.variant.code : null;\r\n return code\r\n ? Object.assign(\r\n {},\r\n this.variantModalBodyArgs,\r\n this.bodyArgsByVariant && code in this.bodyArgsByVariant ? this.bodyArgsByVariant[code] : {},\r\n )\r\n : {};\r\n }\r\n}\r\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\r\\n {{t \\\"chart_labels.volts_kickback\\\" value=this.voltsKickback}}\\r\\n\",{ moduleName: \"adcdriver/components/volts-kickback-overlay.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './volts-kickback-overlay.hbs'; */\nimport Component from '@ember/component';\r\nimport { computed } from '@ember/object';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\n\r\nexport default class VoltsKickbackOverlay extends Component {\r\n tagName = '';\r\n inVoltsKickback = null;\r\n\r\n @computed('inVoltsKickback') get voltsKickback() {\r\n return PrettyNum.eng3(this.inVoltsKickback, { scale: 0 });\r\n }\r\n}\r\n","\n export default (function() {\n var prefix = 'adcdriver';\ntry {\n var metaName = prefix + '/config/environment';\n var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n var config = JSON.parse(decodeURIComponent(rawConfig));\n\n var exports = { 'default': config };\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n}\ncatch(err) {\n throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n })().default;\n ","import Controller from '@ember/controller';\r\n\r\nexport default class IndexController extends Controller {}\r\n","export default {\r\n svgReplacements: {\r\n 'ADxxxx': {\r\n reference: 'selectedAdc.partCore',\r\n link: 'selectedAdc.datasheet',\r\n qaAttrValue: 'adc'\r\n },\r\n 'ADAxxxx-x': {\r\n reference: 'selectedDriver.partCore',\r\n link: 'selectedDriver.datasheet',\r\n qaAttrValue: 'driver'\r\n },\r\n 'ADGxxxx': {\r\n reference: 'selectedMux.partCore',\r\n link: 'selectedMux.datasheet',\r\n qaAttrValue: 'mux'\r\n },\r\n 'rx': {\r\n reference: 'rext',\r\n calculate: (value) => value * 4,\r\n qaAttrValue: 'rext'\r\n },\r\n 'rr': {\r\n reference: 'rext'\r\n },\r\n 'cx': {\r\n reference: 'cext',\r\n calculate: (value) => value / 3.9,\r\n qaAttrValue: 'cext'\r\n },\r\n 'cc': {\r\n reference: 'cext'\r\n },\r\n 'ff': {\r\n reference: 'rf'\r\n },\r\n 'gg': {\r\n reference: 'rg'\r\n },\r\n 'seq_inX': {\r\n reference: 'seqInX'\r\n },\r\n 'seq_inY': {\r\n reference: 'seqInY'\r\n }\r\n },\r\n\r\n svgHiddenGroups: [\r\n { key: 'RCfilterGroup', meetsRequirements: (model) => !model.filterEnabled }\r\n ],\r\n\r\n svgTextElements: 'text,tspan',\r\n\r\n circuitConfigs: [\r\n 'SEADC_SESource_SEAmp_Inverting',\r\n 'SEADC_SESource_SEAmp_Follower',\r\n 'SEADC_SESource_SEAmp_NonInverting',\r\n 'DiffADC_SESource_SEAmp_Inverting',\r\n 'DiffADC_SESource_SEAmp_Follower',\r\n 'DiffADC_SESource_SEAmp_NonInverting',\r\n 'DiffADC_SESource_DiffAmp_Inverting',\r\n 'DiffADC_DiffSource_SEAmp_Inverting',\r\n 'DiffADC_DiffSource_SEAmp_Follower',\r\n 'DiffADC_DiffSource_SEAmp_Non_Inverting',\r\n 'DiffADC_DiffSource_DiffAmp_Inverting',\r\n 'SEADC_SESource_DiffAmp',\r\n 'SEADC_DiffSource',\r\n 'DiffADC_DiffAmp_SESource_NonInvertingOrFollower',\r\n 'DiffADC_DiffSource_DiffAmp_NonInvertingOrFollower'\r\n ],\r\n\r\n circuitDefaults: {\r\n svg: '',\r\n config: '',\r\n message: '',\r\n type: '',\r\n secondDriver: false,\r\n nInvertingEnabled: true,\r\n inputSourceTypeError: false,\r\n hasInternalMux: false,\r\n internalMux: false\r\n },\r\n}","export default {\r\n /**\r\n * These should all be model defaults that can be set to the\r\n * model from the url\r\n */\r\n hashModelSettings: {\r\n samplingRate: 0, // from adc\r\n vref: 0, // from adc\r\n gain: 1,\r\n rf: 50,\r\n frequency: 2000,\r\n multiplexed: false,\r\n wbNoise: 0.000000004,\r\n thd: 130,\r\n showOptionalSourceSettings: false,\r\n rext: 0, // from adc\r\n cext: 0, // from adc\r\n vcm: 2.5, // from adc\r\n // sinadChart: true,\r\n inputSettlingChart: 1,\r\n showAdcVariant: false,\r\n showDriverVariant: false,\r\n showHiZVariant: false,\r\n showSeqVariant: false,\r\n debugMode: false,\r\n vSupplyPos: 0, // calculated\r\n vSupplyNeg: 0, // calculated\r\n },\r\n\r\n otherModelSettings: {\r\n // Set min and max values\r\n minSamplingRate: 100000,\r\n minSimulationTimeSteps: 100,\r\n maxInputPulseRiseTime: 0.001,\r\n //minInputPulseRiseTime: 0.000000001,\r\n minInputPulseRiseTime: 0,\r\n //minLsb: ??,\r\n minLsb: 1,\r\n minVout: 0.1, //??\r\n maxGain: 10,\r\n maxWarningGain: 5,\r\n minGain: 0.2,\r\n //maxRf: ??,\r\n //minRf: ??,\r\n minFrequency: 1,\r\n maxRext: 2000,\r\n minRext: 2,\r\n maxCext: 0.0000001,\r\n minCext: 1e-11,\r\n maxWbNoise: 0.000001,\r\n minWbNoise: 0,\r\n maxThd: 200, //??\r\n minThd: 50,\r\n // Set defaults\r\n kt: (298 * (1.38e-23)),\r\n indexAtFreq: 0,\r\n // pulseTabError: false,\r\n averaging: 1\r\n },\r\n\r\n additionalHashModelSettings: {\r\n showOptionalSourceSettings: {\r\n wbNoise: 0,\r\n thd: 200\r\n }\r\n },\r\n\r\n modelToHashMap: {\r\n showOptionalSourceSettings: \"oss\",\r\n debugMode: \"debug\"\r\n }\r\n}","import LtSpiceConsts from '../utils/lt-spice';\r\n\r\nexport default {\r\n templateToFilesMappings: [\r\n {\r\n in: [ \r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.READ\r\n } \r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.READ,\r\n fileType: 'txt'\r\n }, \r\n {\r\n in: [ \r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.DRIVER,\r\n fileType: 'asc'\r\n }, \r\n {\r\n in: [ \r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.DRIVER,\r\n fileType: 'asy'\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.ADC\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.ADC,\r\n fileType: 'asc',\r\n conditional: (data) => { return !data.isADCInLTSpice }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.ADC\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.ADC,\r\n fileType: 'asy',\r\n conditional: (data) => { return !data.isADCInLTSpice }\r\n },\r\n {\r\n // TRANSIENT\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TITLE_AND_POWER_TRANSIENT,\r\n numRemoveTopLines: 0,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER_AND_SOURCE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: (data) => { \r\n return data.isADCInLTSpice ? \r\n LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_TRANSIENT_LT_SPICE : \r\n LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_TRANSIENT;\r\n },\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: (data) => {\r\n return data.hasHiZ ? 0 : 2\r\n }\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.TRANSIENT,\r\n replacements: {\r\n vdiff: (data) => { return data.transientVdiff }\r\n },\r\n fileType: 'asc'\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TRANSIENT\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.TRANSIENT,\r\n fileType: 'plt'\r\n },\r\n {\r\n // MUXED TRANSIENT\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TITLE_AND_POWER_MUXED_TRANSIENT,\r\n numRemoveTopLines: 0,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER_AND_SOURCE_MUXED,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: (data) => { \r\n return data.isADCInLTSpice ? \r\n LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_TRANSIENT_LT_SPICE : \r\n LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_TRANSIENT;\r\n },\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: (data) => {\r\n return data.hasHiZ ? 0 : 2\r\n }\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.MUXED,\r\n replacements: {\r\n vdiff: (data) => { return data.pulseOp }\r\n },\r\n fileType: 'asc',\r\n conditional: (data) => { return data.isMultiplexed; }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.MUXED\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.MUXED,\r\n fileType: 'plt',\r\n conditional: (data) => { return data.isMultiplexed }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TITLE_AND_POWER_NOISE,\r\n numRemoveTopLines: 0,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER_AND_SOURCE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_NOISE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.NOISE,\r\n fileType: 'asc',\r\n replacements: {\r\n ro: (data) => { return data.ro || data.ro === 0 ? `${data.ro} noiseless` : ''},\r\n vdiff: (data) => { return 0 }\r\n }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.NOISE\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.NOISE,\r\n fileType: 'plt'\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TITLE_AND_POWER_OPRANGE,\r\n numRemoveTopLines: 0,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER_AND_SOURCE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_NOISE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0,\r\n overrides: { \r\n noise_out: 'driver_out'\r\n }\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.OPRANGE,\r\n fileType: 'asc',\r\n replacements: {\r\n vdiff: (data) => { return data.opRangeVdiff }\r\n }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.OPRANGE\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.OPRANGE,\r\n fileType: 'plt'\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.ADC_AND_RC_FFT,\r\n numRemoveTopLines: 0,\r\n numRemoveBottomLines: 0\r\n },\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.DRIVER_AND_SOURCE,\r\n numRemoveTopLines: 2,\r\n numRemoveBottomLines: 0\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.FFT,\r\n fileType: 'asc',\r\n replacements: {\r\n vdiff: (data) => { return data.thdFFTVdiff }\r\n },\r\n conditional: (data) => { return data.isFFTLTSpice }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.FFT\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.FFT,\r\n fileType: 'plt',\r\n conditional: (data) => { return data.isFFTLTSpice }\r\n },\r\n {\r\n in: [\r\n {\r\n name: LtSpiceConsts.TEMPLATE_NAMES.TOOL\r\n }\r\n ],\r\n out: LtSpiceConsts.FILE_NAMES.TOOL,\r\n fileType: 'url'\r\n }\r\n ],\r\n}","import Constants from '../utils/constants';\r\n\r\nexport default {\r\n types: [\r\n {\r\n id: Constants.MODAL_TYPE.BASE,\r\n open: false\r\n },\r\n {\r\n id: Constants.MODAL_TYPE.ON_CLOSE,\r\n open: false\r\n },\r\n {\r\n id: Constants.MODAL_TYPE.FEEDBACK,\r\n open: false\r\n },\r\n {\r\n id: Constants.MODAL_TYPE.SELECT.ADC,\r\n open: false\r\n },\r\n {\r\n id: Constants.MODAL_TYPE.SELECT.DRIVER,\r\n open: false\r\n }\r\n ],\r\n config: {\r\n default: {\r\n title: '',\r\n body: '',\r\n type: Constants.MODAL_TYPE.BASE,\r\n size: 'md',\r\n handleOnClose: null,\r\n analyticMessage: 'dialogViewed'\r\n },\r\n about: {\r\n title: 'icon_modal.about_help.title',\r\n body: 'icon_modal.about_help.body',\r\n analyticMessage: 'helpViewed'\r\n },\r\n browserIssue: {\r\n title: 'modal.browserIssue.title',\r\n body: 'modal.browserIssue.body',\r\n analyticMessage: 'browserIssueViewed'\r\n },\r\n feedback: {\r\n title: 'icon_modal.feedback.title',\r\n type: Constants.MODAL_TYPE.FEEDBACK,\r\n size: 'sm',\r\n analyticMessage: 'feedbackViewed'\r\n },\r\n videos: {\r\n title: 'icon_modal.video.title',\r\n body: 'icon_modal.video.body',\r\n analyticMessage: 'videosViewed'\r\n },\r\n adcSelect: {\r\n type: Constants.MODAL_TYPE.SELECT.ADC\r\n },\r\n driverSelect: {\r\n type: Constants.MODAL_TYPE.SELECT.DRIVER\r\n }\r\n },\r\n qaAttrValues: {\r\n adc_input: 'adc_and_settings',\r\n driver_input: 'driver_and_settings',\r\n filter_input: 'filter_settings',\r\n ac_input_signal: 'ac_input_settling_simulation',\r\n dc_input_signal: 'dc_input_settling_simulation',\r\n input_signal_input: 'input_signal_settings',\r\n multiplexed: 'multiplexed_input',\r\n optional_source_settings: 'src_setting_info',\r\n thd: 'thd_help'\r\n }\r\n}","export default {\r\n inputSettlingConfig: {\r\n default: {\r\n tabId: 3,\r\n zoomEnabled: true,\r\n legendLocation: 'w',\r\n padY: 1.3,\r\n tickStep: 0,\r\n numPlotTicks: 6,\r\n ticksAbove: 2,\r\n ticksBelow: 1\r\n },\r\n dc: {\r\n name: 'Dc',\r\n subtabId: 1,\r\n\r\n // volts tab\r\n volts: {\r\n tickStep: 0.001\r\n }\r\n },\r\n ac: {\r\n name: 'Sin',\r\n subtabId: 2,\r\n tooltipLocation: 'nw',\r\n\r\n volts: {\r\n tickStep: 0.25\r\n }\r\n },\r\n muxed: {\r\n name: 'Muxed',\r\n subtabId: 3,\r\n legendLocation: 'nw',\r\n tooltipLocation: 'se'\r\n }\r\n },\r\n\r\n noiseDistortionConfig: {\r\n thd: {\r\n tickIncrement: 10,\r\n requiredYPadding: 1.5,\r\n zoomFitAllowed: true,\r\n legendLocation: 'nw'\r\n },\r\n sinad: {\r\n tickIncrement: 10,\r\n requiredYPadding: 1.5,\r\n legendLocation: 'sw'\r\n },\r\n enob: {\r\n tickIncrement: 1,\r\n requiredYPadding: 0.4,\r\n legendLocation: 'sw'\r\n }\r\n },\r\n\r\n noiseDistortionGraphObjects: {\r\n driver: {\r\n translation: 'legend_labels.thd_noise_driver',\r\n color: 'noiseDriver',\r\n series: {\r\n linePattern: 'dashed'\r\n },\r\n graphLine: 'ampLine'\r\n },\r\n adc: {\r\n translation: 'legend_labels.thd_noise_adc',\r\n color: 'noiseAdc',\r\n series: {\r\n linePattern: 'dashed'\r\n },\r\n graphLine: 'adcLine'\r\n },\r\n system: {\r\n translation: 'legend_labels.thd_noise_system',\r\n color: 'noiseSystem',\r\n series: {\r\n lineWidth: 3\r\n },\r\n graphLine: 'systemLine'\r\n },\r\n signal: {\r\n translation: 'legend_labels.thd_noise_signal',\r\n color: 'noiseSignal',\r\n series: {\r\n lineWidth: 3\r\n },\r\n graphLine: 'frequencyLine'\r\n },\r\n source: {\r\n translation: 'legend_labels.thd_noise_source',\r\n color: 'noiseSource',\r\n series: {\r\n linePattern: 'dashed'\r\n },\r\n graphLine: 'sourceLine',\r\n required: 'showOptionalSourceSettings'\r\n }\r\n },\r\n\r\n defaults: {\r\n noise: {\r\n curve: {\r\n hd2: -888,\r\n secondInvAmp: -777,\r\n mirroredAmpCurve: -999\r\n }\r\n }\r\n }\r\n}","import Constants from '../utils/constants';\r\n\r\nconst TAB_INDEX = Constants.TAB_INDEX;\r\nconst TAB_TYPE = Constants.TAB_TYPE;\r\n\r\nlet tabs = {};\r\n\r\ntabs[TAB_TYPE.MAIN] = {\r\n urlKey: 'tab',\r\n qaAttrValue: '',\r\n sendAnalyticsEventOnTabChange: true,\r\n items: {\r\n circuit: {\r\n name: 'circuit',\r\n description: 'Circuit',\r\n index: TAB_INDEX.MAIN.CIRCUIT,\r\n default: true,\r\n error: 'circuitError',\r\n errorsExist: 'circuitError',\r\n overrideTabError: true,\r\n qaAttrValue: 'ckt_tab',\r\n hasIcon: true\r\n },\r\n noise: {\r\n name: 'noise',\r\n description: 'Noise & Distortion',\r\n index: TAB_INDEX.MAIN.NOISE_DISTORTION,\r\n errorsExist: 'isNoiseDistortionTabError',\r\n qaAttrValue: 'noise_and_dist_tab',\r\n hasIcon: true\r\n },\r\n settling: {\r\n name: 'settling',\r\n description: 'Input Settling',\r\n index: TAB_INDEX.MAIN.INPUT_SETTLING,\r\n errorsExist: 'isSettlingTabError',\r\n qaAttrValue: 'in_sttlng_tab',\r\n hasIcon: true\r\n },\r\n nextSteps: {\r\n name: 'next-steps',\r\n description: 'Next Steps',\r\n index: TAB_INDEX.MAIN.NEXT_STEPS,\r\n qaAttrValue: 'nxt_steps_tab',\r\n hasIcon: true\r\n },\r\n driverPerformance: {\r\n name: 'driver-performance',\r\n index: TAB_INDEX.MAIN.DRIVER_PERFORMANCE,\r\n error: 'tempABError',\r\n errorItems: 'tempABErrorItems',\r\n hideRequirements: ['notInDebugMode']\r\n }\r\n }\r\n};\r\n\r\ntabs[TAB_TYPE.NOISE] = {\r\n urlKey: 'nTab',\r\n qaAttrValue: 'noise_and_dist',\r\n items: {\r\n thd: {\r\n name: 'thd',\r\n description: 'Thd',\r\n index: TAB_INDEX.NOISE.THD,\r\n default: true,\r\n errorsExist: 'isThdTabError'\r\n },\r\n noise: {\r\n name: 'noise-calculations',\r\n description: 'Noise',\r\n index: TAB_INDEX.NOISE.NOISE\r\n }\r\n }\r\n};\r\n\r\ntabs[TAB_TYPE.SETTLING] = {\r\n urlKey: 'sTab',\r\n qaAttrValue: 'in_sttlng',\r\n items: {\r\n dc: {\r\n name: 'dc',\r\n description: 'DC',\r\n index: TAB_INDEX.SETTLING.DC,\r\n default: true,\r\n errorsExist: 'bwWarnings.isDcTab'\r\n },\r\n ac: {\r\n name: 'ac',\r\n description: 'AC',\r\n index: TAB_INDEX.SETTLING.AC,\r\n errorsExist: 'bwWarnings.isSinTab',\r\n hideRequirements: ['selectedAdcHasFixedKickbackType']\r\n },\r\n muxed: {\r\n name: 'muxed',\r\n description: 'Muxed',\r\n index: TAB_INDEX.SETTLING.MUXED,\r\n errorsExist: 'bwWarnings.isMuxedTab',\r\n hideRequirements: ['isNotMultiplexed', 'isInternalMultiplexed']\r\n }\r\n }\r\n};\r\n\r\nexport default {\r\n tabs: tabs\r\n}","export default {\r\n \"colors\": {\r\n \"noiseAdc\": \"#A91D45\",\r\n \"noiseDriver\": \"#049dbb\",\r\n \"noiseSource\": \"#2eca5d\",\r\n \"noiseSystem\": \"#333333\",\r\n \"noiseSignal\": \"#808080\"\r\n },\r\n}","import { VALIDATION, DATA_TYPE } from '../utils/validation';\r\nimport Consts from '../utils/constants';\r\n\r\nexport default {\r\n adcRequirements: {\r\n bits: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n type: {\r\n dataType: DATA_TYPE.STRING,\r\n valueSet: [Consts.ADC_TYPE.DIFF, Consts.ADC_TYPE.SE],\r\n validations: [VALIDATION.VALUE_SET]\r\n },\r\n deviceArchitecture: {\r\n dataType: DATA_TYPE.STRING,\r\n valueSet: [Consts.ARCHITECTURE.SAR, Consts.ARCHITECTURE.SIGMA_DELTA],\r\n validations: [VALIDATION.VALUE_SET]\r\n },\r\n defaultDriver: {\r\n dataType: DATA_TYPE.STRING,\r\n validations: [VALIDATION.DEFAULT_DRIVER]\r\n },\r\n maxSampleRate: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n acquisitionTimeMin: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n cadc: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n cpin: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n vrefTest: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n thdBaseline: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n thdCorner: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n thdSlope: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n Cerror: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n datasheetRfilt: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n datasheetCfilt: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n ADCSNR: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n freqMin: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n freqMax: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.BLANK_THD_TAB]\r\n },\r\n vrefMax: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n kickbackType: {\r\n dataType: DATA_TYPE.STRING,\r\n valueSet: [Consts.KICKBACK_TYPE.FIXED, Consts.KICKBACK_TYPE.PREV_SAMPLE],\r\n validations: [VALIDATION.VALUE_SET]\r\n },\r\n kickbackVrefMultiplier: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n Vref_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n THD_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n fs_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n tacq_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n R_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n C_settlingTHDadj: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.SETTLING_THD_ADJ]\r\n },\r\n selectable: {\r\n dataType: DATA_TYPE.BOOLEAN,\r\n default: true,\r\n validations: [VALIDATION.DEFAULT]\r\n },\r\n blankTHDTab: {\r\n dataType: DATA_TYPE.BOOLEAN,\r\n default: false,\r\n validations: [VALIDATION.DEFAULT]\r\n },\r\n settlingTHDadj: {\r\n dataType: DATA_TYPE.BOOLEAN,\r\n default: false,\r\n validations: [VALIDATION.DEFAULT]\r\n },\r\n recommendedDrivers: {\r\n validations: [VALIDATION.RECOMMENDED_DRIVERS]\r\n }\r\n },\r\n\r\n driverRequirements: {\r\n type: {\r\n dataType: DATA_TYPE.STRING,\r\n valueSet: [Consts.DRIVER_TYPE.AMP, Consts.DRIVER_TYPE.DIFF_AMP],\r\n validations: [VALIDATION.VALUE_SET]\r\n },\r\n vn: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n inp: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n inn: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n slewRate: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n is: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD2flatTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD3flatTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD2slopeTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD3slopeTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD2cornerTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n HD3cornerTEMP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n unityGain: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n GBWP: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n Ro: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VsMin: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VsMax: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n rfDefault: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n rfLowerWarning: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n rfLowerLimit: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n rfiltMin: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VinHdrmNeg: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VinHdrmPos: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VoutHdrmNeg: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n VoutHdrmPos: {\r\n dataType: DATA_TYPE.NUMBER,\r\n validations: [VALIDATION.REQUIRED]\r\n },\r\n IoutSC: {\r\n dataType: DATA_TYPE.NUMBER,\r\n alternates: ['IoutLinear'],\r\n validations: [VALIDATION.ALTERNATE]\r\n },\r\n selectable: {\r\n dataType: DATA_TYPE.BOOLEAN,\r\n default: true,\r\n validations: [VALIDATION.DEFAULT]\r\n },\r\n fixedGain: {\r\n dataType: DATA_TYPE.NUMBER,\r\n default: null,\r\n validations: [VALIDATION.DEFAULT]\r\n }\r\n }\r\n}","import Constants from '../utils/constants';\r\n\r\nexport default {\r\n variants: {\r\n adc: {\r\n HiZ: {\r\n code: Constants.VARIANT.ADC.HIZ,\r\n display: \"high-Z\"\r\n },\r\n PrechargeOn: {\r\n code: Constants.VARIANT.ADC.PRECHARGE_ON,\r\n display: \"precharge\"\r\n },\r\n Seq: {\r\n code: Constants.VARIANT.ADC.SEQ,\r\n display: \"Sequencer\"\r\n }\r\n },\r\n driver: {\r\n LP: {\r\n code: Constants.VARIANT.DRIVER.LP,\r\n display: \"low power\",\r\n\r\n default: {\r\n code: Constants.VARIANT.DRIVER.FP,\r\n display: \"full power\"\r\n }\r\n }\r\n }\r\n }\r\n}","self.deprecationWorkflow = self.deprecationWorkflow || {};\r\nself.deprecationWorkflow.config = {\r\n workflow: [\r\n { handler: 'silence', matchId: 'ember-string.add-package' },\r\n { handler: 'silence', matchId: 'ember-string.from-ember-module' },\r\n ],\r\n};\r\n","import { helper } from '@ember/component/helper';\r\n\r\nexport function and(params /*, hash*/) {\r\n let passes = true;\r\n\r\n for (let i = 0; i < params.length; i++) {\r\n if (!params[i]) {\r\n passes = false;\r\n break;\r\n }\r\n }\r\n\r\n return passes;\r\n}\r\n\r\nexport default helper(and);\r\n","import { helper } from '@ember/component/helper';\r\n\r\nexport function eq(params /*, hash*/) {\r\n if (params.length < 2) return false;\r\n let [a, b] = params;\r\n return a === b;\r\n}\r\n\r\nexport default helper(eq);\r\n","import { helper } from '@ember/component/helper';\r\n\r\nexport function isNot(params /*, hash*/) {\r\n return !params[0];\r\n}\r\n\r\nexport default helper(isNot);\r\n","import { helper } from '@ember/component/helper';\r\n\r\n// Hash.step is optional.\r\n// Hash.func can be ceil, floor, round, or left blank.\r\n// round(2.74, 0.1) = 2.7\r\n// round(2.74, 0.25) = 2.75\r\n// round(2.74, 0.5) = 2.5\r\n// round(2.74, 1.0) = 3.0\r\nexport function mathRound(params, hash) {\r\n let step = hash.step;\r\n let value = params[0];\r\n let func = hash.func || 'round';\r\n\r\n step || (step = 1.0);\r\n let inv = 1.0 / step;\r\n\r\n if (hash.adjustedStep) {\r\n // Round to the nearest step UNLESS\r\n // 1 or less. Then, round up to the nearest 1/10th.\r\n // Unless the answer is .1 or less. Then round up to the nearest 1/100th.\r\n if (value <= 0.1) inv = 1.0 / 0.01;\r\n else if (value <= 1) inv = 1.0 / 0.1;\r\n }\r\n\r\n return Math[func](value * inv) / inv;\r\n}\r\n\r\nexport default helper(mathRound);\r\n","import { helper } from '@ember/component/helper';\r\n\r\nexport function ne(params /*, hash*/) {\r\n if (params.length < 2) return false;\r\n let [a, b] = params;\r\n return a != b;\r\n}\r\n\r\nexport default helper(ne);\r\n","import Helper from '@ember/component/helper';\r\n\r\nexport default class ObjectCreatorHelper extends Helper {\r\n compute(params, hash) {\r\n return hash;\r\n }\r\n}\r\n","import { helper } from '@ember/component/helper';\r\n\r\nexport function or(params /*, hash*/) {\r\n let passes = false;\r\n\r\n for (let i = 0; i < params.length; i++) {\r\n if (params[i]) {\r\n passes = true;\r\n break;\r\n }\r\n }\r\n\r\n return passes;\r\n}\r\n\r\nexport default helper(or);\r\n","import Helper from '@ember/component/helper';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport Utils from '../utils/utils';\r\n\r\nexport default class PrettyNumHelper extends Helper {\r\n compute(params, hash) {\r\n /* \r\n\t\thash: {\r\n\t\t\t\tvalue: Value to get beautified.1\r\n\t\t\t\tseparate Separate the multiplier from the value with a space.\r\n\t\t\t\tuom Unit of measure.\r\n\t\t\t}\r\n\t\t*/\r\n let func = hash.func || 'eng3',\r\n options = {};\r\n\r\n if (Utils.isNumeric(hash.scale)) options.scale = hash.scale;\r\n if (hash.separatedUnit) options.separatedUnit = hash.separatedUnit;\r\n\r\n return PrettyNum[func](hash.value, options) + (hash.uom ? hash.uom : '');\r\n }\r\n}\r\n","import { helper } from '@ember/component/helper';\r\nimport { htmlSafe } from '@ember/template';\r\n\r\nexport function safeLegendColor(params /*, hash*/) {\r\n let color = params[0];\r\n return htmlSafe(``);\r\n}\r\n\r\nexport default helper(safeLegendColor);\r\n","import { modifier } from 'ember-modifier';\r\nimport Utils from '../utils/utils';\r\n/**\r\n * Load an svg when lastUpdateDate changes\r\n */\r\nexport default modifier(\r\n // eslint-disable-next-line no-unused-vars\r\n function loadSvg(element, properties, { location, handleSvgRender, lastUpdateDate }) {\r\n if (location) Utils.loadSvg(location, element, handleSvgRender);\r\n },\r\n { eager: false },\r\n);\r\n","import { modifier } from 'ember-modifier';\r\n\r\n/**\r\n * Handle an interactive event in a noninteractive way.\r\n * This may be helpful if you want to do something on mouse click or keypress on a div but you\r\n * don't want/need to identify the div/span as a button\r\n */\r\nexport default modifier(\r\n function nonInteractiveEvent(element, properties, { name, handler }) {\r\n element.addEventListener(name, handler);\r\n },\r\n { eager: false },\r\n);\r\n","import { modifier } from 'ember-modifier';\r\n\r\nexport default modifier(\r\n function onClickOutside(element, properties, { triggerKeyword, handler, selector }) {\r\n let handleClick = (event) => {\r\n let elementToUse = selector ? document.querySelector(selector) : element;\r\n if (\r\n elementToUse &&\r\n ((triggerKeyword && !event.target.id.includes(triggerKeyword)) || !triggerKeyword) &&\r\n !elementToUse.contains(event.target)\r\n )\r\n handler();\r\n };\r\n\r\n document.addEventListener('click', handleClick);\r\n\r\n // This function will occur when the element is removed from the dom\r\n return () => document.removeEventListener('click', handleClick);\r\n },\r\n { eager: false },\r\n);\r\n","import { modifier } from 'ember-modifier';\r\nimport Constants from '../utils/constants';\r\n\r\nexport default modifier(\r\n function setQaAttr(element, properties, { selector, attrText }) {\r\n let qaAttrElement = selector ? element.querySelector(selector) : qaAttrElement;\r\n if (qaAttrElement) {\r\n qaAttrElement.setAttribute(Constants.QA_ATTR_NAME, `${Constants.QA_ATTR_PREFIX}_${attrText}`);\r\n }\r\n },\r\n { eager: false },\r\n);\r\n","import { modifier } from 'ember-modifier';\r\nimport Constants from '../utils/constants';\r\n\r\n/**\r\n * Toggle a QA Attribute between different elements depending on which one has the provided toggleClass\r\n * toggleClass: The element(s) that have this class will be given the QA Attribute\r\n * attrText: The unique text that should be assigned for the attribute\r\n * toggleValue: will determine when the modifier renders\r\n */\r\nexport default modifier(\r\n function toggleQaAttr(element, properties, { toggleClass, attrText, toggleValue }) {\r\n let setQAAttr = () => element.setAttribute(Constants.QA_ATTR_NAME, `${Constants.QA_ATTR_PREFIX}_${attrText}`),\r\n removeQAAttr = () => element.removeAttribute(Constants.QA_ATTR_NAME);\r\n\r\n if (!toggleClass) {\r\n // Toggle based on toggleValue\r\n if (toggleValue) setQAAttr();\r\n else removeQAAttr();\r\n } else {\r\n // Toggle based on class\r\n if (Object.values(element.classList).includes(toggleClass)) setQAAttr();\r\n else removeQAAttr();\r\n }\r\n },\r\n { eager: false },\r\n);\r\n","import { modifier } from 'ember-modifier';\r\n\r\nexport default modifier(\r\n function updateUIValue(element, properties, { value, handleChange }) {\r\n element.value = value;\r\n if (handleChange) handleChange();\r\n },\r\n { eager: false },\r\n);\r\n","import EmberRouter from '@ember/routing/router';\r\nimport config from './config/environment';\r\n\r\nexport default class Router extends EmberRouter {\r\n location = config.locationType;\r\n rootURL = config.rootURL;\r\n}\r\n\r\nRouter.map(function () {\r\n this.route('index', { path: '/' });\r\n this.route('thanks');\r\n //this.route('browser', { path: '/browser' });\r\n this.route('adc', { path: '/:adc' });\r\n});\r\n","import Route from '@ember/routing/route';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class AdcRoute extends Route {\r\n @service urlData;\r\n @service router;\r\n\r\n model(params) {\r\n this.set('urlData.adc', params.adc);\r\n this.router.transitionTo('index');\r\n }\r\n}\r\n","import Route from '@ember/routing/route';\r\nimport { inject as service } from '@ember/service';\r\nimport Utils from '../utils/utils';\r\n\r\nexport default class BrowserRoute extends Route {\r\n @service('aditools-site') siteconfig;\r\n @service urlData;\r\n @service intl;\r\n\r\n model(params) {\r\n let configData = Utils.getConfigData(params);\r\n return this.siteconfig\r\n .start(configData.url, configData.rootURL, configData.language, this.intl.locales)\r\n .then((/*site*/) => {\r\n //this.intl.setLocale(this.siteconfig.FullLocale === 'ru-ru' ? 'en-us' : this.siteconfig.FullLocale);\r\n this.intl.setLocale(this.siteconfig.FullLocale);\r\n this.urlData.load();\r\n });\r\n }\r\n}\r\n","import Route from '@ember/routing/route';\r\nimport { isTesting } from '@embroider/macros';\r\nimport { inject as service } from '@ember/service';\r\nimport Utils from '../utils/utils';\r\nimport BrowserDetector from '../utils/browser-detector';\r\nimport ENV from '../config/environment';\r\n\r\nexport default class IndexRoute extends Route {\r\n @service('aditools-analytics') analytics;\r\n @service hashService;\r\n @service partData;\r\n @service hashDataService;\r\n @service plotDataService;\r\n @service tabService;\r\n @service urlData;\r\n @service intl;\r\n @service router;\r\n @service('aditools-site') siteconfig;\r\n @service('browser/window') window;\r\n\r\n beforeModel() {\r\n // Ensure the presence of the terminal slash in the URL.\r\n let url = this.window.location.href.split(/[?#]/)[0];\r\n if (url[url.length - 1] !== '/') {\r\n let newUrl =\r\n url +\r\n '/' +\r\n (this.window.location.search.length > 0 ? this.window.location.search : '') +\r\n (this.window.location.hash.length > 0 ? this.window.location.hash : '');\r\n this.window.history.replaceState({}, '', newUrl);\r\n }\r\n if (!BrowserDetector.isGood()) {\r\n this.router.transitionTo('browser');\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Removed all of the logic from init and broke into separate lifecycle hooks\r\n * to enable the addition of separate routes\r\n */\r\n model(params) {\r\n return this._initializeApplication(params);\r\n }\r\n\r\n _initializeApplication(params) {\r\n let configData = Utils.getConfigData(params);\r\n return this.siteconfig\r\n .start(configData.url, configData.rootURL, configData.language, this.intl.locales)\r\n .then((/*site*/) => {\r\n this.intl.setLocale(this.siteconfig.FullLocale);\r\n\r\n // Load partData, analytics, and hashService (url data).\r\n return this.partData.load().then((partData) => {\r\n if (partData) {\r\n this.urlData.load();\r\n this.analytics.start(\r\n ENV.toolname,\r\n this.siteconfig.AnalyticsUrl,\r\n false,\r\n isTesting(),\r\n ENV.environment === 'development',\r\n null,\r\n );\r\n this.hashDataService.initializeData();\r\n this.tabService.load(this.hashService.parsedLocationHash);\r\n partData.isReady = true;\r\n return partData;\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","import Route from '@ember/routing/route';\r\n\r\nexport default class ThanksRoute extends Route {}\r\n","import Service from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport { inject as service } from '@ember/service';\r\nimport ConfigurationData from '../data/configurationdata';\r\nimport Consts from '../utils/constants';\r\nimport cloneDeep from 'lodash.clonedeep';\r\nimport merge from 'lodash.merge';\r\n\r\nexport default class CircuitConfigurationsService extends Service {\r\n @service selectionData;\r\n @service intl;\r\n\r\n multiplexed = false;\r\n\r\n _getAllCircuitConfigs() {\r\n return ConfigurationData.circuitConfigs.map((circuitConfig) => this.get(circuitConfig));\r\n }\r\n\r\n _mapCircuitConfig(circuitConfig) {\r\n let config = cloneDeep(circuitConfig);\r\n if (!config.svg) {\r\n return config;\r\n }\r\n\r\n if (config.hasInternalMux && this.selectionData.selectedAdc.internalMux) {\r\n config.svg += `-${Consts.SVG.PARTS.InternalMux}`;\r\n } else if (this.multiplexed) {\r\n config.svg += `-${Consts.SVG.PARTS.InputMux}`;\r\n }\r\n\r\n if (\r\n this.selectionData.selectedDriver.fixedGain &&\r\n this.circuitParts.driverType === Consts.DRIVER_TYPE.DIFF_AMP\r\n ) {\r\n config.svg = config.svg.replace(Consts.SVG.PARTS.DiffAmp, Consts.SVG.PARTS.DiffAmpFixedGain);\r\n }\r\n\r\n if (this.selectionData.selectedAdc.partCore === 'AD4080') {\r\n config.svg += `-AD408x`;\r\n }\r\n\r\n return config;\r\n }\r\n\r\n @computed('circuitParts', 'multiplexed', 'selectionData.selectedAdc.partCore') get currentCircuitConfig() {\r\n let config = cloneDeep(ConfigurationData.circuitDefaults),\r\n foundConfigs = this._getAllCircuitConfigs()\r\n .filter((circuitConfig) => circuitConfig.isCurrent)\r\n .map((circuitConfig) => this._mapCircuitConfig(circuitConfig));\r\n\r\n if (foundConfigs && foundConfigs.length) {\r\n let currentConfig = merge(config, foundConfigs[0]);\r\n return currentConfig;\r\n }\r\n\r\n return config;\r\n }\r\n\r\n @computed('selectionData.{selectedAdc.type,selectedSourceType.id,selectedDriver.type,selectedTopology.id,gain}')\r\n get circuitParts() {\r\n return {\r\n adcType: this.selectionData.selectedAdc.type,\r\n sourceType: this.selectionData.selectedSourceType.id,\r\n driverType: this.selectionData.selectedDriver.type,\r\n topology: this.selectionData.actualTopologyId,\r\n };\r\n }\r\n\r\n /**\r\n * Configurations\r\n */\r\n\r\n /**\r\n * SEADC\r\n * SESource\r\n * SEAmp\r\n */\r\n\r\n @computed('circuitParts')\r\n get SEADC_SESource_SEAmp_CONFIG() {\r\n let circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.SE &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.SE &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n value: Consts.CONFIGURATION.SEADC,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'SEADC_SESource_SEAmp_CONFIG')\r\n get SEADC_SESource_SEAmp_Inverting() {\r\n let config = this.SEADC_SESource_SEAmp_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.INVERTING,\r\n svg: Consts.SVG.SEADC_SESource_SEAmp_Inverting,\r\n config: config.value,\r\n hasInternalMux: true,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'SEADC_SESource_SEAmp_CONFIG')\r\n get SEADC_SESource_SEAmp_Follower() {\r\n let config = this.SEADC_SESource_SEAmp_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.FOLLOWER,\r\n svg: Consts.SVG.SEADC_SESource_SEAmp_Follower,\r\n config: config.value,\r\n hasInternalMux: true,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'SEADC_SESource_SEAmp_CONFIG')\r\n get SEADC_SESource_SEAmp_NonInverting() {\r\n let config = this.SEADC_SESource_SEAmp_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.NON_INVERTING,\r\n svg: Consts.SVG.SEADC_SESource_SEAmp_NonInverting,\r\n config: config.value,\r\n hasInternalMux: true,\r\n };\r\n }\r\n\r\n /**\r\n * DiffADC\r\n * SEAmp\r\n * SESource\r\n */\r\n @computed('circuitParts') get DiffADC_SEAmp_SESource_CONFIG() {\r\n let circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.DIFF &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.SE &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n value: Consts.CONFIGURATION.DiffADC_SEAmp_SESource,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_SEAmp_SESource_CONFIG') get DiffADC_SESource_SEAmp_Inverting() {\r\n let topology = this.circuitParts.topology,\r\n config = this.DiffADC_SEAmp_SESource_CONFIG;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.INVERTING,\r\n svg: Consts.SVG.DiffADC_SESource_SEAmp_Inverting,\r\n secondDriver: true,\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('DiffADC_SEAmp_SESource_CONFIG', 'selectionData.essentiallyFollower')\r\n get DiffADC_SESource_SEAmp_Follower() {\r\n let config = this.DiffADC_SEAmp_SESource_CONFIG,\r\n essentiallyFollower = this.selectionData.essentiallyFollower;\r\n\r\n return {\r\n isCurrent: config.isCurrent && essentiallyFollower,\r\n svg: Consts.SVG.DiffADC_SESource_SEAmp_Follower,\r\n secondDriver: true,\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_SEAmp_SESource_CONFIG') get DiffADC_SESource_SEAmp_NonInverting() {\r\n let config = this.DiffADC_SEAmp_SESource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.NON_INVERTING,\r\n svg: Consts.SVG.DiffADC_SESource_SEAmp_NonInverting,\r\n secondDriver: true,\r\n config: config.value,\r\n };\r\n }\r\n\r\n /**\r\n * DiffADC\r\n * DiffAmp\r\n * SESource\r\n */\r\n\r\n @computed('circuitParts') get DiffADC_DiffAmp_SESource_CONFIG() {\r\n let circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.DIFF &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.SE &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.DIFF_AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n value: Consts.CONFIGURATION.DiffADC_DiffAmp_SESource,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_DiffAmp_SESource_CONFIG')\r\n get DiffADC_SESource_DiffAmp_Inverting() {\r\n let config = this.DiffADC_DiffAmp_SESource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.INVERTING,\r\n svg: Consts.SVG.DiffADC_SESource_DiffAmp_Inverting,\r\n nInvertingEnabled: false,\r\n config: config.value,\r\n };\r\n }\r\n\r\n /**\r\n * DiffADC\r\n * SEAmp\r\n * DiffSource\r\n */\r\n\r\n @computed('circuitParts') get DiffADC_SEAmp_DiffSource_CONFIG() {\r\n let circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.DIFF &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.DIFF &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n value: Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_SEAmp_DiffSource_CONFIG')\r\n get DiffADC_DiffSource_SEAmp_Inverting() {\r\n let config = this.DiffADC_SEAmp_DiffSource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.INVERTING,\r\n svg: Consts.SVG.DiffADC_DiffSource_SEAmp_Inverting,\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_SEAmp_DiffSource_CONFIG')\r\n get DiffADC_DiffSource_SEAmp_Follower() {\r\n let config = this.DiffADC_SEAmp_DiffSource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.FOLLOWER,\r\n svg: Consts.SVG.DiffADC_DiffSource_SEAmp_Follower,\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_SEAmp_DiffSource_CONFIG')\r\n get DiffADC_DiffSource_SEAmp_Non_Inverting() {\r\n let config = this.DiffADC_SEAmp_DiffSource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.NON_INVERTING,\r\n svg: Consts.SVG.DiffADC_DiffSource_SEAmp_NonInverting,\r\n config: config.value,\r\n };\r\n }\r\n\r\n /**\r\n * DiffADC\r\n * DiffAmp\r\n * DiffSource\r\n */\r\n @computed('circuitParts') get DiffADC_DiffAmp_DiffSource_CONFIG() {\r\n let circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.DIFF &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.DIFF &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.DIFF_AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n value: Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_DiffAmp_DiffSource_CONFIG')\r\n get DiffADC_DiffSource_DiffAmp_Inverting() {\r\n let config = this.DiffADC_DiffAmp_DiffSource_CONFIG,\r\n topology = this.circuitParts.topology;\r\n\r\n return {\r\n isCurrent: config.isCurrent && topology === Consts.TOPOLOGY.INVERTING,\r\n nInvertingEnabled: false,\r\n svg: Consts.SVG.DiffADC_DiffSource_DiffAmp_Inverting,\r\n config: config.value,\r\n };\r\n }\r\n\r\n /**\r\n * Error configurations\r\n */\r\n @computed('circuitParts.adcType') get SEADC_CONFIG() {\r\n return {\r\n isCurrent: this.circuitParts.adcType === Consts.ADC_TYPE.SE,\r\n value: Consts.CONFIGURATION.SEADC,\r\n };\r\n }\r\n\r\n @computed('circuitParts', 'SEADC_CONFIG') get SEADC_SESource_DiffAmp() {\r\n let config = this.SEADC_CONFIG,\r\n circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.SE &&\r\n circuitParts.sourceType === Consts.SOURCE_TYPE.SE &&\r\n circuitParts.driverType === Consts.DRIVER_TYPE.DIFF_AMP;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n nInvertingEnabled: false,\r\n message: this.intl.t('messages.driver_se'),\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts', 'SEADC_CONFIG') get SEADC_DiffSource() {\r\n let config = this.SEADC_CONFIG,\r\n circuitParts = this.circuitParts,\r\n isCurrent =\r\n circuitParts.adcType === Consts.ADC_TYPE.SE && circuitParts.sourceType === Consts.SOURCE_TYPE.DIFF;\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n inputSourceTypeError: true,\r\n message: this.intl.t('messages.source_se'),\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_DiffAmp_SESource_CONFIG')\r\n get DiffADC_DiffAmp_SESource_NonInvertingOrFollower() {\r\n let topology = this.circuitParts.topology,\r\n config = this.DiffADC_DiffAmp_SESource_CONFIG,\r\n isCurrent =\r\n config.isCurrent && [Consts.TOPOLOGY.FOLLOWER, Consts.TOPOLOGY.NON_INVERTING].includes(topology);\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n nInvertingEnabled: false,\r\n message: this.intl.t('messages.circuit_diff'),\r\n config: config.value,\r\n };\r\n }\r\n\r\n @computed('circuitParts.topology', 'DiffADC_DiffAmp_DiffSource_CONFIG')\r\n get DiffADC_DiffSource_DiffAmp_NonInvertingOrFollower() {\r\n let topology = this.circuitParts.topology,\r\n config = this.DiffADC_DiffAmp_DiffSource_CONFIG,\r\n isCurrent =\r\n config.isCurrent && [Consts.TOPOLOGY.FOLLOWER, Consts.TOPOLOGY.NON_INVERTING].includes(topology);\r\n\r\n return {\r\n isCurrent: isCurrent,\r\n nInvertingEnabled: false,\r\n message: this.intl.t('messages.circuit_diff'),\r\n config: config.value,\r\n };\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\n\r\nexport default class ComponentManager extends Service {\r\n @service hashDataService;\r\n\r\n adcInputs = null;\r\n driverInputs = null;\r\n signalInputs = null;\r\n filterInputs = null;\r\n\r\n initialLoadWithHash() {\r\n this.runComponentsWithHash([this.adcInputs, this.signalInputs, this.driverInputs, this.filterInputs]);\r\n\r\n this.noisePanelInitialLoad();\r\n }\r\n\r\n initialLoadWithoutHash() {\r\n this.runComponentsWithoutHash([this.adcInputs, this.signalInputs, this.driverInputs, this.filterInputs]);\r\n\r\n this.noisePanelInitialLoad();\r\n }\r\n\r\n noisePanelInitialLoad() {\r\n this.hashDataService.setOptionalSourceSettingsProperties(/**initialLoad=*/ true);\r\n this.hashDataService.setUrlParameter('model.showOptionalSourceSettings');\r\n this.hashDataService.setUrlParameter('model.wbNoise');\r\n this.hashDataService.setUrlParameter('model.thd');\r\n }\r\n\r\n runComponentsWithHash(components) {\r\n components.forEach((component) => {\r\n if (component && 'initialLoadWithHash' in component) component.initialLoadWithHash();\r\n });\r\n }\r\n\r\n runComponentsWithoutHash(components) {\r\n components.forEach((component) => {\r\n if (component && 'initialLoadWithoutHash' in component) component.initialLoadWithoutHash();\r\n });\r\n }\r\n}\r\n","// create an object of functions -\r\n// this makes it easier to call the proper noise equation\r\n// given a setting string\r\nexport function AD7134NoiseModel(filt, ODR, avg, pwr) {\r\n // create a string representing the configuration\r\n let settings = [filt, pwr, avg].join('').toString();\r\n\r\n let scaledODR = ODR / 1e3; // noise model require ODR in Ksps\r\n\r\n // grab the complete noise model\r\n let noiseModel = AD7134NoiseVrms();\r\n\r\n // calculate Vrms Noise given the ODR\r\n let noiseVrms = noiseModel[settings](scaledODR) * 1e-9; // noise model return results in nV\r\n\r\n //calculate the noise density given the filter and ODR\r\n let noiseBW = AD7134NoiseBW(filt, ODR);\r\n\r\n let noiseDensity = noiseVrms / Math.sqrt(noiseBW);\r\n\r\n let returnedNoise = {\r\n noiseVrms: noiseVrms,\r\n noiseBW: noiseBW,\r\n noiseDensity: noiseDensity,\r\n };\r\n\r\n return returnedNoise;\r\n}\r\n\r\nexport function AD7134NoiseVrms() {\r\n let noiseModel = {};\r\n noiseModel['WB04high1'] = WB04high1;\r\n noiseModel['WB04high2'] = WB04high2;\r\n noiseModel['WB04high4'] = WB04high4;\r\n noiseModel['WB04low1'] = WB04low1;\r\n noiseModel['WB04low2'] = WB04low2;\r\n noiseModel['WB04low4'] = WB04low4;\r\n noiseModel['WB01high1'] = WB01high1;\r\n noiseModel['WB01high2'] = WB01high2;\r\n noiseModel['WB01high4'] = WB01high4;\r\n noiseModel['WB01low1'] = WB01low1;\r\n noiseModel['WB01low2'] = WB01low2;\r\n noiseModel['WB01low4'] = WB01low4;\r\n noiseModel['SINC3high1'] = SINC3high1;\r\n noiseModel['SINC3high2'] = SINC3high2;\r\n noiseModel['SINC3high4'] = SINC3high4;\r\n noiseModel['SINC3low1'] = SINC3low1;\r\n noiseModel['SINC3low2'] = SINC3low2;\r\n noiseModel['SINC3low4'] = SINC3low4;\r\n noiseModel['SINC6high1'] = SINC6high1;\r\n noiseModel['SINC6high2'] = SINC6high2;\r\n noiseModel['SINC6high4'] = SINC6high4;\r\n noiseModel['SINC6low1'] = SINC6low1;\r\n noiseModel['SINC6low2'] = SINC6low2;\r\n noiseModel['SINC6low4'] = SINC6low4;\r\n return noiseModel;\r\n}\r\n\r\nexport function AD7134NoiseBW(filt, ODR) {\r\n let noiseBW;\r\n if (filt == 'WB04') {\r\n noiseBW = 0.433 * ODR;\r\n } else if (filt == 'WB01') {\r\n noiseBW = 0.10825 * ODR;\r\n } else if (filt == 'SINC3') {\r\n noiseBW = 0.2617 * ODR;\r\n } else if (filt == 'SINC6') {\r\n noiseBW = 0.1861 * ODR;\r\n }\r\n\r\n return noiseBW;\r\n}\r\n\r\n// individual noise equations, where x is ODR, and y is noise in nV\r\nfunction WB04high1(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n // this is corrected - this needs to be fixed for all other if boundaries in model\r\n // also need to change single points to line equations\r\n y = -0.0158 * x ** 2 + 31.733 * x + 2900.2;\r\n } else {\r\n y = 0.018354721 * x ** 3 - 2.338412961 * x ** 2 + 136.9358252 * x + 686.467169;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB04high2(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = 0.000155837 * x ** 3 - 0.118929647 * x ** 2 + 43.85985149 * x + 850.2693039;\r\n } else {\r\n y = 0.013329372 * x ** 3 - 1.720514005 * x ** 2 + 99.46924441 * x + 485.745747;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB04high4(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -5.53015e-7 * x ** 4 + 0.000510307 * x ** 3 - 0.173630041 * x ** 2 + 37.41052667 * x + 538.2082937;\r\n } else {\r\n y = 0.009102254 * x ** 3 - 1.163246789 * x ** 2 + 67.95276308 * x + 364.8609326;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB04low1(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = 0.000571 * x ** 3 - 0.30853295 * x ** 2 + 104.7437311 * x + 1820.649928;\r\n } else {\r\n y = 0.033899699 * x ** 3 - 4.25313389 * x ** 2 + 236.6140063 * x + 982.5356393;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB04low2(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = 0.000440245 * x ** 3 - 0.233364528 * x ** 2 + 74.86640889 * x + 1287.191681;\r\n } else {\r\n y = 0.02229278 * x ** 3 - 2.833475716 * x ** 2 + 162.1522715 * x + 727.4322561;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB04low4(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = 0.000299631 * x ** 3 - 0.160471547 * x ** 2 + 53.16540276 * x + 914.2308955;\r\n } else {\r\n y = 0.014361231 * x ** 3 - 1.880667152 * x ** 2 + 112.9334599 * x + 525.7070784;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01high1(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0092 * x ** 2 + 16.323 * x + 1773.8;\r\n } else {\r\n y = 0.0098 * x ** 3 - 1.2944 * x ** 2 + 77.021 * x + 442.74;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01high2(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0098 * x ** 2 + 12.792 * x + 1116.4;\r\n } else {\r\n y = 0.0072 * x ** 3 - 0.9398 * x ** 2 + 54.635 * x + 337.5;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01high4(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0074 * x ** 2 + 9.2602 * x + 802.04;\r\n } else {\r\n y = 0.0048 * x ** 3 - 0.6218 * x ** 2 + 36.865 * x + 255.63;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01low1(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0142 * x ** 2 + 26.711 * x + 2826.3;\r\n } else {\r\n y = 0.0187 * x ** 3 - 2.3164 * x ** 2 + 128.08 * x + 618.44;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01low2(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0081 * x ** 2 + 17.614 * x + 2103.2;\r\n } else {\r\n y = 0.012 * x ** 3 - 1.5551 * x ** 2 + 90.469 * x + 450.55;\r\n }\r\n return y;\r\n}\r\n\r\nfunction WB01low4(x) {\r\n let y = 1;\r\n if (x > 64) {\r\n y = -0.0069 * x ** 2 + 13.421 * x + 1387.7;\r\n } else {\r\n y = 0.0084 * x ** 3 - 1.064 * x ** 2 + 62.134 * x + 335.09;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3high1(x) {\r\n let y = 1;\r\n if (x > 1000) {\r\n y = 51.62 * x - 27588;\r\n } else if (x > 128) {\r\n y = 2.59487e-5 * x ** 3 - 0.035836089 * x ** 2 + 32.50422848 * x + 1472.48841;\r\n } else if (x > 16) {\r\n y = -0.1054 * x ** 2 + 44.811 * x + 1282.5;\r\n } else {\r\n y = 0.0001 * x ** 5 - 0.0195 * x ** 4 + 1.0239 * x ** 3 - 22.112 * x ** 2 + 232.4 * x + 385.03;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3high2(x) {\r\n let y = 1;\r\n if (x > 187.5) {\r\n y = 0.0169 * x ** 2 - 7.7819 * x + 7500;\r\n } else if (x > 16) {\r\n y = 1e-5 * x ** 3 - 0.0196 * x ** 2 + 20.147 * x + 1321.1;\r\n } else {\r\n y = 0.5889 * x ** 3 - 16.89 * x ** 2 + 168.02 * x + 291.65;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3high4(x) {\r\n let y = 1;\r\n if (x > 187.5) {\r\n y = 0.0127 * x ** 2 - 6.3392 * x + 5550; // possible typo in excel?\r\n } else if (x > 16) {\r\n y = 7e-5 * x ** 3 - 0.0516 * x ** 2 + 20.67 * x + 723.12;\r\n } else {\r\n y = 0.3171 * x ** 3 - 9.6244 * x ** 2 + 105.9 * x + 237.33;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3low1(x) {\r\n let y = 1;\r\n if (x > 187.5) {\r\n y = 0.306 * x ** 2 - 224.21 * x + 74835;\r\n } else if (x > 16) {\r\n y = -0.0478 * x ** 2 + 54.111 * x + 2585.5;\r\n } else if (x > 0.625) {\r\n y = 0.9673 * x ** 3 - 31.952 * x ** 2 + 382.7 * x + 462.04;\r\n } else {\r\n y = 13.632 * x ** 3 - 134.66 * x ** 2 + 603.63 * x + 343.62;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3low2(x) {\r\n let y = 1;\r\n if (x > 1000) {\r\n y = 381.772 * x - 272112;\r\n } else if (x > 750) {\r\n y = 177495 - 67.8353 * x;\r\n } else if (x > 375) {\r\n y = 271.136 * x - 76732.9;\r\n } else if (x > 187.5) {\r\n y = 91.5294 * x - 9380.52;\r\n } else if (x > 5) {\r\n y = 0.0014 * x ** 3 - 0.5231 * x ** 2 + 87.61 * x + 509.03;\r\n } else if (x > 0.625) {\r\n y = -27.218 * x ** 2 + 321.56 * x + 277.56;\r\n } else {\r\n y = -97.759 * x ** 2 + 440.68 * x + 264.4;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC3low4(x) {\r\n let y = 1;\r\n if (x > 187.5) {\r\n y = 0.16 * x ** 2 - 125.35 * x + 43821;\r\n } else if (x > 16) {\r\n y = -0.0381 * x ** 2 + 30.038 * x + 1205.5;\r\n } else if (x > 0.06) {\r\n y = 0.4695 * x ** 3 - 15.386 * x ** 2 + 183.98 * x + 266.3;\r\n } else {\r\n y = -16.811 * x ** 2 + 209.37 * x + 231.37;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6high1(x) {\r\n let y = 1;\r\n if (x > 375) {\r\n y = 0.0091 * x ** 2 - 1.02 * x + 7895.2;\r\n } else if (x > 128) {\r\n y = 0.0068 * x ** 2 + 10.365 * x + 3235.9;\r\n } else if (x > 32) {\r\n y = 0.0018 * x ** 3 - 0.4963 * x ** 2 + 63.652 * x + 633.39;\r\n } else {\r\n y = 0.0444 * x ** 3 - 3.1448 * x ** 2 + 109.04 * x + 476.48;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6high2(x) {\r\n let y = 1;\r\n if (x > 500) {\r\n y = 0.0072 * x ** 2 - 3.5074 * x + 7193.3;\r\n } else if (x > 128) {\r\n y = -0.0042 * x ** 2 + 11.972 * x + 1692.5;\r\n } else if (x > 32) {\r\n y = 0.0016 * x ** 3 - 0.4179 * x ** 2 + 47.877 * x + 436.12;\r\n } else {\r\n y = 0.1065 * x ** 3 - 5.7145 * x ** 2 + 115.17 * x + 242.88;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6high4(x) {\r\n let y = 1;\r\n if (x > 500) {\r\n y = 0.0049 * x ** 2 - 2.0451 * x + 4872.1;\r\n } else if (x > 128) {\r\n y = -0.004 * x ** 2 + 8.8303 * x + 1187.3;\r\n } else if (x > 32) {\r\n y = 0.0009 * x ** 3 - 0.2414 * x ** 2 + 31.291 * x + 337.36;\r\n } else {\r\n y = 0.0518 * x ** 3 - 2.8218 * x ** 2 + 64.859 * x + 237.68;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6low1(x) {\r\n let y = 1;\r\n if (x > 375) {\r\n y = 0.1206 * x ** 2 - 79.606 * x + 29542;\r\n } else if (x > 325) {\r\n y = 253.349 * x - 69683.7;\r\n } else if (x > 128) {\r\n y = -0.0046 * x ** 2 + 29.426 * x + 3559.7;\r\n } else if (x > 32) {\r\n y = 0.0038 * x ** 3 - 0.9742 * x ** 2 + 112.48 * x + 879.89;\r\n } else {\r\n y = 0.1562 * x ** 3 - 9.1649 * x ** 2 + 228.01 * x + 522.81;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6low2(x) {\r\n let y = 1;\r\n if (x > 375) {\r\n y = 0.0822 * x ** 2 - 52.43 * x + 19383;\r\n } else if (x > 325) {\r\n y = 187.801 * x - 52102.4;\r\n } else if (x > 80) {\r\n y = -0.004 * x ** 2 + 21.325 * x + 2432.6;\r\n } else if (x > 32) {\r\n y = 0.0049 * x ** 3 - 0.9318 * x ** 2 + 85.652 * x + 593.02;\r\n } else {\r\n y = 0.0672 * x ** 3 - 4.405 * x ** 2 + 136.52 * x + 434.22;\r\n }\r\n return y;\r\n}\r\n\r\nfunction SINC6low4(x) {\r\n let y = 1;\r\n if (x > 375) {\r\n y = 0.0636 * x ** 2 - 46.066 * x + 17342;\r\n } else if (x > 325) {\r\n y = 223.652 * x - 66298.3;\r\n } else if (x > 80) {\r\n y = -0.0044 * x ** 2 + 15.991 * x + 1653.4;\r\n } else if (x > 32) {\r\n y = 0.0042 * x ** 3 - 0.7399 * x ** 2 + 62.742 * x + 423.16;\r\n } else {\r\n y = 0.0382 * x ** 3 - 2.7479 * x ** 2 + 93.913 * x + 322.66; //typo in Excel?\r\n }\r\n return y;\r\n}\r\n","// TODO: This file is temporary, and should be split into several smaller servicies.\r\nimport Service from '@ember/service';\r\nimport Ember from 'ember';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport { alias } from '@ember/object/computed';\r\nimport Consts from '../utils/constants';\r\nimport Formulas from '../utils/formulas';\r\nimport Complex from '../utils/complex';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport Utils from '../utils/utils';\r\n\r\nimport cloneDeep from 'lodash.clonedeep';\r\nimport upperFirst from 'lodash.upperfirst';\r\n\r\nimport { adcNoiseModel } from '@ebiz/aditools-adcdriving/src/models/adc-noise-model.js';\r\n\r\nexport default class DataService extends Service {\r\n @service toolData;\r\n @service selectionData;\r\n @service intl;\r\n @service circuitConfigurations;\r\n @service sigmaDeltaData;\r\n\r\n requiredAdcProps = null;\r\n requiredDriverProps = null;\r\n\r\n rfDisabled = false;\r\n rfRemoved = false;\r\n\r\n showOptionalSourceSettings = false;\r\n\r\n filterEnabled = true;\r\n\r\n showAdcVariants = {};\r\n showDriverVariants = {};\r\n\r\n /**\r\n * For now providing aliases to moved selected data\r\n * TODO: Possibly change all references and remove these\r\n */\r\n @alias('selectionData.selectedAdc') selectedAdc;\r\n @alias('selectionData.selectedDriver') selectedDriver;\r\n @alias('selectionData.selectedSourceType') selectedSourceType;\r\n @alias('selectionData.selectedTopology') selectedTopology;\r\n @alias('selectionData.selectedLsbSettling') selectedLsbSettling;\r\n @alias('selectionData.selectedMux') selectedMux;\r\n @alias('selectionData.gain') gain;\r\n\r\n showZoomFit = false; // Determines whether the zoom fit button should be shown.\r\n zoomFitScaling = true; // Whether the fixed scaling needs to occur, should occur on initial load\r\n\r\n @computed('selectedDriver.type') get vcmLabelText() {\r\n return this.selectedDriver.type === Consts.DRIVER_TYPE.AMP\r\n ? this.intl.t('input_labels.vcm')\r\n : this.intl.t('input_labels.vocm');\r\n }\r\n\r\n @computed('vref', 'vcm') get vp() {\r\n //return Math.min(this.vcm, (this.vref - this.vcm)); // this is wrong - at least, wrong for the AD7768\r\n return this.vref / 2; // fix for SAR-611\r\n }\r\n\r\n @computed('vp') get vout() {\r\n return this.vp * 2;\r\n }\r\n\r\n vSupplyPos = null;\r\n vSupplyNeg = null;\r\n\r\n /* inputSettlingChart based on the original showLsbChart\r\n Value (old) Value (new) Check (old) Check (new)\r\n ADC Input (LSB Error) true 1 model.showLsbChart (eq model.showLsbChart 1)\r\n ADC Input (Volts)\t false 2 (is-not model.showLsbChart) (is-not (eq model.showLsbChart 2))\r\n third (new) tab\t (n/a) 3\r\n */\r\n inputSettlingChart = null; // no default value; get from init or URL\r\n @computed('inputSettlingChart') get showLsbChart() {\r\n let inputSettlingChart = this.inputSettlingChart;\r\n return inputSettlingChart == 1;\r\n }\r\n\r\n init() {\r\n super.init();\r\n\r\n let toolData = this.toolData.data;\r\n\r\n this.set('colors', toolData.colors);\r\n }\r\n\r\n @alias('circuitConfigurations.multiplexed') multiplexed;\r\n\r\n @computed('selectionData.selectedAdc.internalMux') get disableMultiplex() {\r\n return this.selectionData.selectedAdc.internalMux;\r\n }\r\n\r\n @computed('sigmaDeltaData.isSigmaDeltaAdc', 'selectionData.selectedAdc.internalMux') get hideMultiplexed() {\r\n return this.sigmaDeltaData.isSigmaDeltaAdc || !!this.selectionData.selectedAdc.internalMux;\r\n }\r\n\r\n @computed('showAdcVariants.Seq') get isSequencerEnabled() {\r\n return this.showAdcVariants && this.showAdcVariants.Seq ? true : false;\r\n }\r\n\r\n @computed('showAdcVariants.Seq') get hasSequencerMode() {\r\n return this.showAdcVariants && 'Seq' in this.showAdcVariants ? true : false;\r\n }\r\n\r\n get seqInX() {\r\n return 'INx';\r\n }\r\n\r\n @computed('isSequencerEnabled') get seqInY() {\r\n return this.isSequencerEnabled ? 'INy' : 'INx';\r\n }\r\n\r\n setMultiplexedMetadata() {\r\n if (!this.sigmaDeltaData.isSigmaDeltaAdc && this.selectedAdc.internalMux) {\r\n this.set('multiplexed', true);\r\n } else {\r\n this.set('multiplexed', false);\r\n }\r\n }\r\n\r\n overrideFsample() {\r\n let fsample = this.sigmaDeltaData.getFsample();\r\n if (fsample || fsample === 0) {\r\n this.set('samplingRate', fsample);\r\n }\r\n }\r\n\r\n resetVrefSelect() {\r\n if (this.selectedAdc.vrefOptions) this.set('vrefSelect', { id: this.vref, description: this.vref });\r\n }\r\n\r\n overrideRCValues(resetOptions = {}) {\r\n let { resetRext, resetCext, resetSDRext, resetSDCext } = resetOptions;\r\n\r\n // Default to true if options not provided\r\n if (!(resetSDRext === false)) resetSDRext = true;\r\n if (!(resetSDCext === false)) resetSDCext = true;\r\n\r\n if (this.selectedAdc.disableFilter && this.filterEnabled) this.set('filterEnabled', false);\r\n else if (!this.selectedAdc.disableFilter && !this.filterEnabled) this.set('filterEnabled', true);\r\n\r\n if (!this.filterEnabled) {\r\n this.set('rext', 0);\r\n this.set('cext', 1e-15);\r\n } else {\r\n if (resetRext) this.set('rext', Math.max(this.selectedAdc.rext, this.selectedDriver.rfiltMin));\r\n if (resetCext) this.set('cext', this.selectedAdc.cext);\r\n\r\n let rcValues = this.sigmaDeltaData.getRCValues();\r\n if (rcValues) {\r\n if (resetSDRext) this.set('rext', rcValues.rext);\r\n if (resetSDCext) this.set('cext', rcValues.cext);\r\n }\r\n }\r\n }\r\n\r\n resetDriverForAdc() {\r\n let selectedAdc = this.selectedAdc,\r\n defaultDriver = selectedAdc.defaultDriver || this.selectionData.defaultDriver,\r\n foundDriver = this.driverOptions.filter((driver) => driver.part === defaultDriver);\r\n\r\n if (foundDriver && foundDriver.length == 1) {\r\n // We only want to keep track of the previous driver for the current adc\r\n this.set(`showDriverVariant`, false);\r\n this.set('selectionData.previousDriver', null);\r\n this.set('selectionData.selectedDriver', foundDriver[0]);\r\n this.switchVariant('driver');\r\n }\r\n }\r\n\r\n @computed('vref', 'selectedAdc.validateVcm') get vcmRange() {\r\n let minVcm = this.vref / 2,\r\n maxVcm = 2.5;\r\n\r\n if (this.selectedAdc.validateVcm) return { min: minVcm, max: maxVcm };\r\n else return null;\r\n }\r\n\r\n handleVcm(canSetAdjustable = true) {\r\n if (this.vcmRange && this.vcmRange.min === this.vcmRange.max) {\r\n this.set('isVcmFixed', true);\r\n this.set('vcm', this.vcmRange.min);\r\n } else if ('defaultVcm' in this.selectedAdc && !Utils.isNullOrWhiteSpace(this.selectedAdc.defaultVcm)) {\r\n this.set('isVcmFixed', false);\r\n if (canSetAdjustable) this.set('vcm', this.selectedAdc.defaultVcm);\r\n } else {\r\n this.set('isVcmFixed', true);\r\n this.set('vcm', this.vref / 2);\r\n }\r\n }\r\n\r\n setDefaultAdcData() {\r\n Ember.beginPropertyChanges();\r\n\r\n this.resetDriverForAdc();\r\n\r\n this.set('samplingRate', this.selectedAdc.samplingRate);\r\n this.overrideFsample();\r\n\r\n this.set('vref', this.selectedAdc.vref);\r\n this.resetVrefSelect();\r\n this.handleVcm();\r\n\r\n this.set('cext', this.selectedAdc.cext);\r\n this.overrideRCValues({ resetRext: true });\r\n\r\n this.setDefaultTopology();\r\n\r\n this.set('selectedSourceType', this.selectionData.findSourceTypeFromAdcInputType(this.selectedAdc.type));\r\n\r\n this.set('zoomFitScaling', true);\r\n Ember.endPropertyChanges();\r\n }\r\n\r\n setDefaultTopology() {\r\n this.set('selectedTopology', this.selectionData.defaultTopology);\r\n }\r\n\r\n //#region Selectable options\r\n\r\n @computed('selectionData.adcs', 'frequency', 'rext', 'vout') get adcOptions() {\r\n let adcs = this.selectionData.adcs,\r\n frequency = this.frequency,\r\n vout = this.vout;\r\n\r\n return adcs.map((adc) => {\r\n let option = cloneDeep(adc);\r\n option.thd = Formulas.calculateThd(frequency, option.datasheetRfilt, option);\r\n option.snr = Formulas.calculateSnr(\r\n option.type === Consts.ADC_TYPE.SE ? vout : vout * 2,\r\n option.adcNoisePtoP,\r\n );\r\n\r\n return option;\r\n });\r\n }\r\n\r\n @computed('adcOptions') get selectableAdcOptions() {\r\n return this.adcOptions.filter((a) => a.selectable);\r\n }\r\n\r\n @computed('selectionData.drivers') get driverOptions() {\r\n return this.selectionData.drivers;\r\n }\r\n\r\n @computed('driverOptions', 'selectedAdc.id') get selectableDriverOptions() {\r\n if (!this.selectedAdc || !this.driverOptions) return null;\r\n let recommendedDrivers = this.selectedAdc.recommendedDrivers;\r\n\r\n return this.driverOptions\r\n .filter((driver) => driver.selectable)\r\n .map((driver) => {\r\n let selectableDriver = cloneDeep(driver);\r\n selectableDriver.recommended = recommendedDrivers.includes(driver.part);\r\n selectableDriver.disabled =\r\n this.selectedAdc.type === Consts.ADC_TYPE.SE && driver.type === Consts.DRIVER_TYPE.DIFF_AMP;\r\n return selectableDriver;\r\n });\r\n }\r\n\r\n @computed('selectedAdc.id') get groupSelectableDriverOptions() {\r\n let selectedAdc = this.selectedAdc;\r\n return selectedAdc.recommendedDrivers.length > 0;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region variant\r\n\r\n updateShowVariant(type = 'adc') {\r\n let currentItem = this.get(`selectionData.selected${upperFirst(type)}`);\r\n let previousItem = this.get(`selectionData.previous${upperFirst(type)}`);\r\n\r\n if (currentItem.variants) {\r\n let showVariants = {};\r\n currentItem.variants.forEach((variant) => (showVariants[variant.code] = false));\r\n this.set(`show${upperFirst(type)}Variants`, showVariants);\r\n this.set(`show${upperFirst(type)}Variant`, false);\r\n } else if (currentItem && previousItem) {\r\n this.set(`show${upperFirst(type)}Variants`, {});\r\n\r\n const currentPart = currentItem.part.split('|')[0];\r\n const previousPart = previousItem.part.split('|')[0];\r\n if (currentPart !== previousPart) {\r\n this.set(`show${upperFirst(type)}Variant`, false);\r\n } else if (!(currentItem.variant && previousItem.variant)) {\r\n this.set(`show${upperFirst(type)}Variant`, false);\r\n } else if (!(currentItem.variant.code === previousItem.variant.code)) {\r\n this.set(`show${upperFirst(type)}Variant`, false);\r\n }\r\n } else {\r\n this.set(`show${upperFirst(type)}Variants`, {});\r\n this.set(`show${upperFirst(type)}Variant`, false);\r\n }\r\n }\r\n\r\n switchVariant(type = 'adc') {\r\n let item = this.get(`selected${upperFirst(type)}`), // ex: selectedAdc\r\n showVariant = this.get(`show${upperFirst(type)}Variant`), // ex: showAdcVariant\r\n showVariants = this.get(`show${upperFirst(type)}Variants`), // ex: showAdcVariants\r\n options = this.get(`${type}Options`), // ex: adcOptions\r\n currentPartCore = this.get(`selectionData.selected${upperFirst(type)}.partCore`), // ex: selectionData.selectedAdc.partCore\r\n currentPartVariant = this.get(`selectionData.selected${upperFirst(type)}.currentVariant`); // 'selectionData.selectedAdc.currentVariant');\r\n\r\n if (!item.hasVariant) return; // only show variant checkbox if there is one\r\n\r\n // Compute the new thing to show\r\n let switchCode;\r\n\r\n if (!!showVariants && Object.values(showVariants).length) {\r\n switchCode = Object.keys(showVariants)\r\n .filter((key) => showVariants[key])\r\n .join('_');\r\n } else if (showVariant) switchCode = item.variant.code;\r\n\r\n let newItem = switchCode ? `${item.partCore}|${switchCode}` : item.partCore;\r\n\r\n // find and update the selected item\r\n let foundItem = options.find((item) => item.part === newItem);\r\n if (foundItem && !(foundItem.part === item.part)) {\r\n // Use a clone to avoid polluting the original data.\r\n if (!(foundItem.partCore === currentPartCore && foundItem.currentVariant === currentPartVariant)) {\r\n this.set(`selectionData.selected${upperFirst(type)}`, foundItem);\r\n }\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n @computed('gain', 'rf', 'selectedTopology.id') get rg() {\r\n let result,\r\n selectedTopology = this.selectedTopology.id,\r\n gain = this.gain,\r\n rf = this.rf;\r\n\r\n if (selectedTopology === Consts.TOPOLOGY.NON_INVERTING || selectedTopology === Consts.TOPOLOGY.FOLLOWER) {\r\n if (gain === 1) result = Infinity;\r\n else result = rf / (gain - 1);\r\n } else result = rf / gain;\r\n\r\n return result;\r\n }\r\n\r\n @computed(\r\n 'rg',\r\n 'rf',\r\n 'selectedTopology.id',\r\n 'selectionData.{selectedAdc.partCore,selectedDriver.partCore}',\r\n 'selectedSourceType',\r\n )\r\n get rload() {\r\n let result = 0,\r\n adcType = this.selectedAdc.type,\r\n driverType = this.selectedDriver.type,\r\n source = this.selectedSourceType,\r\n topology = this.selectedTopology.id,\r\n rf = this.rf,\r\n rg = this.rg;\r\n\r\n // if 2nd amp buffer on single-ended input source, use rload = rf (Diff ADC, SE source, SE Amp)\r\n if (\r\n adcType === Consts.ADC_TYPE.DIFF &&\r\n driverType === Consts.DRIVER_TYPE.AMP &&\r\n source.description === 'Single-ended'\r\n ) {\r\n result = rf;\r\n } else if (topology === Consts.TOPOLOGY.FOLLOWER) {\r\n result = Infinity;\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = rf;\r\n } else if (topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = rf + rg;\r\n }\r\n return result;\r\n }\r\n\r\n @computed('rload', 'selectedDriver.Ro', 'vref') get roVoltageDrop() {\r\n let roVoltageDrop = 0,\r\n rload = this.rload,\r\n ro = this.selectedDriver.Ro,\r\n vref = this.vref;\r\n\r\n console.log('%crload = ' + rload + ', Ro = ' + ro, 'color: purple');\r\n\r\n if (rload === Infinity) {\r\n // do nothing, leave roVoltageDrop at 0\r\n } else {\r\n let loadCurrent = vref / 2 / rload; // assuming driver output is full scale (5V or 0) and rload is connected to Vcm\r\n roVoltageDrop = ro * loadCurrent;\r\n console.log('%cLoad Current = Vcm / rload = ' + loadCurrent, 'color: purple');\r\n }\r\n console.log('%croVoltageDrop = ' + roVoltageDrop, 'color: purple');\r\n return roVoltageDrop;\r\n }\r\n\r\n @computed('rg') get rgInf() {\r\n let rg = this.rg;\r\n return rg === Infinity;\r\n }\r\n\r\n @computed('vout', 'frequency') get inputSlewRate() {\r\n let vout = this.vout,\r\n frequency = this.frequency,\r\n voutvp = vout / 2,\r\n slew = 2 * Math.PI * frequency * voutvp;\r\n return slew;\r\n }\r\n\r\n // --------------------------------------------------\r\n // --------------------------------------------------\r\n\r\n //#region noise calculated properties\r\n\r\n // values that are populated in the noise table\r\n @computed(\r\n 'selectedAdc',\r\n 'selectedDriver',\r\n 'selectedSourceType',\r\n 'selectedTopology',\r\n 'gain',\r\n 'noiseGain',\r\n 'signalRms',\r\n 'vref',\r\n 'rf',\r\n 'rext',\r\n 'cext',\r\n 'noiseConfig',\r\n 'wbNoise',\r\n 'sigmaDeltaData.{odr,powerMode,filterType,channelAveraging,odrInput}',\r\n )\r\n get noiseCalculations() {\r\n let driverBW = this.driverBandwidth,\r\n driverEquivBW = this.driverEqNoiseBW,\r\n adcEffectiveNoiseBW = this.adcEffectiveNoiseBW,\r\n driverEffectiveNoiseBW = this.driverEffectiveNoiseBW,\r\n sourceEquivBW = 1, //this.propertyName,\r\n sourceDensity = this.sourceNoiseDensity,\r\n sourceInputDensity = this.wbNoise,\r\n sourceNoiseGain = this.gain,\r\n sourceTotalVrms = Formulas.calculateNoiseRMS(sourceDensity, driverEffectiveNoiseBW),\r\n sourceTotalSnr = Formulas.calculateSnr(this.signalRms, sourceTotalVrms),\r\n //vnEquivBW = driverBW * (Math.PI / 2),\r\n vnDensity = this.ampVoltageNoiseDensity,\r\n vnSourceInputDensity = this.selectedDriver.vn,\r\n vnSourceNoiseGain = this.ampVoltageNoiseDensityMultiplier,\r\n vnTotalVrms = Formulas.calculateNoiseRMS(vnDensity, driverEffectiveNoiseBW),\r\n vnTotalPerc = '',\r\n vnTotalSnr = '',\r\n ibPlusDensity = this.ampIbPlusNoiseDensity,\r\n ibPlusSourceInputDensity = this.ampIbPlusNoiseDensityInput,\r\n ibPlusSourceNoiseGain = this.ampIbPlusNoiseMultiplier,\r\n ibPlusTotalVrms = Formulas.calculateNoiseRMS(ibPlusDensity, driverEffectiveNoiseBW),\r\n ibPlusTotalPerc = '',\r\n ibPlusTotalSnr = '',\r\n //ibEquivBW = driverBW * (Math.PI / 2),\r\n ibMinusDensity = this.ampIbMinusNoiseDensity,\r\n ibMinusSourceInputDensity = this.ampIbMinusNoiseDensityInput,\r\n ibMinusSourceNoiseGain = this.ampIbMinusNoiseMultiplier,\r\n ibMinusTotalVrms = Formulas.calculateNoiseRMS(ibMinusDensity, driverEffectiveNoiseBW),\r\n ibMinusTotalPerc = '',\r\n ibMinusTotalSnr = '',\r\n //rfEquivBW = 1,\r\n rfDensity = this.ampRfNoiseDensity,\r\n rfSourceInputDensity = this.ampRfNoiseDensityInput,\r\n rfSourceNoiseGain = this.ampRfNoiseMultFactor,\r\n rfTotalVrms = Formulas.calculateNoiseRMS(rfDensity, driverEffectiveNoiseBW),\r\n rfTotalPerc = '',\r\n rfTotalSnr = '',\r\n //rgEquivBW = 1,\r\n rgDensity = this.ampRgNoiseDensity,\r\n rgSourceInputDensity = this.ampRgNoiseDensityInput,\r\n rgSourceNoiseGain = this.ampRgNoiseMultFactor,\r\n rgTotalVrms = Formulas.calculateNoiseRMS(rgDensity, driverEffectiveNoiseBW),\r\n rgTotalPerc = '',\r\n rgTotalSnr = '',\r\n driverDensity = Formulas.calculateRSS([vnDensity, ibMinusDensity, ibPlusDensity, rfDensity, rgDensity]),\r\n driverTotalVrms = Formulas.calculateNoiseRMS(driverDensity, driverEffectiveNoiseBW),\r\n driverTotalSnr = Formulas.calculateSnr(this.signalRms, driverTotalVrms),\r\n //rfiltBW = this.sigmaDeltaData.isSigmaDeltaAdc ? sigmaDeltaAliasBW : this.filterBandwidth,\r\n rfiltBW = this.filterBandwidth,\r\n rfiltEquivBW = this.filterEqNoiseBW,\r\n rfiltEffectiveBW = this.filterEffectiveNoiseBW,\r\n rfiltDensity = this.ampRfiltNoiseDensity,\r\n rfiltTotalVrms = Formulas.calculateNoiseRMS(rfiltDensity, rfiltEffectiveBW),\r\n rfiltTotalSnr = '',\r\n adcBW = this.adcBandwidth,\r\n adcEquivBW = this.adcEquivNoiseBandwidth,\r\n adcDensity = this.adcNoiseDensity,\r\n adcTotalVrms = this.adcNoiseContribution,\r\n adcTotalSnr = Formulas.calculateSnr(this.signalRms, adcTotalVrms),\r\n totalEquivBW = '',\r\n totalDensity = '',\r\n totalVrms = Formulas.calculateRSS([sourceTotalVrms, driverTotalVrms, rfiltTotalVrms, adcTotalVrms]),\r\n totalPerc = '',\r\n totalSnr = Formulas.calculateSnr(this.signalRms, totalVrms),\r\n sourceTotalPerc = Formulas.calculateNoisePercent(sourceTotalVrms, totalVrms),\r\n driverTotalPerc = Formulas.calculateNoisePercent(driverTotalVrms, totalVrms),\r\n rfiltTotalPerc = Formulas.calculateNoisePercent(rfiltTotalVrms, totalVrms),\r\n adcTotalPerc = Formulas.calculateNoisePercent(adcTotalVrms, totalVrms);\r\n\r\n let result = {\r\n total: {\r\n equivBW: totalEquivBW,\r\n density: totalDensity,\r\n sourceInputDensity: '',\r\n sourceNoiseGain: '',\r\n totalVrms: totalVrms,\r\n totalPerc: totalPerc,\r\n totalSnr: totalSnr,\r\n },\r\n source: {\r\n equivBW: sourceEquivBW,\r\n effectiveBW: driverEffectiveNoiseBW,\r\n density: sourceDensity,\r\n sourceInputDensity: sourceInputDensity,\r\n sourceNoiseGain: sourceNoiseGain,\r\n totalVrms: sourceTotalVrms,\r\n totalPerc: sourceTotalPerc,\r\n totalSnr: sourceTotalSnr,\r\n },\r\n adc: {\r\n bw: adcBW,\r\n equivBW: adcEquivBW,\r\n effectiveBW: adcEffectiveNoiseBW,\r\n density: adcDensity,\r\n sourceInputDensity: '',\r\n sourceNoiseGain: '',\r\n totalVrms: adcTotalVrms,\r\n totalPerc: adcTotalPerc,\r\n totalSnr: adcTotalSnr,\r\n },\r\n driver: {\r\n bw: driverBW,\r\n equivBW: driverEquivBW,\r\n effectiveBW: driverEffectiveNoiseBW,\r\n density: driverDensity,\r\n sourceInputDensity: '',\r\n sourceNoiseGain: '',\r\n totalVrms: driverTotalVrms,\r\n totalPerc: driverTotalPerc,\r\n totalSnr: driverTotalSnr,\r\n vn: Formulas.getNoiseCalculationItem(\r\n vnDensity,\r\n vnSourceInputDensity,\r\n vnSourceNoiseGain,\r\n vnTotalVrms,\r\n vnTotalPerc,\r\n vnTotalSnr,\r\n ),\r\n ibPlus: Formulas.getNoiseCalculationItem(\r\n ibPlusDensity,\r\n ibPlusSourceInputDensity,\r\n ibPlusSourceNoiseGain,\r\n ibPlusTotalVrms,\r\n ibPlusTotalPerc,\r\n ibPlusTotalSnr,\r\n ),\r\n ibMinus: Formulas.getNoiseCalculationItem(\r\n ibMinusDensity,\r\n ibMinusSourceInputDensity,\r\n ibMinusSourceNoiseGain,\r\n ibMinusTotalVrms,\r\n ibMinusTotalPerc,\r\n ibMinusTotalSnr,\r\n ),\r\n //rfilt: Formulas.getNoiseCalculationItem(rfiltDensity, rfiltTotalVrms, rfiltTotalPerc, rfiltTotalSnr, rfiltBW),\r\n rf: Formulas.getNoiseCalculationItem(\r\n rfDensity,\r\n rfSourceInputDensity,\r\n rfSourceNoiseGain,\r\n rfTotalVrms,\r\n rfTotalPerc,\r\n rfTotalSnr,\r\n ),\r\n rg: Formulas.getNoiseCalculationItem(\r\n rgDensity,\r\n rgSourceInputDensity,\r\n rgSourceNoiseGain,\r\n rgTotalVrms,\r\n rgTotalPerc,\r\n rgTotalSnr,\r\n ),\r\n },\r\n rfilt: {\r\n bw: rfiltBW,\r\n equivBW: rfiltEquivBW,\r\n effectiveBW: rfiltEffectiveBW,\r\n density: rfiltDensity,\r\n sourceInputDensity: '',\r\n sourceNoiseGain: '',\r\n totalVrms: rfiltTotalVrms,\r\n totalPerc: rfiltTotalPerc,\r\n totalSnr: rfiltTotalSnr,\r\n },\r\n };\r\n\r\n return result;\r\n }\r\n\r\n //** Calculates the small signal bandwidth for noise calculations\r\n //** uses UGBW, shifts by noise gain, to dervice BW at selected gain\r\n @computed('selectedTopology.id', 'gain') get noiseGain() {\r\n let topology = this.selectedTopology.id,\r\n gain = this.gain;\r\n\r\n return topology === Consts.TOPOLOGY.INVERTING ? gain + 1 : gain;\r\n }\r\n\r\n @computed('selectedAdc.type', 'vout') get signal() {\r\n let vout = this.vout,\r\n adcType = this.selectedAdc.type;\r\n return adcType === Consts.ADC_TYPE.SE ? vout : vout * 2;\r\n }\r\n\r\n @computed('selectedAdc.type', 'signal') get signalRms() {\r\n let signal = this.signal;\r\n return signal / (2 * Math.sqrt(2));\r\n }\r\n\r\n //#region bandwidth calculations\r\n\r\n @computed('selectedDriver.unityGain', 'noiseGain') get driverBandwidth() {\r\n let unityGain = this.selectedDriver.unityGain,\r\n noiseGain = this.noiseGain,\r\n ssbw = unityGain / noiseGain;\r\n return ssbw;\r\n }\r\n\r\n @computed('rext', 'cext', 'selectedAdc.cadc') get filterBandwidth() {\r\n let rext = this.rext,\r\n cext = this.selectedAdc.partCore === 'AD4080' ? 2 * this.cext : this.cext,\r\n cadc = this.selectedAdc.cadc;\r\n return 1 / (Math.PI * 2 * (cext + cadc) * rext);\r\n }\r\n\r\n @computed('sigmaDeltaData.isSigmaDeltaAdc', 'selectedAdc.{radc,cadc}') get adcBandwidth() {\r\n let isSigmaDeltaAdc = this.sigmaDeltaData.isSigmaDeltaAdc,\r\n radc = this.selectedAdc.radc,\r\n cadc = this.selectedAdc.cadc;\r\n\r\n if (isSigmaDeltaAdc) {\r\n return '';\r\n } else {\r\n // might want to round this and label as approx\r\n return 1 / (2 * Math.PI * radc * cadc);\r\n }\r\n }\r\n\r\n @computed('driverBandwidth') get driverEqNoiseBW() {\r\n return Formulas.calculateEqNoiseBW(this.driverBandwidth);\r\n }\r\n\r\n @computed('filterBandwidth') get filterEqNoiseBW() {\r\n return Formulas.calculateEqNoiseBW(this.filterBandwidth);\r\n }\r\n\r\n @computed('sigmaDeltaData.adcNoiseCalculationModel') get adcNoiseCalculationModel() {\r\n if (this.sigmaDeltaData.adcNoiseCalculationModel)\r\n return adcNoiseModel(this.sigmaDeltaData.adcNoiseCalculationModel);\r\n else return null;\r\n }\r\n\r\n @computed('adcNoiseCalculationModel.noiseBW', 'sigmaDeltaData.{adcEquivNoiseBW,isSigmaDeltaAdc}', 'adcBandwidth')\r\n get adcEquivNoiseBandwidth() {\r\n if (this.adcNoiseCalculationModel) return this.adcNoiseCalculationModel.noiseBW;\r\n else if (this.sigmaDeltaData.isSigmaDeltaAdc) return this.sigmaDeltaData.adcEquivNoiseBW;\r\n else return Formulas.calculateEqNoiseBW(this.adcBandwidth);\r\n }\r\n\r\n @computed('driverEqNoiseBW', 'filterEqNoiseBW', 'adcEquivNoiseBandwidth', 'sigmaDeltaData.{fmod,isSigmaDeltaAdc}')\r\n get SigmaDeltaAliasBW() {\r\n let driverEquivBW = this.driverEqNoiseBW,\r\n rfiltEquivBW = this.filterEqNoiseBW,\r\n adcEquivBW = this.adcEquivNoiseBandwidth,\r\n fmod = this.sigmaDeltaData.fmod,\r\n isSigmaDeltaAdc = this.sigmaDeltaData.isSigmaDeltaAdc,\r\n aliasBW;\r\n\r\n if (!isSigmaDeltaAdc || !Utils.isNumeric(fmod)) {\r\n aliasBW = adcEquivBW; //for AD7134, and not AD7768\r\n } else {\r\n aliasBW = Formulas.calculateDriverAndSourceEquivBw({\r\n driverEquivBW,\r\n rfiltEquivBW,\r\n adcEquivBW,\r\n fmod,\r\n });\r\n }\r\n\r\n return aliasBW;\r\n }\r\n\r\n @computed('SigmaDeltaAliasBW', 'adcEffectiveNoiseBW', 'sigmaDeltaData.isSigmaDeltaAdc')\r\n get driverEffectiveNoiseBW() {\r\n let sigmaDeltaAliasBW = this.SigmaDeltaAliasBW,\r\n isSigmaDeltaAdc = this.sigmaDeltaData.isSigmaDeltaAdc,\r\n adcEffectiveNoiseBW = this.adcEffectiveNoiseBW,\r\n driverEffectiveNoiseBW;\r\n\r\n if (isSigmaDeltaAdc) {\r\n driverEffectiveNoiseBW = sigmaDeltaAliasBW;\r\n } else {\r\n driverEffectiveNoiseBW = adcEffectiveNoiseBW;\r\n }\r\n\r\n return driverEffectiveNoiseBW;\r\n }\r\n\r\n @computed('sigmaDeltaData.isSigmaDeltaAdc', 'filterEqNoiseBW', 'adcEquivNoiseBandwidth', 'driverEffectiveNoiseBW')\r\n get filterEffectiveNoiseBW() {\r\n let isSigmaDeltaAdc = this.sigmaDeltaData.isSigmaDeltaAdc,\r\n filterEqNoiseBW = this.filterEqNoiseBW,\r\n adcEquivNoiseBandwidth = this.adcEquivNoiseBandwidth,\r\n driverEffectiveNoiseBW = this.driverEffectiveNoiseBW,\r\n filterEffectiveNoiseBW;\r\n\r\n if (isSigmaDeltaAdc) {\r\n filterEffectiveNoiseBW = driverEffectiveNoiseBW;\r\n } else {\r\n filterEffectiveNoiseBW = Math.min(filterEqNoiseBW, adcEquivNoiseBandwidth);\r\n }\r\n\r\n return filterEffectiveNoiseBW;\r\n }\r\n\r\n @computed('driverEqNoiseBW', 'filterEqNoiseBW', 'adcEquivNoiseBandwidth') get adcEffectiveNoiseBW() {\r\n return Math.min(this.filterEqNoiseBW, this.driverEqNoiseBW, this.adcEquivNoiseBandwidth);\r\n }\r\n\r\n //#endregion bandwidth calculations\r\n\r\n //#region noise density calculations\r\n\r\n @computed('wbNoise', 'gain', 'noiseConfig') get sourceNoiseDensity() {\r\n let wbNoise = this.wbNoise,\r\n gain = this.gain,\r\n noiseConfig = this.noiseConfig,\r\n sourceNoiseBase = wbNoise * gain;\r\n return noiseConfig == Consts.CONFIGURATION.DiffADC_SEAmp_SESource ? 2 * sourceNoiseBase : sourceNoiseBase;\r\n }\r\n\r\n @computed('noiseGain', 'noiseConfig') get ampVoltageNoiseDensityMultiplier() {\r\n let noiseGain = this.noiseGain,\r\n noiseConfig = this.noiseConfig,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n multiplier = Math.sqrt(2) * noiseGain;\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n multiplier = Math.sqrt(4 * noiseGain * noiseGain + 4);\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.DiffADC_DiffAmp_SESource Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource\r\n multiplier = noiseGain;\r\n }\r\n\r\n return multiplier;\r\n }\r\n\r\n @computed('selectedDriver.vn', 'ampVoltageNoiseDensityMultiplier') get ampVoltageNoiseDensity() {\r\n let vTotalNoiseBase = this.selectedDriver.vn,\r\n multiplier = this.ampVoltageNoiseDensityMultiplier;\r\n\r\n return vTotalNoiseBase * multiplier;\r\n }\r\n\r\n @computed('rg') get ampRgNoiseDensityInput() {\r\n var rg = this.rg,\r\n rgNoiseBase;\r\n\r\n if (rg === Infinity) {\r\n rgNoiseBase = 0;\r\n } else {\r\n rgNoiseBase = Math.sqrt(4 * this.kt * rg);\r\n }\r\n\r\n return rgNoiseBase;\r\n }\r\n\r\n @computed('noiseConfig', 'rf', 'rg') get ampRgNoiseMultFactor() {\r\n var noiseConfig = this.noiseConfig,\r\n rf = this.rf,\r\n rg = this.rg,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n multiplier = Math.SQRT2;\r\n console.log('%cDiff ADC, DiffAmp - Rg noise is uncorrelated, multiplier is sqrt(2)', 'color:pink');\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n multiplier = Math.SQRT2;\r\n console.log(\r\n '%cDiff ADC, SEAmp, DiffSource - Rg noise is uncorrelated, multiplier is sqrt(2)',\r\n 'color:pink',\r\n );\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n multiplier = 2;\r\n console.log('%cDiff ADC, SEAmp, SESource - Rg noise is correlated, multiplier is 2', 'color:pink');\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n multiplier = 1;\r\n }\r\n\r\n return (rf / rg) * multiplier;\r\n }\r\n\r\n @computed('ampRgNoiseDensityInput', 'ampRgNoiseMultFactor') get ampRgNoiseDensity() {\r\n var rgNoiseBase = this.ampRgNoiseDensityInput,\r\n multiplier = this.ampRgNoiseMultFactor;\r\n\r\n return rgNoiseBase * multiplier;\r\n }\r\n\r\n @computed('rf', 'rg') get ampRfNoiseDensityInput() {\r\n let rf = this.rf,\r\n rg = this.rg,\r\n rfNoiseBase;\r\n\r\n if (rg === Infinity) {\r\n rfNoiseBase = 0;\r\n } else {\r\n rfNoiseBase = Math.sqrt(4 * this.kt * rf);\r\n }\r\n\r\n return rfNoiseBase;\r\n }\r\n\r\n @computed('noiseConfig', 'selectedTopology', 'gain') get ampRfNoiseMultFactor() {\r\n let noiseConfig = this.noiseConfig,\r\n topology = this.selectedTopology,\r\n gain = this.gain,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n multiplier = Math.SQRT2;\r\n console.log('%cDiff ADC, DiffAmp - Rf noise is uncorrelated, multiplier is sqrt(2)', 'color:pink');\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n multiplier = Math.SQRT2;\r\n console.log(\r\n '%cDiff ADC, SEAmp, Diff Source - Rf noise is uncorrelated, multiplier is sqrt(2)',\r\n 'color:pink',\r\n );\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n if (topology.id === Consts.TOPOLOGY.FOLLOWER) {\r\n multiplier = Math.SQRT2;\r\n console.log(\r\n '%cDiff ADC, SEAmp, SESource, Follower - Rf noise is uncorrelated, multiplier is sqrt(2)',\r\n 'color:pink',\r\n );\r\n } else if (topology.id === Consts.TOPOLOGY.NON_INVERTING && gain == 1) {\r\n multiplier = Math.SQRT2;\r\n console.log(\r\n '%cDiff ADC, SEAmp, SESource, Non-Inv, gain = 1 - Rf noise is uncorrelated, multiplier is sqrt(2)',\r\n 'color:pink',\r\n );\r\n } else {\r\n multiplier = Math.sqrt(6);\r\n console.log(\r\n '%cDiff ADC, SEAmp, SESource - Rf noise is complicated, base noise dens is , multiplier is sqrt(6)',\r\n 'color:pink',\r\n );\r\n }\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n multiplier = 1;\r\n }\r\n\r\n return multiplier;\r\n }\r\n\r\n @computed('ampRfNoiseDensityInput', 'ampRfNoiseMultFactor') get ampRfNoiseDensity() {\r\n var rfNoiseBase = this.ampRfNoiseDensityInput,\r\n multiplier = this.ampRfNoiseMultFactor;\r\n\r\n return rfNoiseBase * multiplier;\r\n }\r\n\r\n @computed('rext') get ampRfiltNoiseDensityInput() {\r\n let rext = this.rext;\r\n\r\n return Math.sqrt(4 * this.kt * rext);\r\n }\r\n\r\n @computed('noiseConfig') get ampRfiltNoiseMultFactor() {\r\n let noiseConfig = this.noiseConfig,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n multiplier = Math.SQRT2;\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n multiplier = 1;\r\n }\r\n\r\n return multiplier;\r\n }\r\n\r\n @computed('rext', 'noiseConfig') get ampRfiltNoiseDensity() {\r\n let rext = this.rext,\r\n rfiltNoiseBase = Math.sqrt(4 * this.kt * rext),\r\n noiseConfig = this.noiseConfig,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n multiplier = Math.SQRT2;\r\n console.log(\r\n '%cDiff ADC - Rfilt noise is uncorrelated, base noise dens is ' +\r\n rfiltNoiseBase +\r\n ', multiplier is sqrt(2)',\r\n 'color:pink',\r\n );\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n multiplier = 1;\r\n }\r\n\r\n return rfiltNoiseBase * multiplier;\r\n }\r\n\r\n @computed('selectedDriver.inn', 'rf', 'rg') get ampIbMinusNoiseDensityInput() {\r\n let inn = this.selectedDriver.inn,\r\n rf = this.rf,\r\n rg = this.rg,\r\n parallelRs;\r\n\r\n if (rg === Infinity) {\r\n parallelRs = 0;\r\n } else {\r\n parallelRs = Formulas.parallel(rf, rg);\r\n }\r\n\r\n return inn * parallelRs;\r\n }\r\n\r\n @computed('ampIbMinusNoiseDensityInput', 'noiseConfig') get ampIbPlusNoiseDensityInput() {\r\n let ibMinusInputDensity = this.ampIbMinusNoiseDensityInput,\r\n noiseConfig = this.noiseConfig,\r\n ibPlusNoiseBase;\r\n\r\n switch (\r\n noiseConfig // if using a diff amp, ib+ = ib-\r\n ) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n ibPlusNoiseBase = ibMinusInputDensity;\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n ibPlusNoiseBase = 0;\r\n }\r\n\r\n return ibPlusNoiseBase;\r\n }\r\n\r\n @computed('noiseConfig', 'noiseGain') get ampIbMinusNoiseMultiplier() {\r\n let noiseConfig = this.noiseConfig,\r\n noiseGain = this.noiseGain,\r\n multiplier;\r\n\r\n switch (noiseConfig) {\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource:\r\n case Consts.CONFIGURATION.DiffADC_DiffAmp_SESource:\r\n multiplier = 1;\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_DiffSource:\r\n multiplier = Math.SQRT2;\r\n break;\r\n case Consts.CONFIGURATION.DiffADC_SEAmp_SESource:\r\n multiplier = Math.sqrt(5);\r\n break;\r\n default:\r\n // Consts.CONFIGURATION.SEADC\r\n multiplier = 1;\r\n }\r\n\r\n return multiplier * noiseGain;\r\n }\r\n\r\n @computed('noiseGain') get ampIbPlusNoiseMultiplier() {\r\n return this.noiseGain;\r\n }\r\n\r\n @computed('ampIbMinusNoiseDensityInput', 'ampIbMinusNoiseMultiplier') get ampIbMinusNoiseDensity() {\r\n return this.ampIbMinusNoiseDensityInput * this.ampIbMinusNoiseMultiplier;\r\n }\r\n\r\n @computed('ampIbPlusNoiseDensityInput', 'ampIbPlusNoiseMultiplier') get ampIbPlusNoiseDensity() {\r\n return this.ampIbPlusNoiseDensityInput * this.ampIbPlusNoiseMultiplier;\r\n }\r\n\r\n @computed('adcNoiseCalculationModel.noiseDensity', 'sigmaDeltaData.{isSigmaDeltaAdc,adcNoiseDensity}')\r\n get adcNoiseDensity() {\r\n if (this.adcNoiseCalculationModel) return this.adcNoiseCalculationModel.noiseDensity;\r\n else if (this.sigmaDeltaData.isSigmaDeltaAdc) return this.sigmaDeltaData.adcNoiseDensity;\r\n else return '';\r\n }\r\n\r\n @computed(\r\n 'adcNoiseCalculationModel.noiseVrms',\r\n 'selectedAdc.adcNoiseRms',\r\n 'sigmaDeltaData.{isSigmaDeltaAdc,adcNoiseDensity,adcEquivNoiseBW}',\r\n )\r\n get adcNoiseContribution() {\r\n if (this.adcNoiseCalculationModel) return this.adcNoiseCalculationModel.noiseVrms;\r\n if (this.sigmaDeltaData.isSigmaDeltaAdc)\r\n return Math.sqrt(this.sigmaDeltaData.adcEquivNoiseBW) * this.adcNoiseDensity;\r\n else return this.selectedAdc.adcNoiseRms;\r\n }\r\n\r\n //#endregion noise density calculations\r\n\r\n //#endregion noise\r\n\r\n //---------------------------------------------------\r\n //---------------------------------------------------\r\n\r\n //#region thd calculations\r\n @computed('thd', 'gain') get adjustedSourceThd() {\r\n let thd = this.thd,\r\n gain = this.gain;\r\n\r\n return -thd + 20 * Math.log10(gain);\r\n }\r\n\r\n // #region THD Adjustments\r\n @computed(\r\n 'selectedAdc.{cadc,maxSampleRate,acquisitionTimeMin,settlingTHDadj,Vref_settlingTHDadj,THD_settlingTHDadj,tacq_settlingTHDadj,R_settlingTHDadj,C_settlingTHDadj,fs_settlingTHDadj}',\r\n 'samplingRate',\r\n 'cext',\r\n 'rext',\r\n )\r\n get thdSettlingAdjustment() {\r\n let result = false;\r\n let adc = this.selectedAdc;\r\n let cext = this.selectedAdc.partCore === 'AD4080' ? 2 * this.cext : this.cext;\r\n let rext = this.rext;\r\n let samplingRate = this.samplingRate;\r\n\r\n if (adc.settlingTHDadj) {\r\n let thdSettlingThdAdjLinear =\r\n (0.7071 / 2) * adc.Vref_settlingTHDadj * (1 / Math.pow(10, adc.THD_settlingTHDadj / 20));\r\n let vpSettlingThdAdj =\r\n thdSettlingThdAdjLinear /\r\n Math.exp(-adc.tacq_settlingTHDadj / (adc.R_settlingTHDadj * adc.C_settlingTHDadj));\r\n let qSettlingThdAdj =\r\n vpSettlingThdAdj *\r\n adc.C_settlingTHDadj *\r\n (1 - Math.exp(-1 / (adc.fs_settlingTHDadj * adc.R_settlingTHDadj * adc.C_settlingTHDadj)));\r\n // let pcInfCSettlingThdAdj = qSettlingThdAdj * adc.fs_settlingTHDadj * adc.R_settlingTHDadj;\r\n\r\n console.log(this.selectedAdc.part, 'ADC Q model, Q value = ', qSettlingThdAdj);\r\n\r\n let tConv = 1 / adc.maxSampleRate - adc.acquisitionTimeMin;\r\n let tAcqActual = 1 / samplingRate - tConv;\r\n let vpActual =\r\n ((qSettlingThdAdj / (cext + adc.cadc)) * 1) /\r\n (1 - Math.exp(-1 / (samplingRate * rext * (cext + adc.cadc))));\r\n let distortionSettlingActual = vpActual * Math.exp(-tAcqActual / (rext * (cext + adc.cadc)));\r\n let thdSettlingAdjustment =\r\n -20 * Math.log10((adc.Vref_settlingTHDadj / distortionSettlingActual) * (0.7071 / 2));\r\n\r\n result = thdSettlingAdjustment;\r\n }\r\n\r\n return result;\r\n }\r\n // #endregion THD Adjustments\r\n\r\n @computed('selectedDriver.id', 'samplingRate', 'rg', 'rf', 'rext', 'cext', 'frequency', 'selectedTopology')\r\n get driverPerformanceData() {\r\n let data = {\r\n tempABError: false,\r\n tempABErrorItems: [],\r\n };\r\n\r\n // Is this still the right calculation for the freq array?\r\n let frequency = [],\r\n phase = [],\r\n magnitude = [],\r\n endFrequency = (this.samplingRate * 0.5) / this.averaging,\r\n startFrequency = Math.pow(10, (Math.log10(endFrequency) - +4).toFixed(0)),\r\n rext = this.rext,\r\n cext = this.selectedAdc.partCore === 'AD4080' ? 2 * this.cext : this.cext,\r\n rf = this.rf,\r\n rg = this.rg,\r\n gbw = this.selectedDriver.unityGain,\r\n rout = this.selectedDriver.Ro,\r\n complexATopTerm = Complex.createComplex(32 * Math.PI * Math.PI * Math.PI * gbw * gbw * gbw, 0);\r\n\r\n // Temporary check\r\n if (rg !== Infinity) {\r\n for (let i = 0; i < 250; i++) {\r\n // Build frequency\r\n if (i !== 0)\r\n frequency[i] = Math.pow(\r\n 10,\r\n Math.log10(frequency[i - 1]) + Math.log10(endFrequency / startFrequency) / 80,\r\n );\r\n else frequency[i] = Math.pow(10, Math.round(Math.log10(startFrequency)));\r\n\r\n var sImaginary = 2 * Math.PI * frequency[i],\r\n sSquared = -1 * sImaginary * sImaginary,\r\n //complexABottomTerm = Complex.createComplex(sSquared, 4 * Math.PI * gbw * sImaginary),\r\n complexABottomTerm = Complex.createComplex(\r\n 8 * gbw * Math.PI * sSquared,\r\n sImaginary * (16 * gbw * gbw * Math.PI * Math.PI + sSquared),\r\n ),\r\n //complexA = (complexRparallel.divide(complexRout)).multDestroy(complexATopTerm.divide(complexABottomTerm)),\r\n complexA = complexATopTerm.divide(complexABottomTerm),\r\n complexBTopTerm = Complex.createComplex(rg, rg * rext * cext * sImaginary),\r\n complexBBottomTerm = Complex.createComplex(\r\n rout + rf + rg,\r\n (rext * cext * (rf + rg + rout) + cext * rout * (rf + rg)) * sImaginary,\r\n ),\r\n complexB = complexBTopTerm.divide(complexBBottomTerm),\r\n complexResult = complexA.mult(complexB);\r\n\r\n magnitude.push(complexResult.magnitude());\r\n //phase.push(atan2(complexResult.imaginary, complexResult.real) * (360 / (2 * Math.PI)));\r\n\r\n let ph = Math.atan2(complexResult.imaginary, complexResult.real) * (360 / (2 * Math.PI));\r\n if (ph < -80) phase.push(ph);\r\n else phase.push(-181);\r\n }\r\n\r\n data.abFrequencyArray = frequency;\r\n data.abMagnitudeArray = magnitude;\r\n data.abPhaseArray = phase;\r\n } else {\r\n let intl = this.intl;\r\n\r\n data.tempABError = intl.t('messages.rg_inf').toString();\r\n data.tempABErrorItems = [\r\n intl.t('messages.topology_to_inv').toString(),\r\n intl.t('messages.gain_to_not_one').toString(),\r\n ];\r\n }\r\n\r\n return data;\r\n }\r\n\r\n @computed('selectedAdc.id', 'frequency', 'rext')\r\n get adcThdEstimate() {\r\n let adc = this.selectedAdc,\r\n frequency = this.frequency,\r\n rext = this.rext;\r\n\r\n return Formulas.calculateThd(frequency, rext, adc);\r\n }\r\n\r\n @computed('selectedAdc.id', 'frequency')\r\n get adcThdDatasheet() {\r\n let adc = this.selectedAdc,\r\n datasheetRfilt = adc.datasheetRfilt,\r\n frequency = this.frequency;\r\n\r\n return Formulas.calculateThd(frequency, datasheetRfilt, adc);\r\n }\r\n\r\n @alias('circuitConfigurations.currentCircuitConfig.secondDriver') secondDriver;\r\n @alias('circuitConfigurations.currentCircuitConfig.config') noiseConfig;\r\n @alias('circuitConfigurations.currentCircuitConfig.nInvertingEnabled') nInvertingEnabled;\r\n @alias('circuitConfigurations.currentCircuitConfig.svg') circuitSvg;\r\n\r\n @computed('hasSequencerMode') get circuitInfoModals() {\r\n if (!this.hasSequencerMode) return [];\r\n else\r\n return [\r\n {\r\n name: 'Seq',\r\n bodyArgs: {},\r\n },\r\n ];\r\n }\r\n\r\n @computed('samplingRate') get samplePeriod() {\r\n let samplingRate = this.samplingRate;\r\n return 1 / samplingRate;\r\n }\r\n\r\n @computed('vref', 'selectedAdc.{type,bits}') get oneLsb() {\r\n let result;\r\n\r\n let vref = this.vref,\r\n adcType = this.selectedAdc.type,\r\n bits = this.selectedAdc.bits;\r\n\r\n if (adcType === Consts.ADC_TYPE.DIFF) {\r\n result = (2 * vref) / Math.pow(2, bits);\r\n } else {\r\n result = vref / Math.pow(2, bits);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n //# endregion thd calculations\r\n\r\n @computed('vout', 'vref', 'samplePeriod', 'selectedAdc.bits') get requiredBwMuxedTransition() {\r\n let vout = this.vout,\r\n vref = this.vref,\r\n samplePeriod = this.samplePeriod,\r\n bits = this.selectedAdc.bits;\r\n\r\n return Formulas.calculateRequiredBw(vout, vref, bits, samplePeriod);\r\n }\r\n\r\n @computed(\r\n 'selectedDriver.id',\r\n 'selectedAdc.id',\r\n 'samplePeriod',\r\n 'frequency',\r\n 'cext',\r\n 'rext',\r\n 'vref',\r\n 'vout',\r\n 'vcm',\r\n 'vp',\r\n 'rg',\r\n 'rf',\r\n 'vSupplyPos',\r\n 'vSupplyNeg',\r\n 'selectedTopology.id',\r\n 'gain',\r\n 'inputSlewRate',\r\n )\r\n get inputSettlingArrays() {\r\n return this.calculateInputSettlingArrays();\r\n }\r\n\r\n calculateInputSettlingArrays() {\r\n // If the sampling rate values are out of bounds, skip the computation - this saves a TON of processing for plots\r\n // that will not appear anyway.\r\n if (this.samplingRate > this.selectedAdc.maxSampleRate || this.samplingRate < this.minSamplingRate) {\r\n return {};\r\n }\r\n\r\n // Inputs\r\n let rext = this.rext;\r\n let cext = this.selectedAdc.partCore === 'AD4080' ? 2 * this.cext : this.cext;\r\n let vref = this.vref;\r\n let gain = this.gain;\r\n let rf = this.rf;\r\n let rg = this.rg;\r\n let topologyId = this.selectedTopology.id;\r\n let selectedAdc = this.selectedAdc;\r\n let selectedDriver = this.selectedDriver;\r\n let vSupplyPos = this.vSupplyPos;\r\n let vSupplyNeg = this.vSupplyNeg;\r\n\r\n let timeStep = 1e-10; // TODO: This should come from input from \"Simulation Settings\"\r\n let period = this.samplePeriod;\r\n let numSteps = Math.round(period / timeStep);\r\n let numSteps2 = numSteps * 2;\r\n let numSteps3 = numSteps * 3;\r\n // This removes 80% of the last cycle.\r\n // let numSteps3 = numSteps * 2 + (0.2 * numSteps);\r\n let rcapeq = timeStep / (2 * cext);\r\n // little bit of a hack to deal with sine wave LSB error calculation\r\n let rcapeqsin = timeStep / (2 * (cext + selectedAdc.cadc));\r\n let bias = this.vcm;\r\n let vp = this.vp;\r\n let inputSlewRate = this.inputSlewRate;\r\n if (topologyId === Consts.TOPOLOGY.INVERTING) inputSlewRate = -1 * inputSlewRate;\r\n // For muxed simulations.\r\n let voutMin = bias - vp;\r\n let voutMax = bias + vp;\r\n let vinMin = Formulas.vinFromVout(voutMin, bias, rg, rf, gain, topologyId);\r\n let vinMax = Formulas.vinFromVout(voutMax, bias, rg, rf, gain, topologyId);\r\n // For dc simulations.\r\n let voutDc = voutMax;\r\n let vinDc = Formulas.vinFromVout(voutDc, bias, rg, rf, gain, topologyId);\r\n // Vin arrays\r\n let vinMuxedA = [];\r\n let vinDcA = [];\r\n let vinSinA = [];\r\n\r\n let vcapStepMuxed = 0;\r\n let vcapStepDc = 0;\r\n let vcapStepSin = 0;\r\n\r\n // #region Construct Vin arrays\r\n for (let i = 0; i < 5; i++) {\r\n selectedAdc.internalMux ? vinMuxedA.push(vinMax) : vinMuxedA.push(vinMin);\r\n vinDcA.push(vinDc);\r\n vinSinA.push(bias);\r\n }\r\n\r\n // These loops are looping far more times than necessary. Look at old arrays to see how/if this number was reduced...\r\n for (let i = 5; i < numSteps; i++) {\r\n selectedAdc.internalMux ? vinMuxedA.push(vinMax) : vinMuxedA.push(vinMin);\r\n vinDcA.push(vinDc);\r\n vinSinA.push(timeStep * inputSlewRate + vinSinA[i - 1]);\r\n }\r\n\r\n for (let i = numSteps; i <= numSteps3; i++) {\r\n vinMuxedA.push(vinMax);\r\n vinDcA.push(vinDc);\r\n vinSinA.push(timeStep * inputSlewRate + vinSinA[i - 1]);\r\n }\r\n // #endregion Construct Vin arrays\r\n\r\n // #region Start construction of lsbError, vinIdeal, Vpole, Vout, Vcap, Icap, and Icapeq arrays\r\n\r\n // Vout vars\r\n let voutMuxedA = selectedAdc.internalMux ? voutMax : voutMin;\r\n let voutDcA = voutDc;\r\n let voutSinA = bias;\r\n\r\n // Vcap arrays\r\n let vcapMuxedA = [voutMuxedA];\r\n let vcapDcA = [voutDcA];\r\n let vcapSinA = [bias - Math.abs(inputSlewRate) * rext * cext];\r\n\r\n // Icap vars\r\n let icapMuxedA = 0;\r\n let icapDcA = 0;\r\n let icapSinA = (voutSinA - vcapSinA[0]) / rext;\r\n\r\n // Icapeq vars\r\n let icapeqMuxedA = -vcapMuxedA[0] / rcapeq;\r\n let icapeqDcA = -vcapDcA[0] / rcapeq;\r\n let icapeqSinA = -vcapSinA[0] / rcapeqsin;\r\n\r\n //Vinminus vars\r\n let vinMinusMuxed = Formulas.calculateVinMinus(voutMuxedA, vinMuxedA[0], bias, rg, rf, gain, topologyId);\r\n let vinMinusDc = Formulas.calculateVinMinus(voutDcA, vinDcA[0], bias, rg, rf, gain, topologyId);\r\n let vinMinusSin = Formulas.calculateVinMinus(voutSinA, vinSinA[0], bias, rg, rf, gain, topologyId);\r\n\r\n // Vpole vars\r\n let vpoleMuxedA = Formulas.calculateVpoleStart(\r\n voutMuxedA,\r\n vcapMuxedA[0],\r\n vinMinusMuxed,\r\n rext,\r\n rf,\r\n selectedDriver.Ro,\r\n );\r\n let vpoleDcA = Formulas.calculateVpoleStart(voutDc, vcapDcA[0], vinMinusDc, rext, rf, selectedDriver.Ro);\r\n let vpoleSinA = Formulas.calculateVpoleStart(bias, vcapSinA[0], vinMinusSin, rext, rf, selectedDriver.Ro);\r\n\r\n // Vin Ideal arrays\r\n let vinIdealMuxedA = [];\r\n let vinIdealDcA = [];\r\n let vinIdealSinA = [];\r\n\r\n // LSB Error arrays\r\n let lsbErrorMuxedA = [];\r\n let lsbErrorDcA = [];\r\n let lsbErrorSinA = [];\r\n\r\n // Volts Error arrays\r\n let voltsErrorMuxedA = [];\r\n let voltsErrorDcA = [];\r\n let voltsErrorSinA = [];\r\n\r\n // #endregion Start construction of lsbError, vinIdeal, Vpole, Vout, VinPlus, Vcap, Icap, and Icapeq arrays\r\n\r\n // #region Construct time array and kickback\r\n let tConvMax = 1 / selectedAdc.maxSampleRate - selectedAdc.acquisitionTimeMin;\r\n\r\n // Time array\r\n let timeA = [];\r\n let timeAtKickback = 0;\r\n\r\n let minKickbackDominatesSin = false;\r\n // let minKickbackDominatesMuxed = false;\r\n // let minKickbackDominatesDc = false;\r\n\r\n let inputFrequencyWhereSlewDominatesKickback = null;\r\n let slewDominatesKickback = false;\r\n\r\n let requiredBwMuxed;\r\n let requiredBwDc;\r\n let requiredBwSin;\r\n\r\n let kickbackFound = false;\r\n let kickbackIndex = 0;\r\n let nonDecimateArray = []; // This is for keeping the kickback during decimaiton.\r\n\r\n // for headroom/clamping of vpole node - most needed for multiplexed simulation with larger Ro, smaller Rfilt\r\n let clampHigh = vSupplyPos - selectedDriver.VoutHdrmPos;\r\n let clampLow = vSupplyNeg + selectedDriver.VoutHdrmNeg;\r\n\r\n for (let i = 0; i <= numSteps3; i++) {\r\n let time = timeStep * i - period; /* * 1e9 converts to ns*/ //* 1e9;\r\n\r\n timeA.push(time);\r\n\r\n vinIdealMuxedA.push(Formulas.calculateIdealVin(vinMuxedA[i], bias, gain, topologyId));\r\n vinIdealDcA.push(Formulas.calculateIdealVin(vinDcA[i], bias, gain, topologyId));\r\n vinIdealSinA.push(Formulas.calculateIdealVin(vinSinA[i], bias, gain, topologyId));\r\n\r\n // Vpole\r\n vpoleMuxedA = Formulas.calculateVpole(\r\n vpoleMuxedA,\r\n Formulas.calculateVinMinusPlus(vinMuxedA[i], bias, gain, topologyId), // VinPlus\r\n Formulas.calculateVinMinus(voutMuxedA, vinMuxedA[i], bias, rg, rf, gain, topologyId), // VinMinus\r\n timeStep,\r\n selectedDriver.slewRate,\r\n selectedDriver.unityGain,\r\n );\r\n vpoleDcA = Formulas.calculateVpole(\r\n vpoleDcA,\r\n Formulas.calculateVinMinusPlus(vinDcA[i], bias, gain, topologyId), // VinPlus\r\n Formulas.calculateVinMinus(voutDcA, vinDcA[i], bias, rg, rf, gain, topologyId), // VinMinus\r\n timeStep,\r\n selectedDriver.slewRate,\r\n selectedDriver.unityGain,\r\n );\r\n vpoleSinA = Formulas.calculateVpole(\r\n vpoleSinA,\r\n Formulas.calculateVinMinusPlus(vinSinA[i], bias, gain, topologyId), // VinPlus\r\n Formulas.calculateVinMinus(voutSinA, vinSinA[i], bias, rg, rf, gain, topologyId), // VinMinus\r\n timeStep,\r\n selectedDriver.slewRate,\r\n selectedDriver.unityGain,\r\n );\r\n\r\n // trigger warning if pole needs to be clamped\r\n\r\n // clamp vpole\r\n vpoleMuxedA = Math.max(Math.min(vpoleMuxedA, clampHigh), clampLow);\r\n vpoleDcA = Math.max(Math.min(vpoleDcA, clampHigh), clampLow);\r\n //vpoleSinA = Math.max(Math.min(vpoleSinA, clampHigh), clampLow);\r\n\r\n // Vcap with kickback\r\n if (!kickbackFound && time > tConvMax) {\r\n kickbackFound = true;\r\n kickbackIndex = i + 1;\r\n\r\n // // when kickback occurs, cadc is now connected to ADC input\r\n // console.log(\"kickback found, rcapeq was\", rcapeq);\r\n // console.log(\"Cfilter = \", cext, \"Cadc = \", selectedAdc.cadc);\r\n rcapeq = timeStep / (2 * (cext + selectedAdc.cadc));\r\n // console.log(\"rcapeq is now\", rcapeq);\r\n\r\n timeAtKickback = time;\r\n\r\n // Set items to save from decimation around the kickback.\r\n nonDecimateArray.push(i - 1, i, i + 1);\r\n\r\n // Calculating kickback and recoding if min kickback dominates.\r\n let kickbackObj = Formulas.calculateKickback(\r\n vcapMuxedA[i],\r\n vcapMuxedA[numSteps],\r\n vref,\r\n selectedAdc.kickbackType,\r\n selectedAdc.kickbackVrefMultiplier,\r\n cext,\r\n selectedAdc.cadc,\r\n );\r\n\r\n if (selectedAdc.internalMux && !selectedAdc.hasCurrentVariant) {\r\n // calculate kickback differently if using internal mux\r\n kickbackObj = Formulas.calculateKickback(\r\n vcapMuxedA[i],\r\n 0,\r\n vref,\r\n selectedAdc.kickbackType,\r\n selectedAdc.kickbackVrefMultiplier,\r\n cext,\r\n selectedAdc.cadc,\r\n );\r\n }\r\n\r\n vcapMuxedA.push(kickbackObj.kickback);\r\n // minKickbackDominatesMuxed = kickbackObj.minKickbackDominates;\r\n vcapStepMuxed = kickbackObj.kickbackMag;\r\n\r\n kickbackObj = Formulas.calculateKickback(\r\n vcapDcA[i],\r\n vcapDcA[numSteps],\r\n vref,\r\n selectedAdc.kickbackType,\r\n selectedAdc.kickbackVrefMultiplier,\r\n cext,\r\n selectedAdc.cadc,\r\n );\r\n vcapDcA.push(kickbackObj.kickback);\r\n // minKickbackDominatesDc = kickbackObj.minKickbackDominates;\r\n vcapStepDc = kickbackObj.kickbackMag;\r\n\r\n kickbackObj = Formulas.calculateKickback(\r\n vcapSinA[i],\r\n vcapSinA[numSteps],\r\n vref,\r\n selectedAdc.kickbackType,\r\n selectedAdc.kickbackVrefMultiplier,\r\n cext,\r\n selectedAdc.cadc,\r\n );\r\n\r\n vcapSinA.push(kickbackObj.kickback);\r\n minKickbackDominatesSin = kickbackObj.minKickbackDominates;\r\n vcapStepSin = kickbackObj.kickbackMag;\r\n\r\n inputFrequencyWhereSlewDominatesKickback =\r\n this.selectedAdc.kickbackVrefMultiplier /\r\n ((selectedAdc.continuousAcquisition ? period : tConvMax) * Math.PI);\r\n slewDominatesKickback = PrettyNum.lessThan(\r\n PrettyNum.eng3(this.frequency),\r\n PrettyNum.eng3(inputFrequencyWhereSlewDominatesKickback),\r\n );\r\n\r\n if (this.frequency > inputFrequencyWhereSlewDominatesKickback && selectedAdc.continuousAcquisition) {\r\n //Once input frequency exceeds slew dominated kick, update AC kickback step only in continuous acquisition mode\r\n vcapStepSin = (Math.abs(inputSlewRate) * selectedAdc.cadc * period) / (cext + selectedAdc.cadc);\r\n }\r\n\r\n requiredBwMuxed = Formulas.calculateRequiredBw(\r\n vcapMuxedA[i + 1] - vcapMuxedA[i],\r\n vref,\r\n selectedAdc.bits,\r\n period - tConvMax,\r\n );\r\n requiredBwDc = Formulas.calculateRequiredBw(\r\n vcapDcA[i + 1] - vcapDcA[i],\r\n vref,\r\n selectedAdc.bits,\r\n period - tConvMax,\r\n );\r\n requiredBwSin = Formulas.calculateRequiredBw(\r\n vcapSinA[i + 1] - vcapSinA[i],\r\n vref,\r\n selectedAdc.bits,\r\n period - tConvMax,\r\n );\r\n }\r\n // remove the early glitch from mux break time - simlifies the results for the customer\r\n // else if (!tZeroFound && time > muxBreakTime && selectedAdc.internalMux) { // mux swtich kickback for internal mux devices\r\n // tZeroFound = true;\r\n // let kickbackObjMuxed = Formulas.calculateKickback(vcapMuxedA[i], 0, vref, selectedAdc.kickbackType, selectedAdc.kickbackVrefMultiplier, cext, selectedAdc.cpin);\r\n // let kickbackObjDC = Formulas.calculateKickback(vcapDcA[i], 0, vref, selectedAdc.kickbackType, selectedAdc.kickbackVrefMultiplier, cext, selectedAdc.cpin);\r\n // let kickbackObjSin = Formulas.calculateKickback(vcapSinA[i], 0, vref, selectedAdc.kickbackType, selectedAdc.kickbackVrefMultiplier, cext, selectedAdc.cpin);\r\n // vcapMuxedA.push(kickbackObjMuxed.kickback);\r\n // vcapDcA.push(kickbackObjDC.kickback);\r\n // vcapSinA.push(kickbackObjSin.kickback);\r\n // }\r\n else {\r\n vcapMuxedA.push((icapMuxedA - icapeqMuxedA) * rcapeq);\r\n vcapDcA.push((icapDcA - icapeqDcA) * rcapeq);\r\n vcapSinA.push((icapSinA - icapeqSinA) * rcapeqsin);\r\n }\r\n\r\n // LSB Error Muxed and DC\r\n let currentVoltsErrorMuxedA = Formulas.calculateVoltsError(vcapMuxedA[i + 1], voutMax);\r\n //let currentLsbErrorMuxedA = Formulas.calculateLsbError(vcapMuxedA[i + 1], vref, selectedAdc.bits, voutMax);\r\n // let currentLsbErrorDcA = Formulas.calculateLsbError(vcapDcA[i + 1], vref, selectedAdc.bits, voutDc);\r\n let currentVoltsErrorDcA = Formulas.calculateVoltsError(vcapDcA[i + 1], voutDc);\r\n //let currentVoltsErrorSinA = Formulas.calculateVoltsError(vcapSinA[i + 1], voutSin)\r\n\r\n let currentLsbErrorMuxedA = Formulas.convertVoltsToLsb(currentVoltsErrorMuxedA, vref, selectedAdc.bits);\r\n let currentLsbErrorDcA = Formulas.convertVoltsToLsb(currentVoltsErrorDcA, vref, selectedAdc.bits);\r\n\r\n lsbErrorMuxedA.push(currentLsbErrorMuxedA);\r\n lsbErrorDcA.push(currentLsbErrorDcA);\r\n\r\n voltsErrorMuxedA.push(currentVoltsErrorMuxedA);\r\n voltsErrorDcA.push(currentVoltsErrorDcA);\r\n\r\n // Icap\r\n icapMuxedA = (voutMuxedA - vcapMuxedA[i + 1]) / rext;\r\n icapDcA = (voutDcA - vcapDcA[i + 1]) / rext;\r\n icapSinA = (voutSinA - vcapSinA[i + 1]) / rext;\r\n\r\n // Icapeq\r\n icapeqMuxedA = -icapMuxedA - vcapMuxedA[i + 1] / rcapeq;\r\n icapeqDcA = -icapDcA - vcapDcA[i + 1] / rcapeq;\r\n icapeqSinA = -icapSinA - vcapSinA[i + 1] / rcapeqsin;\r\n\r\n //for model troubleshooting\r\n //create debug string to write out to file\r\n /*\r\n timeString = timeString + ',' + String(time);\r\n capMuxedString = capMuxedString + ',' + String(vcapMuxedA[i]);\r\n outMuxedString = outMuxedString + ',' + String(voutMuxedA);\r\n poleMuxedString = poleMuxedString + ',' + String(vpoleMuxedA);\r\n capDCString = capDCString + ',' + String(vcapDcA[i]);\r\n outDCString = outDCString + ',' + String(voutDcA);\r\n poleDCString = poleDCString + ',' + String(vpoleDcA);\r\n capACString = capACString + ',' + String(vcapSinA[i]);\r\n outACString = outACString + ',' + String(voutSinA);\r\n poleACString = poleACString + ',' + String(vpoleSinA);\r\n */\r\n\r\n // Vout\r\n voutMuxedA = Formulas.calculateVout(\r\n vpoleMuxedA,\r\n vinMuxedA[i + 1],\r\n vcapMuxedA[i + 1],\r\n bias,\r\n rext,\r\n rg,\r\n rf,\r\n selectedDriver.Ro,\r\n gain,\r\n topologyId,\r\n );\r\n voutDcA = Formulas.calculateVout(\r\n vpoleDcA,\r\n vinDcA[i + 1],\r\n vcapDcA[i + 1],\r\n bias,\r\n rext,\r\n rg,\r\n rf,\r\n selectedDriver.Ro,\r\n gain,\r\n topologyId,\r\n );\r\n voutSinA = Formulas.calculateVout(\r\n vpoleSinA,\r\n vinSinA[i + 1],\r\n vcapSinA[i + 1],\r\n bias,\r\n rext,\r\n rg,\r\n rf,\r\n selectedDriver.Ro,\r\n gain,\r\n topologyId,\r\n );\r\n }\r\n\r\n // for model troublehshooting\r\n /*\r\n let pythonString = \"import matplotlib.pyplot as plt\\r\\nimport numpy as np\\r\\n\";\r\n pythonString = pythonString + \"plt.subplot(3, 1, 1)\\r\\n\";\r\n //pythonString = pythonString + \"plt1 = plt.figure()\\r\\n\";\r\n pythonString = pythonString + \"plt.title('Muxed \" + selectedAdc.part + \" + \" + selectedDriver.part + \" R = \" + rext + \" C = \" + cext + \"')\\r\\n\";\r\n pythonString = pythonString + \"plt.legend(['Pole output','Amp output','RC output'])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + poleMuxedString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + outMuxedString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + capMuxedString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.axhline(\" + clampHigh +\", color='grey', lw=1)\\r\\n\";\r\n //pythonString = pythonString + \"plt.show()\\r\\n\";\r\n\r\n //pythonString = pythonString + \"plt2 = plt.figure()\\r\\n\";\r\n pythonString = pythonString + \"plt.subplot(3, 1, 2)\\r\\n\";\r\n pythonString = pythonString + \"plt.title('DC \" + selectedAdc.part + \" + \" + selectedDriver.part + \" R = \" + rext + \" C = \" + cext + \"')\\r\\n\";\r\n pythonString = pythonString + \"plt.legend(['Pole output','Amp output','RC output'])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + poleDCString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + outDCString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + capDCString + \"])\\r\\n\";\r\n //pythonString = pythonString + \"plt.axhline(\" + clampHigh +\", color='grey', lw=1)\\r\\n\";\r\n //pythonString = pythonString + \"plt.show()\\r\\n\";\r\n\r\n //pythonString = pythonString + \"plt3 = plt.figure()\\r\\n\";\r\n pythonString = pythonString + \"plt.subplot(3, 1, 3)\\r\\n\";\r\n pythonString = pythonString + \"plt.title('AC \" + selectedAdc.part + \" + \" + selectedDriver.part + \" R = \" + rext + \" C = \" + cext + \"')\\r\\n\";\r\n pythonString = pythonString + \"plt.legend(['Pole output','Amp output','RC output'])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + poleACString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + outACString + \"])\\r\\n\";\r\n pythonString = pythonString + \"plt.plot([0\" + timeString + \"],[np.nan\" + capACString + \"])\\r\\n\";\r\n //pythonString = pythonString + \"plt.axhline(\" + clampHigh +\", color='grey', lw=1)\\r\\n\";\r\n pythonString = pythonString + \"plt.show()\\r\\n\";\r\n\r\n // troubleshooting model - comment out before publishing\r\n // debugger\r\n //console.save(pythonString, \"MuxedArrays.py\");\r\n */\r\n\r\n // Adjusts the Sin/AC ideal vin array by the differece of the ideal and actual at t===0/start of cycle 2,\r\n // so the ideal will line up with the actual.\r\n let diffSin = vcapSinA[numSteps] - vinIdealSinA[numSteps];\r\n let vinIdealAdjustedSinA = vinIdealSinA.map((x) => x + diffSin);\r\n\r\n // Volts Error AC\r\n voltsErrorSinA = vinIdealAdjustedSinA.map((x, i) => vcapSinA[i] - x);\r\n\r\n // LSB Error AC\r\n //lsbErrorSinA = vinIdealAdjustedSinA.map((x, i) => ((vcapSinA[i] - x) * (Math.pow(2, selectedAdc.bits)) / vref));\r\n lsbErrorSinA = voltsErrorSinA.map((volts) => Formulas.convertVoltsToLsb(volts, vref, selectedAdc.bits));\r\n\r\n // TODO: Look into moving these checks to after the decimation.\r\n // Check for ringing on the AC and DC LSB arrays. (Rings if > 1 after kickback)\r\n let lsbRingDc = false;\r\n let lsbRingSin = false;\r\n // let lsbRingMuxed = false;\r\n\r\n for (let i = kickbackIndex; i <= numSteps3; i++) {\r\n if (lsbErrorDcA[i] > 1) {\r\n lsbRingDc = true;\r\n break;\r\n }\r\n }\r\n\r\n for (let i = kickbackIndex; i <= numSteps3; i++) {\r\n if (lsbErrorSinA[i] > 1) {\r\n lsbRingSin = true;\r\n break;\r\n }\r\n }\r\n\r\n // for (let i = kickbackIndex; i <= numSteps3; i++) {\r\n // if (lsbErrorMuxedA[i] > 1) {\r\n // lsbRingMuxed = true;\r\n // break;\r\n // }\r\n // }\r\n\r\n // Find the absolute max LSB Error in the 3rd cycle.\r\n let lsbMaxMuxed = Math.abs(lsbErrorMuxedA[numSteps2]);\r\n let lsbMaxDc = Math.abs(lsbErrorDcA[numSteps2]);\r\n let lsbMaxSin = Math.abs(lsbErrorSinA[numSteps2]);\r\n\r\n let voltsMaxMuxed = Math.abs(voltsErrorMuxedA[numSteps2]);\r\n let voltsMaxDc = Math.abs(voltsErrorDcA[numSteps2]);\r\n let voltsMaxSin = Math.abs(voltsErrorSinA[numSteps2]);\r\n\r\n let len = timeA.length;\r\n for (let i = numSteps2; i < len; i++) {\r\n // Check muxed max.\r\n let currentMax = Math.abs(lsbErrorMuxedA[i]);\r\n if (lsbMaxMuxed < currentMax) lsbMaxMuxed = currentMax;\r\n\r\n // Check dc max.\r\n currentMax = Math.abs(lsbErrorDcA[i]);\r\n if (lsbMaxDc < currentMax) lsbMaxDc = currentMax;\r\n\r\n // Check sin max.\r\n currentMax = Math.abs(lsbErrorSinA[i]);\r\n if (lsbMaxSin < currentMax) lsbMaxSin = currentMax;\r\n\r\n // Check muxed volts max\r\n currentMax = Math.abs(voltsErrorMuxedA[i]);\r\n if (voltsMaxMuxed < currentMax) voltsMaxMuxed = currentMax;\r\n\r\n // Check dc volts max\r\n currentMax = Math.abs(voltsErrorDcA[i]);\r\n if (voltsMaxDc < currentMax) voltsMaxDc = currentMax;\r\n\r\n // Check ac volts max\r\n currentMax = Math.abs(voltsErrorSinA[i]);\r\n if (voltsMaxSin < currentMax) voltsMaxSin = currentMax;\r\n }\r\n\r\n // X and Y points to mark the start and end of cycle 2 on the vcap lines.\r\n let cycle1End = timeA[numSteps];\r\n let cycle3Start = timeA[numSteps2];\r\n\r\n let cycleMuxedLine = [\r\n [cycle1End, vcapMuxedA[numSteps]],\r\n [cycle3Start, vcapMuxedA[numSteps2]],\r\n ];\r\n let cycleDcLine = [\r\n [cycle1End, vcapDcA[numSteps]],\r\n [cycle3Start, vcapDcA[numSteps2]],\r\n ];\r\n let cycleSinLine = [\r\n [cycle1End, vcapSinA[numSteps]],\r\n [cycle3Start, vcapSinA[numSteps2]],\r\n ];\r\n\r\n let cycleMuxedLsbLine = [\r\n [cycle1End, lsbErrorMuxedA[numSteps]],\r\n [cycle3Start, lsbErrorMuxedA[numSteps2]],\r\n ];\r\n let cycleDcLsbLine = [\r\n [cycle1End, lsbErrorDcA[numSteps]],\r\n [cycle3Start, lsbErrorDcA[numSteps2]],\r\n ];\r\n let cycleSinLsbLine = [\r\n [cycle1End, lsbErrorSinA[numSteps]],\r\n [cycle3Start, lsbErrorSinA[numSteps2]],\r\n ];\r\n\r\n let lsb2ppmFactor = 1e6 / Math.pow(2, this.selectedAdc.bits);\r\n let lsb2ppmMapper = (err) => (typeof err === 'boolean' ? err : err * lsb2ppmFactor);\r\n let ppmErrorMuxedA = lsbErrorMuxedA.map(lsb2ppmMapper);\r\n let ppmErrorDcA = lsbErrorDcA.map(lsb2ppmMapper);\r\n let ppmErrorSinA = lsbErrorSinA.map(lsb2ppmMapper);\r\n\r\n let cycleMuxedPpmLine = [\r\n [cycle1End, ppmErrorMuxedA[numSteps]],\r\n [cycle3Start, ppmErrorMuxedA[numSteps2]],\r\n ];\r\n let cycleDcPpmLine = [\r\n [cycle1End, ppmErrorDcA[numSteps]],\r\n [cycle3Start, ppmErrorDcA[numSteps2]],\r\n ];\r\n let cycleSinPpmLine = [\r\n [cycle1End, ppmErrorSinA[numSteps]],\r\n [cycle3Start, ppmErrorSinA[numSteps2]],\r\n ];\r\n\r\n // let zzz = performance.now();\r\n // window.console.log('loop: ' + this.prettyNum.eng3((zzz - xxx) / 1000) + 's');\r\n\r\n // pop one off since there is one extra.\r\n vcapMuxedA.pop();\r\n vcapDcA.pop();\r\n vcapSinA.pop();\r\n // #endregion Construct time array and kickback\r\n\r\n // #region Decimation and setting\r\n // Subtract numToRemove to each item in the nonDecimateArray array.\r\n let numToRemove = Math.floor(numSteps * 0.8);\r\n // This is to keep the correct indexes after the first 80% of the first cycle is removed.\r\n nonDecimateArray = nonDecimateArray.map((x) => x - numToRemove);\r\n\r\n // Remove first 80% of the first cycle.\r\n vinIdealMuxedA.splice(0, numToRemove);\r\n vinIdealDcA.splice(0, numToRemove);\r\n vinIdealAdjustedSinA.splice(0, numToRemove);\r\n\r\n vcapMuxedA.splice(0, numToRemove);\r\n vcapDcA.splice(0, numToRemove);\r\n vcapSinA.splice(0, numToRemove);\r\n\r\n lsbErrorMuxedA.splice(0, numToRemove);\r\n lsbErrorDcA.splice(0, numToRemove);\r\n lsbErrorSinA.splice(0, numToRemove);\r\n\r\n timeA.splice(0, numToRemove);\r\n\r\n // Remove last 80% of the third/last cycle.\r\n let indexToRemove = timeA.length - numToRemove;\r\n vinIdealMuxedA.splice(indexToRemove);\r\n vinIdealDcA.splice(indexToRemove);\r\n vinIdealAdjustedSinA.splice(indexToRemove);\r\n\r\n vcapMuxedA.splice(indexToRemove);\r\n vcapDcA.splice(indexToRemove);\r\n vcapSinA.splice(indexToRemove);\r\n\r\n lsbErrorMuxedA.splice(indexToRemove);\r\n lsbErrorDcA.splice(indexToRemove);\r\n lsbErrorSinA.splice(indexToRemove);\r\n\r\n timeA.splice(indexToRemove);\r\n\r\n // Decimation.\r\n let decimatedArrays = Formulas.decimateArrays(\r\n [\r\n vinIdealMuxedA,\r\n vinIdealDcA,\r\n vinIdealAdjustedSinA,\r\n vcapMuxedA,\r\n vcapDcA,\r\n vcapSinA,\r\n lsbErrorMuxedA,\r\n lsbErrorDcA,\r\n lsbErrorSinA,\r\n timeA,\r\n ],\r\n 1000,\r\n nonDecimateArray,\r\n );\r\n\r\n // TODO: Remove these logs after more testing.\r\n console.log(`settlingTHDadj: ${!!selectedAdc.settlingTHDadj}`);\r\n console.log(`Dc rings: ${lsbRingDc}`);\r\n console.log(`Sin rings: ${lsbRingSin}`);\r\n console.log(`Dc settling error: ${lsbMaxDc}`);\r\n console.log(`Sin settling error: ${lsbMaxSin}`);\r\n console.log(`Dc settling error (V): ${voltsMaxDc}`);\r\n console.log(`Sin settling error (V): ${voltsMaxSin}`);\r\n\r\n // Get LSB error values\r\n let lsbErrorMuxed = Formulas.removeConsecutiveValues(decimatedArrays[6], 1000000);\r\n let lsbErrorDc = Formulas.removeConsecutiveValues(decimatedArrays[7], 1000000);\r\n let lsbErrorSin = Formulas.removeConsecutiveValues(decimatedArrays[8], 1000000);\r\n\r\n // Calculate PPM values here based on LSB at the end instead of the beginning\r\n //let lsb2ppmFactor = 1e6 / (Math.pow(2, this.selectedAdc.bits));\r\n //let lsb2ppmMapper = (err) => typeof err === 'boolean' ? err : err * lsb2ppmFactor;\r\n let ppmErrorMuxed = lsbErrorMuxed.map(lsb2ppmMapper);\r\n let ppmErrorDc = lsbErrorDc.map(lsb2ppmMapper);\r\n let ppmErrorSin = lsbErrorSin.map(lsb2ppmMapper);\r\n\r\n let ppmMaxMuxed = lsbMaxMuxed * lsb2ppmFactor;\r\n let ppmMaxDc = lsbMaxDc * lsb2ppmFactor;\r\n let ppmMaxSin = lsbMaxSin * lsb2ppmFactor;\r\n\r\n //this.setProperties({\r\n let result = {\r\n vinDcInitial: vinDc, // for LTspice schematic\r\n vinCmInitial: bias,\r\n\r\n vinIdealMuxed: Formulas.removeConsecutiveValues(decimatedArrays[0], 100),\r\n vinIdealDc: Formulas.removeConsecutiveValues(decimatedArrays[1], 100),\r\n vinIdealAdjustedSin: Formulas.removeConsecutiveValues(decimatedArrays[2], 100),\r\n\r\n vcapMuxed: Formulas.removeConsecutiveValues(decimatedArrays[3], 1000000),\r\n vcapDc: Formulas.removeConsecutiveValues(decimatedArrays[4], 1000000),\r\n vcapSin: Formulas.removeConsecutiveValues(decimatedArrays[5], 1000000),\r\n\r\n // LSB Error\r\n lsbErrorMuxed,\r\n lsbErrorDc,\r\n lsbErrorSin,\r\n\r\n // PPM Error\r\n ppmErrorDc,\r\n ppmErrorMuxed,\r\n ppmErrorSin,\r\n\r\n time: decimatedArrays[9],\r\n\r\n settlingCycle1End: cycle1End,\r\n settlingCycle3Start: cycle3Start,\r\n timeAtKickback: timeAtKickback,\r\n\r\n voltsKickbackMuxed: vcapStepMuxed,\r\n voltsKickbackDc: vcapStepDc,\r\n voltsKickbackSin: vcapStepSin,\r\n\r\n lsbMaxMuxed,\r\n lsbMaxDc,\r\n lsbMaxSin,\r\n\r\n ppmMaxMuxed,\r\n ppmMaxDc,\r\n ppmMaxSin,\r\n\r\n voltsMaxMuxed,\r\n voltsMaxDc,\r\n voltsMaxSin,\r\n\r\n lsbRingDc,\r\n lsbRingSin,\r\n\r\n cycleMuxedLine,\r\n cycleDcLine,\r\n cycleSinLine,\r\n\r\n cycleMuxedLsbLine,\r\n cycleDcLsbLine,\r\n cycleSinLsbLine,\r\n\r\n cycleMuxedPpmLine,\r\n cycleDcPpmLine,\r\n cycleSinPpmLine,\r\n\r\n conversionTime: tConvMax,\r\n acquisitionTime: period - tConvMax,\r\n\r\n // minKickbackDominatesMuxed,\r\n // minKickbackDominatesDc,\r\n minKickbackDominatesSin,\r\n inputFrequencyWhereSlewDominatesKickback,\r\n slewDominatesKickback,\r\n\r\n requiredBwMuxed,\r\n requiredBwDc,\r\n requiredBwSin,\r\n };\r\n return result;\r\n }\r\n\r\n // #endregion Decimation and setting\r\n\r\n validateRules(rules, data) {\r\n let intl = this.intl;\r\n\r\n for (var i = 0; i < rules.length; i++) {\r\n let result = rules[i](data);\r\n\r\n if (result.inValid) {\r\n let bodyArgs = 'bodyArgs' in result && result.bodyArgs ? result.bodyArgs : {};\r\n\r\n return intl.t(result.translation, bodyArgs);\r\n }\r\n }\r\n }\r\n}\r\n","import * as AD7134noiseModel from './noiseModels/AD7134noiseModel.js';\r\n\r\nexport function adcNoiseModel(config) {\r\n //let part = config.partName;\r\n let filt = config.userConfig.filterProfile;\r\n let ODR = config.userConfig.outputDataRate;\r\n let avg = config.userConfig.averaging;\r\n let pwr = config.userConfig.powerMode;\r\n\r\n let returnedNoise = AD7134noiseModel.AD7134NoiseModel(filt, ODR, avg, pwr);\r\n\r\n return returnedNoise;\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { alias } from '@ember/object/computed';\r\nimport Consts from '../utils/constants';\r\n\r\nexport default class DriverService extends Service {\r\n @service('data') model;\r\n @service selectionData;\r\n\r\n // First RF validation = extra special (specifically, ignore parts of it?)\r\n _firstRfValidation = true;\r\n\r\n @alias('model.rfDisabled') rfDisabled;\r\n @alias('model.rfRemoved') rfRemoved;\r\n\r\n resetGain(updatable = true) {\r\n let fixedGain = this.selectionData.selectedDriver.fixedGain;\r\n if (fixedGain) {\r\n if (updatable) this.set('model.gain', fixedGain);\r\n this.set('gainDisabled', true);\r\n }\r\n // If follower, set gain to 1 and disable.\r\n else if (this.selectionData.selectedTopology.id === Consts.TOPOLOGY.FOLLOWER) {\r\n if (updatable) this.set('model.gain', 1);\r\n this.set('gainDisabled', true);\r\n } else {\r\n this.set('gainDisabled', false);\r\n }\r\n\r\n this.set('_firstRfValidation', false);\r\n }\r\n\r\n resetRf(updatable = true) {\r\n let selectedAdcType = this.selectionData.selectedAdc.type; // 1st column\r\n let selectedSourceType = this.selectionData.selectedSourceType.id; // 2nd column - \"source\" == \"input\" in documentation vs tool UI\r\n let essentiallyFollower = this.selectionData.essentiallyFollower;\r\n\r\n // If follower topology\r\n // and if \"from selected adc data\" = \"Single-Ended\"\r\n // also Grey out Rf field, and set Rf to 0\r\n // (also selectedSourceType needs to be the same as selectedAdc.type)\r\n let fixedGain = this.selectionData.selectedDriver.fixedGain;\r\n\r\n if (fixedGain) {\r\n if (updatable) this.set('model.rf', this.selectionData.selectedDriver.rfDefault);\r\n this.set('rfDisabled', true);\r\n this.set('rfRemoved', false);\r\n } else if (\r\n essentiallyFollower &&\r\n ((selectedAdcType == Consts.ADC_TYPE.SE && selectedSourceType == Consts.SOURCE_TYPE.SE) ||\r\n (selectedAdcType == Consts.ADC_TYPE.DIFF && selectedSourceType == Consts.SOURCE_TYPE.DIFF))\r\n ) {\r\n if (updatable) this.set('model.rf', 0);\r\n this.set('rfDisabled', true);\r\n\r\n // remove rf from noise contributor and circuit-panel\r\n this.set('rfRemoved', true);\r\n } else {\r\n this.enableRf(updatable);\r\n }\r\n this.set('_firstRfValidation', false);\r\n }\r\n\r\n defaultRf(updatable = true) {\r\n let rf = this.selectionData.selectedDriver.rfDefault;\r\n if (updatable) this.set('model.rf', rf);\r\n }\r\n\r\n enableRf(updatable = true) {\r\n this.set('rfDisabled', false);\r\n this.set('rfRemoved', false);\r\n // Don't change rf value based on URL unless it is a non-first (subsequent?) load.\r\n if (this._firstRfValidation) return;\r\n if (updatable) this.set('model.rf', this.selectionData.selectedDriver.rfDefault);\r\n }\r\n\r\n setTopologyStatus(updatable = true) {\r\n let enabled = this.selectionData.selectedDriver.type !== Consts.DRIVER_TYPE.DIFF_AMP,\r\n options = this.selectionData.topologyOptions,\r\n nonInvertingId = Consts.TOPOLOGY.NON_INVERTING,\r\n followerId = Consts.TOPOLOGY.FOLLOWER;\r\n\r\n // The options should be modified by reference\r\n options[followerId - 1].isDisabled = !enabled;\r\n options[nonInvertingId - 1].isDisabled = !enabled;\r\n\r\n if (\r\n !enabled &&\r\n updatable &&\r\n (this.selectionData.selectedTopology.id === nonInvertingId ||\r\n this.selectionData.selectedTopology.id === followerId)\r\n ) {\r\n this.set(\r\n 'selectionData.selectedTopology',\r\n this.selectionData.findOneOptionById('topology', Consts.TOPOLOGY.INVERTING),\r\n );\r\n }\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Consts from '../utils/constants';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\n\r\n/**\r\n * What is being done in this file:\r\n *\r\n * 1. VSupplyPos (+Vs) and VSupplyNeg (-Vs) are being calculated in calculateVSupply.\r\n *\r\n * 2. Validation of VSupplyPos and VSupplyNeg. These two values are validated whenever they are changed.\r\n * If any validation fails, an error message is set.\r\n *\r\n * 3. Rounding of VSupplyPos and VSupplyNeg. These two values are rounded.\r\n * If the rounding causes an error in validation, the unrounded values will be used.\r\n *\r\n */\r\n\r\nexport default class DriverSupplyService extends Service {\r\n @service('data') model;\r\n @service selectionData;\r\n @service hashService;\r\n\r\n @computed(\r\n 'model.{vSupplyPos,vSupplyNeg,roVoltageDrop,vcm,vp,gain,noiseConfig}',\r\n 'selectionData.{selectedDriver.id,selectedTopology.id}',\r\n )\r\n get vSupplyError() {\r\n let driver = this.selectionData.selectedDriver;\r\n\r\n let data = {\r\n vSupplyPos: this.model.vSupplyPos,\r\n vSupplyNeg: this.model.vSupplyNeg,\r\n vSpanMin: driver.VsMin,\r\n vSpanMax: driver.VsMax,\r\n voutHeadroomPos: driver.VoutHdrmPos,\r\n vinHeadroomPos: driver.VinHdrmPos,\r\n voutHeadroomNeg: driver.VoutHdrmNeg,\r\n vinHeadroomNeg: driver.VinHdrmNeg,\r\n posValues: this._calculateInitialVValuesByType('Pos'),\r\n negValues: this._calculateInitialVValuesByType('Neg'),\r\n roVoltageDrop: this.model.roVoltageDrop,\r\n };\r\n\r\n /**\r\n * These are the validations:\r\n * BodyArgs: these are arguments that can be used in the translation\r\n * Invalid: this is the validation calculation. If this results in false, the validation has failed\r\n * Translation: this is the error message that will be output if the validation fails\r\n */\r\n let rules = [\r\n function (data) {\r\n return {\r\n inValid: data.vSupplyPos - data.vSupplyNeg < data.vSpanMin,\r\n translation: 'messages.headroom.supplies_too_low',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n inValid: data.vSupplyPos - data.vSupplyNeg > data.vSpanMax,\r\n translation: 'messages.headroom.supplies_too_high',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n bodyArgs: { voutMax: PrettyNum.eng3(data.posValues.vout) },\r\n inValid: data.posValues.vout + data.voutHeadroomPos + data.roVoltageDrop - data.vSupplyPos > 0,\r\n translation: 'messages.headroom.pos_increase_output',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n bodyArgs: { vinMax: PrettyNum.eng3(data.posValues.vn) },\r\n inValid: data.posValues.vn + data.vinHeadroomPos - data.vSupplyPos > 0,\r\n translation: 'messages.headroom.pos_increase_input',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n bodyArgs: { voutMin: PrettyNum.eng3(data.negValues.vout) },\r\n inValid: data.vSupplyNeg - (data.negValues.vout - data.voutHeadroomNeg - data.roVoltageDrop) > 0,\r\n translation: 'messages.headroom.neg_decrease_output',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n bodyArgs: { vinMin: PrettyNum.eng3(data.negValues.vn) },\r\n inValid: data.vSupplyNeg - (data.negValues.vn - data.vinHeadroomNeg) > 0,\r\n translation: 'messages.headroom.neg_decrease_input',\r\n };\r\n },\r\n ];\r\n\r\n /**\r\n * Here we are taking in the list of rules, the validation data, and the error property to be set\r\n * This function will process the rules against the provided data and will set the error message if\r\n * any rule(s) fail.\r\n */\r\n return this.model.validateRules(rules, data);\r\n }\r\n\r\n unRoundedVSupplyPos = null;\r\n unRoundedVSupplyNeg = null;\r\n minVSupply = -100;\r\n maxVSupply = 100;\r\n\r\n // this just convoludes the code - to the EE who has to troubleshoot and support - remove this.\r\n vSupplyFunctions = {\r\n Pos: (x, y) => {\r\n return x + y;\r\n },\r\n Neg: (x, y) => {\r\n return x - y;\r\n },\r\n };\r\n\r\n roundVSupply() {\r\n let vSupplyPos = this.model.vSupplyPos;\r\n let vSupplyNeg = this.model.vSupplyNeg;\r\n if (vSupplyPos && vSupplyNeg && !this.vSupplyError) {\r\n // Round the results and revalidate (if the rounded results are different)\r\n let roundedVSupplyPos = vSupplyPos.toScale(1, 'ceil'),\r\n roundedVSupplyNeg = vSupplyNeg.toScale(1, 'floor');\r\n if (roundedVSupplyPos !== vSupplyPos || roundedVSupplyNeg !== vSupplyNeg) {\r\n this.set('unRoundedVSupplyPos', vSupplyPos);\r\n this.set('unRoundedVSupplyNeg', vSupplyNeg);\r\n this.set('model.vSupplyPos', roundedVSupplyPos);\r\n this.set('model.vSupplyNeg', roundedVSupplyNeg);\r\n }\r\n }\r\n }\r\n\r\n resetRoundingProperties() {\r\n if (this.unRoundedVSupplyPos && this.unRoundedVSupplyNeg && this.vSupplyError) {\r\n // Rounding resulted in an error, return to unrounded\r\n this.set('model.vSupplyPos', this.unRoundedVSupplyPos);\r\n this.set('model.vSupplyNeg', this.unRoundedVSupplyNeg);\r\n }\r\n\r\n this.set('unRoundedVSupplyPos', null);\r\n this.set('unRoundedVSupplyNeg', null);\r\n }\r\n\r\n makeRoundingModifications() {\r\n this.roundVSupply();\r\n this.resetRoundingProperties();\r\n }\r\n\r\n calculateVSupply() {\r\n // start with requirements based on Vref value - what's required to drive fill scale of ADC\r\n let posInitValues = this._calculateInitialVValuesByType('Pos'),\r\n negInitValues = this._calculateInitialVValuesByType('Neg');\r\n\r\n // add margin required for input and output headroom, including ro drop and .5V on output for LTspice Universal model\r\n console.group('%cSupply adjustment for Headroom', 'color:purple');\r\n let driver = this.selectionData.selectedDriver,\r\n VinHdrmPos = driver.VinHdrmPos,\r\n VinHdrmNeg = driver.VinHdrmNeg,\r\n VoutHdrmPos = driver.VoutHdrmPos,\r\n VoutHdrmNeg = driver.VoutHdrmNeg;\r\n\r\n let roVoltageDrop = this.model.roVoltageDrop;\r\n\r\n let SupplyPosVin = posInitValues.vn + VinHdrmPos,\r\n SupplyPosVout = posInitValues.vout + VoutHdrmPos + roVoltageDrop + 0.3,\r\n SupplyNegVin = negInitValues.vn - VinHdrmNeg,\r\n SupplyNegVout = negInitValues.vout - (VoutHdrmNeg + roVoltageDrop + 0.3);\r\n\r\n let tempVSupplyPos = Math.max(SupplyPosVin, SupplyPosVout);\r\n let tempVSupplyNeg = Math.min(SupplyNegVin, SupplyNegVout);\r\n\r\n console.log(\r\n '%cVin Headroom: Pos = ' +\r\n this.selectionData.selectedDriver.VinHdrmPos +\r\n ', Neg = ' +\r\n this.selectionData.selectedDriver.VinHdrmNeg,\r\n 'color:purple',\r\n );\r\n console.log(\r\n '%cVout Headroom: Pos = ' +\r\n this.selectionData.selectedDriver.VoutHdrmPos +\r\n ', Neg = ' +\r\n this.selectionData.selectedDriver.VoutHdrmNeg,\r\n 'color:purple',\r\n );\r\n console.log('%cand additional .5V on output', 'color:purple');\r\n\r\n // add margin required for output load, assuming output load is connected to Vcm\r\n console.log(\r\n '%cSupplies adjusted for load: Vs+ =' + tempVSupplyPos + ', Vs- = ' + tempVSupplyNeg,\r\n 'color:purple',\r\n );\r\n\r\n // adjust if initial supplies don't meet minimum Vspan requirement\r\n let vSpanMin = this.selectionData.selectedDriver.VsMin,\r\n vSpanAuto = tempVSupplyPos - tempVSupplyNeg,\r\n vSupplyPadding = vSpanMin - vSpanAuto;\r\n\r\n if (vSupplyPadding > 0) {\r\n tempVSupplyPos = tempVSupplyPos + vSupplyPadding / 2;\r\n tempVSupplyNeg = tempVSupplyNeg - vSupplyPadding / 2;\r\n console.log('%cAdjustment required to meet minimum vspan of ' + vSpanMin, 'color:purple');\r\n }\r\n\r\n this.set('model.vSupplyPos', tempVSupplyPos);\r\n this.set('model.vSupplyNeg', tempVSupplyNeg);\r\n this.makeRoundingModifications();\r\n\r\n console.log(\r\n '%cInital Supply settings: Vs+ =' + this.model.vSupplyPos + ', Vs- = ' + this.model.vSupplyNeg,\r\n 'color:purple',\r\n );\r\n console.groupEnd();\r\n }\r\n\r\n _calculateInitialVValuesByType(type) {\r\n let noiseConfig = this.model.noiseConfig,\r\n calc = this.vSupplyFunctions[type],\r\n gain = this.model.gain,\r\n vcm = this.model.vcm,\r\n vp = this.model.vp,\r\n vout = {\r\n min: vcm - vp,\r\n max: vcm + vp,\r\n },\r\n mathFunc = type === 'Neg' ? 'min' : 'max',\r\n vSourcePp =\r\n noiseConfig === Consts.CONFIGURATION.DiffADC_DiffAmp_SESource ? (vp * 4) / gain : (vp * 2) / gain,\r\n vSourceP = vSourcePp / 2,\r\n vnOutput = vcm; // default\r\n\r\n if (noiseConfig === Consts.CONFIGURATION.DiffADC_DiffAmp_SESource) {\r\n vnOutput = vout[mathFunc];\r\n vnOutput = vnOutput * (1 / (gain + 1));\r\n } else if (noiseConfig === Consts.CONFIGURATION.DiffADC_DiffAmp_DiffSource) {\r\n vnOutput = vnOutput * (1 / (gain + 1));\r\n } else if (\r\n this.selectionData.selectedDriver.type === Consts.DRIVER_TYPE.AMP &&\r\n (this.selectionData.selectedTopology.id === Consts.TOPOLOGY.NON_INVERTING ||\r\n this.selectionData.selectedTopology.id === Consts.TOPOLOGY.FOLLOWER)\r\n ) {\r\n vnOutput = calc(vnOutput, vSourceP);\r\n }\r\n\r\n return {\r\n vn: vnOutput,\r\n vout: vout[mathFunc],\r\n };\r\n }\r\n\r\n /*\r\n _calculateVSupplyByType(initValues, type) {\r\n let mathFunc = this._getMathFuncFromVType(type),\r\n calc = this.vSupplyFunctions[type],\r\n vSupplyIn = calc(initValues.vn, this.get(`selectionData.selectedDriver.VinHdrm${type}`)),\r\n vSupplyOut = calc(initValues.vout, this.get(`selectionData.selectedDriver.VoutHdrm${type}`));\r\n \r\n return Math[mathFunc](vSupplyIn, vSupplyOut);\r\n },\r\n */\r\n\r\n // this just makes the code difficult to read, for the EE - remove\r\n // _getMathFuncFromVType(type) {\r\n // return type === 'Neg' ? 'min' : 'max';\r\n // },\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport { alias } from '@ember/object/computed';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport Consts from '../utils/constants';\r\nimport { htmlSafe } from '@ember/template';\r\nimport Utils from '../utils/utils';\r\n\r\nexport default class ErrorHandlingService extends Service {\r\n @service('data') model;\r\n @service selectionData;\r\n @service intl;\r\n @service tabService;\r\n @service circuitConfigurations;\r\n @service driverSupplyService;\r\n @service sigmaDeltaData;\r\n @service plotDataService;\r\n\r\n //#region adc input errors\r\n\r\n @computed(\r\n 'model.{samplingRate,minSamplingRate}',\r\n 'selectionData.selectedAdc.{maxSampleRate,disableSampleRateValidation}',\r\n )\r\n get samplingRateError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n\r\n if (!selectedAdc.disableSampleRateValidation && model.samplingRate > selectedAdc.maxSampleRate) {\r\n return intl.t('messages.max', {\r\n field: intl.t('input_labels.sampling_rate'),\r\n value: PrettyNum.eng3(selectedAdc.maxSampleRate),\r\n });\r\n } else if (!selectedAdc.disableSampleRateValidation && model.samplingRate < model.minSamplingRate) {\r\n return intl.t('messages.min_adc_sampling_rate', { minRate: PrettyNum.eng3(model.minSamplingRate) });\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('model.vref', 'selectionData.selectedAdc.{vrefMax,vrefMin}') get vrefError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n\r\n if (Utils.isNumeric(selectedAdc.vrefMax) && model.vref > selectedAdc.vrefMax) {\r\n return intl.t('messages.max', { field: intl.t('input_labels.vref'), value: selectedAdc.vrefMax });\r\n } else if (Utils.isNumeric(selectedAdc.vrefMin) && model.vref < selectedAdc.vrefMin) {\r\n return intl.t('messages.min', { field: intl.t('input_labels.vref'), value: selectedAdc.vrefMin });\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('samplingRateError', 'vrefError') get adcInputsError() {\r\n return this.vrefError || this.samplingRateError ? true : false;\r\n }\r\n\r\n //#endregion adc input errors\r\n\r\n //#region driver input errors\r\n\r\n @computed('selectionData.{selectedDriver,selectedTopology.id}', 'model.{vref,rext,cext,frequency,rf,gain,rg}')\r\n get driverOutputError() {\r\n let vref = this.model.vref,\r\n rext = this.model.rext,\r\n cext = this.model.cext,\r\n frequency = this.model.frequency,\r\n selectedTopology = this.selectionData.selectedTopology.id,\r\n rf = this.model.rf,\r\n gain = this.model.gain,\r\n rg = this.model.rg,\r\n data = {\r\n iOutLimit: this.selectionData.selectedDriver.IoutLimit,\r\n iOutRc: vref / 2 / (rext + 1 / (2 * Math.PI * frequency * cext)),\r\n iOutFeedback:\r\n selectedTopology === Consts.TOPOLOGY.INVERTING\r\n ? vref / (2 * rf)\r\n : selectedTopology === Consts.TOPOLOGY.NON_INVERTING && gain != 1\r\n ? vref / (2 * (rf + rg))\r\n : 0,\r\n };\r\n\r\n let rules = [\r\n function (data) {\r\n return {\r\n bodyArgs: { value: PrettyNum.eng3(data.iOutRc) },\r\n inValid: data.iOutRc > data.iOutLimit,\r\n translation: 'messages.driver_output.filt_check_error',\r\n };\r\n },\r\n function (data) {\r\n return {\r\n bodyArgs: { value: PrettyNum.eng3(data.iOutFeedback) },\r\n inValid: data.iOutFeedback > data.iOutLimit,\r\n translation: 'messages.driver_output.rf_check_error',\r\n };\r\n },\r\n ];\r\n\r\n return this.model.validateRules(rules, data);\r\n }\r\n\r\n @computed('model.{vout,vref}') get voutError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n\r\n if (model.vout > model.vref) {\r\n return intl.t('messages.max', { field: intl.t('input_labels.vout'), value: PrettyNum.eng3(model.vref) });\r\n } else if (model.vout < model.minVout) {\r\n return intl.t('messages.min', {\r\n field: intl.t('input_labels.vout'),\r\n value: PrettyNum.eng3(this.model.minVout),\r\n });\r\n } else return '';\r\n }\r\n\r\n @computed('model.gain') get gainError() {\r\n let gain = this.model.gain,\r\n intl = this.intl;\r\n\r\n if (this.baseGainError) {\r\n return this.baseGainError;\r\n } else if (gain > this.model.maxWarningGain) {\r\n return intl.t('messages.gain_max');\r\n } else {\r\n return this.baseGainError;\r\n }\r\n }\r\n\r\n @computed('model.gain') get gainPanelError() {\r\n return this.baseGainError;\r\n }\r\n\r\n @computed('model.gain') get baseGainError() {\r\n let gain = this.model.gain,\r\n intl = this.intl;\r\n\r\n if (gain > this.model.maxGain) {\r\n return intl.t('messages.max', {\r\n field: intl.t('input_labels.gain'),\r\n value: this.model.maxGain,\r\n });\r\n } else if (gain < this.model.minGain) {\r\n return intl.t('messages.min', {\r\n field: intl.t('input_labels.gain'),\r\n value: this.model.minGain,\r\n });\r\n } else return '';\r\n }\r\n\r\n @computed(\r\n 'selectionData.{selectedDriver,selectedTopology.id,selectedSourceType,selectedAdc.type}',\r\n 'model.{rf,rfDisabled,rg}',\r\n )\r\n get rfError() {\r\n let intl = this.intl,\r\n rf = this.model.rf,\r\n rg = this.model.rg,\r\n rfRgRatio = rf / rg,\r\n rfLowerLimit = this.selectionData.selectedDriver.rfLowerLimit,\r\n selectedTopology = this.selectionData.selectedTopology.id,\r\n driverType = this.selectionData.selectedDriver.type,\r\n unityGain = this.selectionData.selectedDriver.unityGain,\r\n sourceType = this.selectionData.selectedSourceType.id,\r\n adcType = this.selectionData.selectedAdc.type,\r\n cin = this.selectionData.selectedDriver.Cin,\r\n cdiff = this.selectionData.selectedDriver.Cdiff,\r\n rfDisabled = this.model.rfDisabled,\r\n // max RF to ensure Fpole-Cin is at least Fcr * 4\r\n maxRfStageOne =\r\n (Math.pow(rfRgRatio, 2) + 2 * rfRgRatio + 1) / (2 * Math.PI * 4 * unityGain * (cin + cdiff)),\r\n maxRfStageTwo = (Math.pow(1, 2) + 2 * 1 + 1) / (2 * Math.PI * 4 * unityGain * (cin + cdiff)),\r\n maxRf = 0,\r\n secondStageExists = false,\r\n errorMessage = '';\r\n\r\n if (\r\n !(\r\n driverType === Consts.DRIVER_TYPE.DIFF_AMP ||\r\n adcType === Consts.ADC_TYPE.SE ||\r\n sourceType === Consts.SOURCE_TYPE.DIFF\r\n )\r\n ) {\r\n secondStageExists = true;\r\n }\r\n\r\n //If rf = 0, then there is only a first stage, and it is a follower\r\n if (rf === 0 && !secondStageExists) {\r\n maxRf = maxRfStageOne;\r\n errorMessage = intl.t('messages.rf_max', {\r\n gain: this.model.gain,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n } else if (driverType === Consts.DRIVER_TYPE.DIFF_AMP && !secondStageExists) {\r\n maxRf = maxRfStageOne;\r\n errorMessage = intl.t('messages.rf_max', {\r\n gain: this.model.gain,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n //if rf !=0 and rg = inf, then first stage is follower, but there is a second stage\r\n } else if (rg === Infinity && secondStageExists) {\r\n maxRf = maxRfStageTwo;\r\n errorMessage = intl.t('messages.rf_secondstage_max', {\r\n gain: 2,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n } else if (!secondStageExists) {\r\n maxRf = maxRfStageOne;\r\n errorMessage = intl.t('messages.rf_max', {\r\n gain: this.model.gain,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n } else {\r\n maxRf = Math.min(maxRfStageOne, maxRfStageTwo);\r\n if (maxRf == maxRfStageOne) {\r\n errorMessage = intl.t('messages.rf_max', {\r\n gain: this.model.gain,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n } else {\r\n errorMessage = intl.t('messages.rf_secondstage_max', {\r\n gain: 2,\r\n rfMax: PrettyNum.eng(maxRf, 2),\r\n });\r\n }\r\n }\r\n\r\n // set to 2 significant digits, and convert back to numbers\r\n maxRf = PrettyNum.userEntryToNumber(PrettyNum.eng(maxRf, 2));\r\n\r\n console.log('Rf check: Rf = ' + rf + ', Rg = ' + rg);\r\n console.log('Rf check: MaxRfStageOne = ' + maxRfStageOne + ', MaxRfStageTwo = ' + maxRfStageTwo);\r\n console.log('Rf check: maxRf = ' + maxRf + ', rfRgRatio = ' + rfRgRatio);\r\n\r\n if (rf > maxRf) {\r\n return errorMessage;\r\n }\r\n // Only show lower limit warning when RF is not disabled.\r\n else if (rf < rfLowerLimit && !rfDisabled) {\r\n // Can't we just use intl and the pretty-num helper on these errors?\r\n return intl.t('messages.rf_min', {\r\n minimum: PrettyNum.eng3(rfLowerLimit),\r\n driver: this.selectionData.selectedDriver.partCore,\r\n });\r\n } else if (rf === 0 && selectedTopology === Consts.TOPOLOGY.INVERTING) {\r\n return intl.t('messages.rf');\r\n } else return '';\r\n }\r\n\r\n @computed('vSupplyError', 'driverOutputError') get driverError() {\r\n return this.vSupplyError || this.driverOutputError;\r\n }\r\n\r\n @computed('voutError', 'rfError', 'gainPanelError') get driverInputsError() {\r\n return this.voutError || this.rfError || this.gainPanelError ? true : false;\r\n }\r\n\r\n //#endregion driver input errors\r\n\r\n //#region filter input errors\r\n\r\n // @computed('model.{rext,filterEnabled}', 'selectionData.{selectedDriver,selectedAdc}')\r\n // get rextError() {\r\n // let model = this.model;\r\n // let intl = this.intl;\r\n // let selectedDriver = this.selectionData.selectedDriver;\r\n // let selectedAdc = this.selectionData.selectedAdc;\r\n // // Use default minRext value if part doesn't have an rfiltMin\r\n // let driverMinRext = selectedDriver.rfiltMin !== undefined ? selectedDriver.rfiltMin : model.minRext;\r\n // let adcMinRext = selectedAdc.rfiltMin !== undefined ? selectedAdc.rfiltMin : model.minRext;\r\n // let minRext = Math.max(driverMinRext, adcMinRext);\r\n // let maxRext = model.maxRext;\r\n\r\n // // Check if the selected ADC is AD4080 and has rfiltMin and rfiltMax\r\n // if (selectedAdc.partCore === 'AD4080' && selectedAdc.rfiltMin !== undefined && selectedAdc.rfiltMax !== undefined) {\r\n // minRext = selectedAdc.rfiltMin;\r\n // maxRext = selectedAdc.rfiltMax;\r\n\r\n // if (model.rext < minRext || model.rext > maxRext) {\r\n // return intl.t('messages.ad4080_rext_error', {\r\n // adc: selectedAdc.partCore,\r\n // rfiltMin: PrettyNum.eng3(minRext),\r\n // rfiltMax: PrettyNum.eng3(maxRext)\r\n // });\r\n // }\r\n // }\r\n\r\n // if (model.filterEnabled && model.rext > maxRext) {\r\n // return intl.t('messages.max', { field: intl.t('input_labels.rext'), value: PrettyNum.eng3(maxRext) });\r\n // } else if (model.filterEnabled && model.rext < minRext) {\r\n // if (minRext === driverMinRext) {\r\n // return intl.t('messages.rext_filter_min', {\r\n // driver: selectedDriver.partCore,\r\n // rextMin: PrettyNum.eng3(driverMinRext),\r\n // });\r\n // } else if (minRext === adcMinRext) {\r\n // return intl.t('messages.rext_filter_min_adc', {\r\n // adc: selectedAdc.partCore,\r\n // rextMin: PrettyNum.eng3(adcMinRext),\r\n // });\r\n // }\r\n // } else return '';\r\n // }\r\n\r\n // @computed('model.{rext,filterEnabled}', 'selectionData.{selectedDriver,selectedAdc}')\r\n // get rextError() {\r\n // let model = this.model;\r\n // let intl = this.intl;\r\n // let selectedDriver = this.selectionData.selectedDriver;\r\n // // Use default minRext value if part doesn't have an rfiltMin\r\n // let minRext = typeof selectedDriver.rfiltMin == 'undefined' ? model.minRext : selectedDriver.rfiltMin;\r\n\r\n // if (model.filterEnabled && model.rext > model.maxRext) {\r\n // return intl.t('messages.max', { field: intl.t('input_labels.rext'), value: PrettyNum.eng3(model.maxRext) });\r\n // } else if (model.filterEnabled && model.rext < minRext) {\r\n // return intl.t('messages.rext_filter_min', {\r\n // driver: selectedDriver.partCore,\r\n // rextMin: selectedDriver.rfiltMin,\r\n // });\r\n // } else return '';\r\n // }\r\n @computed('model.{rext,filterEnabled}', 'selectionData.{selectedDriver,selectedAdc}')\r\n get rextError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n let selectedDriver = this.selectionData.selectedDriver;\r\n // Use default minRext value if part doesn't have an rfiltMin\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n let minRext = typeof selectedDriver.rfiltMin == 'undefined' ? model.minRext : selectedDriver.rfiltMin;\r\n let maxRext = model.maxRext;\r\n\r\n // Check if the selected ADC is AD4080 and has rfiltMin and rfiltMax\r\n if (\r\n model.filterEnabled &&\r\n selectedAdc.partCore === 'AD4080' &&\r\n selectedAdc.rfiltMin !== undefined &&\r\n selectedAdc.rfiltMax !== undefined\r\n ) {\r\n minRext = selectedAdc.rfiltMin;\r\n maxRext = selectedAdc.rfiltMax;\r\n\r\n if (model.rext < minRext || model.rext > maxRext) {\r\n return intl.t('messages.ad4080_rext_error', {\r\n adc: selectedAdc.partCore,\r\n rfiltMin: PrettyNum.eng3(minRext),\r\n rfiltMax: PrettyNum.eng3(maxRext),\r\n });\r\n }\r\n }\r\n\r\n if (model.filterEnabled && model.rext > model.maxRext) {\r\n return intl.t('messages.max', { field: intl.t('input_labels.rext'), value: PrettyNum.eng3(model.maxRext) });\r\n } else if (model.filterEnabled && model.rext < minRext) {\r\n return intl.t('messages.rext_filter_min', {\r\n driver: selectedDriver.partCore,\r\n rextMin: selectedDriver.rfiltMin,\r\n });\r\n } else return '';\r\n }\r\n\r\n @computed('model.{cext,filterEnabled}', 'selectionData.{selectedDriver,selectedAdc}')\r\n get cextError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n\r\n if (model.filterEnabled && model.cext < model.minCext) {\r\n return intl.t('messages.min', { field: intl.t('input_labels.cext'), value: PrettyNum.eng3(model.minCext) });\r\n } else if (model.filterEnabled && model.cext > model.maxCext) {\r\n return intl.t('messages.max', { field: intl.t('input_labels.cext'), value: PrettyNum.eng3(model.maxCext) });\r\n } else return '';\r\n }\r\n\r\n @computed('cextError', 'rextError') get filterInputsError() {\r\n return this.cextError || this.rextError ? true : false;\r\n }\r\n\r\n //#endregion filter input errors\r\n\r\n //#region signal input errors\r\n\r\n @computed('model.{frequency,samplingRate,inputSlewRate}', 'selectionData.selectedDriver')\r\n get frequencyError() {\r\n let model = this.model;\r\n let inputSlewRate = this.model.inputSlewRate;\r\n let driverSlewRate = this.selectionData.selectedDriver.slewRate;\r\n let maxValidSamplingRate = 0.5 * model.samplingRate;\r\n let intl = this.intl;\r\n\r\n if (model.frequency < model.minFrequency) {\r\n return intl.t('messages.min', {\r\n field: intl.t('input_labels.frequency'),\r\n value: PrettyNum.eng3(model.minFrequency),\r\n });\r\n } else if (model.frequency > maxValidSamplingRate) {\r\n return intl.t('messages.max_input_frequency', {\r\n sample: PrettyNum.eng3(model.samplingRate),\r\n max: PrettyNum.eng3(maxValidSamplingRate),\r\n });\r\n } else if (inputSlewRate > driverSlewRate) {\r\n return intl.t('messages.input_frequency_slew', {\r\n driverSR: PrettyNum.eng3(driverSlewRate / 1e6),\r\n inputSR: PrettyNum.eng3(inputSlewRate / 1e6),\r\n driver: this.selectionData.selectedDriver.partCore,\r\n });\r\n } else return '';\r\n }\r\n\r\n @computed('model.{vcm,vcmLabelText}', 'model.vcmRange.{min,max}') get vcmError() {\r\n if (\r\n this.model.vcmRange &&\r\n (this.model.vcm < this.model.vcmRange.min || this.model.vcm > this.model.vcmRange.max)\r\n ) {\r\n return this.intl.t('messages.vcm_range', {\r\n min: this.model.vcmRange.min,\r\n max: this.model.vcmRange.max,\r\n label: this.model.vcmLabelText,\r\n });\r\n } else return '';\r\n }\r\n\r\n @computed('circuitConfigurations.currentCircuitConfig.inputSourceTypeError')\r\n get sourceTypeError() {\r\n if (this.circuitConfigurations.currentCircuitConfig.inputSourceTypeError) {\r\n return this.intl.t('messages.input_source_type');\r\n } else return '';\r\n }\r\n\r\n @computed('frequencyError', 'sourceTypeError') get inputInputsError() {\r\n return this.frequencyError || this.sourceTypeError ? true : false;\r\n }\r\n\r\n //#endregion signal input errors\r\n\r\n //#region noise panel errors\r\n\r\n @computed('model.wbNoise') get wbNoiseError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n\r\n if (model.wbNoise > model.maxWbNoise) {\r\n return intl.t('messages.max', {\r\n field: intl.t('input_labels.wb_noise'),\r\n value: PrettyNum.eng3(model.maxWbNoise),\r\n });\r\n } else if (model.wbNoise < model.minWbNoise) {\r\n return intl.t('messages.min', {\r\n field: intl.t('input_labels.wb_noise'),\r\n value: PrettyNum.eng3(model.minWbNoise),\r\n });\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('model.thd') get thdError() {\r\n let model = this.model;\r\n let intl = this.intl;\r\n\r\n if (model.thd > model.maxThd) {\r\n return intl.t('messages.max', { field: intl.t('input_labels.thd'), value: model.maxThd });\r\n } else if (model.thd < model.minThd) {\r\n return intl.t('messages.min', { field: intl.t('input_labels.thd'), value: model.minThd });\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('model.{noiseCalculations,filterBandwidth}') get systemNoiseWarn() {\r\n let noiseCalculations = this.model.noiseCalculations,\r\n driverTotalNoise = noiseCalculations.driver.totalVrms,\r\n adcTotalNoise = noiseCalculations.adc.totalVrms,\r\n isWarn = driverTotalNoise > adcTotalNoise,\r\n intl = this.intl;\r\n\r\n if (isWarn) {\r\n return htmlSafe(\r\n intl.t('messages.system_driver_contrib', {\r\n rcBandwidth: `${PrettyNum.eng3(this.model.filterBandwidth, { separatedUnit: true })}${intl.t(\r\n 'units.hz',\r\n )}`,\r\n }),\r\n );\r\n }\r\n\r\n return '';\r\n }\r\n\r\n @computed('model.{adcThdEstimate,adcThdDatasheet}') get thdFreqWarn() {\r\n let intl = this.intl,\r\n adcThdPerfomanceDiff = this.model.adcThdEstimate - this.model.adcThdDatasheet,\r\n isWarn = adcThdPerfomanceDiff > 3;\r\n\r\n if (isWarn) {\r\n return intl.t('messages.thd_rfilt', {\r\n adc: this.selectionData.selectedAdc.partCore,\r\n freq: `${PrettyNum.eng3(this.model.frequency, { separatedUnit: true })}${intl.t('units.hz')}`,\r\n diff: `${Math.round(adcThdPerfomanceDiff)} ${intl.t('units.db')}`,\r\n });\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('plotDataService.noiseArrays.{thdAmpAtF,thdAdcAtF}') get thdDriverWarn() {\r\n let isWarn = this.plotDataService.noiseArrays.thdAmpAtF > this.plotDataService.noiseArrays.thdAdcAtF;\r\n\r\n if (isWarn) {\r\n return this.intl.t('messages.thd_driver');\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n @computed('thdFreqWarn', 'thdDriverWarn') get isThdOutputWarn() {\r\n return this.thdFreqWarn || this.thdDriverWarn ? true : false;\r\n }\r\n\r\n @computed('disabledTHDTabError', 'isThdOutputWarn', 'isSettlingNoiseError') get isThdTabError() {\r\n let disabledTHDTab = this.disabledTHDTabError;\r\n return disabledTHDTab ? false : this.isThdOutputWarn && !this.isSettlingNoiseError;\r\n }\r\n\r\n // This is for all errors inside the \"Noise & Distortion tab, so that we can show the \"!\" circle.\r\n @computed('disabledTHDTabError', 'wbNoiseError', 'thdError', 'isThdOutputWarn', 'systemNoiseWarn')\r\n get isNoiseDistortionTabError() {\r\n let disabledTHDTab = this.disabledTHDTabError;\r\n return disabledTHDTab\r\n ? false\r\n : this.wbNoiseError || this.thdError || this.isThdOutputWarn || this.systemNoiseWarn\r\n ? true\r\n : false;\r\n }\r\n\r\n @computed('disabledTHDTabError', 'wbNoiseError', 'thdError') get isNoiseSimInputsError() {\r\n let disabledTHDTab = this.disabledTHDTabError;\r\n return disabledTHDTab ? false : this.wbNoiseError || this.thdError ? true : false;\r\n }\r\n\r\n //#endregion noise panel errors\r\n\r\n //#region settling panel errors\r\n\r\n //#region sigma delta errors\r\n\r\n @alias('sigmaDeltaData.odrError') odrError;\r\n\r\n @alias('sigmaDeltaData.mclkError') mclkError;\r\n\r\n @alias('sigmaDeltaData.fmodError') fmodError;\r\n\r\n //#endregion sigma delta errors\r\n\r\n @computed(\r\n 'model.inputSettlingArrays.{requiredBwDc,requiredBwSin,requiredBwMuxed,minKickbackDominatesSin,lsbMaxDc,lsbMaxSin,lsbRingDc,lsbRingSin}',\r\n 'model.{requiredBwMuxedTransition,filterBandwidth,multiplexed}',\r\n 'tabService.tabs.items.settling.@each.{name,hide}',\r\n 'selectionData.selectedAdc.id',\r\n )\r\n get bwWarnings() {\r\n let bwValues = [];\r\n let dcBw;\r\n let sinBw;\r\n let muxedBw;\r\n let muxedTBw;\r\n let message = '';\r\n let dcTabWarn = false;\r\n let sinTabWarn = false;\r\n let muxedTabWarn = false;\r\n let lsbErrorTrigger = 0.5;\r\n let ppmtolsbConvert = Math.pow(2, this.selectionData.selectedAdc.bits) / 1e6;\r\n\r\n let acTab = this.tabService.tabs.items.settling.find((tab) => tab.index === Consts.TAB_INDEX.SETTLING.AC);\r\n let hideAcTab = !acTab || acTab.hide;\r\n\r\n let inl_ppm = this.selectionData.selectedAdc.inl_ppm;\r\n if (inl_ppm !== undefined) {\r\n lsbErrorTrigger = inl_ppm * ppmtolsbConvert;\r\n }\r\n\r\n let inl_lsb = this.selectionData.selectedAdc.inl_lsb;\r\n if (inl_lsb !== undefined) {\r\n lsbErrorTrigger = inl_lsb;\r\n }\r\n\r\n // Check if warning and add the bw value to array\r\n\r\n console.log(\r\n '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\nSettling Warning: Start BW Checks, ' +\r\n lsbErrorTrigger +\r\n ' LSBs triggers error',\r\n );\r\n if (\r\n this.model.inputSettlingArrays.requiredBwDc > this.model.filterBandwidth &&\r\n this.model.inputSettlingArrays.lsbMaxDc > lsbErrorTrigger\r\n ) {\r\n dcBw = this.model.inputSettlingArrays.requiredBwDc;\r\n bwValues.push(dcBw);\r\n dcTabWarn = true;\r\n console.log(' Settling Warning: DC due to RC BW limit, ' + dcBw);\r\n }\r\n if (\r\n !hideAcTab &&\r\n this.model.inputSettlingArrays.requiredBwSin > this.model.filterBandwidth &&\r\n this.model.inputSettlingArrays.lsbMaxSin > lsbErrorTrigger &&\r\n !this.model.inputSettlingArrays.minKickbackDominatesSin\r\n ) {\r\n sinBw = this.model.inputSettlingArrays.requiredBwSin;\r\n bwValues.push(sinBw);\r\n sinTabWarn = true;\r\n console.log(' Settling Warning: AC due to RC BW limit, ' + sinBw);\r\n }\r\n if (\r\n this.model.inputSettlingArrays.requiredBwMuxed > this.model.filterBandwidth &&\r\n this.model.inputSettlingArrays.lsbMaxMuxed > lsbErrorTrigger &&\r\n this.model.multiplexed\r\n ) {\r\n muxedBw = this.model.inputSettlingArrays.requiredBwMuxed;\r\n bwValues.push(muxedBw);\r\n muxedTabWarn = true;\r\n console.log(' Settling Warning: Mux Kickback due to RC BW limit, ' + muxedBw);\r\n }\r\n if (\r\n this.model.requiredBwMuxedTransition > this.model.filterBandwidth &&\r\n this.model.inputSettlingArrays.lsbMaxMuxed > lsbErrorTrigger &&\r\n this.model.multiplexed\r\n ) {\r\n muxedTBw = this.model.requiredBwMuxedTransition;\r\n bwValues.push(muxedTBw);\r\n muxedTabWarn = true;\r\n console.log(' Settling Warning: Mux Transition due to RC BW limit, ' + muxedBw);\r\n }\r\n\r\n if (bwValues.length > 0) {\r\n let max = Math.max.apply(null, bwValues);\r\n\r\n switch (max) {\r\n case dcBw: {\r\n message = this.intl.t('messages.rc_bw_DC');\r\n break;\r\n }\r\n case sinBw: {\r\n message = this.intl.t('messages.rc_bw_AC');\r\n break;\r\n }\r\n case muxedBw: {\r\n message = this.intl.t('messages.rc_bw_MuxKick');\r\n break;\r\n }\r\n case muxedTBw: {\r\n message = this.intl.t('messages.rc_bw_MuxTransition');\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n let rcBwWarn = dcTabWarn || sinTabWarn || muxedTabWarn;\r\n let rcBwMessage = message;\r\n\r\n // SAR-198 & 200\r\n let triggerThdAdjust = true;\r\n console.log('Settling Warning: Starting ringing checks...');\r\n\r\n // For ADCs that have a Q-model in place, non settling will not turn off distortion plot, but ringing will\r\n let settlingTHDadj = this.selectionData.selectedAdc.settlingTHDadj;\r\n if (settlingTHDadj) {\r\n // If Muxed not settled\r\n if (this.model.inputSettlingArrays.lsbMaxMuxed > lsbErrorTrigger && this.model.multiplexed) {\r\n console.log(' Settling Warning: Muxed not settled');\r\n if (!message) message = this.intl.t('messages.not_settling_Muxed'); // Only show this message if there is not a previous error.\r\n\r\n muxedTabWarn = true;\r\n triggerThdAdjust = false;\r\n }\r\n\r\n // If AC not settled\r\n if (\r\n !hideAcTab &&\r\n !this.model.inputSettlingArrays.minKickbackDominatesSin &&\r\n this.model.inputSettlingArrays.lsbMaxSin > lsbErrorTrigger &&\r\n this.model.inputSettlingArrays.lsbRingSin\r\n ) {\r\n console.log(' Settling Warning: AC due to ringing');\r\n if (!message) message = this.intl.t('messages.not_settling_AC'); // Only show this message if there is not a previous error.\r\n\r\n sinTabWarn = true;\r\n triggerThdAdjust = false;\r\n }\r\n\r\n // If DC not settled\r\n if (this.model.inputSettlingArrays.lsbMaxDc > lsbErrorTrigger && this.model.inputSettlingArrays.lsbRingDc) {\r\n console.log(' Settling Warning: DC due to ringing');\r\n if (!message) message = this.intl.t('messages.not_settling_DC'); // Only show this message if there is not a previous error.\r\n\r\n dcTabWarn = true;\r\n triggerThdAdjust = false;\r\n }\r\n } else {\r\n // for ADCs without Q-model, any type of non settling will turn off distortion plot\r\n\r\n // If Muxed not settled\r\n if (this.model.inputSettlingArrays.lsbMaxMuxed > lsbErrorTrigger && this.model.multiplexed) {\r\n console.log(' Settling Warning: Muxed not settled');\r\n if (!message) message = this.intl.t('messages.not_settling_Muxed'); // Only show this message if there is not a previous error.\r\n\r\n muxedTabWarn = true;\r\n }\r\n\r\n // If AC not settled\r\n if (\r\n !hideAcTab &&\r\n !this.model.inputSettlingArrays.minKickbackDominatesSin &&\r\n this.model.inputSettlingArrays.lsbMaxSin > lsbErrorTrigger\r\n ) {\r\n console.log(' Settling Warning: AC due to ringing');\r\n if (!message) message = this.intl.t('messages.not_settling_AC'); // Only show this message if there is not a previous error.\r\n\r\n sinTabWarn = true;\r\n }\r\n\r\n // If DC not settled\r\n if (this.model.inputSettlingArrays.lsbMaxDc > lsbErrorTrigger) {\r\n console.log(' Settling Warning: DC due to ringing');\r\n if (!message) message = this.intl.t('messages.not_settling_DC'); // Only show this message if there is not a previous error.\r\n\r\n dcTabWarn = true;\r\n }\r\n }\r\n\r\n let settlingRingingWarn = rcBwWarn ? false : dcTabWarn || sinTabWarn || muxedTabWarn;\r\n let settlingRingingMessage = settlingRingingWarn ? message : '';\r\n\r\n return {\r\n rcBw: rcBwMessage,\r\n settlingRinging: settlingRingingMessage,\r\n\r\n isDcTab: dcTabWarn,\r\n isSinTab: sinTabWarn,\r\n isMuxedTab: muxedTabWarn,\r\n\r\n triggerThdAdjust: triggerThdAdjust,\r\n };\r\n }\r\n\r\n @computed('bwWarnings') get isSettlingTabError() {\r\n let bwWarnings = this.bwWarnings;\r\n return bwWarnings.settlingRinging || bwWarnings.rcBw ? true : false;\r\n }\r\n\r\n @computed('bwWarnings', 'isSettlingTabError', 'selectionData.selectedAdc.settlingTHDadj')\r\n get isSettlingNoiseError() {\r\n let settlingTHDadj = this.selectionData.selectedAdc.settlingTHDadj,\r\n isSettlingTabError = this.isSettlingTabError,\r\n bwWarnings = this.bwWarnings;\r\n\r\n // This is for blanking out the Noise subtabs.\r\n return settlingTHDadj ? (bwWarnings.settlingRinging ? true : false) : isSettlingTabError;\r\n }\r\n\r\n @computed('bwWarnings', 'model.thdSettlingAdjustment', 'selectionData.selectedAdc.thdBaseline')\r\n get thdAdjustmentWarning() {\r\n let thdSettlingAdjustment = this.model.thdSettlingAdjustment;\r\n let thdBaseline = -this.selectionData.selectedAdc.thdBaseline;\r\n let bwWarnings = this.bwWarnings;\r\n\r\n if (!thdSettlingAdjustment) {\r\n return '';\r\n } else if (bwWarnings.triggerThdAdjust && thdSettlingAdjustment >= thdBaseline) {\r\n return this.intl.t('messages.noise_thd'); // This is for blanking out the Noise subtabs.\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n //#endregion settling panel errors\r\n\r\n //#region driver supply errors\r\n\r\n @alias('driverSupplyService.vSupplyError') vSupplyError;\r\n\r\n //#endregion driver supply errors\r\n\r\n @computed('selectionData.selectedAdc.partCore', 'sigmaDeltaData.filterType.{isSigmaDeltaAdc,disableTHDPlot}')\r\n get disabledTHDTabError() {\r\n if (\r\n this.sigmaDeltaData.isSigmaDeltaAdc &&\r\n this.sigmaDeltaData.filterType &&\r\n this.sigmaDeltaData.filterType.disableTHDPlot\r\n ) {\r\n return this.intl.t('messages.blanked_thd_tab_filter_type');\r\n }\r\n\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n return selectedAdc.blankTHDTab ? this.intl.t('messages.blanked_thd_tab', { part: selectedAdc.partCore }) : '';\r\n }\r\n\r\n @computed('isSettlingNoiseError', 'vSupplyError', 'disabledTHDTabError') get disableNoiseAndDistortionSummary() {\r\n let settlingNoiseError = this.isSettlingNoiseError,\r\n vSupplyError = this.vSupplyError,\r\n disabledTHDTab = this.disabledTHDTabError;\r\n\r\n return !disabledTHDTab && (settlingNoiseError || vSupplyError);\r\n }\r\n\r\n @alias('circuitConfigurations.currentCircuitConfig.message') circuitError;\r\n\r\n @computed('adcInputsError', 'driverInputsError', 'filterInputsError', 'inputInputsError', 'circuitError')\r\n get tabError() {\r\n if (\r\n this.adcInputsError ||\r\n this.driverInputsError ||\r\n this.filterInputsError ||\r\n this.inputInputsError ||\r\n this.circuitError\r\n ) {\r\n return this.intl.t('messages.input_panel');\r\n } else return '';\r\n }\r\n\r\n @computed('isNoiseSimInputsError', 'isSettlingNoiseError', 'vSupplyError')\r\n get noiseSubtabError() {\r\n if (this.vSupplyError) {\r\n return this.intl.t('messages.vsupply');\r\n } else if (this.isNoiseSimInputsError) {\r\n return this.intl.t('messages.input_panel');\r\n } else if (this.isSettlingNoiseError) {\r\n return this.intl.t('messages.noise_settling');\r\n } else return '';\r\n }\r\n\r\n // Driver Performance Errors\r\n @computed('model.driverPerformanceData.tempABError') get tempABError() {\r\n return this.model.driverPerformanceData.tempABError;\r\n }\r\n\r\n @computed('model.driverPerformanceData.tempABErrorItems') get tempABErrorItems() {\r\n return this.model.driverPerformanceData.tempABErrorItems;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport Utils from '../utils/utils';\r\nimport upperFirst from 'lodash.upperfirst';\r\n\r\n/**\r\n * Service that depends on / combines\r\n * hashService and the data model.\r\n *\r\n * This service should only be used in the index route as a dependency\r\n */\r\nexport default class HashDataService extends Service {\r\n @service hashService;\r\n @service('initialData') initial;\r\n @service('data') model;\r\n @service('aditools-analytics') analytics;\r\n @service sigmaDeltaData;\r\n @service partData;\r\n\r\n initializeData() {\r\n // Get an object with defaults / selection data\r\n let metadata = this.initial.metadata,\r\n modelData = this.initial.modelData,\r\n hashValues = this.hashService.parsedLocationHash;\r\n\r\n // Check the url for any data. If found, override the defaults\r\n Object.keys(hashValues).forEach((hashKey) => this._handleHashItem(hashKey, metadata, modelData));\r\n this._manualLoadFromHash(hashValues, modelData);\r\n\r\n // Set the data to the model\r\n this.model.setProperties(modelData);\r\n }\r\n\r\n _manualLoadFromHash(hashValues, modelData) {\r\n if (hashValues.showAdcVariants)\r\n modelData.showAdcVariants = this._parseObjectHashParam(hashValues.showAdcVariants, { isBoolean: true });\r\n }\r\n\r\n _parseObjectHashParam(hashValue, config = {}) {\r\n let result = {};\r\n hashValue.split(';').forEach((item) => {\r\n let keyValuePair = item.split(':');\r\n if (keyValuePair.length === 2) {\r\n if (config.isNumeric) result[keyValuePair[0]] = Number(keyValuePair[1]);\r\n else if (config.isBoolean) result[keyValuePair[0]] = keyValuePair[1] === 'true';\r\n else result[keyValuePair[0]] = keyValuePair[1];\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n _handleHashItem(hashKey, metadata, modelData) {\r\n let hashValue = this.hashService.parsedLocationHash[hashKey],\r\n /**\r\n * We need to find the metadata where hashKey is matched\r\n * or there is a match to the appVarName (the hash key does not match the model var name)\r\n */\r\n foundMetadata = metadata[hashKey];\r\n\r\n if (foundMetadata) {\r\n this._validateAndSetHashItem(hashValue, foundMetadata, modelData);\r\n }\r\n }\r\n\r\n _validateAndSetHashItem(hashValue, metadata, modelData) {\r\n if (metadata.isNumeric) {\r\n if (typeof hashValue !== 'undefined' && Utils.isNumeric(hashValue)) {\r\n modelData[metadata.appVarName] = Number(hashValue);\r\n }\r\n } else if (metadata.isBoolean) {\r\n if (typeof hashValue !== 'undefined') {\r\n if (hashValue === 'true') modelData[metadata.appVarName] = true;\r\n else if (hashValue === 'false') modelData[metadata.appVarName] = false;\r\n }\r\n //modelData[metadata.appVarName] = typeof hashValue !== 'undefined' && hashValue === \"true\";\r\n } else {\r\n modelData[metadata.appVarName] = hashValue;\r\n }\r\n }\r\n\r\n setUrlParameter(parameterName, remove = false) {\r\n let foundMetadata = this.initial.getHashMetadataItem(parameterName.split('.')[1]);\r\n if (foundMetadata) {\r\n this.hashService.setUrlParameter(foundMetadata.hashKey, remove ? null : this.get(parameterName));\r\n }\r\n }\r\n\r\n setUrlParameterForObject(parameterName) {\r\n let objectValue = this.get(`model.${parameterName}`);\r\n let hashValue = Object.keys(objectValue)\r\n .map((key) => `${key}:${objectValue[key]}`)\r\n .join(';');\r\n this.hashService.setUrlParameter(parameterName, hashValue);\r\n }\r\n\r\n getDefaultShowVariantForType(type) {\r\n return this.getDefaultForParameter(`show${upperFirst(type)}Variant`);\r\n }\r\n\r\n getDefaultForParameter(parameterName) {\r\n let metadata = this.initial.getHashMetadataItem(parameterName);\r\n return metadata ? metadata.default : null;\r\n }\r\n\r\n setOptionalSourceSettingsProperties(initialLoad = false) {\r\n this.setAdditionalProperties('model.showOptionalSourceSettings', ['wbNoise', 'thd'], initialLoad);\r\n }\r\n\r\n setAdditionalProperties(originalPropertyName, additionalPropertyNames, initialLoad = false) {\r\n let initial = this.initial,\r\n // model.showOptionalSourceSettings\r\n ossMetadata = initial.getHashMetadataItem(originalPropertyName.split('.')[1]),\r\n // ['wbNoise', 'thd']\r\n metadata = initial.getHashMetadata(additionalPropertyNames),\r\n modelData = initial.metadataToModelData(metadata),\r\n hashValues = this.hashService.parsedLocationHash;\r\n\r\n // 'model.showOptionalSourceSettings'\r\n if (this.get(originalPropertyName)) {\r\n if (initialLoad)\r\n Object.keys(hashValues).forEach((hashKey) => this._handleHashItem(hashKey, metadata, modelData));\r\n this.model.setProperties(modelData);\r\n } else {\r\n this.model.setProperties(ossMetadata.addlDefaults);\r\n }\r\n }\r\n\r\n setUrlParameterWithSelectedPart(parameterName) {\r\n let modelName = `model.selected${upperFirst(parameterName)}.part`;\r\n this.hashService.setUrlParameter(parameterName, this.get(modelName));\r\n\r\n this.analytics.setWebEvent(this.partData.toolName, `${parameterName}Selected`, this.get(modelName));\r\n }\r\n\r\n setUrlParameterWithSelectedId(parameterName) {\r\n this.hashService.setUrlParameter(parameterName, this.get(`model.selected${upperFirst(parameterName)}.id`));\r\n }\r\n\r\n setUrlParameterWithId(sourceName, parameterName) {\r\n this.hashService.setUrlParameter(parameterName, this.get(`${sourceName}.${parameterName}.id`));\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Utils from '../utils/utils';\r\n\r\n/**\r\n * This service sets the initial selected data\r\n */\r\nexport default class HashSelectedDataService extends Service {\r\n @service hashService;\r\n @service urlData;\r\n @service selectionData;\r\n @service partData;\r\n @service validation;\r\n @service('aditools-analytics') analytics;\r\n\r\n init() {\r\n super.init();\r\n\r\n let selectionData = this.selectionData;\r\n selectionData.setProperties(this.modelData);\r\n\r\n this.validation.run();\r\n }\r\n\r\n /**\r\n * Get the selected ADC\r\n * We first look to see whether:\r\n * 1. The adc was in the route\r\n * 2. The user was directed to the app via the product page\r\n * 3. The adc was in the hash\r\n *\r\n * If the adc was not found, we set it via the tool default.\r\n */\r\n @computed('hashService.parsedLocationHash', 'selectionData.{adcs,defaultAdc}') get adc() {\r\n let hashValues = this.hashService.parsedLocationHash,\r\n adcOptions = this.selectionData.adcs,\r\n foundAdcParamInRoute = this.urlData.findAdcParam(),\r\n foundReferrerAdc = this._findAdcFromReferrerUrl(),\r\n foundHashAdc = typeof hashValues.adc !== 'undefined' ? hashValues.adc : null;\r\n\r\n // Set values from url or default\r\n // TODO: Move all inputs into a values service.. and move all of the default setting into the hash service.\r\n // ADC\r\n let foundAdc = foundHashAdc || foundReferrerAdc || foundAdcParamInRoute,\r\n filteredAdc = foundAdc\r\n ? adcOptions.filter((adc) => adc.part.toUpperCase() === foundAdc.toUpperCase())\r\n : null;\r\n\r\n if (filteredAdc && filteredAdc.length === 1) {\r\n return filteredAdc[0];\r\n } else {\r\n let defaultAdc = adcOptions.filter((adc) => adc.part === this.selectionData.defaultAdc);\r\n if (defaultAdc && defaultAdc.length === 1) {\r\n return defaultAdc[0];\r\n } else {\r\n // If all else fails\r\n return adcOptions[0];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set the selected Driver\r\n *\r\n * We first determine the following:\r\n * 1. Is the driver in the hash\r\n * 2. Does the selectedAdc have a default driver\r\n *\r\n * If the driver was not found, then was use the default driver set by the tool\r\n */\r\n @computed('hashService.parsedLocationHash', 'selectionData.{drivers,defaultDriver}', 'adc') get driver() {\r\n let defaultDriver = this.adc.defaultDriver || this.selectionData.defaultDriver,\r\n hashValues = this.hashService.parsedLocationHash,\r\n driverOptions = this.selectionData.drivers,\r\n foundDefaultDriver = driverOptions.filter((driver) => driver.part === defaultDriver),\r\n foundHashDriver = null;\r\n\r\n if (typeof hashValues.driver !== 'undefined') {\r\n foundHashDriver = driverOptions.filter((driver) => driver.part === hashValues.driver);\r\n }\r\n\r\n if (foundHashDriver && foundHashDriver.length === 1) {\r\n return foundHashDriver[0];\r\n } else if (foundDefaultDriver && foundDefaultDriver.length === 1) {\r\n return foundDefaultDriver[0];\r\n } else {\r\n // if all else has failed\r\n return driverOptions[0];\r\n }\r\n }\r\n\r\n @computed('hashService.parsedLocationHash', 'selectionData.topologyOptions') get topology() {\r\n return this._getSelectedOptionFromHash('topology').value;\r\n }\r\n\r\n @computed('hashService.parsedLocationHash', 'selectionData.sourceTypeOptions', 'adc') get sourceType() {\r\n let selectedSourceType = this._getSelectedOptionFromHash('sourceType');\r\n\r\n if (selectedSourceType.from === 'url') {\r\n return selectedSourceType.value;\r\n } else {\r\n return this.selectionData.findSourceTypeFromAdcInputType(this.adc.type);\r\n }\r\n }\r\n\r\n @computed('hashService.parsedLocationHash', 'selectionData.lsbSettlingOptions') get lsbSettling() {\r\n return this._getSelectedOptionFromHash('lsbSettling').value;\r\n }\r\n\r\n @computed('adc', 'driver', 'topology', 'sourceType', 'lsbSettling') get modelData() {\r\n return {\r\n selectedAdc: this.adc,\r\n selectedDriver: this.driver,\r\n selectedTopology: this.topology,\r\n selectedSourceType: this.sourceType,\r\n selectedLsbSettling: this.lsbSettling,\r\n };\r\n }\r\n\r\n _getSelectedOptionFromHash(optionsType) {\r\n let hashValues = this.hashService.parsedLocationHash,\r\n selectionData = this.selectionData,\r\n hashValue = hashValues[optionsType],\r\n value = null,\r\n from = null;\r\n\r\n if (typeof hashValue !== 'undefined' && Utils.isNumeric(hashValue)) {\r\n from = 'url';\r\n value = selectionData.findOneOptionById(optionsType, Number(hashValue));\r\n }\r\n\r\n if (!value) {\r\n from = 'default';\r\n value = selectionData.findDefaultByOptionsType(optionsType);\r\n }\r\n\r\n return {\r\n from: from,\r\n value: value,\r\n };\r\n }\r\n\r\n _findAdcFromReferrerUrl() {\r\n let referrer = document.referrer,\r\n foundReferrerAdc = null,\r\n adcs = this.selectionData.adcs;\r\n if (referrer) {\r\n let referrerParts = referrer.split('/');\r\n\r\n for (var x = referrerParts.length - 1; x >= 0; x--) {\r\n let referrerPart = referrerParts[x];\r\n let referrerPartParts = referrerPart.split('.');\r\n for (var y = 0; y < referrerPartParts.length; y++) {\r\n let foundAdc = adcs.filter((adc) => adc.part.toUpperCase() === referrerPartParts[y].toUpperCase());\r\n if (foundAdc && foundAdc.length > 0) {\r\n foundReferrerAdc = foundAdc[0].part;\r\n\r\n this.analytics.setWebEvent(\r\n this.partData.toolName,\r\n 'adcLoadedFromReferringPage',\r\n foundReferrerAdc,\r\n true,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return foundReferrerAdc;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport Utils from '../utils/utils';\r\n\r\nexport default class HashService extends Service {\r\n @service tabService;\r\n @service('browser/window') window;\r\n\r\n originalHash = '';\r\n originalWindowHash = '';\r\n\r\n /**\r\n * Set original hash\r\n * Initialize tab service from hash\r\n */\r\n\r\n get locationHash() {\r\n return this.window.location.hash;\r\n }\r\n\r\n get parsedLocationHash() {\r\n return this.parseUrl(this.window.location.hash);\r\n }\r\n\r\n get loadedWithHash() {\r\n return this.window.location.hash !== '';\r\n }\r\n\r\n handleUrlParameters() {\r\n Object.keys(this.tabService.tabs.items).forEach((tabType) => {\r\n let tabList = this.tabService.tabs.items[tabType],\r\n selectedTab = tabList.find((tab) => tab.isSelected);\r\n\r\n if (selectedTab) this.setUrlParameter(selectedTab.type.urlKey, selectedTab.index);\r\n });\r\n }\r\n\r\n setUrlParameter(propertyName, value) {\r\n // TODO: Need to disable hash change here first, and move this into the hash-service. Look at firstlight for an example.\r\n if (!value && !(value === 0) && !(value === false)) {\r\n this.removeUrlParameter(propertyName, this.window.location.hash);\r\n } else {\r\n let map = this.parseUrl(this.window.location.hash);\r\n map[propertyName] = value;\r\n this.window.location.hash = Utils.stringify(map);\r\n }\r\n }\r\n\r\n removeUrlParameter(propertyName) {\r\n let map = this.parseUrl(this.window.location.hash);\r\n delete map[propertyName];\r\n this.window.location.hash = Utils.stringify(map);\r\n }\r\n\r\n parseUrl(str) {\r\n if (typeof str !== 'string') {\r\n return {};\r\n }\r\n\r\n str = str.trim().replace(/^(\\?|#|&)/, '');\r\n\r\n if (!str) {\r\n return {};\r\n }\r\n\r\n return str.split('&').reduce((ret, param) => {\r\n var parts = param.replace(/\\+/g, ' ').split('=');\r\n var key = parts[0];\r\n var val = parts[1];\r\n\r\n key = decodeURIComponent(key);\r\n\r\n // missing `=` should be `null`:\r\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\r\n val = val === undefined ? null : decodeURIComponent(val);\r\n\r\n if (!(key in ret)) {\r\n ret[key] = val;\r\n } else if (Array.isArray(ret[key])) {\r\n ret[key].push(val);\r\n } else {\r\n ret[key] = [ret[key], val];\r\n }\r\n\r\n return ret;\r\n }, {});\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport DefaultModelData from '../data/defaultmodeldata';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Utils from '../utils/utils';\r\n\r\nimport cloneDeep from 'lodash.clonedeep';\r\nimport merge from 'lodash.merge';\r\n\r\nexport default class InitialDataService extends Service {\r\n @service hashSelectedDataService;\r\n\r\n data = DefaultModelData;\r\n\r\n /**\r\n * This initial model data includes the defaults and\r\n * the selection model data.\r\n */\r\n @computed('metadata') get modelData() {\r\n let modelData = this.metadataToModelData(this.metadata);\r\n\r\n /**\r\n * Merge the selection model data and the other default model settings into\r\n * the default hash model data\r\n *\r\n * Note that this data will only be in the model data not the metadata\r\n * */\r\n return merge(modelData, this.data.otherModelSettings);\r\n }\r\n\r\n @computed('data', 'hashSelectedDataService.modelData') get defaultModelData() {\r\n let defaultModelData = cloneDeep(this.data.hashModelSettings),\r\n selectionModelData = this.hashSelectedDataService.modelData;\r\n\r\n defaultModelData.samplingRate = selectionModelData.selectedAdc.samplingRate;\r\n defaultModelData.vref = selectionModelData.selectedAdc.vref;\r\n defaultModelData.rext = Math.max(\r\n selectionModelData.selectedAdc.rext,\r\n selectionModelData.selectedDriver.rfiltMin,\r\n );\r\n defaultModelData.cext = selectionModelData.selectedAdc.cext;\r\n\r\n if (\r\n 'defaultFrequency' in selectionModelData.selectedAdc &&\r\n !Utils.isNullOrWhiteSpace(selectionModelData.selectedAdc.defaultFrequency)\r\n )\r\n defaultModelData.frequency = selectionModelData.selectedAdc.defaultFrequency;\r\n\r\n return defaultModelData;\r\n }\r\n\r\n /**\r\n * Provides metadata that helps in determining how to get data\r\n * from the hash and set it to the model.\r\n */\r\n @computed('defaultModelData') get metadata() {\r\n let initialModelData = cloneDeep(this.defaultModelData);\r\n\r\n let metadata = {};\r\n Object.keys(initialModelData).forEach((key) => this._getMetadata(key, initialModelData[key], metadata));\r\n\r\n return metadata;\r\n }\r\n\r\n metadataToModelData(metadata) {\r\n let modelData = {};\r\n\r\n Object.keys(metadata).forEach((key) => {\r\n let item = metadata[key];\r\n modelData[item.appVarName] = item.hashKey ? item.default : item;\r\n });\r\n\r\n return modelData;\r\n }\r\n\r\n getMetadataKey(modelName) {\r\n return modelName in this.data.modelToHashMap ? this.data.modelToHashMap[modelName] || modelName : modelName;\r\n }\r\n\r\n getHashMetadata(keys) {\r\n let metadata = {};\r\n\r\n // Get the additional metadata\r\n keys.forEach((key) => this._getMetadata(key, this.defaultModelData[key], metadata));\r\n return metadata;\r\n }\r\n\r\n getHashMetadataItem(key) {\r\n return this.getHashMetadata([key])[this.getMetadataKey(key)];\r\n }\r\n\r\n _getMetadata(modelKey, value, metadata) {\r\n let hashKey = this.data.modelToHashMap[modelKey],\r\n addlDefaults = this.data.additionalHashModelSettings;\r\n\r\n metadata[hashKey || modelKey] = {\r\n default: value,\r\n appVarName: modelKey,\r\n hashKey: hashKey || modelKey,\r\n isNumeric: Utils.isNumeric(value),\r\n isBoolean: Utils.isBoolean(value),\r\n addlDefaults: addlDefaults[modelKey],\r\n };\r\n }\r\n}\r\n","import Service from '@ember/service';\r\n\r\nexport default class LoggingService extends Service {\r\n logGroup(message, invalid, loggingArgs, inLogging) {\r\n window.console.groupCollapsed(`%c${message}`, invalid ? 'color: red' : 'color: green');\r\n\r\n inLogging(loggingArgs);\r\n\r\n window.console.groupEnd();\r\n }\r\n\r\n logNoiseData(plotData, selectedAdc, selectedDriver, adjustedSourceThd) {\r\n this.logGroup(\r\n `Calculating Driver Distortion Model for ${selectedDriver.part}`,\r\n false,\r\n {\r\n adcType: selectedAdc.type,\r\n driverType: selectedDriver.type,\r\n thdAmp: plotData[1].thd.amp,\r\n hd2Curve: Math.round(plotData[1].hdCurveData.hd2),\r\n hd3Curve: Math.round(plotData[1].hdCurveData.hd3),\r\n hd2SecondInvAmp: Math.round(plotData[1].hdCurveData.secondInvAmp),\r\n hd3SecondMirrorAmp: Math.round(plotData[1].hdCurveData.mirroredAmpCurve),\r\n },\r\n (loggingArgs) => {\r\n console.log(`ADC type: ${loggingArgs.adcType}`);\r\n console.log(`Driver type: ${loggingArgs.driverType}`);\r\n console.log(`Total Driver THD = ${loggingArgs.thdAmp}`);\r\n console.log(`Hd2 curve = ${loggingArgs.hd2Curve}`);\r\n console.log(`Hd3 curve = ${loggingArgs.hd3Curve}`);\r\n console.log(`HD2SecondInvAmp = ${loggingArgs.hd2SecondInvAmp}`);\r\n console.log(`HD3SecondMirroredAmp = ${loggingArgs.hd3SecondMirrorAmp}`);\r\n },\r\n );\r\n\r\n this.logGroup(\r\n `Calculating ADC Distortion Model for ${selectedAdc.part}`,\r\n false,\r\n {\r\n adcThd: plotData[1].thd.adc,\r\n adjustedSourceThd: adjustedSourceThd,\r\n systemThd: plotData[1].thd.system,\r\n },\r\n (loggingArgs) => {\r\n console.log(`ADC THD = ${loggingArgs.adcThd}`);\r\n console.log(`Source THD set at ${loggingArgs.adjustedSourceThd}`);\r\n console.log(`System THD = ${loggingArgs.systemThd}`);\r\n },\r\n );\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport cloneDeep from 'lodash.clonedeep';\r\nimport { waitForPromise } from '@ember/test-waiters';\r\n\r\nimport LtSpiceData from '../data/ltspicedata';\r\nimport Consts from '../utils/constants';\r\nimport LtSpiceConsts from '../utils/lt-spice';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport utils from '../utils/utils';\r\n\r\nexport default class ltSpiceService extends Service {\r\n @service('data') model;\r\n @service intl;\r\n @service selectionData;\r\n @service urlData;\r\n\r\n generateLtSpiceData() {\r\n // This is where devices parameters are gathered for LTspice schematic generation\r\n let intl = this.intl;\r\n let vdiff = PrettyNum.spice(this.model.vref / (this.model.gain * 2));\r\n let frequency = PrettyNum.spice(this.model.frequency);\r\n let topology = this.selectionData.essentiallyFollower\r\n ? this.selectionData.findOneOptionById('topology', Consts.TOPOLOGY.FOLLOWER)\r\n : this.selectionData.selectedTopology;\r\n let adc = this.selectionData.selectedAdc;\r\n let driver = this.selectionData.selectedDriver;\r\n\r\n let inData = {\r\n /**\r\n * Primary information\r\n * Used in the naming of LTSpice files\r\n */\r\n // The adc is used in the download file name, can't contain a pipe\r\n ADCname: this.selectionData.selectedAdc.part.replace('|', '-'),\r\n ADC: this.selectionData.selectedAdc.partCore,\r\n Drivername: this.selectionData.selectedDriver.part.replace('|', '-'),\r\n topology: LtSpiceConsts.TOPOLOGY[topology.id],\r\n\r\n title: intl.t('title'),\r\n\r\n ampType:\r\n this.selectionData.selectedDriver.type === Consts.DRIVER_TYPE.AMP\r\n ? LtSpiceConsts.DRIVER_TYPE.AMP\r\n : LtSpiceConsts.DRIVER_TYPE.DIFF_AMP,\r\n adcType: adc.type === Consts.ADC_TYPE.SE ? LtSpiceConsts.ADC_TYPE.SE : LtSpiceConsts.ADC_TYPE.DIFF,\r\n sourceType:\r\n this.selectionData.selectedSourceType.id === Consts.SOURCE_TYPE.SE\r\n ? LtSpiceConsts.SOURCE_TYPE.SE\r\n : LtSpiceConsts.SOURCE_TYPE.DIFF,\r\n\r\n currentUrl: top.location.href,\r\n baseUrl: this.urlData.adcDriverUrl,\r\n\r\n /**\r\n * Flags to help determine LTSpice template\r\n */\r\n isADCInLTSpice: adc.inLTSpice,\r\n isFFTLTSpice: adc.fftLTSpice,\r\n hasHiZ: adc.hasVariant && !adc.variants && adc.variant.code === Consts.VARIANT.ADC.HIZ,\r\n isMultiplexed: this.model.multiplexed,\r\n ADCSchematicTemplate: adc.schematicTemplate,\r\n\r\n /**\r\n * ADC Fields\r\n */\r\n // with values like bits, only replace the number, not the whole line.\r\n bits: PrettyNum.spice(adc.bits),\r\n cadc: PrettyNum.spice(adc.cadc),\r\n radc: adc.radc, // switch this when it becomes available\r\n maxSampleRate: PrettyNum.spice(adc.maxSampleRate),\r\n acquisitionTimeMin: PrettyNum.spice(adc.acquisitionTimeMin),\r\n kickbackVrefMultiplier: PrettyNum.spice(adc.kickbackVrefMultiplier),\r\n kickbackType: adc.kickbackType,\r\n HiZ: adc.hasCurrentVariant && adc.currentVariant.code === Consts.VARIANT.ADC.HIZ ? 5 : 0,\r\n\r\n /**\r\n * Driver Fields\r\n */\r\n ro: PrettyNum.spice(driver.Ro),\r\n aol: '100k', // switch this when it becomes available\r\n gbw: PrettyNum.spice(driver.unityGain),\r\n sr: PrettyNum.spice(driver.slewRate),\r\n ilimit: PrettyNum.spice(driver.IoutLimit),\r\n rail: driver.VoutHdrmPos,\r\n ioutSC: PrettyNum.spice(driver.IoutSC),\r\n vn: PrettyNum.spice(driver.vn),\r\n inp: PrettyNum.spice(driver.inp),\r\n\r\n /**\r\n * Input Fields\r\n */\r\n conversionTime: PrettyNum.spice(this.model.inputSettlingArrays.conversionTime),\r\n vref: PrettyNum.spice(this.model.vref, 4),\r\n\r\n cext: PrettyNum.spice(this.model.cext),\r\n rext: PrettyNum.spice(this.model.rext),\r\n rf: PrettyNum.spice(this.model.rf),\r\n rg: PrettyNum.spice(this.model.rg),\r\n sampleRate: PrettyNum.spice(this.model.samplingRate),\r\n gain: PrettyNum.spice(this.model.gain),\r\n frequency: frequency,\r\n\r\n VinDc: PrettyNum.spice(this.model.inputSettlingArrays.vinDcInitial),\r\n vcm: PrettyNum.spice(this.model.inputSettlingArrays.vinCmInitial),\r\n\r\n Vsp: this.model.vSupplyPos,\r\n Vsm: this.model.vSupplyNeg,\r\n\r\n vdiff: vdiff,\r\n\r\n opRangeTime: PrettyNum.spice((1 / this.model.frequency) * 5),\r\n\r\n /**\r\n * Computed Strings\r\n */\r\n kickbackModel: this.getKickbackModel('', '-'),\r\n kickbackModelP: this.getKickbackModel('+', '-'),\r\n kickbackModelN: this.getKickbackModel('-', '+'),\r\n\r\n kick: this.getKick(),\r\n pulseOp: vdiff,\r\n opRangeVdiff: `SINE(0 ${vdiff} ${frequency})`,\r\n thdFFTVdiff: `SINE(0 {vmag} {fin})`,\r\n transientVdiff: topology.id === Consts.TOPOLOGY.INVERTING ? '-' + vdiff : vdiff,\r\n\r\n /**\r\n * Calculated values\r\n */\r\n N: '2**14',\r\n M: utils.closestPrime((this.model.frequency / this.model.samplingRate) * /* n: */ Math.pow(2, 14)),\r\n };\r\n\r\n console.log('To spice: ', inData);\r\n\r\n return inData;\r\n }\r\n\r\n getKick() {\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n let baseSelectedAdc = this.selectionData.baseSelectedAdc;\r\n let hiZSelectedAdc = this.selectionData.hiZSelectedAdc;\r\n\r\n let baseKickbackMultipler = baseSelectedAdc.kickbackVrefMultiplier;\r\n let kickbackMultiplier = selectedAdc.kickbackVrefMultiplier;\r\n\r\n return hiZSelectedAdc\r\n ? `if(HiZ, ${hiZSelectedAdc.kickbackVrefMultiplier}, ${baseKickbackMultipler})`\r\n : kickbackMultiplier;\r\n }\r\n\r\n getKickbackModel(suffix, operator) {\r\n let replacers = {\r\n suffix: '${suffix}',\r\n operator: '${operator}',\r\n kick: '${kick}',\r\n };\r\n\r\n let selectedAdc = this.selectionData.selectedAdc;\r\n\r\n let fixedKickbackModel = 'V=0';\r\n //let kickbackModelFormula = `V=V(prevValue${replacers.suffix}) ${replacers.operator} ({vref}*{${replacers.kick}})`;\r\n let kickbackModelFormula = `V=V(prevValue${replacers.suffix}) ${replacers.operator} ({vref}*{kick})`;\r\n let kickbackType = selectedAdc.kickbackType;\r\n\r\n return !(kickbackType == Consts.KICKBACK_TYPE.FIXED)\r\n ? kickbackModelFormula.replace(replacers.suffix, suffix).replace(replacers.operator, operator)\r\n : //.replace(replacers.kick, kick) :\r\n fixedKickbackModel;\r\n }\r\n\r\n /**\r\n * The following functions are all related to the lt spice template creation and the\r\n * download of the zip file.\r\n */\r\n downloadLtSpiceData(downloadData, zipFileName) {\r\n waitForPromise(\r\n fetch(this.urlData.apiUrl, {\r\n headers: {\r\n Accept: 'application/zip',\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n body: '\"' + encodeURIComponent(JSON.stringify(downloadData)) + '\"',\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n let contentType = response.headers.get('Content-Type');\r\n\r\n return Promise.all([contentType, zipFileName, response.blob()]);\r\n } else {\r\n console.error(`LtSpice Download Error: ${response.statusText.toString()}`);\r\n return Promise.all(['', '', null]);\r\n }\r\n })\r\n .then(([contentType, fileName, result]) => {\r\n if (result) {\r\n utils.downloadFile(contentType, fileName, result);\r\n }\r\n })\r\n .catch((response) => {\r\n console.error(`LtSpice Error: ${response.toString()}`);\r\n }),\r\n );\r\n }\r\n\r\n async downloadSimulation() {\r\n let data = this.generateLtSpiceData();\r\n let fileData = await this.generateFileData(data);\r\n\r\n let downloadData = {\r\n ToolId: Consts.API_TOOL_ID,\r\n ToolName: 'SAR',\r\n UploadFiles: fileData,\r\n };\r\n\r\n this.downloadLtSpiceData(\r\n downloadData,\r\n `LTspice simulation files for ${data.ADCname} and ${data.Drivername}.zip`,\r\n );\r\n }\r\n\r\n /**\r\n * Get the ltspice file mappings (from ltspicedata.js).\r\n * Retrieve the initial template(s) for each mapping, create the combined template (if there is more than one initial template).\r\n * Make any text replacements / overrides to the combined template, template names, and file names.\r\n * NOTE: replacements are noted in the templates within brackets: <<>> and overrides are not.\r\n * Replacements can be specified for any file, or can be specified on the mapping level\r\n * Overrides can be specified for any file or can be specified on the template level\r\n * Return the list of files (generated from the templates)\r\n */\r\n async generateFileData(data) {\r\n let mappings = cloneDeep(LtSpiceData.templateToFilesMappings);\r\n let fileData = [];\r\n\r\n for (let mapping of mappings) {\r\n let fileItem = await this.processMapping(mapping, data);\r\n if (fileItem) fileData.push(fileItem);\r\n }\r\n\r\n return fileData;\r\n }\r\n\r\n async processMapping(mapping, data) {\r\n {\r\n if (mapping.conditional && !mapping.conditional(data)) {\r\n return null;\r\n }\r\n\r\n for (let templateItem of mapping.in) {\r\n await this.getTemplate(templateItem, mapping, data);\r\n }\r\n\r\n // Make template level overrides\r\n let value = this.makeOverrides(mapping.finalTemplate, LtSpiceConsts.TEMPLATE_OVERRIDES, data);\r\n\r\n // Make mapping level replacements\r\n if ('replacements' in mapping) {\r\n value = this.makeMappingReplacements(value, mapping.replacements, data);\r\n }\r\n\r\n value = this.makeReplacements(value, data, true);\r\n\r\n return {\r\n name: `${this.makeReplacements(mapping.out, data, true)}.${mapping.fileType}`,\r\n value: value, // the final value to be stored in the file\r\n location: '', // folder in zip - empty string should work for base directory\r\n type: 'LTSPICE',\r\n };\r\n }\r\n }\r\n\r\n getTemplate(templateItem, mapping, data) {\r\n let templateName = utils.isFunction(templateItem.name) ? templateItem.name(data) : templateItem.name;\r\n templateName = this.makeReplacements(templateName, data, true);\r\n\r\n return new Promise((resolve) => {\r\n let url = `${utils.getLtSpiceLocation()}/${templateName}.${mapping.fileType}`;\r\n waitForPromise(\r\n fetch(url)\r\n .then((response) => response.arrayBuffer())\r\n // Convert to ISO-8859-1\r\n .then((arrayBuffer) => String.fromCharCode.apply(null, new Uint8Array(arrayBuffer)))\r\n .then((result) => {\r\n this.prepareTemplateItem(mapping, templateItem, result, data);\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error(`LTSpice file: ${url} could not be loaded: ${error}`);\r\n }),\r\n );\r\n });\r\n }\r\n\r\n prepareTemplateItem(mapping, templateItem, initialTemplate, data) {\r\n // Remove any empty lines and turn into an array of lines\r\n let templateArray = initialTemplate.trim().split('\\n');\r\n\r\n if (templateItem.numRemoveTopLines) {\r\n let x = utils.isFunction(templateItem.numRemoveTopLines)\r\n ? templateItem.numRemoveTopLines(data)\r\n : templateItem.numRemoveTopLines;\r\n while (x > 0) {\r\n templateArray.shift();\r\n x = x - 1;\r\n }\r\n }\r\n\r\n if (templateItem.numRemoveBottomLines) {\r\n let x = utils.isFunction(templateItem.numRemoveBottomLines)\r\n ? templateItem.numRemoveBottomLines(data)\r\n : templateItem.numRemoveBottomLines;\r\n while (x > 0) {\r\n templateArray.pop();\r\n x = x - 1;\r\n }\r\n }\r\n\r\n let template = templateArray.join('\\n');\r\n\r\n if ('overrides' in templateItem) {\r\n template = this.makeOverrides(template, templateItem.overrides);\r\n }\r\n\r\n if (mapping.finalTemplate) mapping.finalTemplate = mapping.finalTemplate.concat('\\n');\r\n else mapping.finalTemplate = '';\r\n\r\n mapping.finalTemplate = mapping.finalTemplate.concat(template);\r\n }\r\n\r\n makeMappingReplacements(baseString, mappingReplacements, data) {\r\n let replacements = {};\r\n if (!mappingReplacements) return baseString;\r\n\r\n Object.keys(mappingReplacements).forEach((key) => {\r\n let replacementFunction = mappingReplacements[key],\r\n replacementValue = replacementFunction(data);\r\n\r\n replacements[key] = replacementValue;\r\n });\r\n\r\n return this.makeReplacements(baseString, replacements);\r\n }\r\n\r\n makeOverrides(baseString, overrides) {\r\n if (!overrides) return baseString;\r\n\r\n Object.keys(overrides).forEach((key) => {\r\n let override = overrides[key];\r\n baseString = baseString.replaceAll(key, override);\r\n });\r\n\r\n return baseString;\r\n }\r\n\r\n makeReplacements(baseString, replacements, replacementsShouldExist = false) {\r\n let regex = /<<(\\w+)?>>/g;\r\n let matches = baseString.match(regex);\r\n if (!matches) return baseString;\r\n\r\n matches.removeDuplicates().forEach((match) => {\r\n match = match.replace('<<', '');\r\n match = match.replace('>>', '');\r\n\r\n if (match in replacements) {\r\n baseString = baseString.replaceAll(`<<${match}>>`, replacements[match]);\r\n } else if (replacementsShouldExist) {\r\n console.error(`LtSpice: ${match} not found in the replacement options`);\r\n }\r\n });\r\n\r\n return baseString;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport { inject as service } from '@ember/service';\r\nimport { waitForPromise } from '@ember/test-waiters';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nimport Utils from '../utils/utils';\r\nimport Consts from '../utils/constants';\r\n\r\nexport default class PartDataService extends Service {\r\n @service intl;\r\n @service variantData;\r\n @service urlData;\r\n @service('aditools-site') siteconfig;\r\n\r\n load() {\r\n let configUrl = this.siteconfig.ConfigUrl + '?id=' + new Date().getTime();\r\n return waitForPromise(\r\n fetch(configUrl).then((response) => {\r\n // Load tool data from config file\r\n if (!response.ok)\r\n console.error(`An error occurred while getting the tools config data: ${response.statusText}`);\r\n else {\r\n return response.json().then((data) => {\r\n this.set('data', data); // not optimal but will work until we can get a model set up\r\n return data;\r\n });\r\n }\r\n }),\r\n );\r\n }\r\n\r\n @computed('data.toolName') get toolName() {\r\n if (!this.data && this.data.toolName) return 'sardriver';\r\n else return this.data.toolName;\r\n }\r\n\r\n @computed('data.defaults') get defaults() {\r\n if (!(this.data && this.data.defaults)) return {};\r\n else return cloneDeep(this.data.defaults);\r\n }\r\n\r\n @computed('data.sigmaDeltaInputs') get sigmaDeltaInputs() {\r\n if (!(this.data && this.data.sigmaDeltaInputs)) return {};\r\n else return cloneDeep(this.data.sigmaDeltaInputs);\r\n }\r\n\r\n @computed('data.adc') get adcs() {\r\n if (!this.data) return [];\r\n\r\n let i = 0;\r\n return Object.keys(this.data.adc).map((key) => this._mapAdc(++i, key));\r\n }\r\n\r\n @computed('data.driver') get drivers() {\r\n if (!this.data) return [];\r\n\r\n let i = 0;\r\n return Object.keys(this.data.driver).map((key) => this._mapDriver(++i, key));\r\n }\r\n\r\n @computed('data.mux') get muxParts() {\r\n if (!this.data) return [];\r\n\r\n let i = 0;\r\n return Object.keys(this.data.mux).map((key) => this._mapMux(++i, key));\r\n }\r\n\r\n _mapMux(id, key) {\r\n let mux = cloneDeep(this.data.mux[key]);\r\n mux.id = id;\r\n mux.part = key;\r\n mux.partCore = key;\r\n mux.datasheet = this.urlData.getDatasheetUrl(mux);\r\n\r\n return mux;\r\n }\r\n\r\n _mapDriver(id, key) {\r\n let driver = cloneDeep(this.data.driver[key]),\r\n intl = this.intl;\r\n\r\n driver.id = id;\r\n driver.part = key;\r\n driver.slewRateVus = Utils.roundTo(driver.slewRate / 1000000, 0);\r\n driver.IoutLimit = driver.IoutLinear || driver.IoutSC * 0.8;\r\n driver.basicToolNeeds = true;\r\n driver.timeDomainNeeds = true;\r\n driver.noiseSimulationNeeds = true;\r\n driver.thdSimulationNeeds = true;\r\n driver.invalidProperties = [];\r\n\r\n driver.selectable =\r\n (typeof driver.selectable == 'undefined' || driver.selectable) &&\r\n !this.variantData.currentItemHasVariant(driver.part);\r\n\r\n // Get formatted version of type (if this is a computed cell, it is not filtered correctly)\r\n let typeFormatted = '';\r\n switch (driver.type.toLowerCase()) {\r\n case 'amp':\r\n typeFormatted = intl.t('driver_types.amp').toString();\r\n break;\r\n case 'diffamp':\r\n typeFormatted = intl.t('driver_types.diffamp').toString();\r\n break;\r\n }\r\n driver.driverTypeFormatted = typeFormatted;\r\n\r\n this.variantData.generateVariantProperties(driver, this.data.driver, 'driver');\r\n driver.datasheet = this.urlData.getDatasheetUrl(driver);\r\n\r\n return driver;\r\n }\r\n\r\n _mapAdc(id, key) {\r\n let adc = cloneDeep(this.data.adc[key]),\r\n intl = this.intl;\r\n\r\n adc.id = id;\r\n adc.part = key;\r\n\r\n adc.selectable =\r\n (typeof adc.selectable === 'undefined' || adc.selectable) &&\r\n !this.variantData.currentItemHasVariant(adc.part);\r\n adc.inLTSpice = typeof adc.inLTSpice != 'undefined' && adc.inLTSpice;\r\n adc.fftLTSpice = typeof adc.FFTLTspice != 'undefined' && adc.FFTLTspice;\r\n adc.schematicTemplate = adc.schematicTemplate ? adc.schematicTemplate : 'AD40xx';\r\n adc.typeDisplay =\r\n adc.type === Consts.ADC_TYPE.SE\r\n ? intl.t('adc_type_display.single_ended').toString()\r\n : intl.t('adc_type_display.differential').toString();\r\n\r\n adc.samplingRate = adc.maxSampleRate;\r\n adc.vref = adc.vrefTest;\r\n adc.rext = adc.datasheetRfilt;\r\n adc.cext = adc.datasheetCfilt;\r\n\r\n adc.invalidData = false;\r\n\r\n adc.adcSnrLinear = Math.pow(10, adc.ADCSNR / 20);\r\n adc.adcNoisePtoP = (1 / adc.adcSnrLinear) * (adc.type === Consts.ADC_TYPE.SE ? adc.vrefTest : 2 * adc.vrefTest);\r\n adc.adcNoiseRms = adc.adcNoisePtoP / (2 * Math.sqrt(2));\r\n\r\n adc.recommendedDrivers = this.data.driversForADC[key] ? this.data.driversForADC[key] : [];\r\n\r\n this.variantData.generateVariantProperties(adc, this.data.adc);\r\n adc.datasheet = this.urlData.getDatasheetUrl(adc);\r\n\r\n return adc;\r\n }\r\n}\r\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Much of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// Many optimizations have been made, so the bundle size is ultimately smaller but performance is similar.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var u = ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([c], { type: 'text/javascript' })));\n var w = new Worker(u);\n w.onerror = function (e) { return cb(e.error, null); };\n w.onmessage = function (e) { return cb(null, e.data); };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new u32(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && 0xEDB88320) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = 0xFFFFFFFF;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return c ^ 0xFFFFFFFF; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/ /g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k] instanceof u8 || v[k] instanceof u16 || v[k] instanceof u32)\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, hMap, max, bits, bits16, shft, slc, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n if (!opts.consume)\n dat = new u8(dat);\n w.postMessage([dat, opts], [dat.buffer]);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (t)\n throw 'stream finished';\n if (!strm.ondata)\n throw 'no stream handler';\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16)) + (d[b + 3] << 23) * 2; };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n throw 'invalid gzip data';\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) + (2 * (d[l - 1] << 23));\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n return dopt(data, opts, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (this.d)\n throw 'stream finished';\n if (!this.ondata)\n throw 'no stream handler';\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) >> 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = gzs(this.p);\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n throw 'invalid gzip stream';\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n throw 'invalid zlib stream';\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n throw 'no stream handler';\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k;\n if (val instanceof u8)\n t[n] = [val, o];\n else if (Array.isArray(val))\n t[n] = [val[0], mrg(o, val[1])];\n else\n fltn(val, n + '/', t, o);\n }\n};\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n;\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl;\n var _a = z ? z64e(d, es) : [b4(d, b + 20), b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b4(d, b + 12), b4(d, b + 4), b4(d, b + 20)];\n};\n// write zip header\nvar wzh = function (d, b, c, cmp, su, fn, u, o, ce, t) {\n var fl = fn.length, l = cmp.length;\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b] = 20, b += 2;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (t == 8 && (o.level == 1 ? 6 : o.level < 6 ? 4 : o.level == 9 ? 2 : 0)), d[b++] = u && 8;\n d[b] = t, b += 2;\n var dt = new Date(o.mtime || Date.now()), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n throw 'date not in range 1980-2099';\n wbytes(d, b, ((y << 24) * 2) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1));\n b += 4;\n wbytes(d, b, c);\n wbytes(d, b + 4, l);\n wbytes(d, b + 8, su);\n wbytes(d, b + 12, fl), b += 16; // skip extra field, comment\n if (ce != null)\n wbytes(d, b += 10, ce), b += 4;\n d.set(fn, b);\n b += fl;\n if (ce == null)\n d.set(cmp, b);\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n throw 'no callback';\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n wzh(out, tot, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, tot, f.t), o += 46 + f.n.length, tot += 30 + f.n.length + f.d.length;\n }\n catch (e) {\n return cb(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cb(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), m = file.length;\n c.p(file);\n var n = strToU8(fn), s = n.length;\n var t = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n var l = d.length;\n files[i] = {\n t: t,\n d: d,\n m: m,\n c: c.d(),\n u: fn.length != l,\n n: n,\n p: p\n };\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n if (!--lft)\n cbf();\n }\n };\n if (n.length > 65535)\n cbl('filename too long', null);\n if (!t)\n cbl(null, file);\n else if (m < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var t = p.level == 0 ? 0 : 8;\n var n = strToU8(fn), s = n.length;\n if (n.length > 65535)\n throw 'filename too long';\n var d = t ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push({\n t: t,\n d: d,\n m: file.length,\n c: c.d(),\n u: fn.length != s,\n n: n,\n o: o,\n p: p\n });\n o += 30 + s + l;\n tot += 76 + 2 * s + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f.c, f.d, f.m, f.n, f.u, f.p, null, f.t);\n wzh(out, o, f.c, f.d, f.m, f.n, f.u, f.p, f.o, f.t), o += 46 + f.n.length;\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Asynchronously decompresses a ZIP archive\n * @param data The raw compressed ZIP file\n * @param cb The callback to call with the decompressed files\n * @returns A function that can be used to immediately terminate the unzipping\n */\nexport function unzip(data, cb) {\n if (typeof cb != 'function')\n throw 'no callback';\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cb('invalid zip file', null);\n return;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (!lft)\n cb(null, {});\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = lft = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n var _loop_2 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cb(e, null);\n }\n else {\n files[fn] = d;\n if (!--lft)\n cb(null, files);\n }\n };\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl('unknown compression type ' + c_1, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_2(i);\n }\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @returns The decompressed files\n */\nexport function unzipSync(data) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n throw 'invalid zip file';\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295;\n if (z) {\n e = b4(data, e - 12);\n if (b4(data, e) != 0x6064B50)\n throw 'invalid zip file';\n c = b4(data, e + 32);\n o = b4(data, e + 48);\n }\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n throw 'unknown compression type ' + c_2;\n }\n return files;\n}\n","export var globalObject = (function() {\n return \"undefined\" !== typeof window\n ? window\n : \"undefined\" !== typeof global\n ? global\n : \"undefined\" !== typeof self\n ? self\n : this;\n})();\n","import { globalObject } from \"./globalObject.js\";\n\nfunction consoleLog() {\n if (globalObject.console && typeof globalObject.console.log === \"function\") {\n globalObject.console.log.apply(globalObject.console, arguments);\n }\n}\n\nfunction consoleWarn(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.warn === \"function\") {\n globalObject.console.warn.apply(globalObject.console, arguments);\n } else {\n consoleLog.call(null, arguments);\n }\n }\n}\n\nfunction consoleError(str) {\n if (globalObject.console) {\n if (typeof globalObject.console.error === \"function\") {\n globalObject.console.error.apply(globalObject.console, arguments);\n } else {\n consoleLog(str);\n }\n }\n}\nexport var console = {\n log: consoleLog,\n warn: consoleWarn,\n error: consoleError\n};\n","/**\n * @license\n * FileSaver.js\n * A saveAs() FileSaver implementation.\n *\n * By Eli Grey, http://eligrey.com\n *\n * License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n * source : http://purl.eligrey.com/github/FileSaver.js\n */\n\nimport { globalObject as _global } from \"./globalObject.js\";\nimport { console } from \"./console.js\";\n\nfunction bom(blob, opts) {\n if (typeof opts === \"undefined\") opts = { autoBom: false };\n else if (typeof opts !== \"object\") {\n console.warn(\"Deprecated: Expected third argument to be a object\");\n opts = { autoBom: !opts };\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (\n opts.autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(\n blob.type\n )\n ) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\n\nfunction download(url, name, opts) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.onload = function() {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function() {\n console.error(\"could not download file\");\n };\n xhr.send();\n}\n\nfunction corsEnabled(url) {\n var xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open(\"HEAD\", url, false);\n try {\n xhr.send();\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299;\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent(\"click\"));\n } catch (e) {\n var evt = document.createEvent(\"MouseEvents\");\n evt.initMouseEvent(\n \"click\",\n true,\n true,\n window,\n 0,\n 0,\n 0,\n 80,\n 20,\n false,\n false,\n false,\n false,\n 0,\n null\n );\n node.dispatchEvent(evt);\n }\n}\n\nvar saveAs =\n _global.saveAs ||\n // probably in some web worker\n (typeof window !== \"object\" || window !== _global\n ? function saveAs() {\n /* noop */\n }\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a native app\n typeof HTMLAnchorElement !== \"undefined\" &&\n \"download\" in HTMLAnchorElement.prototype\n ? function saveAs(blob, name, opts) {\n var URL = _global.URL || _global.webkitURL;\n var a = document.createElement(\"a\");\n name = name || blob.name || \"download\";\n\n a.download = name;\n a.rel = \"noopener\"; // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === \"string\") {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, (a.target = \"_blank\"));\n } else {\n click(a);\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function() {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function() {\n click(a);\n }, 0);\n }\n }\n : // Use msSaveOrOpenBlob as a second approach\n \"msSaveOrOpenBlob\" in navigator\n ? function saveAs(blob, name, opts) {\n name = name || blob.name || \"download\";\n\n if (typeof blob === \"string\") {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n } else {\n var a = document.createElement(\"a\");\n a.href = blob;\n a.target = \"_blank\";\n setTimeout(function() {\n click(a);\n });\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n }\n : // Fallback to using FileReader and a popup\n function saveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open(\"\", \"_blank\");\n if (popup) {\n popup.document.title = popup.document.body.innerText =\n \"downloading...\";\n }\n\n if (typeof blob === \"string\") return download(blob, name, opts);\n\n var force = blob.type === \"application/octet-stream\";\n var isSafari =\n /constructor/i.test(_global.HTMLElement) || _global.safari;\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n\n if (\n (isChromeIOS || (force && isSafari)) &&\n typeof FileReader === \"object\"\n ) {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader();\n reader.onloadend = function() {\n var url = reader.result;\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, \"data:attachment/file;\");\n if (popup) popup.location.href = url;\n else location = url;\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n } else {\n var URL = _global.URL || _global.webkitURL;\n var url = URL.createObjectURL(blob);\n if (popup) popup.location = url;\n else location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function() {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n });\n\nexport { saveAs };\n","import { globalObject } from \"./globalObject.js\";\n\nvar atob, btoa;\n\n(function() {\n atob = globalObject.atob.bind(globalObject);\n btoa = globalObject.btoa.bind(globalObject);\n return;\n\n})();\n\nexport { atob, btoa };\n","/**\n * A class to parse color values\n * @author Stoyan Stefanov \n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */\n\nfunction RGBColor(color_string) {\n color_string = color_string || \"\";\n this.ok = false;\n\n // strip any leading #\n if (color_string.charAt(0) == \"#\") {\n // remove # if any\n color_string = color_string.substr(1, 6);\n }\n\n color_string = color_string.replace(/ /g, \"\");\n color_string = color_string.toLowerCase();\n\n var channels;\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"00ffff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000000\",\n blanchedalmond: \"ffebcd\",\n blue: \"0000ff\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"00ffff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dodgerblue: \"1e90ff\",\n feldspar: \"d19275\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"ff00ff\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgrey: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslateblue: \"8470ff\",\n lightslategray: \"778899\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"00ff00\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"ff00ff\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"d87093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n red: \"ff0000\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n violetred: \"d02090\",\n wheat: \"f5deb3\",\n white: \"ffffff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ffff00\",\n yellowgreen: \"9acd32\"\n };\n color_string = simple_colors[color_string] || color_string;\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: [\"rgb(123, 234, 45)\", \"rgb(255,234,245)\"],\n process: function(bits) {\n return [parseInt(bits[1]), parseInt(bits[2]), parseInt(bits[3])];\n }\n },\n {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n example: [\"#00ff00\", \"336699\"],\n process: function(bits) {\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n example: [\"#fb0\", \"f0f\"],\n process: function(bits) {\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n this.ok = true;\n }\n }\n\n // validate/cleanup values\n this.r = this.r < 0 || isNaN(this.r) ? 0 : this.r > 255 ? 255 : this.r;\n this.g = this.g < 0 || isNaN(this.g) ? 0 : this.g > 255 ? 255 : this.g;\n this.b = this.b < 0 || isNaN(this.b) ? 0 : this.b > 255 ? 255 : this.b;\n\n // some getters\n this.toRGB = function() {\n return \"rgb(\" + this.r + \", \" + this.g + \", \" + this.b + \")\";\n };\n this.toHex = function() {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = \"0\" + r;\n if (g.length == 1) g = \"0\" + g;\n if (b.length == 1) b = \"0\" + b;\n return \"#\" + r + g + b;\n };\n}\n\nexport { RGBColor };\n","/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\n\nfunction md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a = ff(a, b, c, d, k[0], 7, -680876936);\n d = ff(d, a, b, c, k[1], 12, -389564586);\n c = ff(c, d, a, b, k[2], 17, 606105819);\n b = ff(b, c, d, a, k[3], 22, -1044525330);\n a = ff(a, b, c, d, k[4], 7, -176418897);\n d = ff(d, a, b, c, k[5], 12, 1200080426);\n c = ff(c, d, a, b, k[6], 17, -1473231341);\n b = ff(b, c, d, a, k[7], 22, -45705983);\n a = ff(a, b, c, d, k[8], 7, 1770035416);\n d = ff(d, a, b, c, k[9], 12, -1958414417);\n c = ff(c, d, a, b, k[10], 17, -42063);\n b = ff(b, c, d, a, k[11], 22, -1990404162);\n a = ff(a, b, c, d, k[12], 7, 1804603682);\n d = ff(d, a, b, c, k[13], 12, -40341101);\n c = ff(c, d, a, b, k[14], 17, -1502002290);\n b = ff(b, c, d, a, k[15], 22, 1236535329);\n\n a = gg(a, b, c, d, k[1], 5, -165796510);\n d = gg(d, a, b, c, k[6], 9, -1069501632);\n c = gg(c, d, a, b, k[11], 14, 643717713);\n b = gg(b, c, d, a, k[0], 20, -373897302);\n a = gg(a, b, c, d, k[5], 5, -701558691);\n d = gg(d, a, b, c, k[10], 9, 38016083);\n c = gg(c, d, a, b, k[15], 14, -660478335);\n b = gg(b, c, d, a, k[4], 20, -405537848);\n a = gg(a, b, c, d, k[9], 5, 568446438);\n d = gg(d, a, b, c, k[14], 9, -1019803690);\n c = gg(c, d, a, b, k[3], 14, -187363961);\n b = gg(b, c, d, a, k[8], 20, 1163531501);\n a = gg(a, b, c, d, k[13], 5, -1444681467);\n d = gg(d, a, b, c, k[2], 9, -51403784);\n c = gg(c, d, a, b, k[7], 14, 1735328473);\n b = gg(b, c, d, a, k[12], 20, -1926607734);\n\n a = hh(a, b, c, d, k[5], 4, -378558);\n d = hh(d, a, b, c, k[8], 11, -2022574463);\n c = hh(c, d, a, b, k[11], 16, 1839030562);\n b = hh(b, c, d, a, k[14], 23, -35309556);\n a = hh(a, b, c, d, k[1], 4, -1530992060);\n d = hh(d, a, b, c, k[4], 11, 1272893353);\n c = hh(c, d, a, b, k[7], 16, -155497632);\n b = hh(b, c, d, a, k[10], 23, -1094730640);\n a = hh(a, b, c, d, k[13], 4, 681279174);\n d = hh(d, a, b, c, k[0], 11, -358537222);\n c = hh(c, d, a, b, k[3], 16, -722521979);\n b = hh(b, c, d, a, k[6], 23, 76029189);\n a = hh(a, b, c, d, k[9], 4, -640364487);\n d = hh(d, a, b, c, k[12], 11, -421815835);\n c = hh(c, d, a, b, k[15], 16, 530742520);\n b = hh(b, c, d, a, k[2], 23, -995338651);\n\n a = ii(a, b, c, d, k[0], 6, -198630844);\n d = ii(d, a, b, c, k[7], 10, 1126891415);\n c = ii(c, d, a, b, k[14], 15, -1416354905);\n b = ii(b, c, d, a, k[5], 21, -57434055);\n a = ii(a, b, c, d, k[12], 6, 1700485571);\n d = ii(d, a, b, c, k[3], 10, -1894986606);\n c = ii(c, d, a, b, k[10], 15, -1051523);\n b = ii(b, c, d, a, k[1], 21, -2054922799);\n a = ii(a, b, c, d, k[8], 6, 1873313359);\n d = ii(d, a, b, c, k[15], 10, -30611744);\n c = ii(c, d, a, b, k[6], 15, -1560198380);\n b = ii(b, c, d, a, k[13], 21, 1309151649);\n a = ii(a, b, c, d, k[4], 6, -145523070);\n d = ii(d, a, b, c, k[11], 10, -1120210379);\n c = ii(c, d, a, b, k[2], 15, 718787259);\n b = ii(b, c, d, a, k[9], 21, -343485551);\n\n x[0] = add32(a, x[0]);\n x[1] = add32(b, x[1]);\n x[2] = add32(c, x[2]);\n x[3] = add32(d, x[3]);\n}\n\nfunction cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nfunction md51(s) {\n // txt = '';\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i;\n for (i = 64; i <= s.length; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++)\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n tail[i >> 2] |= 0x80 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i++) tail[i] = 0;\n }\n tail[14] = n * 8;\n md5cycle(state, tail);\n return state;\n}\n\n/* there needs to be support for Unicode here,\n * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps\n * by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise\n * I suggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then\n * how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something\n * like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard\n * itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8\n * 8-bit unsigned value arrays.\n */\nfunction md5blk(s) {\n /* I figured global was faster. */\n var md5blks = [],\n i; /* Andy King said do it this way. */\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] =\n s.charCodeAt(i) +\n (s.charCodeAt(i + 1) << 8) +\n (s.charCodeAt(i + 2) << 16) +\n (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n}\n\nvar hex_chr = \"0123456789abcdef\".split(\"\");\n\nfunction rhex(n) {\n var s = \"\",\n j = 0;\n for (; j < 4; j++)\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0f] + hex_chr[(n >> (j * 8)) & 0x0f];\n return s;\n}\n\nfunction hex(x) {\n for (var i = 0; i < x.length; i++) x[i] = rhex(x[i]);\n return x.join(\"\");\n}\n\n// Converts a 4-byte number to byte string\nfunction singleToByteString(n) {\n return String.fromCharCode(\n (n & 0xff) >> 0,\n (n & 0xff00) >> 8,\n (n & 0xff0000) >> 16,\n (n & 0xff000000) >> 24\n );\n}\n\n// Converts an array of numbers to a byte string\nfunction toByteString(x) {\n return x.map(singleToByteString).join(\"\");\n}\n\n// Returns the MD5 hash as a byte string\nfunction md5Bin(s) {\n return toByteString(md51(s));\n}\n\n// Returns MD5 hash as a hex string\nfunction md5(s) {\n return hex(md51(s));\n}\n\nvar md5Check = md5(\"hello\") != \"5d41402abc4b2a76b9719d911017c592\";\n\nfunction add32(a, b) {\n if (md5Check) {\n /* if the md5Check does not match\n the expected value, we're dealing\n with an old browser and need\n this function. */\n var lsw = (a & 0xffff) + (b & 0xffff),\n msw = (a >> 16) + (b >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xffff);\n } else {\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n return (a + b) & 0xffffffff;\n }\n}\n\nexport { md5, md5Bin };\n","/**\r\n * @license\r\n * FPDF is released under a permissive license: there is no usage restriction.\r\n * You may embed it freely in your application (commercial or not), with or\r\n * without modifications.\r\n *\r\n * Reference: http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nfunction repeat(str, num) {\r\n return new Array(num + 1).join(str);\r\n}\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name rc4\r\n * @function\r\n * @param {string} key Byte string of encryption key\r\n * @param {string} data Byte string of data to be encrypted\r\n * @returns {string} Encrypted string\r\n */\r\nfunction rc4(key, data) {\r\n var lastKey, lastState;\r\n if (key !== lastKey) {\r\n var k = repeat(key, ((256 / key.length) >> 0) + 1);\r\n var state = [];\r\n for (var i = 0; i < 256; i++) {\r\n state[i] = i;\r\n }\r\n var j = 0;\r\n for (var i = 0; i < 256; i++) {\r\n var t = state[i];\r\n j = (j + t + k.charCodeAt(i)) % 256;\r\n state[i] = state[j];\r\n state[j] = t;\r\n }\r\n lastKey = key;\r\n lastState = state;\r\n } else {\r\n state = lastState;\r\n }\r\n var length = data.length;\r\n var a = 0;\r\n var b = 0;\r\n var out = \"\";\r\n for (var i = 0; i < length; i++) {\r\n a = (a + 1) % 256;\r\n t = state[a];\r\n b = (b + t) % 256;\r\n state[a] = state[b];\r\n state[b] = t;\r\n k = state[(state[a] + state[b]) % 256];\r\n out += String.fromCharCode(data.charCodeAt(i) ^ k);\r\n }\r\n return out;\r\n}\r\n\r\nexport { rc4 };\r\n","/**\r\n * @license\r\n * Licensed under the MIT License.\r\n * http://opensource.org/licenses/mit-license\r\n * Author: Owen Leong (@owenl131)\r\n * Date: 15 Oct 2020\r\n * References:\r\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\r\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\r\n * http://www.fpdf.org/en/script/script37.php\r\n */\r\n\r\nimport { md5Bin } from \"./md5.js\";\r\nimport { rc4 } from \"./rc4.js\";\r\n\r\nvar permissionOptions = {\r\n print: 4,\r\n modify: 8,\r\n copy: 16,\r\n \"annot-forms\": 32\r\n};\r\n\r\n/**\r\n * Initializes encryption settings\r\n *\r\n * @name constructor\r\n * @function\r\n * @param {Array} permissions Permissions allowed for user, \"print\", \"modify\", \"copy\" and \"annot-forms\".\r\n * @param {String} userPassword Permissions apply to this user. Leaving this empty means the document\r\n * is not password protected but viewer has the above permissions.\r\n * @param {String} ownerPassword Owner has full functionalities to the file.\r\n * @param {String} fileId As hex string, should be same as the file ID in the trailer.\r\n * @example\r\n * var security = new PDFSecurity([\"print\"])\r\n */\r\nfunction PDFSecurity(permissions, userPassword, ownerPassword, fileId) {\r\n this.v = 1; // algorithm 1, future work can add in more recent encryption schemes\r\n this.r = 2; // revision 2\r\n\r\n // set flags for what functionalities the user can access\r\n let protection = 192;\r\n permissions.forEach(function(perm) {\r\n if (typeof permissionOptions.perm !== \"undefined\") {\r\n throw new Error(\"Invalid permission: \" + perm);\r\n }\r\n protection += permissionOptions[perm];\r\n });\r\n\r\n // padding is used to pad the passwords to 32 bytes, also is hashed and stored in the final PDF\r\n this.padding =\r\n \"\\x28\\xBF\\x4E\\x5E\\x4E\\x75\\x8A\\x41\\x64\\x00\\x4E\\x56\\xFF\\xFA\\x01\\x08\" +\r\n \"\\x2E\\x2E\\x00\\xB6\\xD0\\x68\\x3E\\x80\\x2F\\x0C\\xA9\\xFE\\x64\\x53\\x69\\x7A\";\r\n let paddedUserPassword = (userPassword + this.padding).substr(0, 32);\r\n let paddedOwnerPassword = (ownerPassword + this.padding).substr(0, 32);\r\n\r\n this.O = this.processOwnerPassword(paddedUserPassword, paddedOwnerPassword);\r\n this.P = -((protection ^ 255) + 1);\r\n this.encryptionKey = md5Bin(\r\n paddedUserPassword +\r\n this.O +\r\n this.lsbFirstWord(this.P) +\r\n this.hexToBytes(fileId)\r\n ).substr(0, 5);\r\n this.U = rc4(this.encryptionKey, this.padding);\r\n}\r\n\r\n/**\r\n * Breaks down a 4-byte number into its individual bytes, with the least significant bit first\r\n *\r\n * @name lsbFirstWord\r\n * @function\r\n * @param {number} data 32-bit number\r\n * @returns {Array}\r\n */\r\nPDFSecurity.prototype.lsbFirstWord = function(data) {\r\n return String.fromCharCode(\r\n (data >> 0) & 0xff,\r\n (data >> 8) & 0xff,\r\n (data >> 16) & 0xff,\r\n (data >> 24) & 0xff\r\n );\r\n};\r\n\r\n/**\r\n * Converts a byte string to a hex string\r\n *\r\n * @name toHexString\r\n * @function\r\n * @param {String} byteString Byte string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.toHexString = function(byteString) {\r\n return byteString\r\n .split(\"\")\r\n .map(function(byte) {\r\n return (\"0\" + (byte.charCodeAt(0) & 0xff).toString(16)).slice(-2);\r\n })\r\n .join(\"\");\r\n};\r\n\r\n/**\r\n * Converts a hex string to a byte string\r\n *\r\n * @name hexToBytes\r\n * @function\r\n * @param {String} hex Hex string\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.hexToBytes = function(hex) {\r\n for (var bytes = [], c = 0; c < hex.length; c += 2)\r\n bytes.push(String.fromCharCode(parseInt(hex.substr(c, 2), 16)));\r\n return bytes.join(\"\");\r\n};\r\n\r\n/**\r\n * Computes the 'O' field in the encryption dictionary\r\n *\r\n * @name processOwnerPassword\r\n * @function\r\n * @param {String} paddedUserPassword Byte string of padded user password\r\n * @param {String} paddedOwnerPassword Byte string of padded owner password\r\n * @returns {String}\r\n */\r\nPDFSecurity.prototype.processOwnerPassword = function(\r\n paddedUserPassword,\r\n paddedOwnerPassword\r\n) {\r\n let key = md5Bin(paddedOwnerPassword).substr(0, 5);\r\n return rc4(key, paddedUserPassword);\r\n};\r\n\r\n/**\r\n * Returns an encryptor function which can take in a byte string and returns the encrypted version\r\n *\r\n * @name encryptor\r\n * @function\r\n * @param {number} objectId\r\n * @param {number} generation Not sure what this is for, you can set it to 0\r\n * @returns {Function}\r\n * @example\r\n * out(\"stream\");\r\n * encryptor = security.encryptor(object.id, 0);\r\n * out(encryptor(data));\r\n * out(\"endstream\");\r\n */\r\nPDFSecurity.prototype.encryptor = function(objectId, generation) {\r\n let key = md5Bin(\r\n this.encryptionKey +\r\n String.fromCharCode(\r\n objectId & 0xff,\r\n (objectId >> 8) & 0xff,\r\n (objectId >> 16) & 0xff,\r\n generation & 0xff,\r\n (generation >> 8) & 0xff\r\n )\r\n ).substr(0, 10);\r\n return function(data) {\r\n return rc4(key, data);\r\n };\r\n};\r\n\r\nexport { PDFSecurity };\r\n","/**\n * Convert string to `PDF Name Object`.\n * Detail: PDF Reference 1.3 - Chapter 3.2.4 Name Object\n * @param str\n */\nfunction toPDFName(str) {\n // eslint-disable-next-line no-control-regex\n if (/[^\\u0000-\\u00ff]/.test(str)) {\n // non ascii string\n throw new Error(\n \"Invalid PDF Name Object: \" + str + \", Only accept ASCII characters.\"\n );\n }\n var result = \"\",\n strLength = str.length;\n for (var i = 0; i < strLength; i++) {\n var charCode = str.charCodeAt(i);\n if (\n charCode < 0x21 ||\n charCode === 0x23 /* # */ ||\n charCode === 0x25 /* % */ ||\n charCode === 0x28 /* ( */ ||\n charCode === 0x29 /* ) */ ||\n charCode === 0x2f /* / */ ||\n charCode === 0x3c /* < */ ||\n charCode === 0x3e /* > */ ||\n charCode === 0x5b /* [ */ ||\n charCode === 0x5d /* ] */ ||\n charCode === 0x7b /* { */ ||\n charCode === 0x7d /* } */ ||\n charCode > 0x7e\n ) {\n // Char CharCode hexStr paddingHexStr Result\n // \"\\t\" 9 9 09 #09\n // \" \" 32 20 20 #20\n // \"©\" 169 a9 a9 #a9\n var hexStr = charCode.toString(16),\n paddingHexStr = (\"0\" + hexStr).slice(-2);\n\n result += \"#\" + paddingHexStr;\n } else {\n // Other ASCII printable characters between 0x21 <= X <= 0x7e\n result += str[i];\n }\n }\n return result;\n}\n\nexport { toPDFName };\n","/* eslint-disable no-console */\r\n\r\nimport { saveAs } from \"./libs/FileSaver.js\";\r\nimport { globalObject } from \"./libs/globalObject.js\";\r\nimport { RGBColor } from \"./libs/rgbcolor.js\";\r\nimport { btoa } from \"./libs/AtobBtoa.js\";\r\nimport { console } from \"./libs/console.js\";\r\nimport { PDFSecurity } from \"./libs/pdfsecurity.js\";\r\nimport { toPDFName } from \"./libs/pdfname.js\";\r\n/**\r\n * jsPDF's Internal PubSub Implementation.\r\n * Backward compatible rewritten on 2014 by\r\n * Diego Casorran, https://github.com/diegocr\r\n *\r\n * @class\r\n * @name PubSub\r\n * @ignore\r\n */\r\nfunction PubSub(context) {\r\n if (typeof context !== \"object\") {\r\n throw new Error(\r\n \"Invalid Context passed to initialize PubSub (jsPDF-module)\"\r\n );\r\n }\r\n var topics = {};\r\n\r\n this.subscribe = function(topic, callback, once) {\r\n once = once || false;\r\n if (\r\n typeof topic !== \"string\" ||\r\n typeof callback !== \"function\" ||\r\n typeof once !== \"boolean\"\r\n ) {\r\n throw new Error(\r\n \"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\"\r\n );\r\n }\r\n\r\n if (!topics.hasOwnProperty(topic)) {\r\n topics[topic] = {};\r\n }\r\n\r\n var token = Math.random().toString(35);\r\n topics[topic][token] = [callback, !!once];\r\n\r\n return token;\r\n };\r\n\r\n this.unsubscribe = function(token) {\r\n for (var topic in topics) {\r\n if (topics[topic][token]) {\r\n delete topics[topic][token];\r\n if (Object.keys(topics[topic]).length === 0) {\r\n delete topics[topic];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n this.publish = function(topic) {\r\n if (topics.hasOwnProperty(topic)) {\r\n var args = Array.prototype.slice.call(arguments, 1),\r\n tokens = [];\r\n\r\n for (var token in topics[topic]) {\r\n var sub = topics[topic][token];\r\n try {\r\n sub[0].apply(context, args);\r\n } catch (ex) {\r\n if (globalObject.console) {\r\n console.error(\"jsPDF PubSub Error\", ex.message, ex);\r\n }\r\n }\r\n if (sub[1]) tokens.push(token);\r\n }\r\n if (tokens.length) tokens.forEach(this.unsubscribe);\r\n }\r\n };\r\n\r\n this.getTopics = function() {\r\n return topics;\r\n };\r\n}\r\n\r\nfunction GState(parameters) {\r\n if (!(this instanceof GState)) {\r\n return new GState(parameters);\r\n }\r\n\r\n /**\r\n * @name GState#opacity\r\n * @type {any}\r\n */\r\n /**\r\n * @name GState#stroke-opacity\r\n * @type {any}\r\n */\r\n var supported = \"opacity,stroke-opacity\".split(\",\");\r\n for (var p in parameters) {\r\n if (parameters.hasOwnProperty(p) && supported.indexOf(p) >= 0) {\r\n this[p] = parameters[p];\r\n }\r\n }\r\n /**\r\n * @name GState#id\r\n * @type {string}\r\n */\r\n this.id = \"\"; // set by addGState()\r\n /**\r\n * @name GState#objectNumber\r\n * @type {number}\r\n */\r\n this.objectNumber = -1; // will be set by putGState()\r\n}\r\n\r\nGState.prototype.equals = function equals(other) {\r\n var ignore = \"id,objectNumber,equals\";\r\n var p;\r\n if (!other || typeof other !== typeof this) return false;\r\n var count = 0;\r\n for (p in this) {\r\n if (ignore.indexOf(p) >= 0) continue;\r\n if (this.hasOwnProperty(p) && !other.hasOwnProperty(p)) return false;\r\n if (this[p] !== other[p]) return false;\r\n count++;\r\n }\r\n for (p in other) {\r\n if (other.hasOwnProperty(p) && ignore.indexOf(p) < 0) count--;\r\n }\r\n return count === 0;\r\n};\r\n\r\nfunction Pattern(gState, matrix) {\r\n this.gState = gState;\r\n this.matrix = matrix;\r\n\r\n this.id = \"\"; // set by addPattern()\r\n this.objectNumber = -1; // will be set by putPattern()\r\n}\r\n\r\nfunction ShadingPattern(type, coords, colors, gState, matrix) {\r\n if (!(this instanceof ShadingPattern)) {\r\n return new ShadingPattern(type, coords, colors, gState, matrix);\r\n }\r\n\r\n // see putPattern() for information how they are realized\r\n this.type = type === \"axial\" ? 2 : 3;\r\n this.coords = coords;\r\n this.colors = colors;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\nfunction TilingPattern(boundingBox, xStep, yStep, gState, matrix) {\r\n if (!(this instanceof TilingPattern)) {\r\n return new TilingPattern(boundingBox, xStep, yStep, gState, matrix);\r\n }\r\n\r\n this.boundingBox = boundingBox;\r\n this.xStep = xStep;\r\n this.yStep = yStep;\r\n\r\n this.stream = \"\"; // set by endTilingPattern();\r\n\r\n this.cloneIndex = 0;\r\n\r\n Pattern.call(this, gState, matrix);\r\n}\r\n\r\n/**\r\n * Creates new jsPDF document object instance.\r\n * @name jsPDF\r\n * @class\r\n * @param {Object} [options] - Collection of settings initializing the jsPDF-instance\r\n * @param {string} [options.orientation=portrait] - Orientation of the first page. Possible values are \"portrait\" or \"landscape\" (or shortcuts \"p\" or \"l\").
\r\n * @param {string} [options.unit=mm] Measurement unit (base unit) to be used when coordinates are specified.
\r\n * Possible values are \"pt\" (points), \"mm\", \"cm\", \"in\", \"px\", \"pc\", \"em\" or \"ex\". Note that in order to get the correct scaling for \"px\"\r\n * units, you need to enable the hotfix \"px_scaling\" by setting options.hotfixes = [\"px_scaling\"].\r\n * @param {string/Array} [options.format=a4] The format of the first 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 {boolean} [options.putOnlyUsedFonts=false] Only put fonts into the PDF, which were used.\r\n * @param {boolean} [options.compress=false] Compress the generated PDF.\r\n * @param {number} [options.precision=16] Precision of the element-positions.\r\n * @param {number} [options.userUnit=1.0] Not to be confused with the base unit. Please inform yourself before you use it.\r\n * @param {string[]} [options.hotfixes] An array of strings to enable hotfixes such as correct pixel scaling.\r\n * @param {Object} [options.encryption]\r\n * @param {string} [options.encryption.userPassword] Password for the user bound by the given permissions list.\r\n * @param {string} [options.encryption.ownerPassword] Both userPassword and ownerPassword should be set for proper authentication.\r\n * @param {string[]} [options.encryption.userPermissions] Array of permissions \"print\", \"modify\", \"copy\", \"annot-forms\", accessible by the user.\r\n * @param {number|\"smart\"} [options.floatPrecision=16]\r\n * @returns {jsPDF} jsPDF-instance\r\n * @description\r\n * ```\r\n * {\r\n * orientation: 'p',\r\n * unit: 'mm',\r\n * format: 'a4',\r\n * putOnlyUsedFonts:true,\r\n * floatPrecision: 16 // or \"smart\", default is 16\r\n * }\r\n * ```\r\n *\r\n * @constructor\r\n */\r\nfunction jsPDF(options) {\r\n var orientation = typeof arguments[0] === \"string\" ? arguments[0] : \"p\";\r\n var unit = arguments[1];\r\n var format = arguments[2];\r\n var compressPdf = arguments[3];\r\n var filters = [];\r\n var userUnit = 1.0;\r\n var precision;\r\n var floatPrecision = 16;\r\n var defaultPathOperation = \"S\";\r\n var encryptionOptions = null;\r\n\r\n options = options || {};\r\n\r\n if (typeof options === \"object\") {\r\n orientation = options.orientation;\r\n unit = options.unit || unit;\r\n format = options.format || format;\r\n compressPdf = options.compress || options.compressPdf || compressPdf;\r\n encryptionOptions = options.encryption || null;\r\n if (encryptionOptions !== null) {\r\n encryptionOptions.userPassword = encryptionOptions.userPassword || \"\";\r\n encryptionOptions.ownerPassword = encryptionOptions.ownerPassword || \"\";\r\n encryptionOptions.userPermissions =\r\n encryptionOptions.userPermissions || [];\r\n }\r\n userUnit =\r\n typeof options.userUnit === \"number\" ? Math.abs(options.userUnit) : 1.0;\r\n if (typeof options.precision !== \"undefined\") {\r\n precision = options.precision;\r\n }\r\n if (typeof options.floatPrecision !== \"undefined\") {\r\n floatPrecision = options.floatPrecision;\r\n }\r\n defaultPathOperation = options.defaultPathOperation || \"S\";\r\n }\r\n\r\n filters =\r\n options.filters || (compressPdf === true ? [\"FlateEncode\"] : filters);\r\n\r\n unit = unit || \"mm\";\r\n orientation = (\"\" + (orientation || \"P\")).toLowerCase();\r\n var putOnlyUsedFonts = options.putOnlyUsedFonts || false;\r\n var usedFonts = {};\r\n\r\n var API = {\r\n internal: {},\r\n __private__: {}\r\n };\r\n\r\n API.__private__.PubSub = PubSub;\r\n\r\n var pdfVersion = \"1.3\";\r\n var getPdfVersion = (API.__private__.getPdfVersion = function() {\r\n return pdfVersion;\r\n });\r\n\r\n API.__private__.setPdfVersion = function(value) {\r\n pdfVersion = value;\r\n };\r\n\r\n // Size in pt of various paper formats\r\n var pageFormats = {\r\n a0: [2383.94, 3370.39],\r\n a1: [1683.78, 2383.94],\r\n a2: [1190.55, 1683.78],\r\n a3: [841.89, 1190.55],\r\n a4: [595.28, 841.89],\r\n a5: [419.53, 595.28],\r\n a6: [297.64, 419.53],\r\n a7: [209.76, 297.64],\r\n a8: [147.4, 209.76],\r\n a9: [104.88, 147.4],\r\n a10: [73.7, 104.88],\r\n b0: [2834.65, 4008.19],\r\n b1: [2004.09, 2834.65],\r\n b2: [1417.32, 2004.09],\r\n b3: [1000.63, 1417.32],\r\n b4: [708.66, 1000.63],\r\n b5: [498.9, 708.66],\r\n b6: [354.33, 498.9],\r\n b7: [249.45, 354.33],\r\n b8: [175.75, 249.45],\r\n b9: [124.72, 175.75],\r\n b10: [87.87, 124.72],\r\n c0: [2599.37, 3676.54],\r\n c1: [1836.85, 2599.37],\r\n c2: [1298.27, 1836.85],\r\n c3: [918.43, 1298.27],\r\n c4: [649.13, 918.43],\r\n c5: [459.21, 649.13],\r\n c6: [323.15, 459.21],\r\n c7: [229.61, 323.15],\r\n c8: [161.57, 229.61],\r\n c9: [113.39, 161.57],\r\n c10: [79.37, 113.39],\r\n dl: [311.81, 623.62],\r\n letter: [612, 792],\r\n \"government-letter\": [576, 756],\r\n legal: [612, 1008],\r\n \"junior-legal\": [576, 360],\r\n ledger: [1224, 792],\r\n tabloid: [792, 1224],\r\n \"credit-card\": [153, 243]\r\n };\r\n\r\n API.__private__.getPageFormats = function() {\r\n return pageFormats;\r\n };\r\n\r\n var getPageFormat = (API.__private__.getPageFormat = function(value) {\r\n return pageFormats[value];\r\n });\r\n\r\n format = format || \"a4\";\r\n\r\n var ApiMode = {\r\n COMPAT: \"compat\",\r\n ADVANCED: \"advanced\"\r\n };\r\n var apiMode = ApiMode.COMPAT;\r\n\r\n function advancedAPI() {\r\n // prepend global change of basis matrix\r\n // (Now, instead of converting every coordinate to the pdf coordinate system, we apply a matrix\r\n // that does this job for us (however, texts, images and similar objects must be drawn bottom up))\r\n this.saveGraphicsState();\r\n out(\r\n new Matrix(\r\n scaleFactor,\r\n 0,\r\n 0,\r\n -scaleFactor,\r\n 0,\r\n getPageHeight() * scaleFactor\r\n ).toString() + \" cm\"\r\n );\r\n this.setFontSize(this.getFontSize() / scaleFactor);\r\n\r\n // The default in MrRio's implementation is \"S\" (stroke), whereas the default in the yWorks implementation\r\n // was \"n\" (none). Although this has nothing to do with transforms, we should use the API switch here.\r\n defaultPathOperation = \"n\";\r\n\r\n apiMode = ApiMode.ADVANCED;\r\n }\r\n\r\n function compatAPI() {\r\n this.restoreGraphicsState();\r\n defaultPathOperation = \"S\";\r\n apiMode = ApiMode.COMPAT;\r\n }\r\n\r\n /**\r\n * @function combineFontStyleAndFontWeight\r\n * @param {string} fontStyle Fontstyle or variant. Example: \"italic\".\r\n * @param {number | string} fontWeight Weight of the Font. Example: \"normal\" | 400\r\n * @returns {string}\r\n * @private\r\n */\r\n var combineFontStyleAndFontWeight = (API.__private__.combineFontStyleAndFontWeight = function(\r\n fontStyle,\r\n fontWeight\r\n ) {\r\n if (\r\n (fontStyle == \"bold\" && fontWeight == \"normal\") ||\r\n (fontStyle == \"bold\" && fontWeight == 400) ||\r\n (fontStyle == \"normal\" && fontWeight == \"italic\") ||\r\n (fontStyle == \"bold\" && fontWeight == \"italic\")\r\n ) {\r\n throw new Error(\"Invalid Combination of fontweight and fontstyle\");\r\n }\r\n if (fontWeight) {\r\n fontStyle =\r\n fontWeight == 400 || fontWeight === \"normal\"\r\n ? fontStyle === \"italic\"\r\n ? \"italic\"\r\n : \"normal\"\r\n : (fontWeight == 700 || fontWeight === \"bold\") &&\r\n fontStyle === \"normal\"\r\n ? \"bold\"\r\n : (fontWeight == 700 ? \"bold\" : fontWeight) + \"\" + fontStyle;\r\n }\r\n return fontStyle;\r\n });\r\n\r\n /**\r\n * @callback ApiSwitchBody\r\n * @param {jsPDF} pdf\r\n */\r\n\r\n /**\r\n * For compatibility reasons jsPDF offers two API modes which differ in the way they convert between the the usual\r\n * screen coordinates and the PDF coordinate system.\r\n * - \"compat\": Offers full compatibility across all plugins but does not allow arbitrary transforms\r\n * - \"advanced\": Allows arbitrary transforms and more advanced features like pattern fills. Some plugins might\r\n * not support this mode, though.\r\n * Initial mode is \"compat\".\r\n *\r\n * You can either provide a callback to the body argument, which means that jsPDF will automatically switch back to\r\n * the original API mode afterwards; or you can omit the callback and switch back manually using {@link compatAPI}.\r\n *\r\n * Note, that the calls to {@link saveGraphicsState} and {@link restoreGraphicsState} need to be balanced within the\r\n * callback or between calls of this method and its counterpart {@link compatAPI}. Calls to {@link beginFormObject}\r\n * or {@link beginTilingPattern} need to be closed by their counterparts before switching back to \"compat\" API mode.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name advancedAPI\r\n */\r\n API.advancedAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.COMPAT;\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Switches to \"compat\" API mode. See {@link advancedAPI} for more details.\r\n *\r\n * @param {ApiSwitchBody=} body When provided, this callback will be called after the API mode has been switched.\r\n * The API mode will be switched back automatically afterwards.\r\n * @return {jsPDF}\r\n * @memberof jsPDF#\r\n * @name compatApi\r\n */\r\n API.compatAPI = function(body) {\r\n var doSwitch = apiMode === ApiMode.ADVANCED;\r\n\r\n if (doSwitch) {\r\n compatAPI.call(this);\r\n }\r\n\r\n if (typeof body !== \"function\") {\r\n return this;\r\n }\r\n\r\n body(this);\r\n\r\n if (doSwitch) {\r\n advancedAPI.call(this);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * @return {boolean} True iff the current API mode is \"advanced\". See {@link advancedAPI}.\r\n * @memberof jsPDF#\r\n * @name isAdvancedAPI\r\n */\r\n API.isAdvancedAPI = function() {\r\n return apiMode === ApiMode.ADVANCED;\r\n };\r\n\r\n var advancedApiModeTrap = function(methodName) {\r\n if (apiMode !== ApiMode.ADVANCED) {\r\n throw new Error(\r\n methodName +\r\n \" is only available in 'advanced' API mode. \" +\r\n \"You need to call advancedAPI() first.\"\r\n );\r\n }\r\n };\r\n\r\n var roundToPrecision = (API.roundToPrecision = API.__private__.roundToPrecision = function(\r\n number,\r\n parmPrecision\r\n ) {\r\n var tmpPrecision = precision || parmPrecision;\r\n if (isNaN(number) || isNaN(tmpPrecision)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");\r\n }\r\n return number.toFixed(tmpPrecision).replace(/0+$/, \"\");\r\n });\r\n\r\n // high precision float\r\n var hpf;\r\n if (typeof floatPrecision === \"number\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, floatPrecision);\r\n };\r\n } else if (floatPrecision === \"smart\") {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n if (number > -1 && number < 1) {\r\n return roundToPrecision(number, 16);\r\n } else {\r\n return roundToPrecision(number, 5);\r\n }\r\n };\r\n } else {\r\n hpf = API.hpf = API.__private__.hpf = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.hpf\");\r\n }\r\n return roundToPrecision(number, 16);\r\n };\r\n }\r\n var f2 = (API.f2 = API.__private__.f2 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f2\");\r\n }\r\n return roundToPrecision(number, 2);\r\n });\r\n\r\n var f3 = (API.__private__.f3 = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.f3\");\r\n }\r\n return roundToPrecision(number, 3);\r\n });\r\n\r\n var scale = (API.scale = API.__private__.scale = function(number) {\r\n if (isNaN(number)) {\r\n throw new Error(\"Invalid argument passed to jsPDF.scale\");\r\n }\r\n if (apiMode === ApiMode.COMPAT) {\r\n return number * scaleFactor;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return number;\r\n }\r\n });\r\n\r\n var transformY = function(y) {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return getPageHeight() - y;\r\n } else if (apiMode === ApiMode.ADVANCED) {\r\n return y;\r\n }\r\n };\r\n\r\n var transformScaleY = function(y) {\r\n return scale(transformY(y));\r\n };\r\n\r\n /**\r\n * @name setPrecision\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} precision\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setPrecision = API.setPrecision = function(value) {\r\n if (typeof parseInt(value, 10) === \"number\") {\r\n precision = parseInt(value, 10);\r\n }\r\n };\r\n\r\n var fileId = \"00000000000000000000000000000000\";\r\n\r\n var getFileId = (API.__private__.getFileId = function() {\r\n return fileId;\r\n });\r\n\r\n var setFileId = (API.__private__.setFileId = function(value) {\r\n if (typeof value !== \"undefined\" && /^[a-fA-F0-9]{32}$/.test(value)) {\r\n fileId = value.toUpperCase();\r\n } else {\r\n fileId = fileId\r\n .split(\"\")\r\n .map(function() {\r\n return \"ABCDEF0123456789\".charAt(Math.floor(Math.random() * 16));\r\n })\r\n .join(\"\");\r\n }\r\n\r\n if (encryptionOptions !== null) {\r\n encryption = new PDFSecurity(\r\n encryptionOptions.userPermissions,\r\n encryptionOptions.userPassword,\r\n encryptionOptions.ownerPassword,\r\n fileId\r\n );\r\n }\r\n return fileId;\r\n });\r\n\r\n /**\r\n * @name setFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {string} value GUID.\r\n * @returns {jsPDF}\r\n */\r\n API.setFileId = function(value) {\r\n setFileId(value);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getFileId\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n *\r\n * @returns {string} GUID.\r\n */\r\n API.getFileId = function() {\r\n return getFileId();\r\n };\r\n\r\n var creationDate;\r\n\r\n var convertDateToPDFDate = (API.__private__.convertDateToPDFDate = function(\r\n parmDate\r\n ) {\r\n var result = \"\";\r\n var tzoffset = parmDate.getTimezoneOffset(),\r\n tzsign = tzoffset < 0 ? \"+\" : \"-\",\r\n tzhour = Math.floor(Math.abs(tzoffset / 60)),\r\n tzmin = Math.abs(tzoffset % 60),\r\n timeZoneString = [tzsign, padd2(tzhour), \"'\", padd2(tzmin), \"'\"].join(\"\");\r\n\r\n result = [\r\n \"D:\",\r\n parmDate.getFullYear(),\r\n padd2(parmDate.getMonth() + 1),\r\n padd2(parmDate.getDate()),\r\n padd2(parmDate.getHours()),\r\n padd2(parmDate.getMinutes()),\r\n padd2(parmDate.getSeconds()),\r\n timeZoneString\r\n ].join(\"\");\r\n return result;\r\n });\r\n\r\n var convertPDFDateToDate = (API.__private__.convertPDFDateToDate = function(\r\n parmPDFDate\r\n ) {\r\n var year = parseInt(parmPDFDate.substr(2, 4), 10);\r\n var month = parseInt(parmPDFDate.substr(6, 2), 10) - 1;\r\n var date = parseInt(parmPDFDate.substr(8, 2), 10);\r\n var hour = parseInt(parmPDFDate.substr(10, 2), 10);\r\n var minutes = parseInt(parmPDFDate.substr(12, 2), 10);\r\n var seconds = parseInt(parmPDFDate.substr(14, 2), 10);\r\n // var timeZoneHour = parseInt(parmPDFDate.substr(16, 2), 10);\r\n // var timeZoneMinutes = parseInt(parmPDFDate.substr(20, 2), 10);\r\n\r\n var resultingDate = new Date(year, month, date, hour, minutes, seconds, 0);\r\n return resultingDate;\r\n });\r\n\r\n var setCreationDate = (API.__private__.setCreationDate = function(date) {\r\n var tmpCreationDateString;\r\n var regexPDFCreationDate = /^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/;\r\n if (typeof date === \"undefined\") {\r\n date = new Date();\r\n }\r\n\r\n if (date instanceof Date) {\r\n tmpCreationDateString = convertDateToPDFDate(date);\r\n } else if (regexPDFCreationDate.test(date)) {\r\n tmpCreationDateString = date;\r\n } else {\r\n throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");\r\n }\r\n creationDate = tmpCreationDateString;\r\n return creationDate;\r\n });\r\n\r\n var getCreationDate = (API.__private__.getCreationDate = function(type) {\r\n var result = creationDate;\r\n if (type === \"jsDate\") {\r\n result = convertPDFDateToDate(creationDate);\r\n }\r\n return result;\r\n });\r\n\r\n /**\r\n * @name setCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} date\r\n * @returns {jsPDF}\r\n */\r\n API.setCreationDate = function(date) {\r\n setCreationDate(date);\r\n return this;\r\n };\r\n\r\n /**\r\n * @name getCreationDate\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {Object} type\r\n * @returns {Object}\r\n */\r\n API.getCreationDate = function(type) {\r\n return getCreationDate(type);\r\n };\r\n\r\n var padd2 = (API.__private__.padd2 = function(number) {\r\n return (\"0\" + parseInt(number)).slice(-2);\r\n });\r\n\r\n var padd2Hex = (API.__private__.padd2Hex = function(hexString) {\r\n hexString = hexString.toString();\r\n return (\"00\" + hexString).substr(hexString.length);\r\n });\r\n\r\n var objectNumber = 0; // 'n' Current object number\r\n var offsets = []; // List of offsets. Activated and reset by buildDocument(). Pupulated by various calls buildDocument makes.\r\n var content = [];\r\n var contentLength = 0;\r\n var additionalObjects = [];\r\n\r\n var pages = [];\r\n var currentPage;\r\n var hasCustomDestination = false;\r\n var outputDestination = content;\r\n\r\n var resetDocument = function() {\r\n //reset fields relevant for objectNumber generation and xref.\r\n objectNumber = 0;\r\n contentLength = 0;\r\n content = [];\r\n offsets = [];\r\n additionalObjects = [];\r\n\r\n rootDictionaryObjId = newObjectDeferred();\r\n resourceDictionaryObjId = newObjectDeferred();\r\n };\r\n\r\n API.__private__.setCustomOutputDestination = function(destination) {\r\n hasCustomDestination = true;\r\n outputDestination = destination;\r\n };\r\n var setOutputDestination = function(destination) {\r\n if (!hasCustomDestination) {\r\n outputDestination = destination;\r\n }\r\n };\r\n\r\n API.__private__.resetCustomOutputDestination = function() {\r\n hasCustomDestination = false;\r\n outputDestination = content;\r\n };\r\n\r\n var out = (API.__private__.out = function(string) {\r\n string = string.toString();\r\n contentLength += string.length + 1;\r\n outputDestination.push(string);\r\n\r\n return outputDestination;\r\n });\r\n\r\n var write = (API.__private__.write = function(value) {\r\n return out(\r\n arguments.length === 1\r\n ? value.toString()\r\n : Array.prototype.join.call(arguments, \" \")\r\n );\r\n });\r\n\r\n var getArrayBuffer = (API.__private__.getArrayBuffer = function(data) {\r\n var len = data.length,\r\n ab = new ArrayBuffer(len),\r\n u8 = new Uint8Array(ab);\r\n\r\n while (len--) u8[len] = data.charCodeAt(len);\r\n return ab;\r\n });\r\n\r\n var standardFonts = [\r\n [\"Helvetica\", \"helvetica\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Bold\", \"helvetica\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-Oblique\", \"helvetica\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Helvetica-BoldOblique\", \"helvetica\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Courier\", \"courier\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Courier-Bold\", \"courier\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Courier-Oblique\", \"courier\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Courier-BoldOblique\", \"courier\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"Times-Roman\", \"times\", \"normal\", \"WinAnsiEncoding\"],\r\n [\"Times-Bold\", \"times\", \"bold\", \"WinAnsiEncoding\"],\r\n [\"Times-Italic\", \"times\", \"italic\", \"WinAnsiEncoding\"],\r\n [\"Times-BoldItalic\", \"times\", \"bolditalic\", \"WinAnsiEncoding\"],\r\n [\"ZapfDingbats\", \"zapfdingbats\", \"normal\", null],\r\n [\"Symbol\", \"symbol\", \"normal\", null]\r\n ];\r\n\r\n API.__private__.getStandardFonts = function() {\r\n return standardFonts;\r\n };\r\n\r\n var activeFontSize = options.fontSize || 16;\r\n\r\n /**\r\n * Sets font size for upcoming text elements.\r\n *\r\n * @param {number} size Font size in points.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setFontSize\r\n */\r\n API.__private__.setFontSize = API.setFontSize = function(size) {\r\n if (apiMode === ApiMode.ADVANCED) {\r\n activeFontSize = size / scaleFactor;\r\n } else {\r\n activeFontSize = size;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the fontsize for upcoming text elements.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {number}\r\n * @memberof jsPDF#\r\n * @name getFontSize\r\n */\r\n var getFontSize = (API.__private__.getFontSize = API.getFontSize = function() {\r\n if (apiMode === ApiMode.COMPAT) {\r\n return activeFontSize;\r\n } else {\r\n return activeFontSize * scaleFactor;\r\n }\r\n });\r\n\r\n var R2L = options.R2L || false;\r\n\r\n /**\r\n * Set value of R2L functionality.\r\n *\r\n * @param {boolean} value\r\n * @function\r\n * @instance\r\n * @returns {jsPDF} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name setR2L\r\n */\r\n API.__private__.setR2L = API.setR2L = function(value) {\r\n R2L = value;\r\n return this;\r\n };\r\n\r\n /**\r\n * Get value of R2L functionality.\r\n *\r\n * @function\r\n * @instance\r\n * @returns {boolean} jsPDF-instance\r\n * @memberof jsPDF#\r\n * @name getR2L\r\n */\r\n API.__private__.getR2L = API.getR2L = function() {\r\n return R2L;\r\n };\r\n\r\n var zoomMode; // default: 1;\r\n\r\n var setZoomMode = (API.__private__.setZoomMode = function(zoom) {\r\n var validZoomModes = [\r\n undefined,\r\n null,\r\n \"fullwidth\",\r\n \"fullheight\",\r\n \"fullpage\",\r\n \"original\"\r\n ];\r\n\r\n if (/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(zoom)) {\r\n zoomMode = zoom;\r\n } else if (!isNaN(zoom)) {\r\n zoomMode = parseInt(zoom, 10);\r\n } else if (validZoomModes.indexOf(zoom) !== -1) {\r\n zoomMode = zoom;\r\n } else {\r\n throw new Error(\r\n 'zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"' +\r\n zoom +\r\n '\" is not recognized.'\r\n );\r\n }\r\n });\r\n\r\n API.__private__.getZoomMode = function() {\r\n return zoomMode;\r\n };\r\n\r\n var pageMode; // default: 'UseOutlines';\r\n var setPageMode = (API.__private__.setPageMode = function(pmode) {\r\n var validPageModes = [\r\n undefined,\r\n null,\r\n \"UseNone\",\r\n \"UseOutlines\",\r\n \"UseThumbs\",\r\n \"FullScreen\"\r\n ];\r\n\r\n if (validPageModes.indexOf(pmode) == -1) {\r\n throw new Error(\r\n 'Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"' +\r\n pmode +\r\n '\" is not recognized.'\r\n );\r\n }\r\n pageMode = pmode;\r\n });\r\n\r\n API.__private__.getPageMode = function() {\r\n return pageMode;\r\n };\r\n\r\n var layoutMode; // default: 'continuous';\r\n var setLayoutMode = (API.__private__.setLayoutMode = function(layout) {\r\n var validLayoutModes = [\r\n undefined,\r\n null,\r\n \"continuous\",\r\n \"single\",\r\n \"twoleft\",\r\n \"tworight\",\r\n \"two\"\r\n ];\r\n\r\n if (validLayoutModes.indexOf(layout) == -1) {\r\n throw new Error(\r\n 'Layout mode must be one of continuous, single, twoleft, tworight. \"' +\r\n layout +\r\n '\" is not recognized.'\r\n );\r\n }\r\n layoutMode = layout;\r\n });\r\n\r\n API.__private__.getLayoutMode = function() {\r\n return layoutMode;\r\n };\r\n\r\n /**\r\n * Set the display mode options of the page like zoom and layout.\r\n *\r\n * @name setDisplayMode\r\n * @memberof jsPDF#\r\n * @function\r\n * @instance\r\n * @param {integer|String} zoom You can pass an integer or percentage as\r\n * a string. 2 will scale the document up 2x, '200%' will scale up by the\r\n * same amount. You can also set it to 'fullwidth', 'fullheight',\r\n * 'fullpage', or 'original'.\r\n *\r\n * Only certain PDF readers support this, such as Adobe Acrobat.\r\n *\r\n * @param {string} layout Layout mode can be: 'continuous' - this is the\r\n * default continuous scroll. 'single' - the single page mode only shows one\r\n * page at a time. 'twoleft' - two column left mode, first page starts on\r\n * the left, and 'tworight' - pages are laid out in two columns, with the\r\n * first page on the right. This would be used for books.\r\n * @param {string} pmode 'UseOutlines' - it shows the\r\n * outline of the document on the left. 'UseThumbs' - shows thumbnails along\r\n * the left. 'FullScreen' - prompts the user to enter fullscreen mode.\r\n *\r\n * @returns {jsPDF}\r\n */\r\n API.__private__.setDisplayMode = API.setDisplayMode = function(\r\n zoom,\r\n layout,\r\n pmode\r\n ) {\r\n setZoomMode(zoom);\r\n setLayoutMode(layout);\r\n setPageMode(pmode);\r\n return this;\r\n };\r\n\r\n var documentProperties = {\r\n title: \"\",\r\n subject: \"\",\r\n author: \"\",\r\n keywords: \"\",\r\n creator: \"\"\r\n };\r\n\r\n API.__private__.getDocumentProperty = function(key) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");\r\n }\r\n return documentProperties[key];\r\n };\r\n\r\n API.__private__.getDocumentProperties = function() {\r\n return documentProperties;\r\n };\r\n\r\n /**\r\n * Adds a properties to the PDF document.\r\n *\r\n * @param {Object} A property_name-to-property_value object structure.\r\n * @function\r\n * @instance\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name setDocumentProperties\r\n */\r\n API.__private__.setDocumentProperties = API.setProperties = API.setDocumentProperties = function(\r\n properties\r\n ) {\r\n // copying only those properties we can render.\r\n for (var property in documentProperties) {\r\n if (documentProperties.hasOwnProperty(property) && properties[property]) {\r\n documentProperties[property] = properties[property];\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n API.__private__.setDocumentProperty = function(key, value) {\r\n if (Object.keys(documentProperties).indexOf(key) === -1) {\r\n throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");\r\n }\r\n return (documentProperties[key] = value);\r\n };\r\n\r\n var fonts = {}; // collection of font objects, where key is fontKey - a dynamically created label for a given font.\r\n var fontmap = {}; // mapping structure fontName > fontStyle > font key - performance layer. See addFont()\r\n var activeFontKey; // will be string representing the KEY of the font as combination of fontName + fontStyle\r\n var fontStateStack = []; //\r\n var patterns = {}; // collection of pattern objects\r\n var patternMap = {}; // see fonts\r\n var gStates = {}; // collection of graphic state objects\r\n var gStatesMap = {}; // see fonts\r\n var activeGState = null;\r\n var scaleFactor; // Scale factor\r\n var page = 0;\r\n var pagesContext = [];\r\n var events = new PubSub(API);\r\n var hotfixes = options.hotfixes || [];\r\n\r\n var renderTargets = {};\r\n var renderTargetMap = {};\r\n var renderTargetStack = [];\r\n var pageX;\r\n var pageY;\r\n var pageMatrix; // only used for FormObjects\r\n\r\n /**\r\n * A matrix object for 2D homogenous transformations:
\r\n * | a b 0 |
\r\n * | c d 0 |
\r\n * | e f 1 |
\r\n * pdf multiplies matrices righthand: v' = v x m1 x m2 x ...\r\n *\r\n * @class\r\n * @name Matrix\r\n * @param {number} sx\r\n * @param {number} shy\r\n * @param {number} shx\r\n * @param {number} sy\r\n * @param {number} tx\r\n * @param {number} ty\r\n * @constructor\r\n */\r\n var Matrix = function(sx, shy, shx, sy, tx, ty) {\r\n if (!(this instanceof Matrix)) {\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n }\r\n\r\n if (isNaN(sx)) sx = 1;\r\n if (isNaN(shy)) shy = 0;\r\n if (isNaN(shx)) shx = 0;\r\n if (isNaN(sy)) sy = 1;\r\n if (isNaN(tx)) tx = 0;\r\n if (isNaN(ty)) ty = 0;\r\n\r\n this._matrix = [sx, shy, shx, sy, tx, ty];\r\n };\r\n\r\n /**\r\n * @name sx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sx\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shy\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name shx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"shx\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name sy\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"sy\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name tx\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"tx\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name ty\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"ty\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"a\", {\r\n get: function() {\r\n return this._matrix[0];\r\n },\r\n set: function(value) {\r\n this._matrix[0] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"b\", {\r\n get: function() {\r\n return this._matrix[1];\r\n },\r\n set: function(value) {\r\n this._matrix[1] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"c\", {\r\n get: function() {\r\n return this._matrix[2];\r\n },\r\n set: function(value) {\r\n this._matrix[2] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"d\", {\r\n get: function() {\r\n return this._matrix[3];\r\n },\r\n set: function(value) {\r\n this._matrix[3] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"e\", {\r\n get: function() {\r\n return this._matrix[4];\r\n },\r\n set: function(value) {\r\n this._matrix[4] = value;\r\n }\r\n });\r\n\r\n Object.defineProperty(Matrix.prototype, \"f\", {\r\n get: function() {\r\n return this._matrix[5];\r\n },\r\n set: function(value) {\r\n this._matrix[5] = value;\r\n }\r\n });\r\n\r\n /**\r\n * @name rotation\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"rotation\", {\r\n get: function() {\r\n return Math.atan2(this.shx, this.sx);\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleX\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleX\", {\r\n get: function() {\r\n return this.decompose().scale.sx;\r\n }\r\n });\r\n\r\n /**\r\n * @name scaleY\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"scaleY\", {\r\n get: function() {\r\n return this.decompose().scale.sy;\r\n }\r\n });\r\n\r\n /**\r\n * @name isIdentity\r\n * @memberof Matrix#\r\n */\r\n Object.defineProperty(Matrix.prototype, \"isIdentity\", {\r\n get: function() {\r\n if (this.sx !== 1) {\r\n return false;\r\n }\r\n if (this.shy !== 0) {\r\n return false;\r\n }\r\n if (this.shx !== 0) {\r\n return false;\r\n }\r\n if (this.sy !== 1) {\r\n return false;\r\n }\r\n if (this.tx !== 0) {\r\n return false;\r\n }\r\n if (this.ty !== 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n\r\n /**\r\n * Join the Matrix Values to a String\r\n *\r\n * @function join\r\n * @param {string} separator Specifies a string to separate each pair of adjacent elements of the array. The separator is converted to a string if necessary. If omitted, the array elements are separated with a comma (\",\"). If separator is an empty string, all elements are joined without any characters in between them.\r\n * @returns {string} A string with all array elements joined.\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.join = function(separator) {\r\n return [this.sx, this.shy, this.shx, this.sy, this.tx, this.ty]\r\n .map(hpf)\r\n .join(separator);\r\n };\r\n\r\n /**\r\n * Multiply the matrix with given Matrix\r\n *\r\n * @function multiply\r\n * @param matrix\r\n * @returns {Matrix}\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.multiply = function(matrix) {\r\n var sx = matrix.sx * this.sx + matrix.shy * this.shx;\r\n var shy = matrix.sx * this.shy + matrix.shy * this.sy;\r\n var shx = matrix.shx * this.sx + matrix.sy * this.shx;\r\n var sy = matrix.shx * this.shy + matrix.sy * this.sy;\r\n var tx = matrix.tx * this.sx + matrix.ty * this.shx + this.tx;\r\n var ty = matrix.tx * this.shy + matrix.ty * this.sy + this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n /**\r\n * @function decompose\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.decompose = function() {\r\n var a = this.sx;\r\n var b = this.shy;\r\n var c = this.shx;\r\n var d = this.sy;\r\n var e = this.tx;\r\n var f = this.ty;\r\n\r\n var scaleX = Math.sqrt(a * a + b * b);\r\n a /= scaleX;\r\n b /= scaleX;\r\n\r\n var shear = a * c + b * d;\r\n c -= a * shear;\r\n d -= b * shear;\r\n\r\n var scaleY = Math.sqrt(c * c + d * d);\r\n c /= scaleY;\r\n d /= scaleY;\r\n shear /= scaleY;\r\n\r\n if (a * d < b * c) {\r\n a = -a;\r\n b = -b;\r\n shear = -shear;\r\n scaleX = -scaleX;\r\n }\r\n\r\n return {\r\n scale: new Matrix(scaleX, 0, 0, scaleY, 0, 0),\r\n translate: new Matrix(1, 0, 0, 1, e, f),\r\n rotate: new Matrix(a, b, -b, a, 0, 0),\r\n skew: new Matrix(1, 0, shear, 1, 0, 0)\r\n };\r\n };\r\n\r\n /**\r\n * @function toString\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.toString = function(parmPrecision) {\r\n return this.join(\" \");\r\n };\r\n\r\n /**\r\n * @function inversed\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.inversed = function() {\r\n var a = this.sx,\r\n b = this.shy,\r\n c = this.shx,\r\n d = this.sy,\r\n e = this.tx,\r\n f = this.ty;\r\n\r\n var quot = 1 / (a * d - b * c);\r\n\r\n var aInv = d * quot;\r\n var bInv = -b * quot;\r\n var cInv = -c * quot;\r\n var dInv = a * quot;\r\n var eInv = -aInv * e - cInv * f;\r\n var fInv = -bInv * e - dInv * f;\r\n\r\n return new Matrix(aInv, bInv, cInv, dInv, eInv, fInv);\r\n };\r\n\r\n /**\r\n * @function applyToPoint\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToPoint = function(pt) {\r\n var x = pt.x * this.sx + pt.y * this.shx + this.tx;\r\n var y = pt.x * this.shy + pt.y * this.sy + this.ty;\r\n return new Point(x, y);\r\n };\r\n\r\n /**\r\n * @function applyToRectangle\r\n * @memberof Matrix#\r\n */\r\n Matrix.prototype.applyToRectangle = function(rect) {\r\n var pt1 = this.applyToPoint(rect);\r\n var pt2 = this.applyToPoint(new Point(rect.x + rect.w, rect.y + rect.h));\r\n return new Rectangle(pt1.x, pt1.y, pt2.x - pt1.x, pt2.y - pt1.y);\r\n };\r\n\r\n /**\r\n * Clone the Matrix\r\n *\r\n * @function clone\r\n * @memberof Matrix#\r\n * @name clone\r\n * @instance\r\n */\r\n Matrix.prototype.clone = function() {\r\n var sx = this.sx;\r\n var shy = this.shy;\r\n var shx = this.shx;\r\n var sy = this.sy;\r\n var tx = this.tx;\r\n var ty = this.ty;\r\n\r\n return new Matrix(sx, shy, shx, sy, tx, ty);\r\n };\r\n\r\n API.Matrix = Matrix;\r\n\r\n /**\r\n * Multiplies two matrices. (see {@link Matrix})\r\n * @param {Matrix} m1\r\n * @param {Matrix} m2\r\n * @memberof jsPDF#\r\n * @name matrixMult\r\n */\r\n var matrixMult = (API.matrixMult = function(m1, m2) {\r\n return m2.multiply(m1);\r\n });\r\n\r\n /**\r\n * The identity matrix (equivalent to new Matrix(1, 0, 0, 1, 0, 0)).\r\n * @type {Matrix}\r\n * @memberof! jsPDF#\r\n * @name identityMatrix\r\n */\r\n var identityMatrix = new Matrix(1, 0, 0, 1, 0, 0);\r\n API.unitMatrix = API.identityMatrix = identityMatrix;\r\n\r\n /**\r\n * Adds a new pattern for later use.\r\n * @param {String} key The key by it can be referenced later. The keys must be unique!\r\n * @param {API.Pattern} pattern The pattern\r\n */\r\n var addPattern = function(key, pattern) {\r\n // only add it if it is not already present (the keys provided by the user must be unique!)\r\n if (patternMap[key]) return;\r\n\r\n var prefix = pattern instanceof ShadingPattern ? \"Sh\" : \"P\";\r\n var patternKey = prefix + (Object.keys(patterns).length + 1).toString(10);\r\n pattern.id = patternKey;\r\n\r\n patternMap[key] = patternKey;\r\n patterns[patternKey] = pattern;\r\n\r\n events.publish(\"addPattern\", pattern);\r\n };\r\n\r\n /**\r\n * A pattern describing a shading pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {String} type One of \"axial\" or \"radial\"\r\n * @param {Array} coords Either [x1, y1, x2, y2] for \"axial\" type describing the two interpolation points\r\n * or [x1, y1, r, x2, y2, r2] for \"radial\" describing inner and the outer circle.\r\n * @param {Array} colors An array of objects with the fields \"offset\" and \"color\". \"offset\" describes\r\n * the offset in parameter space [0, 1]. \"color\" is an array of length 3 describing RGB values in [0, 255].\r\n * @param {GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.ShadingPattern = ShadingPattern;\r\n\r\n /**\r\n * A PDF Tiling pattern.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {Array.} boundingBox The bounding box at which one pattern cell gets clipped.\r\n * @param {Number} xStep Horizontal spacing between pattern cells.\r\n * @param {Number} yStep Vertical spacing between pattern cells.\r\n * @param {API.GState=} gState An additional graphics state that gets applied to the pattern (optional).\r\n * @param {Matrix=} matrix A matrix that describes the transformation between the pattern coordinate system\r\n * and the use coordinate system (optional).\r\n * @constructor\r\n * @extends API.Pattern\r\n */\r\n API.TilingPattern = TilingPattern;\r\n\r\n /**\r\n * Adds a new {@link API.ShadingPattern} for later use. Only available in \"advanced\" API mode.\r\n * @param {String} key\r\n * @param {Pattern} pattern\r\n * @function\r\n * @returns {jsPDF}\r\n * @memberof jsPDF#\r\n * @name addPattern\r\n */\r\n API.addShadingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"addShadingPattern()\");\r\n\r\n addPattern(key, pattern);\r\n return this;\r\n };\r\n\r\n /**\r\n * Begins a new tiling pattern. All subsequent render calls are drawn to this pattern until {@link API.endTilingPattern}\r\n * gets called. Only available in \"advanced\" API mode.\r\n * @param {API.Pattern} pattern\r\n * @memberof jsPDF#\r\n * @name beginTilingPattern\r\n */\r\n API.beginTilingPattern = function(pattern) {\r\n advancedApiModeTrap(\"beginTilingPattern()\");\r\n\r\n beginNewRenderTarget(\r\n pattern.boundingBox[0],\r\n pattern.boundingBox[1],\r\n pattern.boundingBox[2] - pattern.boundingBox[0],\r\n pattern.boundingBox[3] - pattern.boundingBox[1],\r\n pattern.matrix\r\n );\r\n };\r\n\r\n /**\r\n * Ends a tiling pattern and sets the render target to the one active before {@link API.beginTilingPattern} has been called.\r\n *\r\n * Only available in \"advanced\" API mode.\r\n *\r\n * @param {string} key A unique key that is used to reference this pattern at later use.\r\n * @param {API.Pattern} pattern The pattern to end.\r\n * @memberof jsPDF#\r\n * @name endTilingPattern\r\n */\r\n API.endTilingPattern = function(key, pattern) {\r\n advancedApiModeTrap(\"endTilingPattern()\");\r\n\r\n // retrieve the stream\r\n pattern.stream = pages[currentPage].join(\"\\n\");\r\n\r\n addPattern(key, pattern);\r\n\r\n events.publish(\"endTilingPattern\", pattern);\r\n\r\n // restore state from stack\r\n renderTargetStack.pop().restore();\r\n };\r\n\r\n var newObject = (API.__private__.newObject = function() {\r\n var oid = newObjectDeferred();\r\n newObjectDeferredBegin(oid, true);\r\n return oid;\r\n });\r\n\r\n // Does not output the object. The caller must call newObjectDeferredBegin(oid) before outputing any data\r\n var newObjectDeferred = (API.__private__.newObjectDeferred = function() {\r\n objectNumber++;\r\n offsets[objectNumber] = function() {\r\n return contentLength;\r\n };\r\n return objectNumber;\r\n });\r\n\r\n var newObjectDeferredBegin = function(oid, doOutput) {\r\n doOutput = typeof doOutput === \"boolean\" ? doOutput : false;\r\n offsets[oid] = contentLength;\r\n if (doOutput) {\r\n out(oid + \" 0 obj\");\r\n }\r\n return oid;\r\n };\r\n // Does not output the object until after the pages have been output.\r\n // Returns an object containing the objectId and content.\r\n // All pages have been added so the object ID can be estimated to start right after.\r\n // This does not modify the current objectNumber; It must be updated after the newObjects are output.\r\n var newAdditionalObject = (API.__private__.newAdditionalObject = function() {\r\n var objId = newObjectDeferred();\r\n var obj = {\r\n objId: objId,\r\n content: \"\"\r\n };\r\n additionalObjects.push(obj);\r\n return obj;\r\n });\r\n\r\n var rootDictionaryObjId = newObjectDeferred();\r\n var resourceDictionaryObjId = newObjectDeferred();\r\n\r\n /////////////////////\r\n // Private functions\r\n /////////////////////\r\n\r\n var decodeColorString = (API.__private__.decodeColorString = function(color) {\r\n var colorEncoded = color.split(\" \");\r\n if (\r\n colorEncoded.length === 2 &&\r\n (colorEncoded[1] === \"g\" || colorEncoded[1] === \"G\")\r\n ) {\r\n // convert grayscale value to rgb so that it can be converted to hex for consistency\r\n var floatVal = parseFloat(colorEncoded[0]);\r\n colorEncoded = [floatVal, floatVal, floatVal, \"r\"];\r\n } else if (\r\n colorEncoded.length === 5 &&\r\n (colorEncoded[4] === \"k\" || colorEncoded[4] === \"K\")\r\n ) {\r\n // convert CMYK values to rbg so that it can be converted to hex for consistency\r\n var red = (1.0 - colorEncoded[0]) * (1.0 - colorEncoded[3]);\r\n var green = (1.0 - colorEncoded[1]) * (1.0 - colorEncoded[3]);\r\n var blue = (1.0 - colorEncoded[2]) * (1.0 - colorEncoded[3]);\r\n\r\n colorEncoded = [red, green, blue, \"r\"];\r\n }\r\n var colorAsRGB = \"#\";\r\n for (var i = 0; i < 3; i++) {\r\n colorAsRGB += (\r\n \"0\" + Math.floor(parseFloat(colorEncoded[i]) * 255).toString(16)\r\n ).slice(-2);\r\n }\r\n return colorAsRGB;\r\n });\r\n\r\n var encodeColorString = (API.__private__.encodeColorString = function(\r\n options\r\n ) {\r\n var color;\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n ch1: options\r\n };\r\n }\r\n var ch1 = options.ch1;\r\n var ch2 = options.ch2;\r\n var ch3 = options.ch3;\r\n var ch4 = options.ch4;\r\n var letterArray =\r\n options.pdfColorType === \"draw\" ? [\"G\", \"RG\", \"K\"] : [\"g\", \"rg\", \"k\"];\r\n\r\n if (typeof ch1 === \"string\" && ch1.charAt(0) !== \"#\") {\r\n var rgbColor = new RGBColor(ch1);\r\n if (rgbColor.ok) {\r\n ch1 = rgbColor.toHex();\r\n } else if (!/^\\d*\\.?\\d*$/.test(ch1)) {\r\n throw new Error(\r\n 'Invalid color \"' + ch1 + '\" passed to jsPDF.encodeColorString.'\r\n );\r\n }\r\n }\r\n //convert short rgb to long form\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{3}$/.test(ch1)) {\r\n ch1 = \"#\" + ch1[1] + ch1[1] + ch1[2] + ch1[2] + ch1[3] + ch1[3];\r\n }\r\n\r\n if (typeof ch1 === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(ch1)) {\r\n var hex = parseInt(ch1.substr(1), 16);\r\n ch1 = (hex >> 16) & 255;\r\n ch2 = (hex >> 8) & 255;\r\n ch3 = hex & 255;\r\n }\r\n\r\n if (\r\n typeof ch2 === \"undefined\" ||\r\n (typeof ch4 === \"undefined\" && ch1 === ch2 && ch2 === ch3)\r\n ) {\r\n // Gray color space.\r\n if (typeof ch1 === \"string\") {\r\n color = ch1 + \" \" + letterArray[0];\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = f2(ch1 / 255) + \" \" + letterArray[0];\r\n break;\r\n case 3:\r\n default:\r\n color = f3(ch1 / 255) + \" \" + letterArray[0];\r\n }\r\n }\r\n } else if (typeof ch4 === \"undefined\" || typeof ch4 === \"object\") {\r\n // assume RGBA\r\n if (ch4 && !isNaN(ch4.a)) {\r\n //TODO Implement transparency.\r\n //WORKAROUND use white for now, if transparent, otherwise handle as rgb\r\n if (ch4.a === 0) {\r\n color = [\"1.\", \"1.\", \"1.\", letterArray[1]].join(\" \");\r\n return color;\r\n }\r\n }\r\n // assume RGB\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, letterArray[1]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [\r\n f2(ch1 / 255),\r\n f2(ch2 / 255),\r\n f2(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n break;\r\n default:\r\n case 3:\r\n color = [\r\n f3(ch1 / 255),\r\n f3(ch2 / 255),\r\n f3(ch3 / 255),\r\n letterArray[1]\r\n ].join(\" \");\r\n }\r\n }\r\n } else {\r\n // assume CMYK\r\n if (typeof ch1 === \"string\") {\r\n color = [ch1, ch2, ch3, ch4, letterArray[2]].join(\" \");\r\n } else {\r\n switch (options.precision) {\r\n case 2:\r\n color = [f2(ch1), f2(ch2), f2(ch3), f2(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n break;\r\n case 3:\r\n default:\r\n color = [f3(ch1), f3(ch2), f3(ch3), f3(ch4), letterArray[2]].join(\r\n \" \"\r\n );\r\n }\r\n }\r\n }\r\n return color;\r\n });\r\n\r\n var getFilters = (API.__private__.getFilters = function() {\r\n return filters;\r\n });\r\n\r\n var putStream = (API.__private__.putStream = function(options) {\r\n options = options || {};\r\n var data = options.data || \"\";\r\n var filters = options.filters || getFilters();\r\n var alreadyAppliedFilters = options.alreadyAppliedFilters || [];\r\n var addLength1 = options.addLength1 || false;\r\n var valueOfLength1 = data.length;\r\n var objectId = options.objectId;\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null && typeof objectId == \"undefined\") {\r\n throw new Error(\r\n \"ObjectId must be passed to putStream for file encryption\"\r\n );\r\n }\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n\r\n var processedData = {};\r\n if (filters === true) {\r\n filters = [\"FlateEncode\"];\r\n }\r\n var keyValues = options.additionalKeyValues || [];\r\n if (typeof jsPDF.API.processDataByFilters !== \"undefined\") {\r\n processedData = jsPDF.API.processDataByFilters(data, filters);\r\n } else {\r\n processedData = { data: data, reverseChain: [] };\r\n }\r\n var filterAsString =\r\n processedData.reverseChain +\r\n (Array.isArray(alreadyAppliedFilters)\r\n ? alreadyAppliedFilters.join(\" \")\r\n : alreadyAppliedFilters.toString());\r\n\r\n if (processedData.data.length !== 0) {\r\n keyValues.push({\r\n key: \"Length\",\r\n value: processedData.data.length\r\n });\r\n if (addLength1 === true) {\r\n keyValues.push({\r\n key: \"Length1\",\r\n value: valueOfLength1\r\n });\r\n }\r\n }\r\n\r\n if (filterAsString.length != 0) {\r\n if (filterAsString.split(\"/\").length - 1 === 1) {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: filterAsString\r\n });\r\n } else {\r\n keyValues.push({\r\n key: \"Filter\",\r\n value: \"[\" + filterAsString + \"]\"\r\n });\r\n\r\n for (var j = 0; j < keyValues.length; j += 1) {\r\n if (keyValues[j].key === \"DecodeParms\") {\r\n var decodeParmsArray = [];\r\n\r\n for (\r\n var i = 0;\r\n i < processedData.reverseChain.split(\"/\").length - 1;\r\n i += 1\r\n ) {\r\n decodeParmsArray.push(\"null\");\r\n }\r\n\r\n decodeParmsArray.push(keyValues[j].value);\r\n keyValues[j].value = \"[\" + decodeParmsArray.join(\" \") + \"]\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n out(\"<<\");\r\n for (var k = 0; k < keyValues.length; k++) {\r\n out(\"/\" + keyValues[k].key + \" \" + keyValues[k].value);\r\n }\r\n out(\">>\");\r\n if (processedData.data.length !== 0) {\r\n out(\"stream\");\r\n out(encryptor(processedData.data));\r\n out(\"endstream\");\r\n }\r\n });\r\n\r\n var putPage = (API.__private__.putPage = function(page) {\r\n var pageNumber = page.number;\r\n var data = page.data;\r\n var pageObjectNumber = page.objId;\r\n var pageContentsObjId = page.contentsObjId;\r\n\r\n newObjectDeferredBegin(pageObjectNumber, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n // Page content\r\n var pageContent = data.join(\"\\n\");\r\n\r\n if (apiMode === ApiMode.ADVANCED) {\r\n // if the user forgot to switch back to COMPAT mode, we must balance the graphics stack again\r\n pageContent += \"\\nQ\";\r\n }\r\n\r\n newObjectDeferredBegin(pageContentsObjId, true);\r\n putStream({\r\n data: pageContent,\r\n filters: getFilters(),\r\n objectId: pageContentsObjId\r\n });\r\n out(\"endobj\");\r\n return pageObjectNumber;\r\n });\r\n\r\n var putPages = (API.__private__.putPages = function() {\r\n var n,\r\n i,\r\n pageObjectNumbers = [];\r\n\r\n for (n = 1; n <= page; n++) {\r\n pagesContext[n].objId = newObjectDeferred();\r\n pagesContext[n].contentsObjId = newObjectDeferred();\r\n }\r\n\r\n for (n = 1; n <= page; n++) {\r\n pageObjectNumbers.push(\r\n putPage({\r\n number: n,\r\n data: pages[n],\r\n objId: pagesContext[n].objId,\r\n contentsObjId: pagesContext[n].contentsObjId,\r\n mediaBox: pagesContext[n].mediaBox,\r\n cropBox: pagesContext[n].cropBox,\r\n bleedBox: pagesContext[n].bleedBox,\r\n trimBox: pagesContext[n].trimBox,\r\n artBox: pagesContext[n].artBox,\r\n userUnit: pagesContext[n].userUnit,\r\n rootDictionaryObjId: rootDictionaryObjId,\r\n resourceDictionaryObjId: resourceDictionaryObjId\r\n })\r\n );\r\n }\r\n newObjectDeferredBegin(rootDictionaryObjId, true);\r\n out(\"<>\");\r\n out(\"endobj\");\r\n events.publish(\"postPutPages\");\r\n });\r\n\r\n var putFont = function(font) {\r\n events.publish(\"putFont\", {\r\n font: font,\r\n out: out,\r\n newObject: newObject,\r\n putStream: putStream\r\n });\r\n\r\n if (font.isAlreadyPutted !== true) {\r\n font.objectNumber = newObject();\r\n out(\"<<\");\r\n out(\"/Type /Font\");\r\n out(\"/BaseFont /\" + toPDFName(font.postScriptName));\r\n out(\"/Subtype /Type1\");\r\n if (typeof font.encoding === \"string\") {\r\n out(\"/Encoding /\" + font.encoding);\r\n }\r\n out(\"/FirstChar 32\");\r\n out(\"/LastChar 255\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n }\r\n };\r\n\r\n var putFonts = function() {\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n putFont(fonts[fontKey]);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putXObject = function(xObject) {\r\n xObject.objectNumber = newObject();\r\n\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/XObject\" });\r\n options.push({ key: \"Subtype\", value: \"/Form\" });\r\n options.push({\r\n key: \"BBox\",\r\n value:\r\n \"[\" +\r\n [\r\n hpf(xObject.x),\r\n hpf(xObject.y),\r\n hpf(xObject.x + xObject.width),\r\n hpf(xObject.y + xObject.height)\r\n ].join(\" \") +\r\n \"]\"\r\n });\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + xObject.matrix.toString() + \"]\"\r\n });\r\n // TODO: /Resources\r\n\r\n var stream = xObject.pages[1].join(\"\\n\");\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n objectId: xObject.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putXObjects = function() {\r\n for (var xObjectKey in renderTargets) {\r\n if (renderTargets.hasOwnProperty(xObjectKey)) {\r\n putXObject(renderTargets[xObjectKey]);\r\n }\r\n }\r\n };\r\n\r\n var interpolateAndEncodeRGBStream = function(colors, numberSamples) {\r\n var tValues = [];\r\n var t;\r\n var dT = 1.0 / (numberSamples - 1);\r\n for (t = 0.0; t < 1.0; t += dT) {\r\n tValues.push(t);\r\n }\r\n tValues.push(1.0);\r\n // add first and last control point if not present\r\n if (colors[0].offset != 0.0) {\r\n var c0 = {\r\n offset: 0.0,\r\n color: colors[0].color\r\n };\r\n colors.unshift(c0);\r\n }\r\n if (colors[colors.length - 1].offset != 1.0) {\r\n var c1 = {\r\n offset: 1.0,\r\n color: colors[colors.length - 1].color\r\n };\r\n colors.push(c1);\r\n }\r\n var out = \"\";\r\n var index = 0;\r\n\r\n for (var i = 0; i < tValues.length; i++) {\r\n t = tValues[i];\r\n while (t > colors[index + 1].offset) index++;\r\n var a = colors[index].offset;\r\n var b = colors[index + 1].offset;\r\n var d = (t - a) / (b - a);\r\n\r\n var aColor = colors[index].color;\r\n var bColor = colors[index + 1].color;\r\n\r\n out +=\r\n padd2Hex(Math.round((1 - d) * aColor[0] + d * bColor[0]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[1] + d * bColor[1]).toString(16)) +\r\n padd2Hex(Math.round((1 - d) * aColor[2] + d * bColor[2]).toString(16));\r\n }\r\n return out.trim();\r\n };\r\n\r\n var putShadingPattern = function(pattern, numberSamples) {\r\n /*\r\n Axial patterns shade between the two points specified in coords, radial patterns between the inner\r\n and outer circle.\r\n The user can specify an array (colors) that maps t-Values in [0, 1] to RGB colors. These are now\r\n interpolated to equidistant samples and written to pdf as a sample (type 0) function.\r\n */\r\n // The number of color samples that should be used to describe the shading.\r\n // The higher, the more accurate the gradient will be.\r\n numberSamples || (numberSamples = 21);\r\n var funcObjectNumber = newObject();\r\n var stream = interpolateAndEncodeRGBStream(pattern.colors, numberSamples);\r\n\r\n var options = [];\r\n options.push({ key: \"FunctionType\", value: \"0\" });\r\n options.push({ key: \"Domain\", value: \"[0.0 1.0]\" });\r\n options.push({ key: \"Size\", value: \"[\" + numberSamples + \"]\" });\r\n options.push({ key: \"BitsPerSample\", value: \"8\" });\r\n options.push({ key: \"Range\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n options.push({ key: \"Decode\", value: \"[0.0 1.0 0.0 1.0 0.0 1.0]\" });\r\n\r\n putStream({\r\n data: stream,\r\n additionalKeyValues: options,\r\n alreadyAppliedFilters: [\"/ASCIIHexDecode\"],\r\n objectId: funcObjectNumber\r\n });\r\n out(\"endobj\");\r\n\r\n pattern.objectNumber = newObject();\r\n out(\"<< /ShadingType \" + pattern.type);\r\n out(\"/ColorSpace /DeviceRGB\");\r\n var coords =\r\n \"/Coords [\" +\r\n hpf(parseFloat(pattern.coords[0])) +\r\n \" \" + // x1\r\n hpf(parseFloat(pattern.coords[1])) +\r\n \" \"; // y1\r\n if (pattern.type === 2) {\r\n // axial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[3])); // y2\r\n } else {\r\n // radial\r\n coords +=\r\n hpf(parseFloat(pattern.coords[2])) +\r\n \" \" + // r1\r\n hpf(parseFloat(pattern.coords[3])) +\r\n \" \" + // x2\r\n hpf(parseFloat(pattern.coords[4])) +\r\n \" \" + // y2\r\n hpf(parseFloat(pattern.coords[5])); // r2\r\n }\r\n coords += \"]\";\r\n out(coords);\r\n\r\n if (pattern.matrix) {\r\n out(\"/Matrix [\" + pattern.matrix.toString() + \"]\");\r\n }\r\n out(\"/Function \" + funcObjectNumber + \" 0 R\");\r\n out(\"/Extend [true true]\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putTilingPattern = function(pattern, deferredResourceDictionaryIds) {\r\n var resourcesObjectId = newObjectDeferred();\r\n var patternObjectId = newObject();\r\n\r\n deferredResourceDictionaryIds.push({\r\n resourcesOid: resourcesObjectId,\r\n objectOid: patternObjectId\r\n });\r\n\r\n pattern.objectNumber = patternObjectId;\r\n var options = [];\r\n options.push({ key: \"Type\", value: \"/Pattern\" });\r\n options.push({ key: \"PatternType\", value: \"1\" }); // tiling pattern\r\n options.push({ key: \"PaintType\", value: \"1\" }); // colored tiling pattern\r\n options.push({ key: \"TilingType\", value: \"1\" }); // constant spacing\r\n options.push({\r\n key: \"BBox\",\r\n value: \"[\" + pattern.boundingBox.map(hpf).join(\" \") + \"]\"\r\n });\r\n options.push({ key: \"XStep\", value: hpf(pattern.xStep) });\r\n options.push({ key: \"YStep\", value: hpf(pattern.yStep) });\r\n options.push({ key: \"Resources\", value: resourcesObjectId + \" 0 R\" });\r\n if (pattern.matrix) {\r\n options.push({\r\n key: \"Matrix\",\r\n value: \"[\" + pattern.matrix.toString() + \"]\"\r\n });\r\n }\r\n\r\n putStream({\r\n data: pattern.stream,\r\n additionalKeyValues: options,\r\n objectId: pattern.objectNumber\r\n });\r\n out(\"endobj\");\r\n };\r\n\r\n var putPatterns = function(deferredResourceDictionaryIds) {\r\n var patternKey;\r\n for (patternKey in patterns) {\r\n if (patterns.hasOwnProperty(patternKey)) {\r\n if (patterns[patternKey] instanceof ShadingPattern) {\r\n putShadingPattern(patterns[patternKey]);\r\n } else if (patterns[patternKey] instanceof TilingPattern) {\r\n putTilingPattern(patterns[patternKey], deferredResourceDictionaryIds);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var putGState = function(gState) {\r\n gState.objectNumber = newObject();\r\n out(\"<<\");\r\n for (var p in gState) {\r\n switch (p) {\r\n case \"opacity\":\r\n out(\"/ca \" + f2(gState[p]));\r\n break;\r\n case \"stroke-opacity\":\r\n out(\"/CA \" + f2(gState[p]));\r\n break;\r\n }\r\n }\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putGStates = function() {\r\n var gStateKey;\r\n for (gStateKey in gStates) {\r\n if (gStates.hasOwnProperty(gStateKey)) {\r\n putGState(gStates[gStateKey]);\r\n }\r\n }\r\n };\r\n\r\n var putXobjectDict = function() {\r\n out(\"/XObject <<\");\r\n for (var xObjectKey in renderTargets) {\r\n if (\r\n renderTargets.hasOwnProperty(xObjectKey) &&\r\n renderTargets[xObjectKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" +\r\n xObjectKey +\r\n \" \" +\r\n renderTargets[xObjectKey].objectNumber +\r\n \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n // Loop through images, or other data objects\r\n events.publish(\"putXobjectDict\");\r\n out(\">>\");\r\n };\r\n\r\n var putEncryptionDict = function() {\r\n encryption.oid = newObject();\r\n out(\"<<\");\r\n out(\"/Filter /Standard\");\r\n out(\"/V \" + encryption.v);\r\n out(\"/R \" + encryption.r);\r\n out(\"/U <\" + encryption.toHexString(encryption.U) + \">\");\r\n out(\"/O <\" + encryption.toHexString(encryption.O) + \">\");\r\n out(\"/P \" + encryption.P);\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putFontDict = function() {\r\n out(\"/Font <<\");\r\n\r\n for (var fontKey in fonts) {\r\n if (fonts.hasOwnProperty(fontKey)) {\r\n if (\r\n putOnlyUsedFonts === false ||\r\n (putOnlyUsedFonts === true && usedFonts.hasOwnProperty(fontKey))\r\n ) {\r\n out(\"/\" + fontKey + \" \" + fonts[fontKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n }\r\n out(\">>\");\r\n };\r\n\r\n var putShadingPatternDict = function() {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Shading <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof ShadingPattern &&\r\n patterns[patternKey].objectNumber >= 0\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n\r\n events.publish(\"putShadingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putTilingPatternDict = function(objectOid) {\r\n if (Object.keys(patterns).length > 0) {\r\n out(\"/Pattern <<\");\r\n for (var patternKey in patterns) {\r\n if (\r\n patterns.hasOwnProperty(patternKey) &&\r\n patterns[patternKey] instanceof API.TilingPattern &&\r\n patterns[patternKey].objectNumber >= 0 &&\r\n patterns[patternKey].objectNumber < objectOid // prevent cyclic dependencies\r\n ) {\r\n out(\r\n \"/\" + patternKey + \" \" + patterns[patternKey].objectNumber + \" 0 R\"\r\n );\r\n }\r\n }\r\n events.publish(\"putTilingPatternDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putGStatesDict = function() {\r\n if (Object.keys(gStates).length > 0) {\r\n var gStateKey;\r\n out(\"/ExtGState <<\");\r\n for (gStateKey in gStates) {\r\n if (\r\n gStates.hasOwnProperty(gStateKey) &&\r\n gStates[gStateKey].objectNumber >= 0\r\n ) {\r\n out(\"/\" + gStateKey + \" \" + gStates[gStateKey].objectNumber + \" 0 R\");\r\n }\r\n }\r\n\r\n events.publish(\"putGStateDict\");\r\n out(\">>\");\r\n }\r\n };\r\n\r\n var putResourceDictionary = function(objectIds) {\r\n newObjectDeferredBegin(objectIds.resourcesOid, true);\r\n out(\"<<\");\r\n out(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\");\r\n putFontDict();\r\n putShadingPatternDict();\r\n putTilingPatternDict(objectIds.objectOid);\r\n putGStatesDict();\r\n putXobjectDict();\r\n out(\">>\");\r\n out(\"endobj\");\r\n };\r\n\r\n var putResources = function() {\r\n // FormObjects, Patterns etc. might use other FormObjects/Patterns/Images\r\n // which means their resource dictionaries must contain the already resolved\r\n // object ids. For this reason we defer the serialization of the resource\r\n // dicts until all objects have been serialized and have object ids.\r\n //\r\n // In order to prevent cyclic dependencies (which Adobe Reader doesn't like),\r\n // we only put all oids that are smaller than the oid of the object the\r\n // resource dict belongs to. This is correct behavior, since the streams\r\n // may only use other objects that have already been defined and thus appear\r\n // earlier in their respective collection.\r\n // Currently, this only affects tiling patterns, but a (more) correct\r\n // implementation of FormObjects would also define their own resource dicts.\r\n var deferredResourceDictionaryIds = [];\r\n\r\n putFonts();\r\n putGStates();\r\n putXObjects();\r\n putPatterns(deferredResourceDictionaryIds);\r\n\r\n events.publish(\"putResources\");\r\n deferredResourceDictionaryIds.forEach(putResourceDictionary);\r\n putResourceDictionary({\r\n resourcesOid: resourceDictionaryObjId,\r\n objectOid: Number.MAX_SAFE_INTEGER // output all objects\r\n });\r\n events.publish(\"postPutResources\");\r\n };\r\n\r\n var putAdditionalObjects = function() {\r\n events.publish(\"putAdditionalObjects\");\r\n for (var i = 0; i < additionalObjects.length; i++) {\r\n var obj = additionalObjects[i];\r\n newObjectDeferredBegin(obj.objId, true);\r\n out(obj.content);\r\n out(\"endobj\");\r\n }\r\n events.publish(\"postPutAdditionalObjects\");\r\n };\r\n\r\n var addFontToFontDictionary = function(font) {\r\n fontmap[font.fontName] = fontmap[font.fontName] || {};\r\n fontmap[font.fontName][font.fontStyle] = font.id;\r\n };\r\n\r\n var addFont = function(\r\n postScriptName,\r\n fontName,\r\n fontStyle,\r\n encoding,\r\n isStandardFont\r\n ) {\r\n var font = {\r\n id: \"F\" + (Object.keys(fonts).length + 1).toString(10),\r\n postScriptName: postScriptName,\r\n fontName: fontName,\r\n fontStyle: fontStyle,\r\n encoding: encoding,\r\n isStandardFont: isStandardFont || false,\r\n metadata: {}\r\n };\r\n\r\n events.publish(\"addFont\", {\r\n font: font,\r\n instance: this\r\n });\r\n\r\n fonts[font.id] = font;\r\n addFontToFontDictionary(font);\r\n return font.id;\r\n };\r\n\r\n var addFonts = function(arrayOfFonts) {\r\n for (var i = 0, l = standardFonts.length; i < l; i++) {\r\n var fontKey = addFont.call(\r\n this,\r\n arrayOfFonts[i][0],\r\n arrayOfFonts[i][1],\r\n arrayOfFonts[i][2],\r\n standardFonts[i][3],\r\n true\r\n );\r\n\r\n if (putOnlyUsedFonts === false) {\r\n usedFonts[fontKey] = true;\r\n }\r\n // adding aliases for standard fonts, this time matching the capitalization\r\n var parts = arrayOfFonts[i][0].split(\"-\");\r\n addFontToFontDictionary({\r\n id: fontKey,\r\n fontName: parts[0],\r\n fontStyle: parts[1] || \"\"\r\n });\r\n }\r\n events.publish(\"addFonts\", {\r\n fonts: fonts,\r\n dictionary: fontmap\r\n });\r\n };\r\n\r\n var SAFE = function __safeCall(fn) {\r\n fn.foo = function __safeCallWrapper() {\r\n try {\r\n return fn.apply(this, arguments);\r\n } catch (e) {\r\n var stack = e.stack || \"\";\r\n if (~stack.indexOf(\" at \")) stack = stack.split(\" at \")[1];\r\n var m =\r\n \"Error in function \" +\r\n stack.split(\"\\n\")[0].split(\"<\")[0] +\r\n \": \" +\r\n e.message;\r\n if (globalObject.console) {\r\n globalObject.console.error(m, e);\r\n if (globalObject.alert) alert(m);\r\n } else {\r\n throw new Error(m);\r\n }\r\n }\r\n };\r\n fn.foo.bar = fn;\r\n return fn.foo;\r\n };\r\n\r\n var to8bitStream = function(text, flags) {\r\n /**\r\n * PDF 1.3 spec:\r\n * \"For text strings encoded in Unicode, the first two bytes must be 254 followed by\r\n * 255, representing the Unicode byte order marker, U+FEFF. (This sequence conflicts\r\n * with the PDFDocEncoding character sequence thorn ydieresis, which is unlikely\r\n * to be a meaningful beginning of a word or phrase.) The remainder of the\r\n * string consists of Unicode character codes, according to the UTF-16 encoding\r\n * specified in the Unicode standard, version 2.0. Commonly used Unicode values\r\n * are represented as 2 bytes per character, with the high-order byte appearing first\r\n * in the string.\"\r\n *\r\n * In other words, if there are chars in a string with char code above 255, we\r\n * recode the string to UCS2 BE - string doubles in length and BOM is prepended.\r\n *\r\n * HOWEVER!\r\n * Actual *content* (body) text (as opposed to strings used in document properties etc)\r\n * does NOT expect BOM. There, it is treated as a literal GID (Glyph ID)\r\n *\r\n * Because of Adobe's focus on \"you subset your fonts!\" you are not supposed to have\r\n * a font that maps directly Unicode (UCS2 / UTF16BE) code to font GID, but you could\r\n * fudge it with \"Identity-H\" encoding and custom CIDtoGID map that mimics Unicode\r\n * code page. There, however, all characters in the stream are treated as GIDs,\r\n * including BOM, which is the reason we need to skip BOM in content text (i.e. that\r\n * that is tied to a font).\r\n *\r\n * To signal this \"special\" PDFEscape / to8bitStream handling mode,\r\n * API.text() function sets (unless you overwrite it with manual values\r\n * given to API.text(.., flags) )\r\n * flags.autoencode = true\r\n * flags.noBOM = true\r\n *\r\n * ===================================================================================\r\n * `flags` properties relied upon:\r\n * .sourceEncoding = string with encoding label.\r\n * \"Unicode\" by default. = encoding of the incoming text.\r\n * pass some non-existing encoding name\r\n * (ex: 'Do not touch my strings! I know what I am doing.')\r\n * to make encoding code skip the encoding step.\r\n * .outputEncoding = Either valid PDF encoding name\r\n * (must be supported by jsPDF font metrics, otherwise no encoding)\r\n * or a JS object, where key = sourceCharCode, value = outputCharCode\r\n * missing keys will be treated as: sourceCharCode === outputCharCode\r\n * .noBOM\r\n * See comment higher above for explanation for why this is important\r\n * .autoencode\r\n * See comment higher above for explanation for why this is important\r\n */\r\n\r\n var i,\r\n l,\r\n sourceEncoding,\r\n encodingBlock,\r\n outputEncoding,\r\n newtext,\r\n isUnicode,\r\n ch,\r\n bch;\r\n\r\n flags = flags || {};\r\n sourceEncoding = flags.sourceEncoding || \"Unicode\";\r\n outputEncoding = flags.outputEncoding;\r\n\r\n // This 'encoding' section relies on font metrics format\r\n // attached to font objects by, among others,\r\n // \"Willow Systems' standard_font_metrics plugin\"\r\n // see jspdf.plugin.standard_font_metrics.js for format\r\n // of the font.metadata.encoding Object.\r\n // It should be something like\r\n // .encoding = {'codePages':['WinANSI....'], 'WinANSI...':{code:code, ...}}\r\n // .widths = {0:width, code:width, ..., 'fof':divisor}\r\n // .kerning = {code:{previous_char_code:shift, ..., 'fof':-divisor},...}\r\n if (\r\n (flags.autoencode || outputEncoding) &&\r\n fonts[activeFontKey].metadata &&\r\n fonts[activeFontKey].metadata[sourceEncoding] &&\r\n fonts[activeFontKey].metadata[sourceEncoding].encoding\r\n ) {\r\n encodingBlock = fonts[activeFontKey].metadata[sourceEncoding].encoding;\r\n\r\n // each font has default encoding. Some have it clearly defined.\r\n if (!outputEncoding && fonts[activeFontKey].encoding) {\r\n outputEncoding = fonts[activeFontKey].encoding;\r\n }\r\n\r\n // Hmmm, the above did not work? Let's try again, in different place.\r\n if (!outputEncoding && encodingBlock.codePages) {\r\n outputEncoding = encodingBlock.codePages[0]; // let's say, first one is the default\r\n }\r\n\r\n if (typeof outputEncoding === \"string\") {\r\n outputEncoding = encodingBlock[outputEncoding];\r\n }\r\n // we want output encoding to be a JS Object, where\r\n // key = sourceEncoding's character code and\r\n // value = outputEncoding's character code.\r\n if (outputEncoding) {\r\n isUnicode = false;\r\n newtext = [];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = outputEncoding[text.charCodeAt(i)];\r\n if (ch) {\r\n newtext.push(String.fromCharCode(ch));\r\n } else {\r\n newtext.push(text[i]);\r\n }\r\n\r\n // since we are looping over chars anyway, might as well\r\n // check for residual unicodeness\r\n if (newtext[i].charCodeAt(0) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n }\r\n text = newtext.join(\"\");\r\n }\r\n }\r\n\r\n i = text.length;\r\n // isUnicode may be set to false above. Hence the triple-equal to undefined\r\n while (isUnicode === undefined && i !== 0) {\r\n if (text.charCodeAt(i - 1) >> 8) {\r\n /* more than 255 */\r\n isUnicode = true;\r\n }\r\n i--;\r\n }\r\n if (!isUnicode) {\r\n return text;\r\n }\r\n\r\n newtext = flags.noBOM ? [] : [254, 255];\r\n for (i = 0, l = text.length; i < l; i++) {\r\n ch = text.charCodeAt(i);\r\n bch = ch >> 8; // divide by 256\r\n if (bch >> 8) {\r\n /* something left after dividing by 256 second time */\r\n throw new Error(\r\n \"Character at position \" +\r\n i +\r\n \" of string '\" +\r\n text +\r\n \"' exceeds 16bits. Cannot be encoded into UCS-2 BE\"\r\n );\r\n }\r\n newtext.push(bch);\r\n newtext.push(ch - (bch << 8));\r\n }\r\n return String.fromCharCode.apply(undefined, newtext);\r\n };\r\n\r\n var pdfEscape = (API.__private__.pdfEscape = API.pdfEscape = function(\r\n text,\r\n flags\r\n ) {\r\n /**\r\n * Replace '/', '(', and ')' with pdf-safe versions\r\n *\r\n * Doing to8bitStream does NOT make this PDF display unicode text. For that\r\n * we also need to reference a unicode font and embed it - royal pain in the rear.\r\n *\r\n * There is still a benefit to to8bitStream - PDF simply cannot handle 16bit chars,\r\n * which JavaScript Strings are happy to provide. So, while we still cannot display\r\n * 2-byte characters property, at least CONDITIONALLY converting (entire string containing)\r\n * 16bit chars to (USC-2-BE) 2-bytes per char + BOM streams we ensure that entire PDF\r\n * is still parseable.\r\n * This will allow immediate support for unicode in document properties strings.\r\n */\r\n return to8bitStream(text, flags)\r\n .replace(/\\\\/g, \"\\\\\\\\\")\r\n .replace(/\\(/g, \"\\\\(\")\r\n .replace(/\\)/g, \"\\\\)\");\r\n });\r\n\r\n var beginPage = (API.__private__.beginPage = function(format) {\r\n pages[++page] = [];\r\n pagesContext[page] = {\r\n objId: 0,\r\n contentsObjId: 0,\r\n userUnit: Number(userUnit),\r\n artBox: null,\r\n bleedBox: null,\r\n cropBox: null,\r\n trimBox: null,\r\n mediaBox: {\r\n bottomLeftX: 0,\r\n bottomLeftY: 0,\r\n topRightX: Number(format[0]),\r\n topRightY: Number(format[1])\r\n }\r\n };\r\n _setPage(page);\r\n setOutputDestination(pages[currentPage]);\r\n });\r\n\r\n var _addPage = function(parmFormat, parmOrientation) {\r\n var dimensions, width, height;\r\n\r\n orientation = parmOrientation || orientation;\r\n\r\n if (typeof parmFormat === \"string\") {\r\n dimensions = getPageFormat(parmFormat.toLowerCase());\r\n if (Array.isArray(dimensions)) {\r\n width = dimensions[0];\r\n height = dimensions[1];\r\n }\r\n }\r\n\r\n if (Array.isArray(parmFormat)) {\r\n width = parmFormat[0] * scaleFactor;\r\n height = parmFormat[1] * scaleFactor;\r\n }\r\n\r\n if (isNaN(width)) {\r\n width = format[0];\r\n height = format[1];\r\n }\r\n\r\n if (width > 14400 || height > 14400) {\r\n console.warn(\r\n \"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"\r\n );\r\n width = Math.min(14400, width);\r\n height = Math.min(14400, height);\r\n }\r\n\r\n format = [width, height];\r\n\r\n switch (orientation.substr(0, 1)) {\r\n case \"l\":\r\n if (height > width) {\r\n format = [height, width];\r\n }\r\n break;\r\n case \"p\":\r\n if (width > height) {\r\n format = [height, width];\r\n }\r\n break;\r\n }\r\n\r\n beginPage(format);\r\n\r\n // Set line width\r\n setLineWidth(lineWidth);\r\n // Set draw color\r\n out(strokeColor);\r\n // resurrecting non-default line caps, joins\r\n if (lineCapID !== 0) {\r\n out(lineCapID + \" J\");\r\n }\r\n if (lineJoinID !== 0) {\r\n out(lineJoinID + \" j\");\r\n }\r\n events.publish(\"addPage\", {\r\n pageNumber: page\r\n });\r\n };\r\n\r\n var _deletePage = function(n) {\r\n if (n > 0 && n <= page) {\r\n pages.splice(n, 1);\r\n pagesContext.splice(n, 1);\r\n page--;\r\n if (currentPage > page) {\r\n currentPage = page;\r\n }\r\n this.setPage(currentPage);\r\n }\r\n };\r\n\r\n var _setPage = function(n) {\r\n if (n > 0 && n <= page) {\r\n currentPage = n;\r\n }\r\n };\r\n\r\n var getNumberOfPages = (API.__private__.getNumberOfPages = API.getNumberOfPages = function() {\r\n return pages.length - 1;\r\n });\r\n\r\n /**\r\n * Returns a document-specific font key - a label assigned to a\r\n * font name + font type combination at the time the font was added\r\n * to the font inventory.\r\n *\r\n * Font key is used as label for the desired font for a block of text\r\n * to be added to the PDF document stream.\r\n * @private\r\n * @function\r\n * @param fontName {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @param fontStyle {string} can be undefined on \"falthy\" to indicate \"use current\"\r\n * @returns {string} Font key.\r\n * @ignore\r\n */\r\n var getFont = function(fontName, fontStyle, options) {\r\n var key = undefined,\r\n fontNameLowerCase;\r\n options = options || {};\r\n\r\n fontName =\r\n fontName !== undefined ? fontName : fonts[activeFontKey].fontName;\r\n fontStyle =\r\n fontStyle !== undefined ? fontStyle : fonts[activeFontKey].fontStyle;\r\n fontNameLowerCase = fontName.toLowerCase();\r\n\r\n if (\r\n fontmap[fontNameLowerCase] !== undefined &&\r\n fontmap[fontNameLowerCase][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontNameLowerCase][fontStyle];\r\n } else if (\r\n fontmap[fontName] !== undefined &&\r\n fontmap[fontName][fontStyle] !== undefined\r\n ) {\r\n key = fontmap[fontName][fontStyle];\r\n } else {\r\n if (options.disableWarning === false) {\r\n console.warn(\r\n \"Unable to look up font label for font '\" +\r\n fontName +\r\n \"', '\" +\r\n fontStyle +\r\n \"'. Refer to getFontList() for available fonts.\"\r\n );\r\n }\r\n }\r\n\r\n if (!key && !options.noFallback) {\r\n key = fontmap[\"times\"][fontStyle];\r\n if (key == null) {\r\n key = fontmap[\"times\"][\"normal\"];\r\n }\r\n }\r\n return key;\r\n };\r\n\r\n var putInfo = (API.__private__.putInfo = function() {\r\n var objectId = newObject();\r\n var encryptor = function(data) {\r\n return data;\r\n };\r\n if (encryptionOptions !== null) {\r\n encryptor = encryption.encryptor(objectId, 0);\r\n }\r\n out(\"<<\");\r\n out(\"/Producer (\" + pdfEscape(encryptor(\"jsPDF \" + jsPDF.version)) + \")\");\r\n for (var key in documentProperties) {\r\n if (documentProperties.hasOwnProperty(key) && documentProperties[key]) {\r\n out(\r\n \"/\" +\r\n key.substr(0, 1).toUpperCase() +\r\n key.substr(1) +\r\n \" (\" +\r\n pdfEscape(encryptor(documentProperties[key])) +\r\n \")\"\r\n );\r\n }\r\n }\r\n out(\"/CreationDate (\" + pdfEscape(encryptor(creationDate)) + \")\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putCatalog = (API.__private__.putCatalog = function(options) {\r\n options = options || {};\r\n var tmpRootDictionaryObjId =\r\n options.rootDictionaryObjId || rootDictionaryObjId;\r\n newObject();\r\n out(\"<<\");\r\n out(\"/Type /Catalog\");\r\n out(\"/Pages \" + tmpRootDictionaryObjId + \" 0 R\");\r\n // PDF13ref Section 7.2.1\r\n if (!zoomMode) zoomMode = \"fullwidth\";\r\n switch (zoomMode) {\r\n case \"fullwidth\":\r\n out(\"/OpenAction [3 0 R /FitH null]\");\r\n break;\r\n case \"fullheight\":\r\n out(\"/OpenAction [3 0 R /FitV null]\");\r\n break;\r\n case \"fullpage\":\r\n out(\"/OpenAction [3 0 R /Fit]\");\r\n break;\r\n case \"original\":\r\n out(\"/OpenAction [3 0 R /XYZ null null 1]\");\r\n break;\r\n default:\r\n var pcn = \"\" + zoomMode;\r\n if (pcn.substr(pcn.length - 1) === \"%\")\r\n zoomMode = parseInt(zoomMode) / 100;\r\n if (typeof zoomMode === \"number\") {\r\n out(\"/OpenAction [3 0 R /XYZ null null \" + f2(zoomMode) + \"]\");\r\n }\r\n }\r\n if (!layoutMode) layoutMode = \"continuous\";\r\n switch (layoutMode) {\r\n case \"continuous\":\r\n out(\"/PageLayout /OneColumn\");\r\n break;\r\n case \"single\":\r\n out(\"/PageLayout /SinglePage\");\r\n break;\r\n case \"two\":\r\n case \"twoleft\":\r\n out(\"/PageLayout /TwoColumnLeft\");\r\n break;\r\n case \"tworight\":\r\n out(\"/PageLayout /TwoColumnRight\");\r\n break;\r\n }\r\n if (pageMode) {\r\n /**\r\n * A name object specifying how the document should be displayed when opened:\r\n * UseNone : Neither document outline nor thumbnail images visible -- DEFAULT\r\n * UseOutlines : Document outline visible\r\n * UseThumbs : Thumbnail images visible\r\n * FullScreen : Full-screen mode, with no menu bar, window controls, or any other window visible\r\n */\r\n out(\"/PageMode /\" + pageMode);\r\n }\r\n events.publish(\"putCatalog\");\r\n out(\">>\");\r\n out(\"endobj\");\r\n });\r\n\r\n var putTrailer = (API.__private__.putTrailer = function() {\r\n out(\"trailer\");\r\n out(\"<<\");\r\n out(\"/Size \" + (objectNumber + 1));\r\n // Root and Info must be the last and second last objects written respectively\r\n out(\"/Root \" + objectNumber + \" 0 R\");\r\n out(\"/Info \" + (objectNumber - 1) + \" 0 R\");\r\n if (encryptionOptions !== null) {\r\n out(\"/Encrypt \" + encryption.oid + \" 0 R\");\r\n }\r\n out(\"/ID [ <\" + fileId + \"> <\" + fileId + \"> ]\");\r\n out(\">>\");\r\n });\r\n\r\n var putHeader = (API.__private__.putHeader = function() {\r\n out(\"%PDF-\" + pdfVersion);\r\n out(\"%\\xBA\\xDF\\xAC\\xE0\");\r\n });\r\n\r\n var putXRef = (API.__private__.putXRef = function() {\r\n var p = \"0000000000\";\r\n\r\n out(\"xref\");\r\n out(\"0 \" + (objectNumber + 1));\r\n out(\"0000000000 65535 f \");\r\n for (var i = 1; i <= objectNumber; i++) {\r\n var offset = offsets[i];\r\n if (typeof offset === \"function\") {\r\n out((p + offsets[i]()).slice(-10) + \" 00000 n \");\r\n } else {\r\n if (typeof offsets[i] !== \"undefined\") {\r\n out((p + offsets[i]).slice(-10) + \" 00000 n \");\r\n } else {\r\n out(\"0000000000 00000 n \");\r\n }\r\n }\r\n }\r\n });\r\n\r\n var buildDocument = (API.__private__.buildDocument = function() {\r\n resetDocument();\r\n setOutputDestination(content);\r\n\r\n events.publish(\"buildDocument\");\r\n\r\n putHeader();\r\n putPages();\r\n putAdditionalObjects();\r\n putResources();\r\n if (encryptionOptions !== null) putEncryptionDict();\r\n putInfo();\r\n putCatalog();\r\n\r\n var offsetOfXRef = contentLength;\r\n putXRef();\r\n putTrailer();\r\n out(\"startxref\");\r\n out(\"\" + offsetOfXRef);\r\n out(\"%%EOF\");\r\n\r\n setOutputDestination(pages[currentPage]);\r\n\r\n return content.join(\"\\n\");\r\n });\r\n\r\n var getBlob = (API.__private__.getBlob = function(data) {\r\n return new Blob([getArrayBuffer(data)], {\r\n type: \"application/pdf\"\r\n });\r\n });\r\n\r\n /**\r\n * Generates the PDF document.\r\n *\r\n * If `type` argument is undefined, output is raw body of resulting PDF returned as a string.\r\n *\r\n * @param {string} type A string identifying one of the possible output types.
\r\n * Possible values are:
\r\n * 'arraybuffer' -> (ArrayBuffer)
\r\n * 'blob' -> (Blob)
\r\n * 'bloburi'/'bloburl' -> (string)
\r\n * 'datauristring'/'dataurlstring' -> (string)
\r\n * 'datauri'/'dataurl' -> (undefined) -> change location to generated datauristring/dataurlstring
\r\n * 'dataurlnewwindow' -> (window | null | undefined) throws error if global isn't a window object(node)
\r\n * 'pdfobjectnewwindow' -> (window | null) throws error if global isn't a window object(node)
\r\n * 'pdfjsnewwindow' -> (wind | null)\r\n * @param {Object|string} options An object providing some additional signalling to PDF generator.
\r\n * Possible options are 'filename'.
\r\n * A string can be passed instead of {filename:string} and defaults to 'generated.pdf'\r\n * @function\r\n * @instance\r\n * @returns {string|window|ArrayBuffer|Blob|jsPDF|null|undefined}\r\n * @memberof jsPDF#\r\n * @name output\r\n */\r\n var output = (API.output = API.__private__.output = SAFE(function output(\r\n type,\r\n options\r\n ) {\r\n options = options || {};\r\n\r\n if (typeof options === \"string\") {\r\n options = {\r\n filename: options\r\n };\r\n } else {\r\n options.filename = options.filename || \"generated.pdf\";\r\n }\r\n\r\n switch (type) {\r\n case undefined:\r\n return buildDocument();\r\n case \"save\":\r\n API.save(options.filename);\r\n break;\r\n case \"arraybuffer\":\r\n return getArrayBuffer(buildDocument());\r\n case \"blob\":\r\n return getBlob(buildDocument());\r\n case \"bloburi\":\r\n case \"bloburl\":\r\n // Developer is responsible of calling revokeObjectURL\r\n if (\r\n typeof globalObject.URL !== \"undefined\" &&\r\n typeof globalObject.URL.createObjectURL === \"function\"\r\n ) {\r\n return (\r\n (globalObject.URL &&\r\n globalObject.URL.createObjectURL(getBlob(buildDocument()))) ||\r\n void 0\r\n );\r\n } else {\r\n console.warn(\r\n \"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\"\r\n );\r\n }\r\n break;\r\n case \"datauristring\":\r\n case \"dataurlstring\":\r\n var dataURI = \"\";\r\n var pdfDocument = buildDocument();\r\n try {\r\n dataURI = btoa(pdfDocument);\r\n } catch (e) {\r\n dataURI = btoa(unescape(encodeURIComponent(pdfDocument)));\r\n }\r\n return (\r\n \"data:application/pdf;filename=\" +\r\n options.filename +\r\n \";base64,\" +\r\n dataURI\r\n );\r\n case \"pdfobjectnewwindow\":\r\n if (\r\n Object.prototype.toString.call(globalObject) === \"[object Window]\"\r\n ) {\r\n var pdfObjectUrl =\r\n \"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\";\r\n var integrity =\r\n ' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';\r\n\r\n if (options.pdfObjectUrl) {\r\n pdfObjectUrl = options.pdfObjectUrl;\r\n integrity = \"\";\r\n }\r\n\r\n var htmlForNewWindow =\r\n \"\" +\r\n '\";\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","/**\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","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) 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","/* 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 * 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","/**\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 Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { hash } from 'rsvp';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport Constants from '../utils/constants';\r\nimport mathRound from '../helpers/math-round';\r\nimport $ from 'jquery';\r\nimport jsPDF from 'jspdf';\r\nimport { arial } from '../utils/fonts/ARIAL-normal';\r\nimport { arialBold } from '../utils/fonts/ARIALBD-bold';\r\nimport { arialItalic } from '../utils/fonts/ARIALI-italic';\r\n\r\nconst FONT_SIZE_TITLE = 24;\r\nconst FONT_SIZE_H1 = 16;\r\nconst FONT_SIZE_H2 = 13;\r\nconst FONT_SIZE_NORMAL = 11;\r\n\r\nconst MARGIN = 15; // in mm\r\nconst LETTER_HEIGHT = 279;\r\nconst LETTER_WIDTH = 216;\r\nconst MARGIN_RIGHT = LETTER_WIDTH - MARGIN;\r\nconst MARGIN_CENTER = MARGIN + (MARGIN_RIGHT - MARGIN) / 2;\r\nconst MARGIN_BOTTOM = LETTER_HEIGHT - MARGIN;\r\n\r\n//#region local functions\r\n\r\nfunction convertSVGToImage(svgElem) {\r\n let imageData;\r\n const baseHeight = svgElem.height.baseVal.value;\r\n const baseWidth = svgElem.width.baseVal.value;\r\n let scaler = 1500 / Math.max(baseHeight, baseWidth); // higher = better image quality\r\n const canvas = document.createElement('canvas');\r\n canvas.height = baseHeight * scaler;\r\n canvas.width = baseWidth * scaler;\r\n return new Promise((resolve, reject) => {\r\n const scaleHeight = baseHeight * scaler;\r\n const scaleWidth = baseWidth * scaler;\r\n let svgString = new XMLSerializer()\r\n .serializeToString(svgElem)\r\n .replace(/height=\"[0-9]+px\"/, `height=\"${scaleHeight}px\"`)\r\n .replace(/width=\"[0-9]+px\"/, `width=\"${scaleWidth}px\"`);\r\n const ctx = canvas.getContext('2d');\r\n const DOMURL = window.URL || window.webkitURL;\r\n const img = new Image();\r\n const svg = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\r\n const url = DOMURL.createObjectURL(svg);\r\n img.onload = () => {\r\n if (ctx) ctx.drawImage(img, 0, 0);\r\n imageData = canvas.toDataURL('image/png', 1);\r\n DOMURL.revokeObjectURL(url);\r\n if (imageData !== null) {\r\n resolve({ data: imageData, width: baseWidth, height: baseHeight, format: 'PNG' });\r\n } else {\r\n reject({ data: null, width: 0, height: 0, format: 'PNG' });\r\n }\r\n };\r\n img.src = url;\r\n });\r\n}\r\n\r\nfunction messageCoalesce(strings) {\r\n let string;\r\n for (let i = 0; i < strings.length; i++) {\r\n string = strings[i];\r\n if (typeof string === 'string' && !!string) return string.toString();\r\n if (typeof string === 'object' && string !== null && string.toString().length > 0) return string.toString();\r\n }\r\n}\r\n\r\nlet analogLogoCanvas = null;\r\nfunction addAnalogImage(doc, width = 60, downscaleFactor = 3) {\r\n return new Promise((resolve) => {\r\n let hasCanvasFn = () => {\r\n let dataUrl = analogLogoCanvas.toDataURL('image/jpeg', 0.9);\r\n let outHeight = (width * analogLogoCanvas.height) / analogLogoCanvas.width; // Make proportional\r\n doc.addImage(dataUrl, 'JPEG', MARGIN, MARGIN, width, outHeight);\r\n resolve();\r\n };\r\n\r\n if (!analogLogoCanvas) {\r\n // Retrieve the Analog image and run function when finished\r\n let analogImage = document.createElement('img');\r\n console.log('we are retrieving the analog image');\r\n analogImage.onload = () => {\r\n console.log('we have loaded the analog image');\r\n analogLogoCanvas = document.createElement('canvas');\r\n analogLogoCanvas.height = analogImage.height / downscaleFactor;\r\n analogLogoCanvas.width = analogImage.width / downscaleFactor;\r\n let ctx = analogLogoCanvas.getContext('2d');\r\n ctx.fillStyle = 'white';\r\n ctx.fillRect(0, 0, analogLogoCanvas.width, analogLogoCanvas.height);\r\n analogLogoCanvas\r\n .getContext('2d')\r\n .drawImage(analogImage, 0, 0, analogLogoCanvas.width, analogLogoCanvas.height);\r\n hasCanvasFn();\r\n };\r\n analogImage.style.display = 'none';\r\n analogImage.src = 'images/Analog_Devices_Logo.svg.png';\r\n } else {\r\n hasCanvasFn();\r\n }\r\n });\r\n}\r\n\r\nfunction dropDoubleBytes(str) {\r\n let chars = [];\r\n\r\n for (var i = 0, n = str.length; i < n; i++) {\r\n if (str.charCodeAt(i) > 255) {\r\n chars.push(str.substr(i, 1));\r\n }\r\n }\r\n for (i = 0; i < chars.length; i++) {\r\n let char = chars[i];\r\n str = str.replace(char, '');\r\n }\r\n return str;\r\n}\r\n\r\n// Watch for jqplot to be drawn, so it can be scraped\r\nconst drawnPromise = function (stuffToDo = function () {}) {\r\n return new Promise((resolve) => {\r\n window.jQuery.jqplot.postDrawHooks\r\n .filter((h) => h.forExport === true) // Find all post-draw hooks marked with \"for export\"\r\n .forEach((h) => window.jQuery.jqplot.postDrawHooks.removeObject(h)); // and remove them (should only be 0-1 of these)\r\n let f = () => resolve(); // Add a function that resolves this promise\r\n f.forExport = true;\r\n window.jQuery.jqplot.postDrawHooks.push(f);\r\n\r\n // do stuff after post-draw hook is initalized.\r\n stuffToDo();\r\n });\r\n};\r\n\r\n// #endregion\r\n\r\n// Create a detached element for rendering the canvas comfortably offscreen\r\nlet detachedChartEl = document.createElement('div');\r\ndetachedChartEl.id = 'detachedChartEl';\r\ndetachedChartEl.style.cssText = 'height: 500px; width: 500px; position: absolute; top: -2000px; left: -2000px';\r\ndocument.body.appendChild(detachedChartEl);\r\n\r\nexport default class PdfExportService extends Service {\r\n @service intl;\r\n @service('data') model;\r\n @service errorHandling;\r\n @service plotDataService;\r\n @service urlData;\r\n @service tabService;\r\n\r\n //#region zoom\r\n\r\n // watch document scaling\r\n currentZoom = 1;\r\n zoomInvalid = false;\r\n zoomWasChanged = false;\r\n\r\n checkZoom(initialCheck = false) {\r\n let currentZoom = window.devicePixelRatio;\r\n\r\n // On subsequent resizes, check to see if the user changed the zoom\r\n if (!initialCheck) {\r\n let oldZoom = this.currentZoom;\r\n if (oldZoom != currentZoom) {\r\n this.set('zoomWasChanged', true);\r\n console.log('zoom was changed');\r\n }\r\n }\r\n this.set('currentZoom', currentZoom);\r\n this.set('zoomInvalid', currentZoom < 1);\r\n\r\n if (currentZoom < 1) this.set('zoomWasInvalid', true);\r\n }\r\n\r\n //#endregion zoom\r\n\r\n init() {\r\n super.init();\r\n console.log('initialized pdf-export service');\r\n\r\n $(window).on('resize', $.proxy(this.checkZoom, this, null)); // Re-check on resize, which captures zoom change\r\n this.checkZoom(true); // check immediately\r\n window.pdfExport = this; // for testing\r\n }\r\n\r\n //#region For saving external charts and chart messages\r\n\r\n tabs = {}; // not best practice\r\n\r\n //#endregion\r\n\r\n //#region generate pdf\r\n\r\n generatePdf() {\r\n let _model = this.model;\r\n let doc = new jsPDF('p', 'mm', 'letter'); // \"p\" for portrait, \"mm\", \"letter\"\r\n doc.addFileToVFS('ARIAL-normal.ttf', arial);\r\n doc.addFileToVFS('ARIALBD-bold.ttf', arialBold);\r\n doc.addFileToVFS('ARIALI-italic.ttf', arialItalic);\r\n doc.addFont('ARIAL-normal.ttf', 'ARIAL', 'normal');\r\n doc.addFont('ARIALBD-bold.ttf', 'ARIAL', 'bold');\r\n doc.addFont('ARIALI-italic.ttf', 'ARIAL', 'italic');\r\n let offset = 65;\r\n let left = 0; // for columns\r\n let page = 1;\r\n let fin = PrettyNum.eng3(_model.frequency);\r\n\r\n let part, driverPart;\r\n\r\n console.log('addAnalogImage start');\r\n console.time('addAnalogImage');\r\n addAnalogImage(doc, 50)\r\n .then(() => {\r\n console.log('addAnalogImage end');\r\n console.timeEnd('addAnalogImage');\r\n // Header text\r\n doc.setFontSize(FONT_SIZE_TITLE).text('Summary Report for Precision ADC Driver Tool', 15, 50);\r\n\r\n // \"View configuration\"\r\n doc.setFontSize(FONT_SIZE_NORMAL).text('View configuration at', 15, 60);\r\n\r\n // URL\r\n let url = window.location.href;\r\n url = url.replace('tab=4', 'tab=1');\r\n let splitUrl = doc.splitTextToSize(url, 170);\r\n\r\n doc.setTextColor(0, 0, 255); // blue\r\n for (let i = 0; i < splitUrl.length; i++) {\r\n doc.textWithLink(splitUrl[i], 15, offset, { url });\r\n offset += 5;\r\n }\r\n doc.setTextColor(0); // black\r\n })\r\n .then(() => {\r\n // main code for converting the circuit svg to an image for the pdf\r\n let mainSvg = document.querySelector('.svg-container svg');\r\n let returnSVG = convertSVGToImage(mainSvg);\r\n return returnSVG;\r\n })\r\n .then((svgImage) => {\r\n let pageWidth = doc.internal.pageSize.getWidth(); // get page width so the image can be scaled to fit the page\r\n let pageHeight = doc.internal.pageSize.getHeight(); // get page height so the position of the image can be adjusted\r\n let scaler = pageWidth / svgImage.width;\r\n let yOffset = pageHeight - svgImage.height * scaler - 20; // -20 compensates for the footer\r\n doc.addImage(\r\n svgImage.data,\r\n svgImage.format,\r\n 0,\r\n yOffset,\r\n svgImage.width * scaler,\r\n svgImage.height * scaler,\r\n );\r\n\r\n offset += 10;\r\n\r\n // \"Circuit specifications\"\r\n doc.setFontSize(FONT_SIZE_H1).text('Circuit Specifications:', 15, offset);\r\n offset += 10;\r\n let rootOffset = offset; // for returning to later\r\n left = 0; // for columns\r\n doc.setFontSize(FONT_SIZE_NORMAL);\r\n\r\n // input column\r\n doc.setFont('ARIAL', 'bold').text('Input', 15, offset); // This may be a good place for split lines.\r\n offset += 5;\r\n doc.setFont('ARIAL', 'normal').text(\r\n ` • ${_model.selectedSourceType.description.toString()}\\n` +\r\n ` • Fin = ${fin}Hz\\n` +\r\n (_model.multiplexed ? ' • Multiplexed input' : ''), // Optional, only if multiplexed.\r\n 15,\r\n offset,\r\n );\r\n\r\n // Driver column\r\n offset = rootOffset;\r\n left = 55;\r\n driverPart = _model.selectedDriver.partCore;\r\n let driverUrl = `${this.urlData.analogBaseProductsUrl}/${driverPart}.html`;\r\n doc.setFont('ARIAL', 'bold')\r\n .text('Driver - ', left, offset)\r\n .setTextColor(0, 0, 255)\r\n .textWithLink(driverPart, left + 15, offset, { url: driverUrl });\r\n doc.setTextColor(0);\r\n offset += 5;\r\n doc.setFont('ARIAL', 'normal').text(\r\n ` • ${_model.selectedTopology.description} configuration\\n` +\r\n ` • +Vs = ${PrettyNum.eng3(_model.vSupplyPos)}V\\n` +\r\n ` • -Vs = ${PrettyNum.eng3(_model.vSupplyNeg)}V`,\r\n left,\r\n offset,\r\n );\r\n\r\n if (_model.filterEnabled) {\r\n // Filter column\r\n offset = rootOffset;\r\n left = 108;\r\n doc.setFont('ARIAL', 'bold').text('Filter', left, offset);\r\n offset += 5;\r\n doc.setFont('ARIAL', 'normal');\r\n let ohm = ` • Rext = ${PrettyNum.eng3(_model.rext)}`; // Insert Ohm character after this\r\n let ohmLength = doc.getTextWidth(ohm);\r\n doc.text(ohm + '\\n' + ` • Cext = ${PrettyNum.eng3(_model.cext)}F`, left, offset);\r\n let ohmCharacterData = this.makeOhmCharacter().toDataURL(); // png url is default\r\n // let outHeight = width * canvas.height / canvas.width; // Make proportional\r\n let dim = (24 / 30) * 3.5; // convert size in pixels to size in mm (using 300ppi standard page resolution)\r\n doc.addImage(ohmCharacterData, 'PNG', left + ohmLength, offset - dim, dim, dim);\r\n }\r\n\r\n // ADC column\r\n offset = rootOffset;\r\n left = _model.filterEnabled ? 150 : 108;\r\n part = _model.selectedAdc.partCore;\r\n let partUrl = `${this.urlData.analogBaseProductsUrl}/${part}.html`;\r\n doc.setFont('ARIAL', 'bold')\r\n .text('ADC - ', left, offset)\r\n .setTextColor(0, 0, 255)\r\n .textWithLink(part, left + 12, offset, { url: partUrl });\r\n doc.setTextColor(0);\r\n offset += 5;\r\n doc.setFont('ARIAL', 'normal').text(\r\n ` • Sample Rate = ${PrettyNum.eng3(_model.samplingRate)}SPS\\n` +\r\n ` • Vref = ${PrettyNum.eng4(_model.vref)}V\\n` +\r\n (_model.showVariant ? ' • HiZ mode enabled' : ''), // optional: Hi-Z variant (only expects Hi-Z at this time)\r\n left,\r\n offset,\r\n );\r\n\r\n // Add main chart diagram\r\n offset += 10; // This is as far up as the chart can be placed, unless it's drawn before the table.\r\n // doc.addImage(schemaCanvas.toDataURL('image/jpeg', 0.8), 'JPEG', 15, offset, 180, 180);\r\n\r\n // Footer\r\n this.addFooter(doc, page++);\r\n\r\n return hash({\r\n ac: this.saveChartByName('acChart'),\r\n dc: this.saveChartByName('dcChart'),\r\n noise: this.saveChartByName('noiseChart'),\r\n muxed: this.saveChartByName('muxedChart'),\r\n });\r\n })\r\n .then((jqplotData) => {\r\n // For charts\r\n let chartWidth = 120; // control chart's width\r\n let chartLeft = 40;\r\n let chartTop = 70;\r\n\r\n offset = 15;\r\n left = 15;\r\n\r\n //#region Page 2, Input Settling\r\n if (!this.model.selectedAdc.settlingPanelMessageIntl) {\r\n // Settling simulation is not disabled\r\n doc.addPage();\r\n\r\n // Header and header data\r\n doc.setFontSize(FONT_SIZE_H1).text('ADC Input Settling Simulation', left, offset);\r\n offset += 10;\r\n\r\n if (!this.errorHandling.vSupplyError) {\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n ` • ADC Sample Period = ${PrettyNum.eng3(_model.samplePeriod)}s\\n` +\r\n ` • ADC Conversion Time = ${PrettyNum.eng3(\r\n _model.inputSettlingArrays.conversionTime,\r\n )}s\\n` +\r\n ` • ADC Acquisition Time = ${PrettyNum.eng3(\r\n _model.inputSettlingArrays.acquisitionTime,\r\n )}s\\n` +\r\n ` • RC Filter Bandwidth = ${PrettyNum.eng3(_model.filterBandwidth)}Hz\\n` +\r\n ` • 1 LSB = ${PrettyNum.eng3(_model.oneLsb)}V`,\r\n left,\r\n offset,\r\n );\r\n } else {\r\n this.writeError(doc, this.intl.t('labels.unable_to_calc'), offset);\r\n }\r\n\r\n // Check for error and display if they are there\r\n {\r\n let rcBwWarn = this.errorHandling.bwWarnings.rcBw.toString();\r\n let settlingRingingWarn = this.errorHandling.bwWarnings.settlingRinging.toString();\r\n let error = messageCoalesce([rcBwWarn, settlingRingingWarn]);\r\n if (error) {\r\n // Only triggers for non-null non-\"\" values\r\n // let width = 100;\r\n // doc.setFontType('italic').setTextColor(255, 0, 0).setFontSize(FONT_SIZE_NORMAL - 1)\r\n // .text(doc.splitTextToSize(error, width), MARGIN_RIGHT - width, offset)\r\n // .setFontType('normal').setTextColor(0).setFontSize(FONT_SIZE_NORMAL);\r\n\r\n offset += 25;\r\n let errorLines = this.writeError(doc, error, offset);\r\n offset += errorLines * 5 + 10;\r\n chartTop = offset;\r\n }\r\n }\r\n\r\n // For chart info overlays\r\n let overlayTop = 15;\r\n let overlayLeft = 70;\r\n\r\n // DC Chart\r\n if (jqplotData.dc && jqplotData.dc.data) {\r\n doc.setFontSize(FONT_SIZE_H2).text('Kickback Simulation – DC Input Signal', left, chartTop - 5);\r\n let dc = jqplotData.dc,\r\n kickback = PrettyNum.eng3(_model.inputSettlingArrays.voltsKickbackDc, { scale: 0 }),\r\n lsbs = mathRound.compute([_model.inputSettlingArrays.lsbMaxDc], {\r\n step: 0.5,\r\n func: 'ceil',\r\n adjustedStep: true,\r\n });\r\n doc.addImage(\r\n dc.data,\r\n 'PNG',\r\n chartLeft,\r\n chartTop,\r\n chartWidth,\r\n (chartWidth * dc.height) / dc.width,\r\n );\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n `Kickback ~ ${kickback}V\\nSettling Error = ${lsbs} LSBs`,\r\n chartLeft + overlayLeft,\r\n chartTop + overlayTop,\r\n );\r\n }\r\n\r\n let muxedTab = this.tabService.tabs.items.settling.find(\r\n (tab) => tab.index === Constants.TAB_INDEX.SETTLING.MUXED,\r\n ),\r\n acTab = this.tabService.tabs.items.settling.find(\r\n (tab) => tab.index === Constants.TAB_INDEX.SETTLING.AC,\r\n ),\r\n showMultiplexedChart = jqplotData.muxed && !muxedTab.hide,\r\n showAcChart = jqplotData.ac && !acTab.hide;\r\n\r\n if (showAcChart || showMultiplexedChart) {\r\n // New page.\r\n chartTop = 30;\r\n this.addFooter(doc, page++);\r\n doc.addPage();\r\n\r\n // AC Chart\r\n if (showAcChart) {\r\n let ac = jqplotData.ac,\r\n kickback = PrettyNum.eng3(_model.inputSettlingArrays.voltsKickbackSin, { scale: 0 }),\r\n lsbs = mathRound.compute([_model.inputSettlingArrays.lsbMaxSin], {\r\n step: 0.5,\r\n func: 'ceil',\r\n adjustedStep: true,\r\n });\r\n\r\n doc.setFontSize(FONT_SIZE_H2).text(\r\n 'Kickback Simulation – AC Input Signal',\r\n left,\r\n chartTop - 5,\r\n );\r\n doc.addImage(\r\n ac.data,\r\n 'PNG',\r\n chartLeft,\r\n chartTop,\r\n chartWidth,\r\n (chartWidth * ac.height) / ac.width,\r\n );\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n `Kickback ~ ${kickback}V\\nSettling Error = ${lsbs} LSBs`,\r\n chartLeft + overlayLeft,\r\n chartTop + overlayTop,\r\n );\r\n chartTop = 150; // increment in case \"muxed\" exists\r\n }\r\n\r\n // Muxed chart\r\n if (showMultiplexedChart) {\r\n let muxed = jqplotData.muxed,\r\n kickback = PrettyNum.eng3(_model.inputSettlingArrays.voltsKickbackMuxed, { scale: 0 }),\r\n lsbs = mathRound.compute([_model.inputSettlingArrays.lsbMaxMuxed], {\r\n step: 0.5,\r\n func: 'ceil',\r\n adjustedStep: true,\r\n });\r\n\r\n doc.setFontSize(FONT_SIZE_H2).text(\r\n 'Kickback Simulation – Multiplexed Input Signal',\r\n left,\r\n chartTop - 5,\r\n );\r\n doc.addImage(\r\n jqplotData.muxed.data,\r\n 'PNG',\r\n chartLeft,\r\n chartTop,\r\n chartWidth,\r\n (chartWidth * muxed.height) / muxed.width,\r\n );\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n `Kickback ~ ${kickback}V\\nSettling Error = ${lsbs} LSBs`,\r\n chartLeft + overlayLeft,\r\n chartTop + overlayTop,\r\n );\r\n }\r\n }\r\n\r\n this.addFooter(doc, page++);\r\n }\r\n\r\n //#endregion\r\n\r\n // Page 3/4, Noise page\r\n doc.addPage();\r\n\r\n offset = 15;\r\n doc.setFontSize(FONT_SIZE_H1).text('Noise', left, offset);\r\n offset += 10;\r\n let sysnoise = PrettyNum.eng3(_model.noiseCalculations.total.totalVrms),\r\n snr = PrettyNum.eng4(_model.noiseCalculations.total.totalSnr, { scale: 1 });\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n ` • SNR = ${snr}dB\\n` + ` • System Noise = ${sysnoise}Vrms`,\r\n left,\r\n offset,\r\n );\r\n\r\n // Check for error and display if they are there\r\n {\r\n let systemNoiseWarn = this.errorHandling.systemNoiseWarn.toString();\r\n let wbNoiseError = this.errorHandling.wbNoiseError.toString();\r\n let noiseError = messageCoalesce([systemNoiseWarn, wbNoiseError]);\r\n\r\n // for test\r\n // noiseError = \"This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves. This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves. This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves.

    This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves. This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves. This is going to be a really long message. It should span multiple paragraphs and be a good way to test how it behaves. \"\r\n\r\n if (noiseError) {\r\n // Only triggers for non-null non-\"\" values\r\n offset += 15;\r\n // TODO: writeError no longer needs to show things in the right margin.\r\n let noiseErrorLines = this.writeError(doc, noiseError, offset);\r\n offset += noiseErrorLines * 5 + 5;\r\n } else {\r\n offset += 40;\r\n }\r\n }\r\n\r\n doc.setFontSize(FONT_SIZE_H1).text('System Noise Contributions', left, offset);\r\n offset += 10;\r\n\r\n // Generate noise table\r\n {\r\n //#region colors\r\n let tbTop = offset - 5; // due to text starting at bottom-right corner of offset, not top-right\r\n let tbLeft = 15;\r\n let tbWidth = 135; // table width\r\n\r\n let top = tbTop + 5; // text top\r\n //let os = 0; // Text offset\r\n let c1 = tbLeft + 5,\r\n c2 = tbLeft + 55,\r\n c3 = tbLeft + 85,\r\n c4 = tbLeft + 110; // column positions\r\n let ibPlus =\r\n _model.noiseCalculations.driver && _model.noiseCalculations.driver.ibPlus\r\n ? _model.noiseCalculations.driver.ibPlus.sourceInputDensity\r\n : null;\r\n let ibMinus =\r\n _model.noiseCalculations.driver && _model.noiseCalculations.driver.ibMinus\r\n ? _model.noiseCalculations.driver.ibMinus.sourceInputDensity\r\n : null;\r\n\r\n let tbHeaderHeight = 10;\r\n let tbTotalHeight = 5;\r\n let tbSourceHeight = _model.showOptionalSourceSettings ? 5 : 0;\r\n let tbDriverTotalHeight = 5;\r\n let tbVnHeight = 5;\r\n let tbIbPlusHeight = ibPlus ? 5 : 0;\r\n let tbIbMinusHeight = ibMinus ? 5 : 0;\r\n let tbRfHeight = _model.rfRemoved ? 0 : 5;\r\n let tbRgHeight = _model.rgInf ? 0 : 5;\r\n let tbRfiltHeight = _model.filterEnabled ? 5 : 0;\r\n let tbAdcHeight = 5;\r\n\r\n let yPos = tbTop;\r\n let tbDriverItemsHeight = tbVnHeight + tbIbPlusHeight + tbIbMinusHeight + tbRfHeight + tbRgHeight;\r\n\r\n let tab = {\r\n left: 0,\r\n mid: 3,\r\n right: 6,\r\n };\r\n\r\n let fontStyle = {\r\n normal: 'normal',\r\n bold: 'bold',\r\n };\r\n\r\n let addTableRow = (r, g, b, rowHeight, extraHeight = 0) => {\r\n if (rowHeight > 0) {\r\n doc.setFillColor(r, g, b);\r\n doc.rect(tbLeft, yPos, tbWidth, rowHeight + extraHeight, 'F');\r\n yPos += rowHeight + extraHeight;\r\n }\r\n };\r\n\r\n let addTableRowData = (column1, column2, column3, column4, rowHeight, tab, fontStyle) => {\r\n if (rowHeight > 0) {\r\n doc.setFont('ARIAL', fontStyle);\r\n doc.text(tab + c1, top, column1);\r\n doc.text(tab + c2, top, column2);\r\n doc.text(tab + c3, top, column3);\r\n doc.text(tab + c4, top, column4);\r\n top += rowHeight;\r\n }\r\n };\r\n\r\n // \"table\" rectangle drawing\r\n addTableRow(199, 201, 204, tbHeaderHeight, 1);\r\n addTableRow(222, 225, 229, tbTotalHeight);\r\n addTableRow(198, 228, 213, tbSourceHeight);\r\n addTableRow(177, 190, 209, tbDriverTotalHeight);\r\n addTableRow(217, 228, 244, tbDriverItemsHeight);\r\n addTableRow(177, 190, 209, tbRfiltHeight);\r\n addTableRow(209, 171, 175, tbAdcHeight);\r\n\r\n // Lines\r\n doc.line(c2 - 5, tbTop, c2 - 5, yPos);\r\n doc.line(c3 - 5, tbTop, c3 - 5, yPos);\r\n doc.line(c4 - 5, tbTop, c4 - 5, yPos);\r\n //#endregion\r\n\r\n doc.setFontSize(11);\r\n\r\n // Column headers\r\n addTableRowData('', 'Noise\\nVrms', 'Noise\\n%', 'SNR\\ndB', tbHeaderHeight, tab.left, fontStyle.bold);\r\n\r\n // Data\r\n addTableRowData(\r\n 'Total Noise',\r\n PrettyNum.eng3(_model.noiseCalculations.total.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.total.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.total.totalSnr, { scale: 1 }),\r\n tbTotalHeight,\r\n tab.left,\r\n fontStyle.bold,\r\n );\r\n\r\n addTableRowData(\r\n 'Source',\r\n PrettyNum.eng3(_model.noiseCalculations.source.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.source.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.source.totalSnr, { scale: 1 }),\r\n tbSourceHeight,\r\n tab.mid,\r\n fontStyle.bold,\r\n );\r\n\r\n addTableRowData(\r\n 'Driver',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.totalSnr, { scale: 1 }),\r\n tbDriverTotalHeight,\r\n tab.mid,\r\n fontStyle.bold,\r\n );\r\n\r\n addTableRowData(\r\n 'Vn',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.vn.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.vn.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.vn.totalSnr, { scale: 1 }),\r\n tbVnHeight,\r\n tab.right,\r\n fontStyle.normal,\r\n );\r\n\r\n addTableRowData(\r\n 'Ib+',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.ibPlus.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.ibPlus.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.ibPlus.totalSnr, { scale: 1 }),\r\n tbIbPlusHeight,\r\n tab.right,\r\n fontStyle.normal,\r\n );\r\n\r\n addTableRowData(\r\n 'Ib-',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.ibMinus.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.ibMinus.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.ibMinus.totalSnr, { scale: 1 }),\r\n tbIbMinusHeight,\r\n tab.right,\r\n fontStyle.normal,\r\n );\r\n\r\n addTableRowData(\r\n 'Rf',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.rf.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.rf.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.rf.totalSnr, { scale: 1 }),\r\n tbRfHeight,\r\n tab.right,\r\n fontStyle.normal,\r\n );\r\n\r\n addTableRowData(\r\n 'Rg',\r\n PrettyNum.eng3(_model.noiseCalculations.driver.rg.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.driver.rg.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.driver.rg.totalSnr, { scale: 1 }),\r\n tbRgHeight,\r\n tab.right,\r\n fontStyle.normal,\r\n );\r\n\r\n if (_model.filterEnabled) {\r\n addTableRowData(\r\n 'Rfilt',\r\n PrettyNum.eng3(_model.noiseCalculations.rfilt.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.rfilt.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.rfilt.totalSnr, { scale: 1 }),\r\n tbRfiltHeight,\r\n tab.mid,\r\n fontStyle.bold,\r\n );\r\n }\r\n\r\n addTableRowData(\r\n 'ADC',\r\n PrettyNum.eng3(_model.noiseCalculations.adc.totalVrms),\r\n PrettyNum.eng3(_model.noiseCalculations.adc.totalPerc),\r\n PrettyNum.eng4(_model.noiseCalculations.adc.totalSnr, { scale: 1 }),\r\n tbAdcHeight,\r\n tab.mid,\r\n fontStyle.bold,\r\n );\r\n\r\n offset = top;\r\n }\r\n\r\n // Page 4, THD/Distortion (optional)\r\n\r\n // page pre-creation error handling\r\n let showThdPage = true;\r\n {\r\n let error = messageCoalesce([\r\n this.errorHandling.disabledTHDTabError,\r\n this.errorHandling.noiseSubtabError,\r\n ]);\r\n\r\n // These are the errors that will prevent the page from showing.\r\n if (error) {\r\n showThdPage = false;\r\n\r\n // Display error message on the bottom of the current page.\r\n offset += 10;\r\n doc.setFont('ARIAL', 'normal');\r\n this.writeError(doc, error, offset);\r\n }\r\n }\r\n\r\n if (showThdPage) {\r\n // Otherwise display new distortion page\r\n this.addFooter(doc, page++);\r\n doc.addPage();\r\n\r\n offset = MARGIN;\r\n left = MARGIN;\r\n doc.setFontSize(FONT_SIZE_H1).text('Distortion', left, offset);\r\n offset += 10;\r\n let thd = PrettyNum.eng3(this.plotDataService.noiseArrays.systemThdAtF),\r\n sinad = PrettyNum.eng3(this.plotDataService.noiseArrays.sinadAtF),\r\n enob = PrettyNum.eng3(this.plotDataService.noiseArrays.enobAtF);\r\n doc.setFontSize(FONT_SIZE_NORMAL).text(\r\n ` • THD @ ${fin}Hz = ${thd}dB\\n` +\r\n ` • SINAD @ ${fin}Hz = ${sinad}dB\\n` +\r\n ` • ENOB @ ${fin}Hz = ${enob} bits`,\r\n left,\r\n offset,\r\n );\r\n offset += 20;\r\n\r\n // Add distortion error if required\r\n {\r\n let thdFreqMessage = this.thdFreqMessage;\r\n let thdDriverMessage = this.thdDriverMessage;\r\n let thdMessage = this.thdMessage;\r\n let distortionError = messageCoalesce([thdFreqMessage, thdDriverMessage, thdMessage]);\r\n\r\n // // testing\r\n // distortionError = longLorem\r\n // distortionError = null;\r\n // // testing\r\n\r\n if (distortionError) {\r\n let lines = this.writeError(doc, distortionError, offset);\r\n offset += lines * 5 + 10;\r\n chartTop = offset;\r\n } else {\r\n chartTop = 70;\r\n }\r\n }\r\n\r\n // Add another specific error, if required\r\n {\r\n let thdAdjustmentWarning = this.model.thdAdjustmentWarning;\r\n // thdAdjustmentWarning = false;\r\n if (thdAdjustmentWarning) {\r\n offset -= 5;\r\n let noise_thd_error_message = this.i18n.t('messages.noise_thd').toString();\r\n let lines = this.writeError(doc, noise_thd_error_message, offset);\r\n\r\n // update offset and new chart top\r\n offset += lines * 5 + 10;\r\n chartTop = offset;\r\n }\r\n }\r\n\r\n // For charts\r\n\r\n // Noise Chart\r\n doc.setFontSize(FONT_SIZE_H2).text(\r\n 'Contributions to System THD vs. Input Frequency',\r\n left,\r\n chartTop - 5,\r\n );\r\n let noise = jqplotData.noise;\r\n if (!!noise && !!noise.data) {\r\n // if both are truthy\r\n doc.addImage(\r\n noise.data,\r\n 'PNG',\r\n left,\r\n chartTop,\r\n chartWidth,\r\n (chartWidth * noise.height) / noise.width,\r\n );\r\n }\r\n }\r\n this.addFooter(doc, page++);\r\n\r\n // Done\r\n doc.save(`Precision ADC Driver Tool Summary - ${part}+${driverPart}.pdf`); // prompt save\r\n })\r\n .catch((e) => {\r\n console.log('an error occurred');\r\n console.log(e);\r\n console.log(e.toString());\r\n //debugger;\r\n });\r\n }\r\n\r\n writeError(doc, errorMessage, offset) {\r\n let width = MARGIN_RIGHT - MARGIN;\r\n let htmlRegex = /<[^>]*>/;\r\n\r\n // Allow split by paragraph\r\n errorMessage = errorMessage\r\n .split(htmlRegex) // Split by paragraph markers\r\n .map((l) => l.trim())\r\n .filter((l) => l.length > 0) // Remove extra white space and discard any empty areas (ie first paragraph)\r\n .join('\\n\\n'); // Instead of paragraphs use double newline\r\n\r\n let splitLines = doc.splitTextToSize(errorMessage, width);\r\n\r\n // let width = 80;\r\n doc.setFont('ARIAL', 'italic')\r\n .setTextColor(255, 0, 0)\r\n .text(splitLines, MARGIN_RIGHT - width, offset)\r\n .setFont('ARIAL', 'normal')\r\n .setTextColor(0);\r\n\r\n return splitLines.length;\r\n }\r\n\r\n makeOhmCharacter() {\r\n let canvas = document.createElement('canvas');\r\n canvas.height = 24;\r\n canvas.width = 24;\r\n canvas.style.cssText = 'width: 20px; height: 20px';\r\n let context = canvas.getContext('2d');\r\n // document.body.appendChild(canvas);\r\n context.font = '30px helvetica';\r\n //context.clearRect(0,0,100,100);\r\n context.fillText('Ω', 0, 23);\r\n return canvas;\r\n }\r\n\r\n addFooter(doc, page) {\r\n doc.setFont('ARIAL', 'normal').setFontSize(FONT_SIZE_NORMAL);\r\n let top = MARGIN_BOTTOM;\r\n\r\n let event = new Date();\r\n let options = { year: 'numeric', month: 'long', day: 'numeric' };\r\n let date = event.toLocaleDateString('en-US', options);\r\n\r\n doc.text(dropDoubleBytes(date), 15, top); // Call dropDoubleBytes to fix IE. Otherwise there are LTR control characters in date.\r\n doc.setTextColor(0, 0, 255); // blue\r\n\r\n // this returns width, if we want to underline.\r\n doc.text(this.urlData.adcDriverUrl, MARGIN_CENTER, top, 'center'); // Where footer in original is\r\n doc.setTextColor(0);\r\n doc.text('Pg. ' + page, MARGIN_RIGHT, top, 'right'); // align to right\r\n }\r\n\r\n /*\r\n Examples:\r\n saveChartByName('muxedChart').then(u=>console.log(u))\r\n \r\n ChartInTabs selects tabs.dcChart,\r\n tabs.noiseChart, etc\r\n */\r\n saveChartByName(chartInTabs) {\r\n return new Promise((resolve) => {\r\n // Find selected chart info\r\n if (!this.tabs[chartInTabs]) {\r\n resolve(null);\r\n return;\r\n }\r\n let selector = this.tabs[chartInTabs].chartId;\r\n let chart = document.getElementById(selector);\r\n if (!chart || !chart.parentElement) {\r\n // reject('missing tab for chart ' + chartInTabs);\r\n resolve(null);\r\n return;\r\n }\r\n let chartParent = chart.parentElement;\r\n\r\n // Move chart to detached chart element\r\n let detachedChartEl = document.getElementById('detachedChartEl');\r\n detachedChartEl.appendChild(chart);\r\n\r\n // This executes a Draw and waits for it to complete.\r\n drawnPromise(() => {\r\n this.tabs[chartInTabs].draw(true);\r\n }).then(() => {\r\n // Save the output for now.\r\n let $t = window.jQuery('#' + selector),\r\n canvas = null;\r\n\r\n // Trim legend\r\n Object.values(document.querySelectorAll(`#${selector} tr.jqplot-table-legend`))\r\n .filter(\r\n (item) =>\r\n !(item && item.children.length === 2 && item.children[1].textContent) ||\r\n item.children[1].textContent.includes('Series'),\r\n )\r\n .forEach((item) => item.remove());\r\n\r\n if ($t) canvas = $t.jqplotToImageCanvas();\r\n\r\n // tests\r\n //window.$t = $t;\r\n //document.body.appendChild(canvas)\r\n\r\n // Return chart to original location.\r\n chartParent.appendChild(chart);\r\n\r\n resolve({\r\n height: canvas ? canvas.height : null,\r\n width: canvas ? canvas.width : null,\r\n data: canvas ? canvas.toDataURL('image/jpeg', 1) : null,\r\n //canvas: canvas,\r\n });\r\n });\r\n }); //Promise\r\n }\r\n\r\n //#endregion generate pdf\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Consts from '../utils/constants';\r\nimport Formulas from '../utils/formulas';\r\nimport Utils from '../utils/utils';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nexport default class PlotDataServiceService extends Service {\r\n @service('data') model;\r\n @service plotData;\r\n @service logging;\r\n @service selectionData;\r\n\r\n @computed(\r\n 'selectionData.{selectedDriver,selectedAdc}',\r\n 'model.{samplingRate,vref,rf,rext,cext,signalRms,filterBandwidth,vout,thd,wbNoise,noiseConfig,frequency,adjustedSourceThd,thdSettlingAdjustment,adcEquivNoiseBandwidth}',\r\n )\r\n get noiseArrays() {\r\n return this.calculateNoiseArrays();\r\n }\r\n\r\n _getCurveByType(frequency, type) {\r\n let threeDbFrequency = this.model.filterBandwidth,\r\n corner = this.get(`selectionData.selectedDriver.${type}cornerTEMP`),\r\n slope = this.get(`selectionData.selectedDriver.${type}slopeTEMP`),\r\n flat = -1 * this.get(`selectionData.selectedDriver.${type}flatTEMP`),\r\n degredation = Formulas.calculateDegredation(frequency, corner, slope),\r\n curveUnfiltered = Formulas.calculateHdCurveUnfiltered(degredation, flat);\r\n\r\n return Formulas[`calculate${type}Curve`](frequency, curveUnfiltered, threeDbFrequency);\r\n }\r\n\r\n _calculateAmplifierCurves(frequency) {\r\n let hd2 = this._getCurveByType(frequency, 'HD2'),\r\n hd3 = this._getCurveByType(frequency, 'HD3'),\r\n noiseDefaults = this.plotData.noiseDefaults;\r\n\r\n return {\r\n hd2:\r\n this.selectionData.selectedAdc.type === Consts.ADC_TYPE.SE ||\r\n this.selectionData.selectedDriver.type === Consts.DRIVER_TYPE.DIFF_AMP\r\n ? hd2\r\n : noiseDefaults.curve.hd2,\r\n hd3: hd3,\r\n secondInvAmp:\r\n this.model.noiseConfig === Consts.CONFIGURATION.DiffADC_SEAmp_SESource\r\n ? hd3\r\n : noiseDefaults.curve.secondInvAmp,\r\n mirroredAmpCurve: noiseDefaults.curve.mirroredAmpCurve,\r\n };\r\n }\r\n\r\n _calculateFrequency(previousFrequency) {\r\n let endFrequency = (this.model.samplingRate * 0.5) / this.model.averaging,\r\n startFrequency = Math.pow(10, (Math.log10(endFrequency) - +4).toFixed(0));\r\n if (previousFrequency)\r\n return Math.pow(10, Math.log10(previousFrequency) + Math.log10(endFrequency / startFrequency) / 80);\r\n else return Math.pow(10, Math.round(Math.log10(startFrequency)));\r\n }\r\n\r\n _calculateThdAmpOnly(frequency, hdCurveData) {\r\n if (\r\n Utils.isNumeric(this.model.selectedAdc.filteredAliasTHD) &&\r\n frequency > this.model.adcEquivNoiseBandwidth / 2\r\n )\r\n return this.model.selectedAdc.filteredAliasTHD;\r\n\r\n let combinedLinearTHDAmp =\r\n Math.pow(10, hdCurveData.hd2 / 10) +\r\n Math.pow(10, hdCurveData.hd3 / 10) +\r\n Math.pow(10, hdCurveData.secondInvAmp / 10) +\r\n Math.pow(10, hdCurveData.mirroredAmpCurve / 10);\r\n\r\n // WAS adjust amp THD for Vout value\r\n // Now, convert Volts^2 to dB\r\n return 20 * Math.log10(Math.sqrt(combinedLinearTHDAmp));\r\n }\r\n\r\n _calculateAdcThd(frequency) {\r\n if (\r\n Utils.isNumeric(this.model.selectedAdc.filteredAliasTHD) &&\r\n frequency > this.model.adcEquivNoiseBandwidth / 2\r\n )\r\n return this.model.selectedAdc.filteredAliasTHD;\r\n\r\n let thdSettlingAdjustment = this.model.thdSettlingAdjustment;\r\n let rext = this.model.rext;\r\n let adjustedTHD = 0;\r\n\r\n if (thdSettlingAdjustment === false) {\r\n adjustedTHD = Formulas.calculateAdjustedThd(frequency, rext, this.selectionData.selectedAdc, -500);\r\n } else {\r\n adjustedTHD = Formulas.calculateAdjustedThd(\r\n frequency,\r\n rext,\r\n this.selectionData.selectedAdc,\r\n thdSettlingAdjustment,\r\n );\r\n }\r\n return adjustedTHD;\r\n }\r\n\r\n _calculateSystemThd(adjustedSourceThd, thdAmpOnly, adcThd) {\r\n return (\r\n 20 *\r\n Math.log10(Math.pow(10, adjustedSourceThd / 20) + Math.pow(10, thdAmpOnly / 20) + Math.pow(10, adcThd / 20))\r\n );\r\n }\r\n\r\n _calculatePlotData(frequency, hdCurveData) {\r\n let adjustedSourceThd = this.model.adjustedSourceThd,\r\n systemSnr = this.model.noiseCalculations.total.totalSnr,\r\n adcSnr = this.model.noiseCalculations.adc.totalSnr,\r\n voutRms = this.model.signalRms,\r\n threeDbFrequency = this.model.filterBandwidth,\r\n sourceOnlyNoise = this.model.noiseCalculations.source.totalVrms,\r\n ampOnlyNoise = this.model.noiseCalculations.driver.totalVrms,\r\n voutAmp = voutRms / (1 + frequency / threeDbFrequency),\r\n snrSourceOnly = 20 * Math.log10(voutAmp / sourceOnlyNoise),\r\n snrAmpOnly = 20 * Math.log10(voutAmp / ampOnlyNoise),\r\n thdAmpOnly = this._calculateThdAmpOnly(frequency, hdCurveData),\r\n adcThd = this._calculateAdcThd(frequency),\r\n systemThd = this._calculateSystemThd(adjustedSourceThd, thdAmpOnly, adcThd),\r\n thd = {\r\n source: adjustedSourceThd,\r\n amp: thdAmpOnly,\r\n adc: adcThd,\r\n system: systemThd,\r\n },\r\n sinad = {\r\n source: Formulas.calculateSinad(snrSourceOnly, adjustedSourceThd),\r\n amp: Formulas.calculateSinad(snrAmpOnly, thdAmpOnly),\r\n adc: Formulas.calculateSinad(adcSnr, adcThd),\r\n system: Formulas.calculateSinad(systemSnr, systemThd),\r\n },\r\n enob = {\r\n source: Formulas.calculateEnob(sinad.source),\r\n amp: Formulas.calculateEnob(sinad.amp),\r\n adc: Formulas.calculateEnob(sinad.adc),\r\n system: Formulas.calculateEnob(sinad.system),\r\n };\r\n\r\n return {\r\n thd: thd,\r\n sinad: sinad,\r\n enob: enob,\r\n frequency: frequency,\r\n hdCurveData: hdCurveData,\r\n };\r\n }\r\n\r\n _findIndexAtF(frequencyArray) {\r\n let min,\r\n chosen = 0,\r\n fLen = frequencyArray.length;\r\n\r\n for (let f = 0; f < fLen; f++) {\r\n min = Math.abs(frequencyArray[chosen] - this.model.frequency);\r\n\r\n if (Math.abs(frequencyArray[f] - this.model.frequency) < min) chosen = f;\r\n }\r\n\r\n return chosen;\r\n }\r\n\r\n _mapPlotData(plotData, type) {\r\n let config = cloneDeep(this.plotData.getNoiseAndDistortionConfig(type)),\r\n plotItem = plotData.map((d) => d[type]);\r\n\r\n config.source = plotItem.map((d) => d.source);\r\n config.amp = plotItem.map((d) => d.amp);\r\n config.adc = plotItem.map((d) => d.adc);\r\n config.system = plotItem.map((d) => d.system);\r\n return config;\r\n }\r\n\r\n calculateNoiseArrays() {\r\n let plotData = [];\r\n\r\n for (let i = 0; i < 81; i++) {\r\n // build frequency array\r\n let frequency = this._calculateFrequency(i > 0 ? plotData[i - 1].frequency : undefined),\r\n // Building HD2 and HD3 curves for Amplifier:\r\n hdCurveData = this._calculateAmplifierCurves(frequency);\r\n\r\n plotData[i] = this._calculatePlotData(frequency, hdCurveData);\r\n }\r\n\r\n this.logging.logNoiseData(\r\n plotData,\r\n this.selectionData.selectedAdc,\r\n this.selectionData.selectedDriver,\r\n this.model.adjustedSourceThd,\r\n );\r\n\r\n // Find the index at F\r\n let frequencyArray = plotData.map((d) => d.frequency),\r\n indexAtF = this._findIndexAtF(frequencyArray),\r\n plotDataAtF = plotData[indexAtF];\r\n\r\n return {\r\n frequencyArray: frequencyArray,\r\n noisePlotData: {\r\n thd: this._mapPlotData(plotData, 'thd'),\r\n sinad: this._mapPlotData(plotData, 'sinad'),\r\n enob: this._mapPlotData(plotData, 'enob'),\r\n },\r\n\r\n indexAtFreq: indexAtF,\r\n sinadAtF: plotDataAtF.sinad.system,\r\n enobAtF: plotDataAtF.enob.system,\r\n thdAmpAtF: plotDataAtF.thd.amp,\r\n thdAdcAtF: plotDataAtF.thd.adc,\r\n systemThdAtF: plotDataAtF.thd.system,\r\n };\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport PlotData from '../data/plotdata';\r\nimport Consts from '../utils/constants';\r\nimport { computed } from '@ember/object';\r\nimport merge from 'lodash.merge';\r\n\r\nexport default class PlotDataService extends Service {\r\n noiseDistortionGraphObjects = PlotData.noiseDistortionGraphObjects;\r\n inputSettlingConfig = PlotData.inputSettlingConfig;\r\n noiseDefaults = PlotData.defaults.noise;\r\n\r\n noiseFunctions = {\r\n getStartingPoint: {\r\n thd: (minY) => Math.floor((minY - 5) / 5) * 5 - 10,\r\n sinad: (minY) => Math.floor(minY / 5) * 5 - 10,\r\n enob: (minY) => Math.floor(minY) - 1,\r\n },\r\n };\r\n\r\n getData(gridType, gridSubType) {\r\n let inputSettlingConfig = PlotData.inputSettlingConfig,\r\n data = merge({}, inputSettlingConfig['default'], inputSettlingConfig[gridType]),\r\n subtab = data[Consts.INPUT_SETTLING_TAB[gridSubType]];\r\n\r\n if (subtab) {\r\n merge(data, subtab);\r\n delete data[Consts.INPUT_SETTLING_TAB[gridSubType]];\r\n }\r\n\r\n return data;\r\n }\r\n\r\n @computed('PlotData.noiseDistortionConfig') get defaultNoiseObject() {\r\n let configObject = {};\r\n Object.keys(PlotData.noiseDistortionConfig).forEach((key) => {\r\n configObject[key] = [];\r\n });\r\n\r\n return configObject;\r\n }\r\n\r\n getNoiseAndDistortionConfig(type) {\r\n let config = PlotData.noiseDistortionConfig[type];\r\n\r\n config.getStartingPoint = this.noiseFunctions.getStartingPoint[type];\r\n\r\n return config;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport { alias } from '@ember/object/computed';\r\nimport { inject as service } from '@ember/service';\r\nimport Consts from '../utils/constants';\r\nimport upperFirst from 'lodash.upperfirst';\r\n\r\nexport default class SelectionDataService extends Service {\r\n @service intl;\r\n @service partData;\r\n\r\n @alias('partData.adcs') adcs;\r\n @alias('partData.drivers') drivers;\r\n @alias('partData.muxParts') muxParts;\r\n\r\n selectedAdc = null;\r\n previousAdc = null;\r\n\r\n selectedDriver = null;\r\n previousDriver = null;\r\n\r\n selectedSourceType = null;\r\n selectedTopology = null;\r\n selectedLsbSettling = null;\r\n\r\n gain = null; // used in the calculation of essentiallyFollower and actualTopologyId\r\n\r\n init() {\r\n super.init();\r\n\r\n /**\r\n * TOPOLOGY data\r\n */\r\n this.set('topologyOptions', [\r\n { description: this.intl.t('topology.inverting').toString(), id: Consts.TOPOLOGY.INVERTING },\r\n { description: this.intl.t('topology.non_inverting').toString(), id: Consts.TOPOLOGY.NON_INVERTING },\r\n { description: this.intl.t('topology.follower').toString(), id: Consts.TOPOLOGY.FOLLOWER },\r\n ]);\r\n\r\n this.set(\r\n 'defaultTopology',\r\n this.topologyOptions.find((option) => option.id === Consts.TOPOLOGY.FOLLOWER),\r\n );\r\n\r\n /**\r\n * SOURCE TYPE data\r\n */\r\n this.set('sourceTypeOptions', [\r\n { description: this.intl.t('source_type.se').toString(), id: Consts.SOURCE_TYPE.SE },\r\n { description: this.intl.t('source_type.diff').toString(), id: Consts.SOURCE_TYPE.DIFF },\r\n ]);\r\n\r\n this.set('sourceTypeSeId', this._findOneOptionId('sourceTypeOptions', 'source_type.se'));\r\n this.set('sourceTypeDiffId', this._findOneOptionId('sourceTypeOptions', 'source_type.diff'));\r\n this.set('defaultSourceType', this.sourceTypeOptions[this.sourceTypeSeId - 1]);\r\n\r\n /**\r\n * LSB SETTLING data\r\n */\r\n this.set('lsbSettlingOptions', [\r\n { description: this.intl.t('lsb_settling.one').toString(), id: 1 },\r\n { description: this.intl.t('lsb_settling.half').toString(), id: 2 },\r\n { description: this.intl.t('lsb_settling.quarter').toString(), id: 3 },\r\n { description: this.intl.t('lsb_settling.eighth').toString(), id: 4 },\r\n { description: this.intl.t('lsb_settling.sixteenth').toString(), id: 5 },\r\n ]);\r\n\r\n this.set('lsbSettlingOneId', this._findOneOptionId('lsbSettlingOptions', 'lsb_settling.one'));\r\n this.set('lsbSettlingHalfId', this._findOneOptionId('lsbSettlingOptions', 'lsb_settling.half'));\r\n this.set('lsbSettlingQuarterId', this._findOneOptionId('lsbSettlingOptions', 'lsb_settling.quarter'));\r\n this.set('lsbSettlingEighth', this._findOneOptionId('lsbSettlingOptions', 'lsb_settling.eighth'));\r\n this.set('lsbSettlingSixteenth', this._findOneOptionId('lsbSettlingOptions', 'lsb_settling.sixteenth'));\r\n this.set('defaultLsbSettling', this.lsbSettlingOptions[this.lsbSettlingOneId - 1]);\r\n }\r\n\r\n get defaultAdc() {\r\n return this.partData.defaults.adc;\r\n }\r\n\r\n get defaultDriver() {\r\n return this.partData.defaults.driver;\r\n }\r\n\r\n @computed('selectedSourceType.id', 'muxParts.@each.sourceType') get selectedMux() {\r\n let currentSourceType = Object.keys(Consts.SOURCE_TYPE)\r\n .map((key) => {\r\n return { id: Consts.SOURCE_TYPE[key], description: key };\r\n })\r\n .find((sourceType) => sourceType.id === this.selectedSourceType.id);\r\n\r\n return this.muxParts.find((mux) => mux.sourceType === currentSourceType.description);\r\n }\r\n\r\n // Use for logic where \"follower\" = true, or the conditions that would make \"follower\" true are true\r\n // (Topology of Non-inverting and Gain of 1)\r\n @computed('gain', 'selectedTopology.id') get essentiallyFollower() {\r\n let gain = this.gain;\r\n let topology = this.selectedTopology.id; // 4th column -- inverting and non-inverting (follower is special case for non-inv, gain=1, rf=0)\r\n if (!(topology || gain)) {\r\n return false;\r\n }\r\n return topology === Consts.TOPOLOGY.FOLLOWER || (topology === Consts.TOPOLOGY.NON_INVERTING && gain === 1);\r\n }\r\n\r\n @computed('selectedTopology.id', 'gain') get actualTopologyId() {\r\n let selectedTopology = this.selectedTopology.id,\r\n essentiallyFollower = this.essentiallyFollower;\r\n return essentiallyFollower ? Consts.TOPOLOGY.FOLLOWER : selectedTopology;\r\n }\r\n\r\n @computed('selectedAdc') get baseSelectedAdc() {\r\n let selectedAdc = this.selectedAdc;\r\n if (selectedAdc.hasCurrentVariant) {\r\n // find the base part (the part with no variant)\r\n return this.partData.adcs.find((adc) => adc.partCore === selectedAdc.partCore && !adc.hasCurrentVariant);\r\n }\r\n\r\n return selectedAdc;\r\n }\r\n\r\n @computed('selectedAdc') get hiZSelectedAdc() {\r\n let selectedAdc = this.selectedAdc;\r\n // TODO: how will this be impacted if there are multiple variants with HiZ???? Right now it will return null\r\n if (selectedAdc.variants && selectedAdc.variants.length) return null;\r\n if (\r\n selectedAdc.hasVariant &&\r\n !selectedAdc.hasCurrentVariant &&\r\n selectedAdc.variant.code === Consts.VARIANT.ADC.HIZ\r\n ) {\r\n // find the HiZ part\r\n return this.partData.adcs.find(\r\n (adc) =>\r\n adc.partCore === selectedAdc.partCore &&\r\n adc.hasCurrentVariant &&\r\n adc.currentVariant.code === Consts.VARIANT.ADC.HIZ,\r\n );\r\n } else if (\r\n (selectedAdc.hasVariant && !(selectedAdc.variant.code === Consts.VARIANT.ADC.HIZ)) ||\r\n !selectedAdc.hasVariant\r\n ) {\r\n // There is no hizVariant so don't return one\r\n return null;\r\n }\r\n\r\n return selectedAdc;\r\n }\r\n\r\n @computed('partData.adcs') get adcInputTypeOptions() {\r\n return this.partData.adcs.map((adc) => adc.inputType).removeDuplicates();\r\n }\r\n\r\n @computed('partData.drivers') get driverInputTypeOptions() {\r\n let intl = this.intl;\r\n return this.partData.drivers\r\n .map((driver) => {\r\n let type = intl.t(`driver_types.${driver.type.toLowerCase()}`).toString();\r\n if (type) {\r\n return type;\r\n }\r\n })\r\n .removeDuplicates();\r\n }\r\n\r\n _findOneOptionId(optionsName, descriptionTranslation) {\r\n return this.get(optionsName).filter(\r\n (option) => option.description === this.intl.t(descriptionTranslation).toString(),\r\n )[0].id;\r\n }\r\n\r\n _findOneOption(optionsType, optionsFilter) {\r\n let foundOptions = this.get(`${optionsType}Options`).filter(optionsFilter);\r\n if (foundOptions && foundOptions.length === 1) {\r\n return foundOptions[0];\r\n }\r\n\r\n return this.get(`default${upperFirst(optionsType)}`);\r\n }\r\n\r\n findOneOptionById(optionsType, optionsId) {\r\n return this._findOneOption(optionsType, (option) => option.id === optionsId);\r\n }\r\n\r\n findOneOptionByDescription(optionsName, optionsDescription) {\r\n return this._findOneOption(optionsName, (option) => option.description === optionsDescription);\r\n }\r\n\r\n findOneOptionByPart(optionsName, optionsPart) {\r\n return this._findOneOption(optionsName, (option) => option.optionsPart === optionsPart);\r\n }\r\n\r\n findDefaultByOptionsType(optionsType) {\r\n return this.get(`default${upperFirst(optionsType)}`);\r\n }\r\n\r\n findSourceTypeFromAdcInputType(adcType) {\r\n if (adcType === Consts.ADC_TYPE.SE) {\r\n // Set sourceTypeInput to single ended and prevent differential\r\n return this.findOneOptionById('sourceType', this.sourceTypeSeId);\r\n } else {\r\n // Set sourceTypeInput to Differential but allow for Single-ended selection\r\n return this.findOneOptionById('sourceType', this.sourceTypeDiffId);\r\n }\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport PrettyNum from '../utils/pretty-num-wrapper';\r\nimport { alias } from '@ember/object/computed';\r\nimport Utils from '../utils/utils';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nexport default class SigmaDeltaDataService extends Service {\r\n @service intl;\r\n @service selectionData;\r\n @service hashService;\r\n @service partData;\r\n\r\n @alias('selectionData.selectedAdc') selectedAdc;\r\n @alias('selectionData.selectedAdc.partCore') adcPartCore;\r\n @alias('selectionData.selectedDriver.partCore') driverPartCore;\r\n\r\n isSigmaDeltaAdc = false;\r\n\r\n init() {\r\n super.init();\r\n this.set('initialLoad', true);\r\n }\r\n\r\n /**\r\n * Assign initial values for user input sigma delta properties on\r\n * application load and whenever the selected adc is changed\r\n *\r\n * Override default values with the hash values if found in the url\r\n */\r\n refreshSigmaDeltaDefaults() {\r\n let selectedAdc = this.selectedAdc,\r\n inputs = this.partData.sigmaDeltaInputs[this.selectedAdc.partCore],\r\n isSigmaDeltaAdc = selectedAdc.deviceArchitecture === 'sigma-delta' && (inputs ? true : false);\r\n\r\n this.set('currentAdcInputs', inputs);\r\n\r\n if (this.allowMclkInput) this.set('mclk', isSigmaDeltaAdc ? inputs.mclk.default : null);\r\n else this.set('mclk', null);\r\n\r\n if (this.allowOdrInput) this.set('odrInput', isSigmaDeltaAdc ? inputs.odr.default : null);\r\n else this.set('odrInput', null);\r\n\r\n if (this.allowMclkDivInput) this.setOptionFromDefault('mclkDiv', isSigmaDeltaAdc);\r\n else this.set('mclkDiv', null);\r\n\r\n this.setOptionFromDefault('powerMode', isSigmaDeltaAdc);\r\n this.setOptionFromDefault('filterType', isSigmaDeltaAdc);\r\n\r\n if (this.allowOdrInput) this.setOptionFromDefault('channelAveraging', isSigmaDeltaAdc);\r\n else this.set('channelAveraging', null);\r\n\r\n //let decimationRateId = isSigmaDeltaAdc ? inputs.decimationRate[this.filterType.id].default : \"\";\r\n if (this.allowDecimationRateInput)\r\n this.setOptionFromDefault('decimationRate', isSigmaDeltaAdc, this.filterType ? this.filterType.id : null);\r\n else this.set('decimationRate', null);\r\n\r\n // The hash values will override the defaults if found\r\n if (isSigmaDeltaAdc && this.initialLoad) {\r\n let hashValues = this.getHashValues();\r\n Object.keys(hashValues).forEach((propertyName) => this.set(propertyName, hashValues[propertyName]));\r\n }\r\n\r\n this.set('initialLoad', false);\r\n this.set('isSigmaDeltaAdc', isSigmaDeltaAdc);\r\n }\r\n\r\n /**\r\n * Sigma delta computed values\r\n * These may change based on user user input sigma delta properties\r\n */\r\n\r\n @computed('currentAdcInputs.mclk') get allowMclkInput() {\r\n if (!this.currentAdcInputs) return false;\r\n return !!this.currentAdcInputs.mclk;\r\n }\r\n\r\n @computed('currentAdcInputs.mclkDiv') get allowMclkDivInput() {\r\n if (!this.currentAdcInputs) return false;\r\n return !!this.currentAdcInputs.mclkDiv;\r\n }\r\n\r\n @computed('allowMclkInput', 'allowMclkDivInput') get showFmod() {\r\n return this.allowMclkInput && this.allowMclkDivInput;\r\n }\r\n\r\n @computed('currentAdcInputs.odr') get allowOdrInput() {\r\n if (!this.currentAdcInputs) return false;\r\n return !!this.currentAdcInputs.odr;\r\n }\r\n\r\n @computed('currentAdcInputs.averaging') get allowChannelAveragingInput() {\r\n if (!this.currentAdcInputs) return false;\r\n return !!this.currentAdcInputs.channelAveraging;\r\n }\r\n\r\n @computed('currentAdcInputs.decimationRate') get allowDecimationRateInput() {\r\n if (!this.currentAdcInputs) return false;\r\n return !!this.currentAdcInputs.decimationRate;\r\n }\r\n\r\n @computed('mclk', 'allowMclkInput') get mclkError() {\r\n if (!this.allowMclkInput) return '';\r\n\r\n let intl = this.intl,\r\n mclk = this.mclk,\r\n inputs = this.currentAdcInputs;\r\n\r\n if (!mclk || !inputs) return '';\r\n\r\n let minMclk = inputs.mclk.min,\r\n maxMclk = inputs.mclk.max,\r\n isError = mclk < minMclk || mclk > maxMclk;\r\n\r\n return isError\r\n ? intl.t('messages.mclk', { minMclk: PrettyNum.eng4(minMclk), maxMclk: PrettyNum.eng3(maxMclk) })\r\n : '';\r\n }\r\n\r\n @computed('mclk', 'mclkDiv') get fmod() {\r\n let mclk = this.mclk;\r\n let mclkDiv = this.mclkDiv;\r\n\r\n if (!Utils.isNumeric(mclk) || !mclkDiv) return null;\r\n\r\n return mclk / mclkDiv.value;\r\n }\r\n\r\n @computed('fmod', 'powerMode') get fmodError() {\r\n let intl = this.intl,\r\n fmod = this.fmod,\r\n powerMode = this.powerMode;\r\n\r\n if (!Utils.isNumeric(fmod) || !powerMode) return '';\r\n\r\n let minFmod = powerMode.fmod.min,\r\n maxFmod = powerMode.fmod.max,\r\n isMinError = fmod < minFmod,\r\n isMaxError = fmod > maxFmod,\r\n message = '';\r\n\r\n if (isMinError) {\r\n message = intl.t('messages.fmodMin', { powerMode: powerMode.id, minFmod: PrettyNum.eng3(minFmod) });\r\n } else if (isMaxError) {\r\n message = intl.t('messages.fmodMax', { powerMode: powerMode.id, maxFmod: PrettyNum.eng3(maxFmod) });\r\n }\r\n\r\n return message;\r\n }\r\n\r\n @computed('filterType.odrRange.{min,max}') get odrRange() {\r\n return this.filterType && this.filterType.odrRange ? this.filterType.odrRange : null;\r\n }\r\n\r\n @computed('odrInput', 'filterType.value', 'odrRange.{min,max}') get odrError() {\r\n let odrValue = this.odrInput,\r\n filterType = this.filterType,\r\n odrRange = this.odrRange,\r\n message = '';\r\n\r\n if (!Utils.isNumeric(odrValue) || !odrRange) return '';\r\n\r\n if (odrValue < odrRange.min || odrValue > odrRange.max) {\r\n message = this.intl.t('messages.odr_out_of_range', {\r\n filter: filterType.intlKey\r\n ? this.intl.t(`sigma_delta_data.filter_type.${filterType.intlKey}`)\r\n : filterType.value,\r\n min: PrettyNum.eng4(odrRange.min),\r\n max: PrettyNum.eng4(odrRange.max),\r\n });\r\n }\r\n\r\n return message;\r\n }\r\n\r\n /**\r\n * Sigma delta adc's sampling rate is dependent on fmod\r\n * Override the sampling rate in the model when the fmod changes\r\n */\r\n getFsample() {\r\n let fmod = this.fmod;\r\n\r\n if (this.isSigmaDeltaAdc && Utils.isNumeric(this.odrInput)) {\r\n return this.odrInput;\r\n } else if (this.isSigmaDeltaAdc && Utils.isNumeric(fmod)) {\r\n return fmod * 2;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getRCValues() {\r\n let isSigmaDeltaAdc = this.isSigmaDeltaAdc,\r\n driverPartCore = this.driverPartCore,\r\n powerMode = this.powerMode;\r\n\r\n if (\r\n !(\r\n isSigmaDeltaAdc &&\r\n driverPartCore &&\r\n powerMode &&\r\n powerMode.rcDefaults &&\r\n driverPartCore in powerMode.rcDefaults\r\n )\r\n ) {\r\n return null;\r\n }\r\n\r\n return powerMode.rcDefaults[driverPartCore];\r\n }\r\n\r\n @computed(\r\n 'currentAdcInputs.noiseCalculationModel',\r\n 'filterType.libraryValue',\r\n 'odrInput',\r\n 'channelAveraging.libraryValue',\r\n 'powerMode.libraryValue',\r\n )\r\n get adcNoiseCalculationModel() {\r\n if (\r\n !(\r\n this.currentAdcInputs &&\r\n this.filterType &&\r\n this.channelAveraging &&\r\n this.powerMode &&\r\n Utils.isNumeric(this.odrInput)\r\n )\r\n )\r\n return null;\r\n return this.currentAdcInputs.noiseCalculationModel\r\n ? {\r\n userConfig: {\r\n filterProfile: this.filterType.libraryValue,\r\n outputDataRate: this.odrInput,\r\n averaging: this.channelAveraging.libraryValue,\r\n powerMode: this.powerMode.libraryValue,\r\n },\r\n }\r\n : null;\r\n }\r\n\r\n @computed('fmod', 'decimationRate', 'odrInput') get odr() {\r\n let fmod = this.fmod,\r\n decimationRate = this.decimationRate ? this.decimationRate.value : null;\r\n\r\n if (Utils.isNumeric(this.odrInput)) return this.odrInput;\r\n if (!Utils.isNumeric(fmod) || !Utils.isNumeric(decimationRate)) return null;\r\n\r\n return fmod / decimationRate;\r\n }\r\n\r\n @computed('filterType', 'odr') get adcEquivNoiseBW() {\r\n let filterType = this.filterType,\r\n odr = this.odr;\r\n\r\n if (!filterType || !odr) return null;\r\n\r\n return odr * filterType.adcEquivNoiseBWMultiplier;\r\n }\r\n\r\n @computed('powerMode') get adcNoiseDensity() {\r\n let powerMode = this.powerMode;\r\n if (!powerMode) return null;\r\n return powerMode.adcNoiseDensity;\r\n }\r\n\r\n /**\r\n * The options for each sigma delta value.\r\n * These options will change depending on the selected adc\r\n */\r\n\r\n @computed('currentAdcInputs') get mclkDivOptions() {\r\n let inputs = this.currentAdcInputs;\r\n if (!inputs) return [];\r\n return inputs.mclkDiv.values.map((value) => this.getMclkDivOption(value));\r\n }\r\n\r\n @computed('currentAdcInputs') get powerModeOptions() {\r\n let inputs = this.currentAdcInputs;\r\n if (!inputs) return [];\r\n return inputs.powerMode.items.map((item) => this.getGenericOptionFromItem(item, 'power_mode'));\r\n }\r\n\r\n @computed('currentAdcInputs') get filterTypeOptions() {\r\n let inputs = this.currentAdcInputs;\r\n if (!inputs) return [];\r\n return inputs.filterType.items.map((item) => this.getGenericOptionFromItem(item, 'filter_type'));\r\n }\r\n\r\n @computed('currentAdcInputs') get channelAveragingOptions() {\r\n let inputs = this.currentAdcInputs;\r\n if (!inputs) return [];\r\n return inputs.channelAveraging.items.map((item) => this.getGenericOptionFromItem(item, 'channel_averaging'));\r\n }\r\n\r\n @computed('currentAdcInputs', 'filterType') get decimationRateOptions() {\r\n let filterType = this.filterType,\r\n decimationRateCombinedOptions = this.decimationRateCombinedOptions;\r\n\r\n if (!filterType || !decimationRateCombinedOptions) return [];\r\n\r\n return filterType.id in decimationRateCombinedOptions ? decimationRateCombinedOptions[filterType.id] : [];\r\n }\r\n\r\n @computed('currentAdcInputs') get decimationRateCombinedOptions() {\r\n let inputs = this.currentAdcInputs;\r\n let result = {};\r\n\r\n if (!(inputs && inputs.decimationRate)) return [];\r\n\r\n let decimationRateInput = inputs.decimationRate;\r\n\r\n Object.keys(decimationRateInput).forEach((filterTypeName) => {\r\n let option = decimationRateInput[filterTypeName];\r\n result[filterTypeName] = option.values.map((value) => this.getGenericOption(value));\r\n });\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * When the filter type changes, we need to update the decimation rate options / selected value\r\n */\r\n setFilterTypeProperties() {\r\n let isSigmaDeltaAdc = this.isSigmaDeltaAdc;\r\n let filterType = this.filterType;\r\n\r\n if (!filterType || !isSigmaDeltaAdc || !this.allowDecimationRateInput) {\r\n this.set('decimationRate', null);\r\n return;\r\n }\r\n this.setOptionFromDefault('decimationRate', isSigmaDeltaAdc, filterType.id);\r\n }\r\n\r\n /**\r\n * Functions for getting an option from a list of options\r\n */\r\n\r\n setOptionFromDefault(propertyName, isSigmaDeltaAdc, otherKey) {\r\n if (!isSigmaDeltaAdc) {\r\n this.set(propertyName, null);\r\n return;\r\n }\r\n\r\n let options = otherKey\r\n ? this.get(`${propertyName}CombinedOptions`)[otherKey]\r\n : this.get(`${propertyName}Options`),\r\n inputs = otherKey ? this.currentAdcInputs[propertyName][otherKey] : this.currentAdcInputs[propertyName];\r\n\r\n this.set(\r\n propertyName,\r\n options.find((option) => option.id === inputs.default),\r\n );\r\n }\r\n\r\n getOptionFromId(propertyName, id, otherKey) {\r\n let options = otherKey\r\n ? this.get(`${propertyName}CombinedOptions`)[otherKey]\r\n : this.get(`${propertyName}Options`);\r\n return options.find((option) => option.id === id);\r\n }\r\n\r\n /**\r\n * Functions for getting sigma delta values from the url / hash\r\n */\r\n\r\n getHashValues() {\r\n let values = {};\r\n\r\n if (this.allowOdrInput) this.setValueFromHash('odrInput', values);\r\n if (this.allowMclkDivInput) this.setValueFromHash('mclk', values);\r\n if (this.allowMclkDivInput) this.setSigmaDeltaOptionFromHash('mclkDiv', values);\r\n this.setSigmaDeltaOptionFromHash('powerMode', values);\r\n this.setSigmaDeltaOptionFromHash('filterType', values);\r\n\r\n if (this.allowChannelAveragingInput) this.setSigmaDeltaOptionFromHash('channelAveraging', values);\r\n\r\n let filterType = values.filterType || this.filterType;\r\n if (filterType && this.allowDecimationRateInput)\r\n this.setSigmaDeltaOptionFromHash('decimationRate', values, filterType.id);\r\n\r\n return values;\r\n }\r\n\r\n setValueFromHash(propertyName, values) {\r\n let hashValues = this.hashService.parsedLocationHash,\r\n hashValue = hashValues[propertyName],\r\n value = Utils.convertDataTypeFromHash(hashValue);\r\n\r\n if (value) {\r\n values[propertyName] = value;\r\n }\r\n }\r\n\r\n setSigmaDeltaOptionFromHash(propertyName, values, otherKey) {\r\n let hashValues = this.hashService.parsedLocationHash,\r\n hashValue = hashValues[propertyName],\r\n value = Utils.convertDataTypeFromHash(hashValue);\r\n\r\n if (value) {\r\n let option = this.getOptionFromId(propertyName, value, otherKey);\r\n if (option) {\r\n values[propertyName] = option;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Functions for converting values to options\r\n */\r\n\r\n getMclkDivOption(value) {\r\n return {\r\n id: value,\r\n value: value,\r\n description: `/ ${value}`,\r\n };\r\n }\r\n\r\n getGenericOption(value) {\r\n return {\r\n id: value,\r\n value: value,\r\n description: value,\r\n };\r\n }\r\n\r\n getGenericOptionFromItem(item, type) {\r\n let result = cloneDeep(item);\r\n result.id = item.value;\r\n result.description = item.intlKey ? this.intl.t(`sigma_delta_data.${type}.${item.intlKey}`) : item.value;\r\n return result;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed, set } from '@ember/object';\r\nimport TabData from '../data/tabdata';\r\nimport Utils from '../utils/utils';\r\nimport Constants from '../utils/constants';\r\nimport cloneDeep from 'lodash.clonedeep';\r\n\r\nexport default class TabService extends Service {\r\n @service errorHandling;\r\n\r\n tabs = { items: {}, lastUpdateDate: null };\r\n\r\n /**\r\n * Generate lists of tabs and set initial selected tab for each list\r\n */\r\n load(urlValues) {\r\n Object.keys(TabData.tabs).forEach((tabType) => {\r\n let tabTypeMetadata = TabData.tabs[tabType],\r\n urlKey = tabTypeMetadata.urlKey,\r\n tabList = this.generateTabList(tabTypeMetadata.items, tabType),\r\n foundTab = null;\r\n\r\n if (tabList && tabList.length && urlKey && urlKey in urlValues && Utils.isNumeric(urlValues[urlKey])) {\r\n foundTab = tabList.find((tab) => tab.index == urlValues[urlKey]);\r\n if (!foundTab) foundTab = tabList.find((tab) => tab.default);\r\n if (!foundTab) foundTab = tabList[0];\r\n } else if (tabList && tabList.length) {\r\n foundTab = tabList.find((tab) => tab.default);\r\n if (!foundTab) foundTab = tabList[0];\r\n }\r\n\r\n if (foundTab) set(foundTab, 'isSelected', true);\r\n this.set(`tabs.items.${tabType}`, tabList || []);\r\n });\r\n }\r\n\r\n @computed('tabs.lastUpdateDate') get selected() {\r\n let result = {};\r\n Object.keys(this.tabs.items).forEach((tabType) => {\r\n let selectedTab = this.tabs.items[tabType].find((item) => item.isSelected);\r\n result[tabType] = selectedTab;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n goToTab(tab) {\r\n let tabList = tab.type.name in this.tabs.items ? this.tabs.items[tab.type.name] : [],\r\n foundTab = tabList.find((other) => other.name === tab.name),\r\n selectedTab = tabList.find((other) => other.isSelected);\r\n\r\n if (foundTab && ((selectedTab && foundTab.name != selectedTab.name) || !selectedTab)) {\r\n set(foundTab, 'isSelected', true);\r\n if (selectedTab) set(selectedTab, 'isSelected', false);\r\n }\r\n }\r\n\r\n generateTab(type, key) {\r\n let tabType = TabData.tabs[type],\r\n tab = cloneDeep(tabType.items[key]),\r\n result = {};\r\n\r\n result.metadata = tab;\r\n\r\n result.name = tab.name;\r\n result.description = tab.description;\r\n result.index = tab.index;\r\n result.qaAttrValue = tab.qaAttrValue;\r\n\r\n result.type = {\r\n name: type,\r\n qaAttrValue: tabType.qaAttrValue,\r\n isMain: type === Constants.TAB_TYPE.MAIN,\r\n urlKey: tabType.urlKey,\r\n sendAnalyticsEventOnTabChange: tabType.sendAnalyticsEventOnTabChange || false,\r\n };\r\n\r\n result.default = tab.default || false;\r\n result.hasIcon = tab.hasIcon || false;\r\n\r\n Utils.generateNamingMetadata(result);\r\n return result;\r\n }\r\n\r\n generateTabList(dataTabs, tabType) {\r\n return Object.keys(dataTabs)\r\n .map((key) => this.generateTab(tabType, key))\r\n .sort(this.sortTabs);\r\n }\r\n\r\n sortTabs(tab1, tab2) {\r\n return Utils.compare(tab1.index, tab2.index);\r\n }\r\n\r\n updateTabs(model) {\r\n let tabModel = {\r\n notInDebugMode: !model.debugMode,\r\n selectedAdcHasFixedKickbackType: model.selectedAdc.kickbackType === 'fixed',\r\n isNotMultiplexed: !model.multiplexed,\r\n isInternalMultiplexed: model.selectedAdc.internalMux,\r\n };\r\n\r\n Object.keys(this.tabs.items).forEach((tabType) => {\r\n this.tabs.items[tabType].forEach((tab) => {\r\n let error = null,\r\n errorItems = [],\r\n errorsExist = false,\r\n hide = false;\r\n\r\n if (tab.metadata.overrideTabError && tab.metadata.error in this.errorHandling)\r\n error = this.errorHandling[tab.metadata.error];\r\n else if (!tab.metadata.overrideTabError && this.errorHandling.tabError)\r\n error = this.errorHandling.tabError;\r\n else if (tab.metadata.error && tab.metadata.error in this.errorHandling) {\r\n error = this.errorHandling[tab.metadata.error];\r\n if (tab.metadata.errorItems && tab.metadata.errorItems in this.errorHandling)\r\n errorItems = this.errorHandling[tab.metadata.errorItems];\r\n }\r\n\r\n errorsExist =\r\n tab.metadata.errorsExist && this.errorHandling.get(tab.metadata.errorsExist)\r\n ? this.errorHandling.get(tab.metadata.errorsExist)\r\n : false;\r\n\r\n let tabsMetHideRequirements = (tab.metadata.hideRequirements || []).filter(\r\n (requirement) => requirement in tabModel && tabModel[requirement],\r\n );\r\n\r\n // A default tab should never be hidden\r\n hide = tab.default ? false : tabsMetHideRequirements.length ? true : false;\r\n\r\n set(tab, 'error', error);\r\n set(tab, 'errorItems', errorItems);\r\n set(tab, 'errorsExist', errorsExist);\r\n set(tab, 'hide', hide);\r\n });\r\n\r\n let hiddenSelectedTab = this.tabs.items[tabType].find((tab) => tab.isSelected && tab.hide);\r\n if (hiddenSelectedTab) {\r\n let defaultTab = this.tabs.items[tabType].find((tab) => tab.default);\r\n this.goToTab(defaultTab);\r\n }\r\n });\r\n\r\n this.set('tabs.lastUpdateDate', new Date());\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport ToolData from '../data/tooldata';\r\n\r\nexport default class ToolDataService extends Service {\r\n data = ToolData;\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport { computed } from '@ember/object';\r\nimport Consts from '../utils/constants';\r\n\r\nexport default class UrlDataService extends Service {\r\n @service('data') model;\r\n @service('aditools-site') siteconfig;\r\n\r\n adc = null;\r\n\r\n load() {\r\n this.set('apiUrl', `${this.siteconfig.ApiUrl}/download/${this.siteconfig.AdiLocale}`);\r\n this.set('feedbackUrl', `${this.siteconfig.ApiUrl}/feedback/${this.siteconfig.AdiLocale}`);\r\n this.set('siteUrl', this.siteconfig.SiteUrl);\r\n this.set('analogHomeUrl', `${this.siteconfig.SiteUrl}/${this.siteconfig.AdiLocale}`);\r\n\r\n this.set('analogBaseParametricSearchUrl', `${this.analogHomeUrl}/parametricsearch`);\r\n this.set('analogCompanyUrl', `${this.analogHomeUrl}/company.html`);\r\n this.set('analogProductsUrl', `${this.analogHomeUrl}/products.html`);\r\n this.set('analogBaseProductsUrl', `${this.analogHomeUrl}/products`);\r\n this.set('analogApplicationsUrl', `${this.analogHomeUrl}/applications.html`);\r\n this.set('analogDesignCenterUrl', `${this.analogHomeUrl}/design-center.html`);\r\n this.set('analogEducationUrl', `${this.analogHomeUrl}/education.html`);\r\n this.set('analogSupportUrl', `${this.analogHomeUrl}/support.html`);\r\n\r\n this.set('precisionStudioUrl', this.siteconfig.PrecisionStudioUrl);\r\n this.set('filterWizardUrl', this.siteconfig.FilterWizardUrl);\r\n this.set('adcDriverUrl', this.siteconfig.CanonicalUrl);\r\n this.set('photodiodeUrl', this.siteconfig.PhotodiodeUrl);\r\n this.set('diamondUrl', this.siteconfig.DiamondUrl);\r\n this.set('simddsUrl', this.siteconfig.SimddsUrl);\r\n this.set('virtevalUrl', this.siteconfig.VirtEvalUrl);\r\n this.set('dacErrorCalculatorUrl', this.siteconfig.DACErrorCalculatorUrl);\r\n\r\n this.set('chromeDownloadUrl', `http://www.google.cn/intl/${this.siteconfig.AdiLocale}/chrome/`);\r\n this.set('firefoxDownloadUrl', `https://www.mozilla.org/${this.siteconfig.AdiLocale}/firefox/new/`);\r\n this.set(\r\n 'ieDownloadUrl',\r\n `https://www.microsoft.com/${this.siteconfig.FullLocale}/download/internet-explorer.aspx`,\r\n );\r\n }\r\n\r\n getDatasheetUrl(part) {\r\n let productPage = part.productPage || part.partCore;\r\n if (!productPage) return null;\r\n else return `${this.analogHomeUrl}/${productPage}`;\r\n }\r\n\r\n /**\r\n * Filter Strings\r\n */\r\n\r\n @computed('model.selectableDriverOptions') get opAmpFilterString() {\r\n return this._getFilterString(\r\n this.model.selectableDriverOptions,\r\n (driver) => driver.type === Consts.DRIVER_TYPE.AMP,\r\n );\r\n }\r\n\r\n @computed('model.selectableDriverOptions') get diffAmpFilterString() {\r\n return this._getFilterString(\r\n this.model.selectableDriverOptions,\r\n (driver) => driver.type === Consts.DRIVER_TYPE.DIFF_AMP,\r\n );\r\n }\r\n\r\n @computed('model.selectableAdcOptions') get adcFilterString() {\r\n return this._getFilterString(this.model.selectableAdcOptions, (adc) => adc);\r\n }\r\n\r\n _getFilterString(filterArray, inFilter) {\r\n filterArray = filterArray || [];\r\n inFilter = inFilter || ((item) => item);\r\n return (\r\n filterArray\r\n // initial filter\r\n .filter((filterItem) => inFilter(filterItem))\r\n // get only the item name, removing the hyphen and following characters\r\n .map((filterItem) =>\r\n filterItem.part.slice(\r\n 0,\r\n filterItem.part.indexOf('-') != -1 ? filterItem.part.indexOf('-') : filterItem.part.length,\r\n ),\r\n )\r\n // remove duplicates\r\n .removeDuplicates()\r\n .join('|')\r\n );\r\n }\r\n\r\n /**\r\n * Other useful helper methods\r\n */\r\n\r\n /**\r\n * This finds the adc found in the url route (before the hash) and returns it.\r\n * Since we only want to get it once (the first time),\r\n * we are going to delete it upon use.\r\n */\r\n findAdcParam() {\r\n let adc = this.adc;\r\n if (adc) {\r\n // only return once\r\n this.set('adc', null);\r\n }\r\n\r\n return adc;\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport { inject as service } from '@ember/service';\r\nimport ValidationData from '../data/validationdata';\r\nimport { LABEL_CATEGORIES, INVALID_CATEGORIES_EXIST } from '../utils/validation';\r\n\r\nexport default class ValidationService extends Service {\r\n @service selectionData;\r\n @service logging;\r\n @service intl;\r\n\r\n data = ValidationData;\r\n\r\n run() {\r\n this._prepAdcMetadata();\r\n this._validatePartItemOptions('ADC');\r\n\r\n this._validatePartItemOptions('Driver');\r\n }\r\n\r\n _prepAdcMetadata() {\r\n let recommendedDriversMetadata = this.data.adcRequirements.recommendedDrivers;\r\n recommendedDriversMetadata.driverOptions = this.selectionData.drivers.map((driver) => driver.part);\r\n }\r\n\r\n _validatePartItemOptions(partItemType) {\r\n let allValidations = [];\r\n this.get(`selectionData.${partItemType.toLowerCase()}s`).forEach((option) =>\r\n allValidations.push(\r\n this._validatePartItem(option, this.get(`data.${partItemType.toLowerCase()}Requirements`)),\r\n ),\r\n );\r\n\r\n let allInvalidValidations = allValidations.filter((validation) => INVALID_CATEGORIES_EXIST(validation));\r\n\r\n this.logging.logGroup(\r\n `${partItemType} Missing Data:`,\r\n allInvalidValidations.length,\r\n { allInvalidValidations: allInvalidValidations, self: this },\r\n this.logPartItem,\r\n );\r\n }\r\n\r\n _validatePartItem(partItem, requirementsMetadata) {\r\n let result = {},\r\n allFailedValidations = [];\r\n\r\n Object.keys(requirementsMetadata).forEach((property) => {\r\n let propertyValidations = this._validateProperty(property, requirementsMetadata[property], partItem);\r\n\r\n // find all of the invalid validations for this requirement\r\n let failedValidations = propertyValidations.filter((v) => !v.valid);\r\n\r\n if (Array.isArray(failedValidations) && failedValidations.length) {\r\n /**\r\n * Determine the category results for each partItem property\r\n * Add the failed property to the invalid properties\r\n */\r\n failedValidations.forEach((v) => {\r\n if (!(v.category in result)) result[v.category] = {};\r\n result[v.category][property] = v;\r\n allFailedValidations.push(v);\r\n });\r\n }\r\n });\r\n\r\n /**\r\n * Determine results for each partItem - These decisions shouldn't have to be made for each property\r\n * Mark the partItem as hidden if an applicable validation has failed\r\n */\r\n if (allFailedValidations.filter((v) => v.hidePartItem).length) {\r\n partItem.selectable = false;\r\n }\r\n\r\n if (allFailedValidations.length) {\r\n partItem.invalidData = true;\r\n result.part = partItem.part;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n _validateProperty(property, metadata, partItem) {\r\n let validations = [];\r\n metadata.validations.forEach((v) => {\r\n validations.push(v(property, metadata, partItem));\r\n });\r\n\r\n return validations;\r\n }\r\n\r\n logMissingData(invalidCategories) {\r\n if (Object.keys(invalidCategories).length) {\r\n this.logging.logGroup(\r\n invalidCategories.part,\r\n true,\r\n { invalidCategories: invalidCategories, self: this },\r\n this.logPart,\r\n );\r\n }\r\n }\r\n\r\n logPartItem(loggingArgs) {\r\n let allInvalidValidations = loggingArgs['allInvalidValidations'],\r\n _self = loggingArgs['self'];\r\n allInvalidValidations.forEach((validation) => _self.logMissingData(validation));\r\n }\r\n\r\n logCategory(loggingArgs) {\r\n let _self = loggingArgs['self'],\r\n category = loggingArgs['category'],\r\n invalidCategories = loggingArgs['invalidCategories'],\r\n categoryIsInvalid = category in invalidCategories,\r\n intl = _self.intl;\r\n if (categoryIsInvalid) {\r\n Object.keys(invalidCategories[category]).forEach((property) => {\r\n let propertyValidation = invalidCategories[category][property];\r\n window.console.log(\r\n `${property}:\\t${intl.t(propertyValidation.translation, propertyValidation.transArgs)}`,\r\n );\r\n });\r\n }\r\n }\r\n\r\n logPart(loggingArgs) {\r\n let _self = loggingArgs['self'],\r\n invalidCategories = loggingArgs['invalidCategories'],\r\n intl = _self.intl;\r\n\r\n LABEL_CATEGORIES.forEach((category) => {\r\n let categoryIsInvalid = category in invalidCategories;\r\n _self.logging.logGroup(\r\n `${intl.t(`validation.${category}.category`)}`,\r\n categoryIsInvalid,\r\n { category: category, invalidCategories: invalidCategories, self: _self },\r\n _self.logCategory,\r\n );\r\n });\r\n }\r\n}\r\n","import Service from '@ember/service';\r\nimport variantdata from '../data/variantdata';\r\n\r\nexport default class VariantDataService extends Service {\r\n data = variantdata;\r\n\r\n currentItemHasVariant(part) {\r\n return part.split('|').length > 1;\r\n }\r\n\r\n _foundPartVariant(part) {\r\n let partArray = part.split('|');\r\n return partArray.length > 1 ? partArray[1] : null;\r\n }\r\n\r\n getVariantMetadata(part, type = 'adc') {\r\n let foundPartVariant = this._foundPartVariant(part);\r\n return foundPartVariant ? this.data.variants[type][foundPartVariant] : null;\r\n }\r\n\r\n generateVariantProperties(item, itemObject, type = 'adc') {\r\n // variant metadata\r\n item.partCore = item.part.split('|')[0];\r\n let partsWithVariant = Object.keys(itemObject).filter((part) => {\r\n var partItems = part.split('|');\r\n return partItems.length > 1 && partItems[0] === item.partCore;\r\n });\r\n\r\n if (partsWithVariant.length) {\r\n item.hasVariant = true;\r\n\r\n if (partsWithVariant.length > 1) {\r\n item.variants = partsWithVariant\r\n .map((part) => this.getVariantMetadata(part, type))\r\n .filter((variant) => !!variant);\r\n } else item.variant = this.getVariantMetadata(partsWithVariant[0], type);\r\n } else item.hasVariant = false;\r\n\r\n if (item.hasVariant) {\r\n item.currentVariant = this.getVariantMetadata(item.part, type);\r\n item.hasCurrentVariant = item.currentVariant != null;\r\n } else {\r\n item.currentVariant = null;\r\n item.hasCurrentVariant = false;\r\n }\r\n }\r\n}\r\n","Array.prototype.removeDuplicates = function () {\r\n var target = this;\r\n return target.filter((filterItem, index, self) => self.indexOf(filterItem) === index);\r\n};\r\n","// Detect whether browser is valid.\r\n// By no means is this a finished product.\r\nexport default {\r\n modes: {\r\n IE11: 1,\r\n IE11compat: 2,\r\n IElt11: 3,\r\n notIE: 4,\r\n },\r\n\r\n getIEMode() {\r\n let agentStr = navigator.userAgent;\r\n console.log(`agentStr: ${agentStr}`);\r\n console.log('document');\r\n console.log(document);\r\n\r\n let mode;\r\n if (agentStr.indexOf('Trident/7.0') > -1) {\r\n if (agentStr.indexOf('MSIE') > -1) {\r\n // Defaults to 7????\r\n // mode = \"IE11 compat\";\r\n mode = this.modes.IE11compat;\r\n } else {\r\n // mode = \"IE11\";\r\n mode = this.modes.IE11;\r\n }\r\n } else if (agentStr.indexOf('Trident') > -1 /* || agentStr.indexOf(\"MSIE\") > -1 */) {\r\n // mode = \"IE7-\"\r\n // mode=\"IE10-\";\r\n mode = this.modes.IElt11;\r\n } else {\r\n // mode = \"not IE\";\r\n mode = this.modes.notIE;\r\n }\r\n return mode;\r\n },\r\n\r\n badBrowserWarning(productName) {\r\n let mode = this.getIEMode();\r\n let modes = this.modes;\r\n\r\n console.log(`Mode: ${mode}`);\r\n\r\n let text =\r\n mode === modes.IE11compat\r\n ? `${productName} supports Chrome, Firefox, Edge, and Internet Explorer 11.\r\n We are detecting your browser is set to “Compatibility mode” to emulate older browsers.\r\n ${productName} will not work with this setting.\r\n Please use a different browser or remove analog.com from your browser’s compatibility mode settings.`\r\n : `${productName} supports Chrome, Firefox, Edge, and Internet Explorer 11. \r\n We are detecting your browser as an older version of Internet Explorer.\r\n Please use a different browser or update Internet Explorer.`;\r\n let title = mode === modes.IE11compat ? 'Compatibility Mode detected' : 'Old Internet Explorer detected';\r\n\r\n return {\r\n title: title,\r\n text: text,\r\n };\r\n },\r\n\r\n isGood() {\r\n let mode = this.getIEMode();\r\n let modes = this.modes;\r\n return mode === modes.IE11 || mode === modes.notIE;\r\n },\r\n};\r\n","/**\r\n*Bessel Complex number library functions for handling complex data.\r\n*LAST UPDATED : 08/28/2012 09:27 AM\r\n@author Created by : Archita Ghosh on behalf of Collaborative Consulting and ADI.\r\n@function Complex \r\n@param {int} real part of the complex number which is in the form of a+ib.\r\n@param {int} imaginary part of the complex number.\r\n@returns A complex number in the form of a+ib.\r\n@description This function converts a real number into a complex number.\r\nThe parameters to this function are real part and the imaginary part .\r\n*/\r\nfunction Complex(real, imaginary) {\r\n this.real = real;\r\n this.imaginary = imaginary;\r\n}\r\n\r\nComplex.prototype.toString = function () {\r\n return this.real + ' + ' + this.imaginary + 'i';\r\n};\r\n\r\n/**\r\n@description The constants converted into complex numbers which are used in the algorithm\r\n*/\r\nComplex['0'] = new Complex(0, 0);\r\nComplex['1'] = new Complex(1, 0);\r\nComplex['I'] = new Complex(0, 1, 1, Math.PI / 2);\r\nComplex['PI'] = new Complex(Math.PI, 0, Math.PI, 0);\r\nComplex['E'] = new Complex(Math.E, 0, Math.E, 0);\r\n\r\n/**\r\n@function plus\r\n@param a complex number.\r\n@returns summation of two complex numbers.\r\n@description This function takes as a parameter another complex number and returns a sum of two complex number\r\n@example Let the first complex number be x+iy and second complex number be a+ib.\r\nThe result of (x+iy).plus(a+ib) = (x+a) +i(y+b)\r\n*/\r\n\r\nComplex.prototype.plus = function (c) {\r\n return new Complex(this.real + c.real, this.imaginary + c.imaginary);\r\n};\r\n\r\n/*This addition function is much faster than the regular plus function, because it reuses the incoming variable instead of creating a new return variable.\r\nHowever it destroys the original value in the variable in the process, so this function should be used with care.*/\r\nComplex.prototype.plusDestroy = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n\r\n c.real = this.real + realPart;\r\n c.imaginary = this.imaginary + imagPart;\r\n return c;\r\n};\r\n\r\n/**\r\n@function subs\r\n@param a complex number.\r\n@returns substraction of two complex numbers.\r\n@description This function takes as a parameter another complex number and returns a substraction of two complex number\r\n@example Let the first complex number be x+iy and second complex number be a+ib.\r\nThe result of (x+iy).subs(a+ib) = (x-a) +i(y-b)\r\n*/\r\n\r\nComplex.prototype.subs = function (c) {\r\n return new Complex(this.real - c.real, this.imaginary - c.imaginary);\r\n};\r\n\r\n/*This addition function is much faster than the regular subs function, because it reuses the incoming variable instead of creating a new return variable.\r\nHowever it destroys the original value in the variable in the process, so this function should be used with care.*/\r\nComplex.prototype.subsDestroy = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n\r\n c.real = this.real - realPart;\r\n c.imaginary = this.imaginary - imagPart;\r\n return c;\r\n};\r\n\r\n/**\r\n@function mult\r\n@param a complex number.\r\n@returns multiplication of two complex numbers.\r\n@description This function takes as a parameter another complex number and returns a multiplication of two complex number\r\n@example Let the first complex number be x+iy and second complex number be a+ib.\r\nThe result of (x+iy).mult(a+ib) = (x*a)-(y*b) + i(y*a)+(b*x)\r\n*/\r\n\r\nComplex.prototype.mult = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n\r\n return new Complex(\r\n realPart * this.real - imagPart * this.imaginary,\r\n this.imaginary * realPart + imagPart * this.real,\r\n );\r\n};\r\n\r\n/*This multiply function is much faster than the regular mult function, because it reuses the incoming variable instead of creating a new return variable.\r\nHowever it destroys the value of the original variable in the process, so this function should be used with care.*/\r\nComplex.prototype.multDestroy = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n\r\n c.real = realPart * this.real - imagPart * this.imaginary;\r\n c.imaginary = this.imaginary * realPart + imagPart * this.real;\r\n\r\n return c;\r\n};\r\n\r\n/**\r\n@function divide\r\n@param a complex number.\r\n@returns division of two complex numbers.\r\n@description This function takes as a parameter another complex number and returns a division of two complex number\r\n*/\r\n\r\nComplex.prototype.divide = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n let divident = realPart * realPart + imagPart * imagPart;\r\n return new Complex(\r\n (this.real * realPart + this.imaginary * imagPart) / divident,\r\n (this.imaginary * realPart - this.real * imagPart) / divident,\r\n );\r\n};\r\n\r\n/*This divide function is much faster than the regular divide function, because it reuses the incoming variable.\r\n However it destroys the original variable in the process, so this function should be used with extreme care.*/\r\nComplex.prototype.divideDestroy = function (c) {\r\n let realPart = c.real;\r\n let imagPart = c.imaginary;\r\n let divident = realPart * realPart + imagPart * imagPart;\r\n c.real = (this.real * realPart + this.imaginary * imagPart) / divident;\r\n c.imaginary = (this.imaginary * realPart - this.real * imagPart) / divident;\r\n\r\n return c;\r\n};\r\n\r\n/**\r\n@function magnitude\r\n@returns magnitude of a complex number\r\n@description This function calculates and returns the magnitude of the complex number.\r\n@example Let the complex number be x+iy \r\nThe result of (x+iy).magnitude() = sqrt(x*x +y*y)\r\n*/\r\nComplex.prototype.magnitude = function () {\r\n return Math.sqrt(this.real * this.real + this.imaginary * this.imaginary);\r\n};\r\n\r\n/**\r\n@function arctan\r\n@param a complex number.\r\n@returns inverse tangent of a complex number\r\n@description This function returns an inverse tangent of a complex number\r\n*/\r\nComplex.prototype.arctan = function () {\r\n let i = Complex.I,\r\n c = this;\r\n return i.mult(i.plus(c).divide(i.subs(c)).log()).divide(new Complex(2, 0, 2, 0));\r\n};\r\n\r\n/**\r\n@function floor\r\n@param a complex number.\r\n@returns floor value of a complex number.\r\n@description This function returns a floor value of a complex number.\r\n*/\r\nComplex.prototype.floor = function () {\r\n let c = this;\r\n return new Complex(Math.floor(c.real), Math.floor(c.imaginary));\r\n};\r\n\r\n/**\r\n@function log\r\n@param a complex number.\r\n@returns log of a complex numbers.\r\n@description This function returns a log of the complex number\r\n*/\r\nComplex.prototype.log = function () {\r\n let c = this;\r\n return new Complex(Math.log(c.real), c.t + 2 * Math.PI * Math.floor(-c.t / (2 * Math.PI) + 1 / 2));\r\n};\r\n\r\nexport default {\r\n createComplex(real, imaginary) {\r\n return new Complex(real, imaginary);\r\n },\r\n\r\n /**\r\n\t@function complexfreq\r\n\t@param {object} fp This is the object which contains the array of frequency points\r\n\t@returns array of complex frequency points\r\n\t@description

    This function takes input as the array of frequency points and returns an array of complex frequency points used in the calculation.

    \r\n\t*

    INPUT : array of frequency points obtained

    \r\n\t*

    OUTPUT : array of complex frequency points

    \r\n\t*/\r\n complexfreq(fp) {\r\n let complexfreq = new Array();\r\n for (let r = 0; r < fp.length; r++) {\r\n complexfreq[r] = new Complex(fp[r], 0);\r\n }\r\n\r\n return complexfreq;\r\n },\r\n\r\n /**\r\n\t@function complexNumberRaisedToPower\r\n\t@param complex number, integer power\r\n\t@returns complexNumber\r\n\t*/\r\n complexNumberRaisedToPower(c, n) {\r\n let modC, modCpowern, theta, retComplex, realPart, imaginaryPart;\r\n\r\n // |x+iy| = Math.sqrt(x^2 + y^2) = |z|\r\n modC = Math.sqrt(c.real * c.real + c.imaginary * c.imaginary);\r\n\r\n // |x+iy|^n = |z|^n\r\n modCpowern = Math.pow(modC, n);\r\n\r\n //theta=tan^(-1)(y/x)>\r\n theta = Math.atan2(c.imaginary, c.real);\r\n\r\n //|z|^n * cos(n* theta)\r\n realPart = modCpowern * Math.cos(n * theta);\r\n\r\n //|z|^n * sin(n* theta)\r\n imaginaryPart = modCpowern * Math.sin(n * theta);\r\n\r\n //zn = rn(cos(ntheta)+i sin(ntheta))\r\n retComplex = new Complex(realPart, imaginaryPart);\r\n\r\n return retComplex;\r\n },\r\n};\r\n","console.save = function (data, filename) {\r\n //var target = this;\r\n\r\n if (!data) {\r\n console.error('Console.save: No data');\r\n return;\r\n }\r\n\r\n if (!filename) filename = 'console.json';\r\n\r\n if (typeof data === 'object') {\r\n data = JSON.stringify(data, undefined, 4);\r\n }\r\n\r\n var blob = new Blob([data], { type: 'text/json' }),\r\n e = document.createEvent('MouseEvents'),\r\n a = document.createElement('a');\r\n\r\n a.download = filename;\r\n a.href = window.URL.createObjectURL(blob);\r\n a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');\r\n e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\r\n a.dispatchEvent(e);\r\n};\r\n","export default {\r\n MODAL_TYPE: {\r\n BASE: 'base',\r\n ON_CLOSE: 'onclose',\r\n FEEDBACK: 'feedback',\r\n SELECT: {\r\n ADC: 'adcSelect',\r\n DRIVER: 'driverSelect',\r\n },\r\n },\r\n\r\n MODAL_CONFIG: {\r\n ABOUT: 'about',\r\n BROWSER_ISSUE: 'browserIssue',\r\n VIDEOS: 'videos',\r\n FEEDBACK: 'feedback',\r\n SELECT: {\r\n ADC: 'adcSelect',\r\n DRIVER: 'driverSelect',\r\n },\r\n },\r\n\r\n CLASSES: {\r\n HIDDEN: 'hidden',\r\n },\r\n\r\n /**\r\n * Currently Escape and Left are not being used but I am putting them in for future reference\r\n * Any handling of Escape or Left will need to check for both given keys\r\n */\r\n KEYS: {\r\n ENTER: ['Enter'],\r\n ESCAPE: ['Escape', 'Esc'],\r\n LEFT: ['Left', 'ArrowLeft'],\r\n },\r\n\r\n API_TOOL_ID: 6,\r\n\r\n QA_ATTR_NAME: 'data-qa-element',\r\n QA_ATTR_PREFIX: 'adc_driver',\r\n\r\n DRIVER_TYPE: {\r\n AMP: 'Amp',\r\n DIFF_AMP: 'DiffAmp',\r\n },\r\n\r\n ADC_TYPE: {\r\n DIFF: 'DIFF',\r\n SE: 'SE',\r\n },\r\n\r\n SOURCE_TYPE: {\r\n SE: 1,\r\n DIFF: 2,\r\n },\r\n\r\n KICKBACK_TYPE: {\r\n FIXED: 'fixed',\r\n PREV_SAMPLE: 'prevSample',\r\n },\r\n\r\n VARIANT: {\r\n ADC: {\r\n HIZ: 'HiZ',\r\n PRECHARGE_ON: 'PrechargeOn',\r\n SEQ: 'Seq',\r\n },\r\n DRIVER: {\r\n LP: 'LP',\r\n FP: 'FP',\r\n },\r\n },\r\n\r\n TOPOLOGY: {\r\n INVERTING: 1,\r\n NON_INVERTING: 2,\r\n FOLLOWER: 3,\r\n },\r\n\r\n TAB_TYPE: {\r\n MAIN: 'main',\r\n NOISE: 'noise',\r\n SETTLING: 'settling',\r\n },\r\n\r\n TAB_INDEX: {\r\n MAIN: {\r\n CIRCUIT: 1,\r\n NOISE_DISTORTION: 2,\r\n INPUT_SETTLING: 3,\r\n NEXT_STEPS: 4,\r\n DRIVER_PERFORMANCE: 5,\r\n },\r\n NOISE: {\r\n THD: 1,\r\n NOISE: 2,\r\n },\r\n SETTLING: {\r\n DC: 1,\r\n AC: 2,\r\n MUXED: 3,\r\n },\r\n },\r\n\r\n INPUT_SETTLING_TAB: {\r\n 1: 'lsb',\r\n 2: 'volts',\r\n 3: 'ppm',\r\n },\r\n\r\n NOISE_TAB_NAME: {\r\n THD: 1,\r\n SINAD: 2,\r\n ENOB: 3,\r\n },\r\n\r\n ARCHITECTURE: {\r\n SAR: 'SAR',\r\n SIGMA_DELTA: 'sigma-delta',\r\n },\r\n\r\n CONFIGURATION: {\r\n SEADC: 'SEADC',\r\n DiffADC_SEAmp_SESource: 'DiffADC-SEAmp-SESource',\r\n DiffADC_DiffAmp_SESource: 'DiffADC-DiffAmp-SESource',\r\n DiffADC_DiffAmp_DiffSource: 'DiffADC-DiffAmp-DiffSource',\r\n DiffADC_SEAmp_DiffSource: 'DiffADC-SEAmp-DiffSource',\r\n },\r\n\r\n SVG: {\r\n SEADC_SESource_SEAmp_Inverting: 'SEADC-SESource-SEAmp-Inverting',\r\n SEADC_SESource_SEAmp_NonInverting: 'SEADC-SESource-SEAmp-NonInverting',\r\n SEADC_SESource_SEAmp_Follower: 'SEADC-SESource-SEAmp-Follower',\r\n SEADC_SESource_SEAmp_Inverting_InternalMux: 'SEADC-SESource-SEAmp-Inverting-InternalMux',\r\n SEADC_SESource_SEAmp_NonInverting_InternalMux: 'SEADC-SESource-SEAmp-NonInverting-InternalMux',\r\n SEADC_SESource_SEAmp_Follower_InternalMux: 'SEADC-SESource-SEAmp-Follower-InternalMux',\r\n DiffADC_SESource_SEAmp_Inverting: 'DiffADC-SESource-SEAmp-Inverting',\r\n DiffADC_SESource_SEAmp_NonInverting: 'DiffADC-SESource-SEAmp-NonInverting',\r\n DiffADC_SESource_DiffAmp_Inverting: 'DiffADC-SESource-DiffAmp-Inverting',\r\n DiffADC_DiffSource_SEAmp_Inverting: 'DiffADC-DiffSource-SEAmp-Inverting',\r\n DiffADC_DiffSource_SEAmp_NonInverting: 'DiffADC-DiffSource-SEAmp-NonInverting',\r\n DiffADC_DiffSource_DiffAmp_Inverting: 'DiffADC-DiffSource-DiffAmp-Inverting',\r\n DiffADC_DiffSource_SEAmp_Follower: 'DiffADC-DiffSource-SEAmp-Follower',\r\n DiffADC_SESource_SEAmp_Follower: 'DiffADC-SESource-SEAmp-Follower',\r\n DiffADC_DiffSource_DiffAmp_Inverting_AD408x: 'DiffADC-DiffSource-DiffAmp-Inverting-AD408x',\r\n DiffADC_DiffSource_DiffAmp_Inverting_InputMux_AD408x: 'DiffADC-DiffSource-DiffAmp-Inverting-InputMux-AD408x',\r\n DiffADC_DiffSource_DiffAmpFixedGain_Inverting_AD408x: 'DiffADC-DiffSource-DiffAmpFixedGain-Inverting-AD408x',\r\n DiffADC_DiffSource_DiffAmpFixedGain_Inverting_InputMux_AD408x:\r\n 'DiffADC-DiffSource-DiffAmpFixedGain-Inverting-InputMux-AD408x',\r\n DiffADC_DiffSource_SEAmp_Follower_AD408x: 'DiffADC-DiffSource-SEAmp-Follower-AD408x',\r\n DiffADC_DiffSource_SEAmp_Follower_InputMux_AD408x: 'DiffADC-DiffSource-SEAmp-Follower-InputMux-AD408x',\r\n DiffADC_DiffSource_SEAmp_Inverting_AD408x: 'DiffADC-DiffSource-SEAmp-Inverting-AD408x',\r\n DiffADC_DiffSource_SEAmp_Inverting_InputMux_AD408x: 'DiffADC-DiffSource-SEAmp-Inverting-InputMux-AD408x',\r\n DiffADC_DiffSource_SEAmp_NonInverting_AD408x: 'DiffADC-DiffSource-SEAmp-NonInverting-AD408x',\r\n DiffADC_DiffSource_SEAmp_NonInverting_InputMux_AD408x: 'DiffADC-DiffSource-SEAmp-NonInverting-InputMux-AD408x',\r\n DiffADC_SESource_SEAmp_Inverting_InputMux_AD408x: 'DiffADC-SESource-SEAmp-Inverting-InputMux-AD408x',\r\n DiffADC_SESource_SEAmp_NonInverting_InputMux_AD408x: 'DiffADC-SESource-SEAmp-NonInverting-InputMux-AD408x',\r\n DiffADC_SESource_SEAmp_Follower_InputMux_AD408x: 'DiffADC-SESource-SEAmp-Follower-InputMux-AD408x',\r\n\r\n PARTS: {\r\n InternalMux: 'InternalMux',\r\n InputMux: 'InputMux',\r\n DiffAmpFixedGain: 'DiffAmpFixedGain',\r\n DiffAmp: 'DiffAmp',\r\n },\r\n },\r\n\r\n URL: {\r\n AD_CONVERTERS: '10825',\r\n OPAMPS: '11070',\r\n DIFFAMPS: '11157',\r\n PRECISION_ADCS: '10825',\r\n SAR_ADCS: '10825#/p4364=SAR|SAR%20with%20Digital%20Filter',\r\n },\r\n};\r\n","export const arial =\r\n 'AAEAAAAZAQAABACQRFNJR6jSM0wADRO0AAAdtEdERUYHHgrHAA0xaAAAA1JHUE9TMhEXxQANNLwAAhgUR1NVQrKEa7gAD0zQAACD2EpTVEZtKmkGAA/QqAAAAB5MVFNIqrtZ3QAASNQAABGbT1MvMhRKXYQAAAIYAAAAYFBDTFT9ez5DAA0TfAAAADZWRE1YUJJq9QAAWnAAABGUY21hcD67pa8AAhKsAAAnrmN2dCCtv9+OAAJSPAAABm5mcGdtOKUWKwACOlwAAAuwZ2FzcAAZACEADRNsAAAAEGdseWagC/ReAAKfDAAKMFxoZG14e9ai3gAAbAQAAaaoaGVhZOtLVs0AAAGcAAAANmhoZWESMxpfAAAB1AAAACRobXR4Vmi5AAAAAngAAEZaa2VybjdhOTYADM9oAAAVYGxvY2FeajLSAAJYrAAARmBtYXhwF40JrwAAAfgAAAAgbWV0YQOgBWEAD9DIAAAAYG5hbWUtMebsAAzkyAAALoJwb3N0/yoAlgANE0wAAAAgcHJlcKGy6OoAAkYMAAAMLwABAAAABwAAJOGrpV8PPPUIGwgAAAAAAKLjJyoAAAAA1oTk7Pqv/WcQAAhRAAAACQABAAEAAAAAAAEAAAc+/k4AQxAA+q/6ehAAAAEAAAAAAAAAAAAAAAAAABGWAAEAABGXArUAPADKAAcAAgAQAEAAhgAABRcF7AAFAAIAAwOIAZAABQAIBZoFMwAAARsFmgUzAAAD0QBmAhIIBQILBgQCAgICAgTgAC7/wAB4WwAAAAkAAAAAVE1DIABAACD//AXT/lEBMwc+AbJAAAH///8AAAQmBbsAAAAgABUGAAEAAAAAAAI5AAACOQAAAjkAsALXAF4EcwAVBHMASQcdAHcFVgBYAYcAWgKqAHwCqgB8Ax0AQASsAHICOQCqAqoAQQI5ALoCOQAABHMAVQRzAN8EcwA8BHMAVgRzABoEcwBVBHMATQRzAGEEcwBTBHMAVQI5ALkCOQCqBKwAcASsAHIErABwBHMAWggfAG8FVv/9BVYAlgXHAGYFxwCeBVYAogTjAKgGOQBtBccApAI5AL8EAAA3BVYAlgRzAJYGqgCYBccAnAY5AGMFVgCeBjkAWAXHAKEFVgBcBOMAMAXHAKEFVgAJB40AGQVWAAkFVgAGBOMAKQI5AIsCOQAAAjkAJwPBADYEc//hAqoAWQRzAEoEcwCGBAAAUARzAEYEcwBLAjkAEwRzAEIEcwCHAccAiAHH/6IEAACIAccAgwaqAIcEcwCHBHMARARzAIcEcwBIAqoAhQQAAD8COQAkBHMAgwQAABoFxwAGBAAADwQAACEEAAAoAqwAOQIUALwCrAAvBKwAVwVW//0FVv/9BccAaAVWAKIFxwCcBjkAYwXHAKEEcwBKBHMASgRzAEoEcwBKBHMASgRzAEoEAABQBHMASwRzAEsEcwBLBHMASwI5AL0COQAjAjn/5QI5AAkEcwCHBHMARARzAEQEcwBEBHMARARzAEQEcwCDBHMAgwRzAIMEcwCDBHMASQMzAIAEcwBrBHMAGwRzAFECzQBtBEwAAQTjAJkF5QADBeUAAwgAAOECqgDeAqoAPQRkAE4IAAABBjkAUwW0AJoEZABOBGQATQRkAE0Ec//9BJwAoAP0ADgFtAB6BpYAoQRkAAACMQAAAvYALwLsAC0GJQB/Bx0ARATjAIEE4wCeAqoA6ASsAHIEZABUBHMALgRkADME5QAaBHMAhgRzAIwIAADvBVb//QVW//0GOQBjCAAAgQeNAFIEc//8CAAAAAKqAFMCqgBHAccAgAHHAGwEZABOA/QALwQAACEFVgAGAVb+OQRz/+QCqgBcAqoAXAQAABcEAAAXBHMASQI5ALkBxwBsAqoARwgAACUFVv/9BVYAogVW//0FVgCiBVYAogI5AI0COf/gAjkABAI5ABUGOQBjBjkAYwY5AGMFxwChBccAoQXHAKECOQDGAqoAGQKqAAYCqgAdAqoALgKqAOUCqgCiAqoAawKqADoCqgBLAqoAKARzAAABxwADBVYAXAQAAD8E4wApBAAAKAIUALwFx//9BHMASQVWAAYEAAAhBVYAngRzAIcErAByBKwAoQKqAGsCqgAZAqoAIQasAGsGrABrBqwAIQRzAAAGOQBtBHMAQgI5ALEFVgBcBAAAPwXHAGYEAABQBccAZgQAAFAEcwBGBGv/4QKqAO4FVv/9BHMASgVW//0EcwBKBccAngTrAEcFx//9BVYAogRzAEsFVgCiBHMASwRzAJYBxwBCBHMAlgJVAIgEcwCWAqwAgwXHAJwEcwCHBccAnARzAIcGOQBjBHMARAXHAKECqgCFBccAoQKqADwFVgBcBAAAPwTjADACOQAkBOMAMAMAACMFxwChBHMAgwXHAKEEcwCDBOMAKQQAACgE4wApBAAAKARoAKQGOQBgBmIAVQSgAEgEdABIA5EAYgTwAEQDKQAuBTAASARr/+EEAACwAusAUgjAADMIAABPBAAAmQgAAE8EAACZCAAATwQAAJgEAACYB9UBagXAAJ4EqwByBNUAnQSsAHEE1QIiBNUBBQWr/+kFAAHJBasCfgWr/+kFqwJ+Bav/6QWrAn4Fq//pBav/6QWr/+kFq//pBav/6QWrAcAFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBasC1gWrAGYFq//qBdX//wTVAJIIAAAAB+sBMAfrASAH6wEwB+sBIATVALIE1QCABNUAKggrAZgIawG4B1UAEAYAAPQGAABvBEAAOgVAADcEwAA/BBUAQAQAACUGAABVBeEAvwONAIgE1f/ZAYAAgALVAIAHFQBhApYADwTVAJIC1gCDAtYAgwTVALIC1gBwBVb//QRzAEoFxwBmBAAAUAXHAGYEAABQBVYAogRzAEsFVgCiBHMASwVWAKIEcwBLBjkAbQRzAEIGOQBtBHMAQgY5AG0EcwBCBccApARzAIcFxwAfBHMABgI5/84COf/OAjn/5AI5/+QCOf/2Ajn/9QI5AEsBxwAZBAAANwHH/6IFVgCWBAAAiAQAAIYEcwCWAccAagXHAJwEcwCHBckApQRzAIsGOQBjBHMARAY5AGMEcwBEBccAoQKqAGoFVgBcBAAAPwTjADACOQAMBccAoQRzAIMFxwChBHMAgwXHAKEEcwCDBccAoQRzAIMHjQAZBccABgVWAAYEAAAhAccAiQVW//0EcwBKCAAAAQcdAEQGOQBTBOMAgQI5ALkHjQAZBccABgeNABkFxwAGB40AGQXHAAYFVgAGBAAAIQHHAIoCqv/hBHMAGwTNAFoGrABrBqwAIgasACIGrABKAqoA4gKqAGsCqgDeAqr/6gVX//8GRv+nBrT/qAMS/6gGMv+nBtj/pwYF/6cBx/94BVb//QVWAJYFWP/+BVYAogTjACkFxwCkAjkAvwVWAJYFWAALBqoAmAXHAJwFMwBtBjkAYwXHAKQFVgCeBPIAlATjADAFVgAGBVYACQavAH8F+wBhAjkABAVWAAYEoABIA5EAYgRzAIsBxwBrBGAAiASaAIwEAAAZA4cASARzAIsEcwBcAccAiQQAAIYEAAAYBJwAoAQAABoDlQBcBHMARASNAIMD2wBWBGAAiAQzABEFtAB6Bj8AVwHH/8kEYACIBHMASARgAIgGPwBXBVcAogbrADIEVQChBcAAZAVWAFwCOQC/AjkABAQAADcIdQANCBUApAbVADEEqQChBRUACgXAAKAFVv/9BUAApwVWAJYEVQChBWsAAAVWAKIHYwAHBNUATgXAAKEFwAChBKkAoQVAABIGqgCYBccApAY5AGMFwACgBVYAngXHAGYE4wAwBRUACgYVAFIFVgAJBesAnwVVAFcHVQChB4AAoQZVAAAHFQCoBUAApQXAAEoIFQCkBccAGgRzAEoElQBbBEAAiALrAIgEqwAABHMASwVa//sDqwAyBHgAhwR4AIcDgACGBKsAGAWAAIwEawCIBHMARARVAIgEcwCHBAAAUAOqACYEAAAhBpUASwQAAA8ElQCKBCsARQZrAI0GlQCNBQAAKAXAAIsEKwCEBBUAKwYAAIkEVQAfBHMASwRzAAAC6wCJBBUASwQAAD8BxwCIAjkACQHH/6IHQAATBoAAgwRzAAADgACGBAAAIQRrAIgD6QChA0oAiAgAAEEIlQCgBYUALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6wAAAAAAAABAQAA/84DEAB9AAD/NwIzANIAAAMLAAD/BAI5ALkEgQBpBFYAMgMxABkEEQAtBNEAlgH5AJsDDwBfBMoAmwS4AIwB+QCbBBMAKAOwAFADtAA8BMoAmwTPAFAB+QCbAtIAPASYAFoEPAAZBIgAbgRfAHMDsQAZA9QACgRmAJYEEwAoBY4AZAUkACgD8gCbA/IAmwPyAJsB4wBaA1YAWgaGAJsB+QBGBBMAKAQTACgDtP9JA7T/SQRIAC0FjgBkBY4AZAWOAGQFjgBkBIEAaQSBAGkEgQBpBFYAMgMxABkEEQAtBNEAlgJLAAADSgAABLgAjAJLAAAEEwAoA7AAUAO0ADwEzwBQAtIAPASYAFoEiABuBF8AcwPUAAoEZgCWBBMAKAWOAGQFJAAoAfkAmwRWADIDsABQBF8AcwSbADwAAP/cAAD/JQAA/9wAAP5RAo0AqwKNAKAC2gBDA00AeQGo/7oAAABGAAAARgAAAEYAAABGAAAASAAAAEYAAABGAAAARgQ1AXwENQEuBDUAtwQ1AIEENQEsBDUAvgQ1AK8ENQCBBDUAmgQ1ANsENQCFAo0AwAQ1ALMGAAEABgABAAJCADYGAAEABDUAngQ1AJgENQDLBgABAAYAAQAGAAEABgABAAYAAQAAAABGBgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAFG/+6BgABAAYAAQAGAAEABbUAOgW1ADoB9P+6AfT/ugYAAQAGAAEABgABAAYAAQAEgQA2BDUANgQ9/7oEPf+6A+kASgPpAEoGfwAUB3YAFAMn/7oEHv+6Bn8AFAd2ABQDJ/+6BB7/ugUbADIEtQAkAwD/9wYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAAAADEAAABGAAAARgAAAEAAAABGBgABAAYAAQAAAP/cAAD+UQAA/xYAAP8WAAD/FgAA/xYAAP8WAAD/FgAA/xYAAP8WAAD/FgAA/9wAAP8WAAD/3AAA/yAAAP/cBHMASggAAAAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEAAo0AEQKNADAGAAEABO4AFQNNAHkBqAATAdb/1wGoAFYB1gARA3UAMgN1ADIBqAAuAdYAEwUbADIEtQAkAfT/ugH0/7oBqACTAdYAEwW1ADoFtQA6AfT/ugH0/7oCQv/+AwD/9wW1ADoFtQA6AfT/ugH0/7oFtQA6BbUAOgH0/7oB9P+6BIEANgQ1ADYEPf+6BD3/ugSBADYENQA2BD3/ugQ9/7oEgQA2BDUANgQ9/7oEPf+6ArMAXwKzAF8CswBfArMAXwPpAEoD6QBKA+kASgPpAEoGkgA+BpIAPgQ//7oEP/+6BpIAPgaSAD4EP/+6BD//ugjJAD4IyQA+BsX/ugbF/7oIyQA+CMkAPgbF/7oGxf+6BKf/ugSn/7oEp/+6BKf/ugSn/7oEp/+6BKf/ugSn/7oEWgAqA5oANgQ1/7oDJ/+6BFoAKgOaADYENf+6Ayf/ugZPACcGTwAnAiT/ugIa/7oEpwBGBKcARgIk/7oCGv+6BM8ALQTPAC0DJ/+6Ayf/ugQNAEcEDQBHAaj/ugGo/7oCtAAjArQAIwMn/7oDJ/+6BDUARQQ1AEUB9P+6AfT/ugJCADYDAP/3A5r/ugMn/7oDdQAyA3UAMgUbADIEtQAkBRsAMgS1ACQB9P+6AfT/ugRaADEEzgBBBFoAJwTOADoEWgBTBM4ASgRaAFMEzgBKBgABAAYAAQAAAABGAAAARgYAAQAGAAEABgABAAAAAEYAAABGBgABAAYAAQAAAABIAAAARgYAAQAGAAEABgABAAAAAEYAAABGAAAARgAAAEYAAABAAAAAMQYAAQAAAABGAAAARgYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAKNAMoCjQDHAo0AxgYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAYAAQAGAAEABgABAAEA/7oIAP+6EAD/ugbcAGMFPwBEBtUAoQVbAIMAAP3cAAD8LwAA/KYAAP5UAAD81wAA/XMAAP4pAAD+DQAA/REAAPxnAAD9nQAA+/UAAPxyAAD+1QAA/tUAAP8CBBsAoAasAGsGrAAZAAD+tgAA/XMAAP4IAAD8pgAA/lMAAP0RAAD7yAAA+vQAAPqvAAD8cgAA+6oAAPtqAAD88QAA/H0AAPvdAAD8wQAA+5gAAP3qAAD+hAAA/cIAAPzxAAD9XwAA/nYAAP68AAD86wAA/WwAAP1YAAD8kAAA/RUAAPwsAAD8EwAA/BIAAPuWAAD7lgHHAIgFVv/9BHMASgVW//0EcwBKBVb//QRzAEoFVv/9BHMASgVW//0EcwBKBVb//QRzAEoFVv/9BHMASgVW//0EcwBKBVb//QRzAEoFVv/9BHMASgVW//0EcwBKBVb//QRzAEoFVgCiBHMASwVWAKIEcwBLBVYAogRzAEsFVgCiBHMASwVWAKIEcwBLBVYAogRzAEsFVgCiBHMASwVWAKIEcwBLAjkAYwHHAB8COQC6AccAfAY5AGMEcwBEBjkAYwRzAEQGOQBjBHMARAY5AGMEcwBEBjkAYwRzAEQGOQBjBHMARAY5AGMEcwBEBtwAYwU/AEQG3ABjBT8ARAbcAGMFPwBEBtwAYwU/AEQG3ABjBT8ARAXHAKEEcwCDBccAoQRzAIMG1QChBVsAgwbVAKEFWwCDBtUAoQVbAIMG1QChBVsAgwbVAKEFWwCDBVYABgQAACEFVgAGBAAAIQVWAAYEAAAhBVb//QRzAEoCOf/iAcf/sAY5AGMEcwBEBccAoQRzAIMFxwChBHMAgwXHAKEEcwCDBccAoQRzAIMFxwChBHMAgwAA/v4AAP7+AAD+/gAA/v4EVf/9AusADAdjAAcFWv/7BKkAoQOAAIYEqQChA4AAhgXHAKQEawCIBHP//QQAABQEc//9BAAAFAVWAAkEAAAPBVUAVwQrAEUFVQChBHMAhwYFAGMEcwBVBjkAYARzAEQFtQA6AfT/ugIk/7oCGv+6BKcARgH0AJ4B9AAQAfQAGwH0ABAB9ABrAfT/+QIn/84AAAAPAAD/9QKqAKQCqgCkAAAAEwAAAFYAAABWAAD/zwGoAA8B1v+/Aaj/9QHW/80BqAAdAdb/9QGoAJMB1gATA3UAMgN1ADIDdQAyA3UAMgUbADIEtQAkBbUAOgW1ADoB9P+6AfT/ugW1ADoFtQA6AfT/ugH0/7oFtQA6BbUAOgH0/7oB9P+6BbUAOgW1ADoB9P+6AfT/ugW1ADoFtQA6AfT/ugH0/7oFtQA6BbUAOgH0/7oB9P+6BbUAOgW1ADoB9P+6AfT/ugSBADYENQA2BD3/ugQ9/7oEgQA2BDUANgQ9/7oEPf+6BIEANgQ1ADYEPf+6BD3/ugSBADYENQA2BD3/ugQ9/7oEgQA2BDUANgQ9/7oEPf+6BIEANgQ1ADYEPf+6BD3/ugKzADICswAyArMAXwKzAF8CswBfArMAXwKzADICswAyArMAXwKzAF8CswBfArMAXwKzAF8CswBfArMAOAKzADgCswBJArMASQPpAEoD6QBKA+kASgPpAEoD6QBKA+kASgPpAEoD6QBKA+kASgPpAEoD6QBKA+kASgPpAEoD6QBKA+kASgPpAEoGkgA+BpIAPgQ//7oEP/+6BpIAPgaSAD4EP/+6BD//ugaSAD4GkgA+BD//ugQ//7oIyQA+CMkAPgbF/7oGxf+6CMkAPgjJAD4Gxf+6BsX/ugSn/7oEp/+6BFoAKgOaADYENf+6Ayf/ugZPACcGTwAnBk8AJwIk/7oCGv+6Bk8AJwZPACcCJP+6Ahr/ugZPACcGTwAnAiT/ugIa/7oGTwAnBk8AJwIk/7oCGv+6Bk8AJwZPACcCJP+6Ahr/ugSnAEYEpwBGBKcARgSnAEYJPgAyCT4AMgdA/7oHQP+6Bn8AFAd2ABQDJ/+6BB7/ugTPAC0EzwAtAyf/ugMn/7oEzwAtBM8ALQMn/7oDJ/+6BM8ALQTPAC0DJ/+6Ayf/ugZ/ABQHdgAUAyf/ugQe/7oGfwAUB3YAFAMn/7oEHv+6Bn8AFAd2ABQDJ/+6BB7/ugZ/ABQHdgAUAyf/ugQe/7oGfwAUB3YAFAMn/7oEHv+6BA0ARwQNAEcBqP+6Aaj/ugQNAEcEDQBHAaj/ugGo/7oEDQBHBA0ARwGo/7oBqP+6BA0ARwQNAEcBqP+6Aaj/ugQ1AEUENQBFAfT/ugH0/7oENQBFBDUARQQ1AEUENQBFBDUARQQ1AEUB9P+6AfT/ugQ1AEUENQBFBIEANgQ1ADYEPf+6BD3/ugJCADYDAP/3AxoAGgMaABoDGgAaA3UAMgN1ADIDdQAyA3UAMgN1ADIDdQAyA3UAMgN1ADIDdQAyA3UAMgN1ADIDdQAyA3UAMgN1ADIDdQAyA3UAMgUb/7oEtf+6BRsAMgS1ACQB9P+6AfT/ugN1ADIDdQAyBRsAMgS1ACQB9P+6AfT/ugUbADIEtQAkBn8ARQZ/AEUGfwBFBn8ARQGoACgAAP4pAAD+ogAA/vMAAP8dAAD/EgAA/5IAAP5+CPwAMgitADIAAP+IAAD/rwAA/z8AAP9kAAD+fgAA/zYBjQAAAvb//QAA/oIAAP8QBM0AMgAA/1gAAP9YAAD/ZAaSAD4GkgA+BD//ugQ//7oIyQA+CMkAPgbF/7oGxf+6BFoAKgOaADYENf+6Ayf/ugNNAHkCtAAjAkIANgH0/7oCkP+6AfQALwH0ADsB9AASAfQAsQH0AG0GfwAUB3YAFAH5AJsAAP7gArwAAAPyAJsEWv/1BM7/9QRaAFMEzgBKBFoAUwTOAEoEWgBTBM4ASgRaAFMEzgBKBFoAUwTOAEoEWgBTBM4ASgQ1AHEENQCtBFoADwTOAA8EcwAUBhEAFAVAAKcEcwCGBUAACgRzAAoFxwBRBccAZgQAAFAFx//9BnoAFAVAAEoEcwBGBHQASAVWAG4E1QBTBOP/xAY5AG0E/gAPBwwAhwHHAIMCOQAfBVYAlgQAAIgBxwAVBAAAGAcgAKQFx/+4BHMAiwY5AGAG8gBjBVcARAYJABQEcwCGBVYAngVWAGsEAABPBPIAlAMLAEQCOQAkBOMAFAI5ACQE4wAwBfsAYQXHAKEGLgAQBAAAIQTjACkEAAAoBOMAKQTjADEEXABEBFwAPwRzADwEcwBVA6sAMgPlACQEcwCHAhQAvANOALwErAByAjkAsAqqAJ4JxwCeCGQARgh/AJYGqgCWA5wAgwnHAJwHjgCcBisAhwRzAFUFVv/9BHMASgAA/v4FVv/9BHMASggAAAEHHQBEBjkAbQRzABoGOQBtBHMAQgVWAJYEAACIBjkAYwRzAEQGOQBjBHMARATjACkEXABMAcf/ogqqAJ4JxwCeCGQARgY5AG0EcwBCCEYApATyAJ4FxwCcBHMAhwVW//0EcwBKBVb//QRzAEoFVgCiBHMASwVWAKIEcwBLAjn/igI5/2QCOQAEAjn/9gY5AGMEcwBEBjkAYwRzAEQFxwChAqr/zAXHAKECqgBoBccAoQRzAHYFxwChBHMAgwVWAFwEAAA/BOMAMAI5ACQEXABRA34AEwXHAKQEcwCHBaYApATWAF4EhgBeBOMAKQQAACgFVv/9BHMASgVWAKIEcwBLBjkAYwRzAEQAAP79BjkAYwRzAEQGOQBjBHMARAY5AGMEcwBEBVYABgQAACEEcwBXBHMASARzAIYEcwCGBAAAEwQAAFAEcwBGBHMARgRzAFUF6QBVA6sASQOrADIFDQAyBA8ARAI5/7kEcwBCBHMAQgR4AFAEAgAZBO8AGQRzAIsEcwCHBHMAhwHHABkBxwBXAtkARAKeAAACbgAUAccAgwSTAIMGqgCEBqoAhAaqAIcEc/+mBHMAiwRsAIcEcwBEBlMARAY/AFcEZgBEAqr/5AKq/+QCqv/kAqoAhQKqAIUCqgCFAqr/5ARVAIoEVQCKBAAAPwHH/6ICFP+5Acf/cgLLAAACOQAPAjkAJARzABkEjABUBGAAiAQAABoFxwAGBAAAGAQoABkEAAAoBFQAKARcAEwEXAB5BAAAJAQAAFAEAAAkBAAAUAY5AGMEQACIBA8ASQR4AFAEawCIAy4AAAQAAAgDOwCIBHMASAQAACQEAABQB7cARgdAAEYICwBGBbMAJANvACQFwAAkBhwAEwVKAIMFDwCDA+IAHgQ4AGMDEQBkAxEAZAFG/84B6wBkAesAAAHrAAAC6gBkA9kAAAKRAAABhwBaAtcAXgHHAIABxwBsAccAigKqAPsCqgD7AsoAMgLKADIErABwBKwAcASsAGUErABlAqoBIQKqAN4CqgBZAqoBIQKqAB0CqgBZAqoA3gI5ALYCOQC2AqoA+wKqAPsCqgCmAqoApgKqAKYCqgAdAqr/4gKq//sClAAAAUIAZAK4ADICoAAAAsoAMgMQAJYDEACWAxAAlgMQAJYDEACWAqoAYgKqAGICqgAoAqoAHQKqAEcEVwCWBFcAlgRXAJYEVwCWBFcAQwRXAEMEVwBDBFcAQwRXAEMDEABDBFcALwRXAC8EVwAvBFcALwRXAC8DEAAvBFcAJQRXACUEVwAlBFcAJQRXACUDEAAvBFcAGgRXABoEVwAaBFcAGgRXABoDEAAaBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcAlgRXAJYEVwCWBFcAlgRXAEIEVwBCBFcAQgRXAEIEVwBCAxAAQgRXAC8EVwAvBFcALwRXAC8EVwAvAxAALwRXAC8EVwAvBFcALwRXAC8EVwAvAxAALwRXACYEVwAmBFcAJgRXACYEVwAmAxAAJgRXAEIEVwBCBFcAQgRXAEIEVwBCAxAAQgRXAJYEVwCWBFcAlgRXAJYEVwBCBFcAQgRXAEIEVwBCBFcAQgMQAEIEVwAmBFcAJgRXACYEVwAmBFcAJgMQACYEVwAjBFcAIwRXACMEVwAjBFcAIwMQACMEVwAvBFcALwRXAC8EVwAvBFcALwMQAC8EVwBLBFcASwRXAEsEVwBLBFcASwMQAEsEVwCWBFcAlgRXAJYEVwCWBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcAGgRXABoEVwAaBFcAGgRXABoDEAAa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BXwAPAXnAJgEVQCYBMYARgavAJgE2wASAyMAmAKqACICqgBrAqoAGQKqACECqgAXAqoAIgKqAC4CqgBJAqoAKgKqADMCqgAuAqoAMwKqACIFxQBqBcUAagXFAGoFxQBqBcUAagXFAGoFxQBqBcUAagXFAGoFxQBqBcUAagXTAGMF0wBjBdMAYwXTAGMF0wBjBdMAYwXTAGMF0wBjBdMAYwXTAGMF0wBjBfgApgX4AKYF+ACmBfgApgX4AJwF+ACcBfgAnAX4AJwF+ACcBfgAnAX4AJwF+ACcBfgAnAMCADsDAgA7AwIAOwMCADsDAgAyAwIAOwMCADsDAgA7AwIAOwQW/6wDAgA7AwIAOwMCADsCCgCJAgoATgJpAIkCpQCJAgoABwMCADsDAgA7AwIAOwMCADsDAgAyAwIAOwMCADsDAgA7BUEApARyAEYEcgBGBHIARgRyAEYEcgBGBHIARgRyAEYEcgBGBHIARgHH/6cD+ACHAgoAiQIKAE4CaQCJAqUAiQIKAAcCUAAOAlAADgMAAA4CUAAOBHgAhQR4AIUEeACFBHgAhQSgAFcCqgAXAqoAIgKqAEkCqgAqBO4AFQTtAJ0E7QCdBgsAGgTVAIUF4wCFAiYAmQImAIkCJgAsAiYAHgImAGMCJgAwAiYAGwImAB0CJgAdAiYAKQImAB4CJgAmAiYAHQImAAgCJgAoDJYARg4MAEYAAP+6DtIARgAA/1sAAP+RAAD/twAA/5sEgQA2BDUANgQ9/7oEPf+6BIEANgQ1ADYEPf+6BD3/ugaSAD4GkgA+BD//ugQ//7oD6QBKA+kASgSBADYENQA2BD3/ugQ9/7oBqP/DAdb/XwGo/+kB1v+FBRsAMgS1ACQB9P+6AfT/ugUbADIEtQAkAfT/ugH0/7oFGwAyBLUAJAH0/7oB9P+6A3UAMgN1ADIDdQAyA3UAMgZ/AEUGfwBFBn8ARQZ/AEUEgQA2BDUANgQ9/7oEPf+6BpIAPgaSAD4EP/+6BD//ugaSAD4GkgA+BD//ugQ//7oEzwAtBM8ALQMn/7oDJ/+6BLT/4AUA/+AElv/oBOT/6AdcADIF2gAyBw4AMgUTADkLtwAAAAD+LAAA//wAAABrAAAAcwAAAGsFGwAyBLUAJAH0/7oB9P+6Bn8AFAd2ABQDJ/+6BB7/ugZ/ABQHdgAUAyf/ugQe/7oFGwAy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MhkyMioaEgExKwExKyoBEQEBEisxKwEBEQEkASoBASMBAQEBAQEBAQEpKQEBAQEBAQEBAwEBAREBAQEBAQEBGQEBAQEBAQEBAQEBAS4BAQEBAQEuFgEBAQEBLgEBHAEBAQEBAQEBHi4uLiUmAQEBAQEBFAEBAQEBAQEBASwsAQEsLAEBLCwBASwsAQEsLAEBLCwBASwsAQEBAQEBAQEpKSkpAQErKxERIwEBASMBAQEjAQEBAQEdAQEBHQEJAQEjCQEBIwkBASMBAQEBAQEBAQEBLCwBASwsAQEsLAEBAQEBAQEBKysREQEBARYBAQEBAQEBAS8tMgEBAQEBAQEBAQEBFgEBAQEBAQEBAQEBAQEBAQEBAQEBARkBBQEZGQEfAQEBARkBARUBARISATIBGgEaEgEqKisBAQEBAQEBAQEBAQEyAQEBAQEuAQsLCwsLCwsL3d3d3d3d3d0pKSkpKSkpKd3d3d0pKSkpIwEBAS4QAQEBASkBLgEBAQELATklJgEBAQEZAQEBAQEBAQEBAQEBAQEBAQEBAS4BAS4BAQEcAQEBAQEBAQEBAQE5AS4BAQEBAQEBAQEBAQESU4WkAQEsIAEXAQEBAQEBAQEBAQEBAQEBAQEBHAEBAQEBAQEBGwEBAQEBAQEBCQEBAQEBAwEDAQEBAQECAQEUEgEBAQE5AQEWAS8BHBIBAQEBLgEwATAPAQEmAS8vAQEBFgEwLwEWAQEBAQEBFi8vLy8BAQEBATAwMDAwJiYmJgEBAQEWFhYWAQEvLy8vLxwcHBwSAQEBAQEBFAEBAQEBAQEBAQEwMDAPDw8BAQEBAQEBAQEmJiYmJiYvLy8vAQEBAQEBAQEwAQEaAS8BEjABASMuAQEwKQEBAS8BLxQwAS8SATABMAEBLxQaJQEBAQEBAQEvASkBAQEaKC8NAQEBLyguEjApARYBAQEvAQEBAQEWJSABDwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQMDAwMDAwMDAwMDAwMBAQEBAQEBAQEvAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBFBQBFBISEhIBAQEBASwBAQEZAQEBAQEBAQEBAQEBAQEBAQEBARIBAQEBAQEBAQEBAQErKxERAQEBAQEBAQEBAQEBLCwBASwsAQEsLAEBAQEJCQkJAQEBASsrERErKxERAQEBAQEBAQEBAQEBAQEBAQEBAQEsLAkBASMJAQEjAQEsLAEBLCwBASwsAQEBHA0MAQEBJAEBATEBAQEBAQEBDgEBLiUBLwEBLS4yIi0BARYBLAEBAQEBKwEc/yMBAQESAQEBAQEBAQEBAQEBAQEBAQEBAQEsLCwsLAEsARERAQEBGxsBAQEBAQEBAQEBJwEBJwEBLCwBAQEBMjIyMgEBHQEyMh0BAQEBAQEBAQEBASwsAQEsLAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBASMBAQwBARYBAQEBAQEBAQEBAQEBMgEBAQEBAQEVLQEVAS8nLS0BAQEuAQEBAQEBAQ0aFQYBAQEVAQEPAQEBLAEBAQEBAQEBJQoBAQcBAQEBAQEBGgEwAQEBARIBGgEBAQEKAQEBAQQBAQEEAQEBAQEBAQEBGRkBGTEBAQEBAQEsLCcpKQEBAQEJAQEjASIBAQEcLhQBJQEBAQEBAQEBAQEmASMBAQEBAQEBAQEBAQEuAQEBFBQBAQEBAQEBAQEsASopASkBKQEuAQEBAQEBAQEBAQEsHAEiJgEBAQEBAQEBAQEDJgEyMgEBCi4BAgEBAQEBAQEBAQEBARsBASgBAQEeKgEBAQEBAQEBAQEBAQEBAS4BAQEuAQEBAQEoAQEVAQEBFQEBAQEuAS4BAQEtGSwBARwBAQEBASoBAQEWHAEWAQEBAQEBAWUBAQEBASUBAQEcCgoKAQELDwEBAQEBGgEBARYWARUXARkBGQEBAR8BAwEBAQosATABHAABLCwBASwsAQExMQEBAQEsLAEBHQEyMh0BAQEsLAEBAQEBAQEBAQEBAQEBAQEBAS0tAAAAAAMAAwEBAQEBBQMDAQIBAQAYBewLwAD4CP8ACAAI//4ACQAJ//0ACgAK//0ACwAL//0ADAAM//0ADQAN//0ADgAN//0ADwAO//0AEAAP//0AEQAP//wAEgAR//wAEwAS//wAFAAT//wAFQAT//sAFgAU//sAFwAV//sAGAAV//oAGQAX//sAGgAZ//oAGwAa//oAHAAa//oAHQAb//oAHgAc//kAHwAc//kAIAAd//kAIQAf//kAIgAg//kAIwAg//gAJAAh//gAJQAi//gAJgAi//cAJwAj//cAKAAk//cAKQAm//cAKgAm//cAKwAn//YALAAo//YALQAo//YALgAq//YALwAr//YAMAAt//YAMQAt//UAMgAu//UAMwAv//UANAAw//QANQAw//QANgAx//QANwAz//QAOAA0//MAOQA0//MAOgA1//MAOwA1//MAPAA2//MAPQA3//MAPgA4//MAPwA5//IAQAA6//IAQQA7//IAQgA8//IAQwA8//EARAA9//EARQA+//EARgA///AARwBA//AASABB//AASQBC//AASgBC//AASwBD//AATABE//AATQBG/+8ATgBG/+8ATwBH/+8AUABI/+8AUQBJ/+4AUgBJ/+4AUwBK/+4AVABL/+0AVQBN/+0AVgBN/+0AVwBO/+0AWABP/+wAWQBQ/+wAWgBQ/+0AWwBR/+wAXABT/+wAXQBU/+wAXgBU/+wAXwBV/+sAYABW/+sAYQBX/+sAYgBX/+oAYwBZ/+oAZABa/+oAZQBb/+oAZgBc/+kAZwBc/+kAaABd/+kAaQBe/+gAagBg/+kAawBg/+kAbABh/+kAbQBi/+gAbgBj/+gAbwBj/+gAcABk/+cAcQBl/+cAcgBn/+cAcwBn/+cAdABo/+YAdQBp/+YAdgBq/+YAdwBq/+UAeABr/+UAeQBt/+UAegBu/+UAewBu/+UAfABv/+UAfQBw/+UAfgBx/+QAfwBx/+QAgABz/+QAgQB0/+QAggB1/+MAgwB2/+MAhAB2/+MAhQB3/+IAhgB4/+IAhwB5/+IAiAB6/+IAiQB7/+EAigB8/+EAiwB9/+IAjAB9/+EAjQB+/+EAjgB//+EAjwCB/+EAkACB/+AAkQCC/+AAkgCD/+AAkwCE/98AlACE/98AlQCF/98AlgCH/98AlwCI/+AAmACI/98AmQCJ/98AmgCK/94AmwCL/94AnACM/94AnQCM/94AngCO/94AnwCP/94AoACQ/94AoQCQ/90AogCR/90AowCS/90ApACT/90ApQCU/9wApgCV/9sApwCW/9sAqACX/9sAqQCX/9sAqgCY/9sAqwCZ/9sArACb/9sArQCb/9sArgCc/9sArwCd/9sAsACe/9sAsQCe/9oAsgCf/9oAswCg/9oAtACi/9kAtQCj/9gAtgCj/9gAtwCk/9gAuACl/9gAuQCm/9gAugCm/9gAuwCo/9gAvACp/9cAvQCq/9cAvgCq/9cAvwCr/9cAwACs/9cAwQCt/9cAwgCu/9cAwwCv/9YAxACw/9YAxQCx/9UAxgCx/9UAxwCy/9UAyACz/9QAyQC0/9QAygC1/9QAywC2/9QAzAC3/9QAzQC4/9QAzgC5/9QAzwC5/9QA0AC6/9QA0QC8/9QA0gC9/9MA0wC9/9IA1AC+/9IA1QC//9IA1gDA/9EA1wDA/9EA2ADC/9EA2QDD/9EA2gDE/9EA2wDE/9EA3ADF/9EA3QDG/9EA3gDH/9AA3wDH/9AA4ADJ/88A4QDK/88A4gDL/88A4wDL/88A5ADM/88A5QDN/88A5gDO/88A5wDQ/84A6ADQ/84A6QDR/84A6gDS/80A6wDT/80A7ADT/80A7QDU/80A7gDW/8wA7wDX/8wA8ADX/8wA8QDY/8wA8gDZ/8wA8wDa/8wA9ADa/8wA9QDc/8sA9gDd/8sA9wDe/8sA+ADe/8oA+QDf/8oA+gDg/8oA+wDh/8oA/ADh/8oA/QDj/8kA/gDk/8kA/wDl/8kA+Aj/AAgACP/+AAkACf/9AAoACv/9AAsAC//9AAwADP/9AA0ADf/9AA4ADf/9AA8ADv/9ABAAD//9ABEAD//8ABIAEf/8ABMAEv/8ABQAE//8ABUAE//7ABYAFP/7ABcAFf/7ABgAFf/6ABkAF//7ABoAGf/6ABsAGv/6ABwAGv/6AB0AG//6AB4AHP/5AB8AHP/5ACAAHf/5ACEAH//5ACIAIP/5ACMAIP/4ACQAIf/4ACUAIv/4ACYAIv/3ACcAI//3ACgAJP/3ACkAJv/3ACoAJv/3ACsAJ//2ACwAKP/2AC0AKP/2AC4AKv/2AC8AK//2ADAALf/2ADEALf/1ADIALv/1ADMAL//1ADQAMP/0ADUAMP/0ADYAMf/0ADcAM//0ADgANP/zADkANP/zADoANf/zADsANf/zADwANv/zAD0AN//zAD4AOP/zAD8AOf/yAEAAOv/yAEEAO//yAEIAPP/xAEMAPP/xAEQAPf/xAEUAPv/xAEYAP//wAEcAQP/wAEgAQf/wAEkAQv/wAEoAQv/wAEsAQ//wAEwARP/wAE0ARv/vAE4ARv/vAE8AR//vAFAASP/vAFEASf/uAFIASf/uAFMASv/uAFQAS//tAFUATf/tAFYATf/tAFcATv/tAFgAT//sAFkAUP/sAFoAUP/tAFsAUf/sAFwAU//sAF0AVP/sAF4AVP/sAF8AVf/rAGAAVv/rAGEAV//rAGIAV//rAGMAWf/qAGQAWv/qAGUAW//qAGYAXP/pAGcAXP/pAGgAXf/pAGkAXv/pAGoAYP/pAGsAYP/pAGwAYf/pAG0AYv/pAG4AY//oAG8AY//oAHAAZP/oAHEAZf/nAHIAZ//nAHMAZ//nAHQAaP/nAHUAaf/mAHYAav/mAHcAav/mAHgAa//lAHkAbf/lAHoAbv/lAHsAbv/lAHwAb//lAH0AcP/kAH4Acf/kAH8Acv/kAIAAc//kAIEAdP/jAIIAdf/jAIMAdv/jAIQAdv/jAIUAd//jAIYAeP/jAIcAef/iAIgAev/iAIkAe//iAIoAfP/iAIsAff/iAIwAff/iAI0Afv/iAI4Af//iAI8Agf/hAJAAgf/hAJEAgv/gAJIAg//gAJMAhP/gAJQAhP/gAJUAhf/gAJYAh//fAJcAiP/gAJgAiP/fAJkAif/fAJoAiv/eAJsAi//eAJwAjP/eAJ0AjP/eAJ4Ajv/eAJ8Aj//eAKAAkP/eAKEAkP/dAKIAkf/dAKMAkv/dAKQAk//dAKUAlP/cAKYAlf/bAKcAlv/bAKgAl//bAKkAl//bAKoAmP/bAKsAmf/bAKwAm//bAK0Am//bAK4AnP/bAK8Anf/bALAAnv/bALEAnv/aALIAn//aALMAoP/ZALQAov/ZALUAo//YALYAo//YALcApP/YALgApf/YALkApv/YALoApv/YALsAqP/YALwAqf/XAL0Aqv/XAL4Aqv/XAL8Aq//XAMAArP/XAMEArf/XAMIArv/XAMMAr//WAMQAsP/WAMUAsf/VAMYAsf/VAMcAsv/UAMgAs//UAMkAtP/UAMoAtf/UAMsAtv/UAMwAt//UAM0AuP/UAM4Auf/UAM8Auf/UANAAuv/UANEAvP/UANIAvf/TANMAvf/SANQAvv/SANUAv//SANYAwP/RANcAwP/RANgAwv/RANkAw//RANoAxP/RANsAxP/RANwAxf/RAN0Axv/RAN4Ax//QAN8Ax//QAOAAyf/PAOEAyv/PAOIAy//PAOMAy//PAOQAzP/PAOUAzf/PAOYAzv/PAOcA0P/OAOgA0P/OAOkA0f/OAOoA0v/NAOsA0//NAOwA0//NAO0A1P/NAO4A1v/MAO8A1//MAPAA1//MAPEA2P/MAPIA2f/MAPMA2v/MAPQA2v/MAPUA3P/LAPYA3f/LAPcA3v/LAPgA3v/KAPkA3//KAPoA4P/KAPsA4f/KAPwA4f/KAP0A4//JAP4A5P/JAP8A5f/JAPgI/wAIAAj//gAJAAn//QAKAAr//QALAAv//QAMAAz//QANAA3//QAOAA3//QAPAA7//QAQAA///QARAA///AASABH//AATABL//AAUABP//AAVABP/+wAWABT/+wAXABX/+wAYABX/+gAZABf/+wAaABn/+gAbABr/+gAcABr/+gAdABv/+gAeABz/+QAfABz/+QAgAB3/+QAhAB//+QAiACD/+QAjACD/+AAkACH/+AAlACL/+AAmACL/9wAnACP/9wAoACT/9wApACb/9wAqACb/9wArACf/9gAsACj/9gAtACj/9gAuACr/9gAvACv/9gAwAC3/9gAxAC3/9QAyAC7/9QAzAC//9QA0ADD/9AA1ADD/9AA2ADH/9AA3ADP/9AA4ADT/8wA5ADT/8wA6ADX/8wA7ADX/8wA8ADb/8wA9ADf/8wA+ADj/8wA/ADn/8gBAADr/8gBBADv/8gBCADz/8gBDADz/8QBEAD3/8QBFAD7/8QBGAD//8ABHAED/8ABIAEH/8ABJAEL/8ABKAEL/8ABLAEP/8ABMAET/8ABNAEb/7wBOAEb/7wBPAEf/7wBQAEj/7wBRAEn/7gBSAEn/7gBTAEr/7gBUAEv/7QBVAE3/7QBWAE3/7QBXAE7/7QBYAE//7ABZAFD/7ABaAFD/7QBbAFH/7ABcAFP/7ABdAFT/7ABeAFT/7ABfAFX/6wBgAFb/6wBhAFf/6wBiAFf/6wBjAFn/6gBkAFr/6gBlAFv/6gBmAFz/6QBnAFz/6QBoAF3/6QBpAF7/6QBqAGD/6QBrAGD/6QBsAGH/6QBtAGL/6QBuAGP/6ABvAGP/6ABwAGT/6ABxAGX/5wByAGf/5wBzAGf/5wB0AGj/5wB1AGn/5gB2AGr/5gB3AGr/5gB4AGv/5QB5AG3/5QB6AG7/5QB7AG7/5QB8AG//5QB9AHD/5AB+AHH/5AB/AHL/5ACAAHP/5ACBAHT/5ACCAHX/4wCDAHb/4wCEAHb/4wCFAHf/4wCGAHj/4wCHAHn/4gCIAHr/4gCJAHv/4gCKAHz/4gCLAH3/4gCMAH3/4gCNAH7/4gCOAH//4gCPAIH/4QCQAIH/4QCRAIL/4ACSAIP/4ACTAIT/4ACUAIT/4ACVAIX/4ACWAIf/3wCXAIj/4ACYAIj/3wCZAIn/3wCaAIr/3gCbAIv/3gCcAIz/3gCdAIz/3gCeAI7/3gCfAI//3gCgAJD/3gChAJD/3QCiAJH/3QCjAJL/3QCkAJP/3QClAJT/3ACmAJX/2wCnAJb/2wCoAJf/2wCpAJf/2wCqAJj/2wCrAJn/2wCsAJv/2wCtAJv/2wCuAJz/2wCvAJ3/2wCwAJ7/2wCxAJ7/2gCyAJ//2gCzAKD/2QC0AKL/2QC1AKP/2AC2AKP/2AC3AKT/2AC4AKX/2AC5AKb/2AC6AKb/2AC7AKj/2AC8AKn/1wC9AKr/1wC+AKr/1wC/AKv/1wDAAKz/1wDBAK3/1wDCAK7/1wDDAK//1gDEALD/1gDFALH/1QDGALH/1QDHALL/1ADIALP/1ADJALT/1ADKALX/1ADLALb/1ADMALf/1ADNALj/1ADOALn/1ADPALn/1ADQALr/1ADRALz/1ADSAL3/0wDTAL3/0gDUAL7/0gDVAL//0gDWAMD/0QDXAMD/0QDYAML/0QDZAMP/0QDaAMT/0QDbAMT/0QDcAMX/0QDdAMb/0QDeAMf/0ADfAMj/0ADgAMn/zwDhAMr/zwDiAMv/zwDjAMv/zwDkAMz/zwDlAM3/zwDmAM7/zwDnAND/zgDoAND/zgDpANH/zgDqANL/zQDrANP/zQDsANP/zQDtANT/zQDuANb/zADvANf/zADwANf/zADxANj/zADyANn/zADzANr/zAD0ANr/zAD1ANz/ywD2AN3/ywD3AN7/ywD4AN7/ygD5AN//ygD6AOD/ygD7AOH/ygD8AOH/ygD9AOP/yQD+AOT/yQD/AOX/yQAAABgAABGcCxYIAAMDAgQGBgoHAgQEBAYDBAMDBgYGBgYGBgYGBgMDBgYGBgsIBwcHBgYIBwIFBwYIBwgGCAcHBgcICgcIBwMDAwUGBAYGBgYGBAYGAgIFAggGBgYGBAYDBgYKBgYGBAIEBggIBwYHCAcGBgYGBgYGBgYGBgICAgIGBgYGBgYGBgYGBgQGBgYEBgcICAsEBAYLCAgGBgYGBgYHCQYDBAUICgYGAgYHBgcGBgYLCAgICwoGCwQEAgIGBQYIAgYEBAYGBgMCBAsIBggGBgICAgIICAgHBwcCBAQEBAQEBAQEBAYCBwYHBgIIBggGBwYGBgQEBAoJCgYIBgIHBgcGBwYGBgQIBggGBwcIBgYGBgYCBgQGBAcGBwYIBgcEBwQHBgYDBgQHBgcGBwYHBgYICAYGBQcEBwYGBAwLBgsGCwYGCwgGBwYHBwgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAcLCwsLCwcHBwsMCggIBgcHBgYICAUHAgQKBAcEBAcECAYHBgcGBgYGBgYGCAYIBggGBwYJBgICAgICAgICBQIHBQYGAgcGCAYIBggGBwQHBgYEBwYHBgcGBwYKCggGAggGCwoIBgMKCgoKCgoIBgIEBgYKCgoKBAQEBAgJCQUJCggCCAcIBgcHAgcICAcHCAcGBwYIBwgIAggGBQYCBgYGBQYGAgYGBgYFBgYFBgUICAIGBgYIBgoGBwcCAgUMCwkHBwcIBwcGCAYMBwkJBwcIBwgHBgcGBwgHBwYKCggJBwgLCAYGBwQGBggFBgYFBggGBgYGBgYGCAYGBggIBwgGBggGBgYEBgYCAgIKCQYFBgYFBQsNCQAAAAAAAAAAAAAAAAAEAAMAAAMGBgUGBwMDBwcDBgUFBwcDBQcGBgYGBgYGCQcGBgYDBQkDBgYFBQcJCQkJBgYGBgUGBwMFBwMGBQUHBQcGBgYGBgkHAwYFBgYAAAAABAQEBQIAAAAAAAAAAAYGBgYGBgYGBgYGBAYICAMIBgYGCAgICAgACAgICAgICAgHCAgICAgDAwgICAgGBgYGBQUJCgQGCQoEBgcGBAgICAgICAgICAgICAgICAAAAAAACAgAAAAAAAAAAAAAAAAAAAAABwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAQIBwUCAwIDBQUCAwcGAwMCAwgIAwMDBAgIAwMICAMDBgYGBgYGBgYGBgYGBAQEBAUFBQUJCQYGCQkGBgwMCQkMDAkJBgYGBgYGBgYGBQYEBgUGBAkJAwMGBgMDBwcEBAYGAgIEBAQEBgYDAwMEBQQFBQcGBwYDAwYHBgcGBwYHCAgAAAgICAAACAgAAAgICAAAAAAAAAgAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQEBAgICAgICAgICAgICAgICAgICAgICAgICAELFgkHCQcAAAAAAAAAAAAAAAAAAAAABgkJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIBggGCAYIBggGCAYIBggGCAYIBggGCAYGBgYGBgYGBgYGBgYGBgYGAgICAggGCAYIBggGCAYIBggGCQcJBwkHCQcJBwcGBwYJBwkHCQcJBwkHCAYIBggGCAYCAggGBwYHBgcGBwYHBgAAAAAGBAoHBgUGBQgGBgYGBgcGBwYHBggGCQYIAwMDBgMDAwMDAwMAAAQEAAAAAAIDAgMCAwIDBQUFBQcGCAgDAwgIAwMICAMDCAgDAwgIAwMICAMDCAgDAwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgQEBAQEBAQEBAQEBAQEBAQEBAUFBQUFBQUFBQUFBQUFBQUJCQYGCQkGBgkJBgYMDAkJDAwJCQYGBgUGBAkJCQMDCQkDAwkJAwMJCQMDCQkDAwYGBgYNDQoKCQoEBgcHBAQHBwQEBwcEBAkKBAYJCgQGCQoEBgkKBAYJCgQGBgYCAgYGAgIGBgICBgYCAgYGAwMGBgYGBgYDAwYGBgYGBgMEBAQEBQUFBQUFBQUFBQUFBQUFBQcGBwYDAwUFBwYDAwcGCQkJCQIAAAAAAAAADAwAAAAAAAACBAAABwAAAAkJBgYMDAkJBgUGBAUEAwMEAwMDAwMJCgMABAYGBwYHBgcGBwYHBgcGBwYGBgcGCAcGBwYICAYICQcGBgcHBwkHCgIDBwYCBgoIBgkKBwgGBwcGBwQDBwMHCAgJBgcGBwcGBgYGBQUGAwUGAg8NDAwJBQ0KCAYIBgAIBgsKCQYIBgcFCAYIBgcGAg8NDAgGCwcHBggGCAYGBgYGAgICAggGCAYHBAcEBwYHBgcGBgMGBQcGCAcGBwYIBgcGCAYACAYIBggGCAYGBgYGBgYGBgYIBQUHBgMGBgYGBwYGBgICBAQDAgYJCQkGBgYGCQkGBAQEBAQEBAYGBgIDAgQDAwYGBgYIBgYGBgYGBgYGBgkHBgYGBAYEBgYGCwoLCAUICAcHBQYEBAIDAwMEBQQCBAICAgQEBAQGBgYGBAQEBAQEBAMDBAQEBAQEBAQEAgQEBAQEBAQEBAQEBAQGBgYGBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQGBgkLCQYJBwkGCAYHBAcGCAYKCQcGBwYHBwcHCAYFBQcGBgIJBQUGCQYGDwcJBwoIBwYKCAkIDAoHBQkICQYJBwkHDAoJBw0JAA8HCAYGAAAAAAAACAYHBgcGBwYHBQYFCAYKBw0KCAYIBgcFCggHBgkHCQcCDAgHBgcGCAYIBgcGCQgECAYIBgsKBgYIBgwIBwUHBgkGCQYIBgkGCAYHBgcGBwYGBgkIBwYLCgsJBwYLCgsKCQYIBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYHBgcGBwYHBgcGBwYHBgcGBwYGBgYGBgYGBgcGBgQIBgcGBwYHBgcGBwYCAgICBwUHBQcFBgIGAgYCBgIICAgICAgHBgcGBwYHBggGCAYIBggGBgYGBgcEBwQHBAcEBwYHBgcGBwYHBgYDBgMGAwYDBwYHBgcGBwYHBggGCAYKCgoKBwYHBggGBwYHBgcGBgMKBgYCBgYGBgYGBgYICAkJCQkJCQUFBQUFBQgICgoKCgYGBgYGBgYGCQkLCwsLCwsCAgICAgICAgQEBgYGBgYGBgYGBgYGCQkLCwsLBgYGBgYGBgYJCwsLCAgICAgICAgJCQsLCgoKCgYGBQUGBgICBgYGBggIBgYGBgYGBgYICAkJCQkJCQYGBgYGBgYGCQkLCwsLCwsICAgICAgICAkJCwsKCgoKBgYGBgYGBggICAgIBAQEBAQGBgYGBgkJCgoHBAQEAgICAgICAgIFBQQEBAYGBgYGBgYGCAgJCggEBAQICAgICAoJCgkIBAQGCAgJCA0KBwcLBgcAAAAAAgIGBwgECAQICAQEBAQEBAQEBAMEBAQEBAQEAAAAAAAAAAAAAAAHBgUICgYGBgYFBQIFBgQIBgYGBwcHCgUGBgYGBgYGBwgHBgoGBQUHBAYGBggGBQcFBQUFBQUFAgMFBAYFBQYEBQUFBQcEBAQHBAQEBAQEBAIEBgQEBAQEBAIEBAYEBAQEBAUEAgMEBAQEBAUECg4FDgcDBgAAAAAAAAAAAAQEBQUFBAUECAcIBwcIBwkGAAAABgQEAgICAgkNBgsGCwQDAgYDAgEACAcJCAoKCgcIBgYHBgYGAAAAAAAGCAgIBgQAAAAEAAMDAAAAAAAAAAgIAwMICAMDCAgDAwgIAwMICAMDCAgDAwgIAwMGBgYGBgYGBgQEBAQFBQkJBgYGBQYEBgUGBAYFBgQJCQMDCQkDAwkKBAYJCgQGCQoEBgQEBAQEBAQEBgYDAwYGAwMGBgMDBgYCAgUFBQUJCQYGBgYDCQYGBAQGAwYGBAYJAgIGBgYGBgMIBgIJBgYEBgQGBgYGBgYGBQUHAgYCBgYEBAQEBAMDBAQCAgICAwICAwYGBAQEBAQEAgIEBAQEBAQEBAQEAAAAAAMEBAQEBAkHBggEBgYGBgYGBgYCAgICAgICAgYGBgYGBgYGAgICAgYGBgYGBwUHCAgHBgYCCAYIBAcGBgYGAgYEBwYHBgcFBwYAAAAAAAAAAAAKBQYGAgYHCAYDCAYHBgcGBgYFBwAAAAAAAAIICAgAAAAAAAAAAAAAAAgGCgoIAAgHCwkDBQICBgYDAwMEAAAAAAAAAAAHBgYEBgYGBgYGBgYGBAYGBgYGBgYGCAgIDQgEBwkGAgUDBgMGBgYEAwIGBgcHBgYHBwMFBgUIBwcGBwcGBgcGCQYGBgkJBQcGBwcGBgYGBgYHBgYGBgMDAwMHBwcHBwcHBwcHBgYGBgcHBwcHBwYGBgYGBwcHBwcHAwMDAwMHBQYFBQUFBwcHBwcHBwcHBwYGBgYGBgYGBgcHBwcHBwkJCQkGBgYGBgYGCQcGBgUGBgYHBwMGBggHBgcHBgYGBgcGBwcGBgcDBwYHAwYGCAUHBgMDBQoJCAYGBwYGBgUGBgkGBwcGBggHBwcGBwYGBwYHBggICAgGBwkHBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQEBAQEBAQEBAYEBAQDAwMEAwQEBAQEBAQEBwYGBgYGBgYGBgIFAwMDBAMDAwQDBgYGBgYEBAQEBwcHCAcIAwMDAwMDAwMDAwMDAwMDERMAFAAAAAAGBgYGBgYGBgkJBgYFBQYGBgYCAwIDBwYDAwcGAwMHBgMDBQUFBQkJCQkGBgYGCQkGBgkJBgYHBwQEBgcGBwoICgcQAAAAAAAHBgMDCQoEBgkKBAYHBgMDBwYDAwcGAwMABgUHBQkGBwYOBgcLCAkICwkHBgwKDAkIBggGAwMGCAQHBgcGCQcICAQGBQIEBwcCCRALDxQCAgIDAgICAgMCAgICAgICAgICAgMDAwMDAwMCBAQGBAQGBgcHBwcHBwcHBgYFBgYFCAgDAwYGBgYGBgYGCQkDAwYGAwMGBgICBAQEBAcGAwMHBgMDBQUFBQUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgcABQYHBwAABAQGBgYGBgYGBgYGBAQDAgAJCAgICAgIBwgJCAcGCggIBwgICAgICAgICAkICAgIBwcHBggICQgDAgICAwMGCQYGBgYGBQYHBgYCCQYGBgYGBgYCBgUGBAkGBgYGCQYGBAkGBggIAwQLCwgMDAwMDwYLAAAICAMDAgQEDAwJCQkKBAYDAgUFAAUIBg8MBwYHBgkJBggIBggJBgUGBAcHBAQAAwIDAggGCQcGBgYGBgYGBg0KDQoLCgsICwgLCAgGBwYHBgcGBwMGAgkHCgcPCgcGCQgKCQkGCwgGBQYGBwYKCAYFBwYHBgYEBQUGBgYGBAcECwcECAcFCQYEBAYGBgYCCQcEBAcGCAUIBwgGBgYJCAcDBwYIBgcGCQYHBggGCAQHBgkHCAgHBwYIBwYLCAgFBwkHBwkDDQYKBQYHBAYEBAMJBgYGBgcKCgoKCgYHBAYFBwUIAgYGCQkHBQcHBwYHBgYEBAMDBQgICgoGBwcHCAgDAwgIAwMICAQEBQUHBgMDCQkDAwYGAwMGBgMDAAAAAAAAAAAAAAAAAAAAAAAFDAwAAAAMGAkAAwMDBAcHCwgCBAQFBwMEAwMHBwcHBwcHBwcHAwMHBwcHDAcICQkIBwkJAwYIBwkJCQgJCQgHCQcLBwcHAwMDBQcEBwcGBwcDBwcDAwYDCwcHBwcEBwMHBQkFBQUEAwQHBwcJCAkJCQcHBwcHBwYHBwcHAwMDAwcHBwcHBwcHBwcHBQcHBwQGCAkJDAQEBwwJCQcHBwcHBgkKBwMEBAkLBwcDBwcHBwcHBwwHBwkMCwcMBAQDAwcGBQcCBwQEBgYHAwMECwcIBwgIAwMDAwkJCQkJCQMEBAQEBAQEBAQEBwMIBwcFAwkHBwUIBwcHBAQECgoKBwkHAwgHCQYJBgcHBAcHBwcJBwkIBwgHBwMHBAcECQcJBwkHCQQJBAgHBwMHBQkHCQcHBQcFBwkJBwcFBwUIBwYEDQwGDAYMBgYMCQcHBwcHCQgJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBwwMDAwMBwcHDA0LCQkGCAcGBgkJBQcCBAsEBwQEBwQHBwkGCQYIBwgHCAcJBwkHCQcJBwkHAwMDAwMDAwMGAwgGBwcDCQcJBwkHCQcJBAgHBwMJBwkHCQcJBwsJBwUDBwcMCwkHAwsJCwkLCQcFAwQHBwoKCgoEBAQEBwkKBAkJCQMHCAcIBwkDCAcJCQgJCQgHBwcHCQkDBwcFBwMHBwUFBwcDBwUHBQUHBwYHBgkJAwcHBwkICgcJCAMDBg0MCgcICQcICAcICAsHCQkHCAkJCQkICQcICQcJCAsLCgoICQwJBwcGBAcHCQYHBwYHCQcHBwcGBQUJBQcGCQkICQcGCQcHBwQGBwMDAwsKBwYFBwYFDA0IAAAAAAAAAAAAAAAAAAUAAwAAAwcHBQYHAwUHBwMGBgYHBwMEBwYHBwYGBwYICAYGBgMFCQMGBgYGBggICAgHBwcHBQYHAwUHAwYGBgcEBwcHBgcGCAgDBwYHBwAAAAAEBAQFAgAAAAAAAAAABgYGBgYGBgYGBgYEBgkJAwkGBgYJCQkJCQAJCQkJCQkJCQgJCQkJCQMDCQkJCQcGBgYGBgoLBQYKCwUGCAcFCQkJCQkJCQkJCQkJCQkJAAAAAAAJCQAAAAAAAAAAAAAAAAAAAAAHDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkEBAkHBQIDAgMFBQIDCAcDAwIDCQkDAwMFCQkDAwkJAwMHBgYGBwYGBgcGBgYEBAQEBgYGBgoKBgYKCgYGDQ0KCg0NCgoHBwcHBwcHBwcFBgUHBQYFCQkDAwcHAwMHBwUFBgYCAgQEBQUGBgMDAwUFBQUFCAcIBwMDBwcHBwcHBwcJCQAACQkJAAAJCQAACQkJAAAAAAAACQAACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBAQECQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAgwYCggKCAAAAAAAAAAAAAAAAAAAAAAGCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwgHCAcIBwgHCAcIBwgHCAcDAwMDCQcJBwkHCQcJBwkHCQcKCAoICggKCAoICQcJBwoICggKCAoICggHBQcFBwUHBwMDCQcJBwkHCQcJBwkHAAAAAAcECwgHBQcFCQcHBgcGCAYIBggHCQcJBwkDAwMHAwMDAwMDAwAABAQAAAAAAgMCAwIDAgMFBQUFCAcJCQMDCQkDAwkJAwMJCQMDCQkDAwkJAwMJCQMDBwYGBgcGBgYHBgYGBwYGBgcGBgYHBgYGBAQEBAQEBAQEBAQEBAQEBAQEBgYGBgYGBgYGBgYGBgYGBgoKBgYKCgYGCgoGBg0NCgoNDQoKBwcHBQYFCQkJAwMJCQMDCQkDAwkJAwMJCQMDBwcHBw4OCwsKCwUGBwcFBQcHBQUHBwUFCgsFBgoLBQYKCwUGCgsFBgoLBQYGBgICBgYCAgYGAgIGBgICBgYDAwYGBgYGBgMDBgYHBgYGAwUFBQUFBQUFBQUFBQUFBQUFBQUFCAcIBwMDBQUIBwMDCAcKCgoKAgAAAAAAAAANDQAAAAAAAAIEAAAHAAAACgoGBg0NCgoHBQYFBQQDAwQDAwMDAwoLAwAEBgcHBwcHBwcHBwcHBwcHBgYHBwcJCAcIBwkJBgkKCAcHCAcHCQcLAwMIBgMGCwkHCQoICQcICAYHBQMHAwcJCQkGBwYHBwcHBwcGBgcDBQcDEA8NDQoFDwsJBwcHAAcHDAsJBwkHCAYJBwkHBwcDEA8NCQcMBwkHBwcHBwgHCAcDAwMDCQcJBwkECQQJBwkHCAcHAwcFCQcIBwcHBgcHCAcJBwAJBwkHCQcHBQcHBwcGBgcHBwkGBggGAwcHBwYHBwcHAwMEBAQDBwoKCgcHBwcJCQcEBAQEBAQEBwcGAwMDBAMDBwcHBgkGBgYHBwcGBgYGCQYGBwcFBgUHBgYMCwwJBQkJCAgGBgUFAgMDAwQGBAIEAwMDBAQEBAcHBwcEBAQEBAQEAwMEBAQEBAQEBAQCBAQEBQUFBQUEBAQEBAcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAcHCQwJBwkHCQcJBgcFCAYJBwsKCAcIBggIBwcJBwYFBwcGAwkFBQgJBwcQBwkHCwkIBgsICggNCgcGCggJBwoICggNCwoHDgoAEAcJBgYAAAAAAAAJBwgGCAcIBwcGBwUJBgsIDgoJBgkGBwYLCAgGCggKCAMLCQgHCAcJBwkHCAYKCAQHBwcHDAsIBwkHCwkHBgcHCQcJBwkHCQcJBggFCAUIBQgGCgkIBwwLCwoIBgwLDAsJBwkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwgHCAcIBwkGCQcJBwkHCQcJBwgHCAcIBwgHCAcHAwkHCQcJBwkHCQcJBwMDAwMIBggGCAYHAwcDBwMHAwkLCQsJCwkHCQcJBwkHCQcJBwkHCQcIBwgHCQQJBAkECQQIBwgHCAcIBwgHBwMHAwcDBwMJBwkHCQcJBwkHBwUHBQsJCwkHBQcFBwUHBQcFBwUHAwkFBwMHBwcHBwcHBwcHCgoKCgoKBQUFBQUFCQkLCwsLBwcHBwcHBwcKCgwMDAwMDAMDAwMDAwMDBQUHBwcHBwcHBwcHBwcKCgwMDAwHBwcHBwcHBwoMDAwJCQkJCQkJCQoKDAwLCwsLBwcFBQcHAwMHBwcHCQkHBwcHBwcHBwcHCgoKCgoKBwcHBwcHBwcKCgwMDAwMDAkJCQkJCQkJCgoMDAsLCwsHBwcHBwcHBwcHBwcEBAQEBAcHBwcHCgoKCgkEBAQDAwMDAwMDAwUFBAQEBwcHBwcHBwcHBwoLCQQEBAkJCQkJCwoLCgkEBAcJCQoJDgsIBwwGBwAAAAADAwYICAQIBAgIBAQEBAQEBAQEAwQEBAQFBQQAAAAAAAAAAAAAAAgHBgkLBgYHBwYGAwUGBQkHBwYHBwcLBQcHBgcHBQcHCQcFCQUGBQcEBgcGCQcFCAUFBQUFBgUCBAUEBgUFBgUFBQUFBwQEBQcFBQQEBAQFAgQHBQUEBQUFAwUFBwQFBQQFBQQCAwUEBQQFBQQLEAUPCAMHAAAAAAAAAAAABAQGBgUFBQUJCAkHBwkICQcAAAAHBAQCAgICCg8GDAYMBAMCBwMCAQAJCQoICwsLCAkGBwcGBgcAAAAAAAcJCQkHBAAAAAQAAwMAAAAAAAAACQkDAwkJAwMJCQMDCQkDAwkJAwMJCQMDCQkDAwcGBgYHBgYGBAQEBAYGCgoGBgcFBgUHBQYFBwUGBQkJAwMJCQMDCgsFBgoLBQYKCwUGBAQFBQQEBQUGBgMDBgYDAwYGAwMGBgICBgYGBgoKBgYHBwMKBwcEBAYDBgcFBwkDAwcHBwcHAwkGAwoHBwQGBQYGBgcHBwcGBggDBgMHBwUEBAQEAwMFBQICAgIDAgIDBwcFBQUFBQQCAwUFBQQEBAQEBAQAAAAAAwQEBQQECQgHCQQHBwcHBwcHBwMDAwMDAwMDBwcHBwcHBwcDAwMDBwcHBwcHBQgJBwgHBgMJBwkECAYGBgYDBwQIBggGBwYIBwAAAAAAAAAAAAsGBgcDBwgJBwMJBwgGBwYGBwUIAAAAAAAAAwkJCQAAAAAAAAAAAAAACQcLCQgACQcMCgMFAgIGBgMDAwQAAAAAAAAAAAcHBwUGBgcGBwYHBwcFBwcHBwcGBwcJCQkOCQUICQcDBgMHAwcHBwUDAwcHBwcHBggHAwUHBgkHCAcIBwcGBwcKBwcGCgoGCAcHBwcHBwcHBwcHBwcHAwMDAwcICAgICAcHBwcHBwcHBwcHBwcHBwcHBwcICAgIBwcDAwMDAwgFBwYGBgYHBwcHCAgIBwcHBwcHBwcGBgYGBwcHBwcHCgoKCgcHBwYGBgcKCAcHBgcHBgcIAwcHCQcGCAcHBgYHCAcICAcHBwMIBwgDBwcJBgcHAwMFCgoJBgcHBwcHBgcHCgYHBwYHCQcIBwcHBgcIBwcHCQkICQcHCgcFBAQEBAQEBAQEBAQEBAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBQUFBQUFBQUFBgUFBQMDBAQDBQUFBQUFBQUIBwcHBwcHBwcHAwYDAwQEAwMDBQMHBwcHBwQEBAQHBwcJBwkDAwMDAwMDAwMDAwMDAwMTFQAWAAAAAAcGBgYHBgYGCgoGBgYGBwYGBgIDAgMIBwMDCAcDAwgHAwMFBQUFCgoKCgcGBgYKCgYGCgoGBgcHBQUHCAcHCwkLCBIAAAAAAAgHAwMKCwUGCgsFBggHAwMIBwMDCAcDAwAHBgcGCQcIBxAHCAwJCQkLCggGDQsOCgkHCAcDAwcJBQcHCAcKCAkIBAcGAgQIBwMJEQwRFgICAgMCAgICAwICAgICAgICAgICAwMDAwMDAwIEBAcEBAYGCAgICAgICAgHBwYHBwYJCQMDBwYGBgcHBwcJCQMDBwcDAwYGAgIEBAUFCAcDAwgHAwMGBgUFBQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwAFBgcIAAAEBAYGBgYGBgYGBgcEBQMCAAoJCQkJCQkHCQoJCAYLCQgHCAkICQkJCAkICgkJCQgICAgGCQgJCQMDAgIDAwYKBwcHBwcGBwgHBwMKBwcHBgcHBwMHBQcECgYHBwcKBwcFCgcHCQkDBAwMCQ0NDQ0RBwwAAAkJAwMCBAQNDQoKCgsFBgMCBgYABgkHEA0IBwgHCgkGCQkGCQoHBQYFBwcFBQADAwMDCQcKCAcHBgYHBwYHDgsOCwwLDAkMCQwJCQYIBggGCAYIBAcDCgcLCBALCAcKCAsKCQcMCQcFBwcIBgsJBwYIBwgHBgUFBQYGBwcECAQMCAQJCAYJBwUEBwcHBwMKBwUECAYJBQkHCQYGBwoICAMIBgkHCAYJBwgGCQcJBAgGCgcJCAgHBgkIBwwJCQUICgcICgMOBwsGBwgDBwQEAwoHBwcHBwsLCwsLBwcEBgUIBggDBwcKCgcGBwcHBgcGBgQFAwMFCQkLCwcICAcJCQMDCQkDAwkJBQUGBggHAwMJCQMDBwcDAwYGAwMAAAAAAAAAAAAAAAAAAAAAAAYNDQAAAA0aCgAEBAMFBwcMCQIEBAUIBAQEBAcHBwcHBwcHBwcEBAgICAcNCQkJCQkICgkDBgkHCwkKCQoJCQcJCQ0HCQcEBAQFBwQHBwcHBwMHBwMDBwMLBwcHBwQHBAcFCQcHBwQDBAgJCQkJCQoJBwcHBwcHBwcHBwcDAwMDBwcHBwcHBwcHBwcFBwcHBQcJCgoNBAQHDQoJBwcHBwcGCQsHAwQFCgwHCAMICAcHCAcHDQkJCg0MBw0EBAMDBwYHCQIHBAQHBwcEAwQOCQkJCQkDAwMDCgoKCQkJAwQEBAQEBAQEBAQHAwkHBwcDCQcJBwkHCAgEBAQLCwsHCgcDCQcJBwkHBwcECQcJBwkICQkHCQcHAwcEBwQJBwkHCgcJBAkECQcHBAcFCQcJBwcHBwcHCgkIBwYIBQgHBwUPDQcNBw0HBw0JCAgICAgJCAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIDQ0NDQ0ICAgNDgwKCgcJCAcHCgoGCAIFDAUIBQUIBQkHCQcJBwkHCQcJBwoHCgcKBwkHCQcDAwMDAwMDAwYDCQcHBwMJBwkHCgcKBwkECQcIBAkHCQcJBwkHDQkJBwMJBw0MCgcDDQkNCQ0JCQcDBAcICwsLCwQEBAQJCgsFCgsKAwkJCQkHCQMJCQsJCAoJCQgHCQcJCgMJCAYHAwcHBwYHBwMHBwcFBgcHBgcHCQkDBwcHCQkLBwkJAwMGDg0LCAgJCQkJBwkJCwgJCQgJCwkKCQkJBwgLBwoJCwsKCwgJDQkHBwcFCAcJBgcHBgcJBwcHBwcFBwkHBwcLDAgJBwcKBwcHBQcHAwMDDAsHBgcHBgUNDgkAAAAAAAAAAAAAAAAABQADAAAEBwcFBwgDBQgIAwcGBggIAwUHBwcHBgYHBwkIBgYGAwUJAwcHBgYHCQkJCQcHBwcFBwgEBQgEBwYGCAUHBwcGBwcJCAMHBgcHAAAAAAQEBQUDAAAAAAAAAAAHBwcHBwcHBwcHBwQHCgoECgcHBwoKCgoKAAoKCgoKCgoKCAoKCgkJAwMKCgoKBwcHBwYGCwwFBwsMBQcICAUKCgoKCgoKCgoKCgoKCgoAAAAAAAoKAAAAAAAAAAAAAAAAAAAAAAcNCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgQECggFAwMDAwYGAwMICAMDAwMJCQMDBAUJCQMDCQkDAwcHBwcHBwcHBwcHBwQEBAQGBgYGCwsHBwsLBwcODgsLDg4LCwgICAgICAgIBwYHBQcGBwUKCgMDCAgDAwgIBQUHBwMDBAQFBQcHAwMEBQYFBgYICAgIAwMHCAcIBwgHCAoKAAAKCgoAAAoKAAAKCgoAAAAAAAAKAAAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoEBAQKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCDRoLCQsJAAAAAAAAAAAAAAAAAAAAAAcLCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwMDAwMKBwoHCgcKBwoHCgcKBwsJCwkLCQsJCwkJBwkHCwkLCQsJCwkLCQkHCQcJBwkHAwMKBwkHCQcJBwkHCQcAAAAABwUMCQgGCAYJBwcHBwcJBwkHCQcKBwoHCQMDAwgDAwMDAwMEAAAEBAAAAAADAwMDAwMDAwYGBgYICAkJAwMJCQMDCQkDAwkJAwMJCQMDCQkDAwkJAwMHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcEBAQEBAQEBAQEBAQEBAQEBAQGBgYGBgYGBgYGBgYGBgYGCwsHBwsLBwcLCwcHDg4LCw4OCwsICAcGBwUKCgoDAwoKAwMKCgMDCgoDAwoKAwMICAgIDw8MDAsMBQcICAUFCAgFBQgIBQULDAUHCwwFBwsMBQcLDAUHCwwFBwcHAwMHBwMDBwcDAwcHAwMHBwMDBwcHBwcHAwMHBwcHBwcEBQUFBQYGBgYGBgYGBgYGBgYGBgYICAgIAwMGBggIAwMICAsLCwsDAAAAAAAAAA8OAAAAAAAAAwUAAAgAAAALCwcHDg4LCwcGBwUFBAQDBAMDAwMDCwwDAAQGBwgHCAcIBwgHCAcIBwgHBwcIBwoJBwkHCQkHCQsJBwcJCAgKCAsDBAkHAwcMCQcKCwkKBwkJBwgFBAgECAoJCgcIBwgIBwcHBwYGBwMFCAMREA4OCwYQDAoHCQcACQcNDAoHCgcJBwoHCgcIBwMREA4KBw0ICQcJBwkHCQcJBwMDAwMKBwoHCQQJBAkHCQcJBwcDBwYJBwkIBwgHCQcJBwoHAAoHCgcKBwkHBwcHBwcHBwcHCgYGCAcEBwcHBwgHBwcDAwUEBAMHCwsLBwcHBwoKBwQEBAQEBAQHBwcDAwMFBAQHBwcHCQcHBwcHBwcHBwcKBwcHBwUHBQcHBw0MDQkGCQoJCAYHBQUCAwMDBQYEAgUDAwMEBAUFCAgICAQEBAQEBAQEBAQEBAQEBAQEBAIEBAUFBQUFBQQEBAQEBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBwcKDAoHCggKBwkHCAUIBwoIDAsJBwkHCQkICAoHBgUIBwcDCgYGCQkHBxEICggMCQkHDAkLCQ4LCAYKCQoHCggKCA4MCwgPCwARCAkHBwAAAAAAAAkHCQcJBwkHCAYIBgoHCwgPCwoHCQcIBgwJCQcLCQsJAwsJCQcJCAkHCQcJBwsJBAkHCQcNDAkHCgcLCQgGCAcJBwkHCgcKBwkHCAcIBwgHCQcLCQkHDQsMCwkHDQwNCwoHCgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwgDCgcJBwkHCQcJBwkHAwMDAwkHCQcJBwcDBwMHAwcDCwsLCwsLCQcJBwkHCQcKBwoHCgcKBwkHCQcJBAkECQQJBAkHCQcJBwkHCQcHBAcEBwQHBAkHCQcJBwkHCQcJBQkFDQkNCQcHBwcJBwcHBwcHBwcECQcHAwgICAgICAgICQkLCwsLCwsGBgYGBgYKCgwMDAwHBwcHBwcHBwsLDQ0NDQ0NAwMDAwMDAwMFBQcHBwcHBwcHBwcHBwsLDQ0NDQcHBwcHBwcHCwwNDAkJCQkJCQkJCgoNDQwMDAwICAYGBwcDAwcHBwcJCQgICAgICAgICQkLCwsLCwsHBwcHBwcHBwsLDQ0NDQ0NCQkJCQkJCQkKCg0NDAwMDAgICAgICAgJCQkJCQQEBAQEBwcHBwcLCwsLCQQEBAMDAwMDAwMDBgYEBAQHBwcHBwcHBwkJCwwKBAQECQkJCQkMCwwKCgQEBwkJCwkPDAkIDQcIAAAAAAMDBwkJBQkFCQkEBAQEBAQEBAQEBAQEBAUFBAAAAAAAAAAAAAAACQcGCgwHBwcHBgYDBQcFCQcHBwgICAwGBwcHBwcFBwgKCAUJBwYGCAUHBwcJBwYJBQUGBQUGBgIEBgUHBgYHBQUGBgYIBQUFCAUFBQUEBAUCBAcFBQUFBQUDBQUHBAUFBAUGBAIDBQQFBAUGBAwRBhEJAwcAAAAAAAAAAAAEBAYGBgUGBQkJCggICgkKCAAAAAcEBQMDAwMKEAcNBw0EAwIHBAMBAAoJCwkMDAwJCQcHCAcHCAAAAAAABwkJCQcFAAAABQADBAAAAAAAAAAJCQMDCQkDAwkJAwMJCQMDCQkDAwkJAwMJCQMDBwcHBwcHBwcEBAQEBgYLCwcHBwYHBQcGBwUHBgcFCgoDAwoKAwMLDAUHCwwFBwsMBQcEBAUFBAQFBQcHAwMHBwMDBwcDAwcHAwMGBgYGCwsHBwcHBAsHBwQEBwQHBwUHCgMDBwcHBwcECQcDCwcHBAcFBwcHBwcHBwYGCAMHAwcHBQUFBQQDAwUFAgICAgQCAgQHBwUFBQUFBAIDBQUFBQQFBQUFBQAAAAAEBQUFBAUKCQcJBAgICAgICAgIAwMDAwMDAwMHBwcHBwcHBwMDAwMHBwcHBwgGCQkJCQcHAwoHCQQJBwcHBwMHBQkHCQcIBgkIAAAAAAAAAAAADAYHBwMHCQkHBAkHCQcIBwcIBggAAAAAAAADCQkJAAAAAAAAAAAAAAAKBw0JCQAKCA0LBAYCAgcHBAQEBAAAAAAAAAAACAcHBQcHBwcHBwcHBwUHBwcHBwcHBwkJCg8KBQkKBwMGAwcEBwcHBQMDBwcICAcHCAgDBgcGCQgIBwgIBwcIBwoHBwcLCwYIBwgIBwcHBwcHCAcHBwcDAwMDCAgICAgICAgICAcHBwcICAgICAgHBwcHBwgICAgICAMDAwMDCQYHBgYGBggICAgICAgICAgHBwcHBwcHBwcICAgICAgKCgoKBwcHBwcHBwsIBwcGBwcHCAgDBwcJCAcICAcHBwcJBwkIBwcIAwgHCAMHBwkGCAcDAwYLCwoHBwgHBwcGBwcKBwgIBwcJCAgIBwgHBwgHCAcKCgkKBwgLCAUEBAQEBAQEBAQEBAQECQkJCQkJCQkJCQkJCQkJCQkJCQkJCQoKCgoKCgoKCgoKCgoFBQUFBQUFBQUHBQUFAwMEBAMFBQUFBQUFBQkHBwcHBwcHBwcDBgMDBAQDBAQFBAcHBwcIBAQEBAgICAoICgMDAwMDAwMDAwMDAwMDAxQXABgAAAAABwcHBwcHBwcLCwcHBgYHBwcHAwMDAwgIAwMICAMDCAgDAwYGBgYLCwsLBwcHBwsLBwcLCwcHCAgFBQgIBwgMCgsIEwAAAAAACAgDAwsMBQcLDAUHCAgDAwgIAwMICAMDAAgGCAYJCAkHEQcJDAoKCQwLCQcODA8LCQcJBwQEBwoFCAcJBwsJCgkEBwYCBAkIAwoSDRIYAwMDAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwQDAwQEBwUFBwcICAgICAgICAcHBgcHBgkJAwMHBwcHCAgICAoKAwMICAMDBwcDAwQEBQUICAMDCAgDAwYGBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcIAAUHCAgAAAQEBwcHBwcHBwcHCAQFBAIACgoJCQkJCQgJCgkJBwwKCQgJCQkKCQkJCQkKCgoJCQkJCQcKCQoKBAMCAwMDBwsHCAgHBwYHCQgHAwsHBwcHBwcHAwcGBwULBwcHBwsHBwULBwcKCQQEDQ0JDg4ODhIHDQAACQkDAwIEBA4OCwsLDAUHBAMGBgAGCQcRDgkHCQgLCgcKCgcKCgcGBwUICAUFAAQDBAMJBwsIBwcHBwgIBwcPDA8MDQwNCg0KDQoJBwkHCQcJBwgEBwMKCAsIEgwJBwsJDAsKBw0KCAUICAkHDAkHBgkHCQcHBQYGBwcHBwQJBA0JBAoJBgoHBQQICAgHAwoIBQQIBwkGCggJBwcHCgkJBAkHCQcJBwoHCQcJBwkECQcKCAoJCQgHCgkHDQkKBggLCAkLBA8IDAYHCQMHBQUDCwcHBwcIDAwMDAwHCAQHBggGCQMHBwsLCAcICAgHCAcHBAUEAwUJCgwMBwgJCAkJAwMJCQMDCQkFBQYGCAgDAwoKAwMICAMDBwcDAwAAAAAAAAAAAAAAAAAAAAAABg4OAAAADx4LAAQEBQUICA0KAwUFBgkEBQQECAgICAgICAgICAQECQkJCA8JCgsLCgkLCgMHCggLCgwKDAsKCQoJDwkJCAQEBAUIBQgICAgIBAgIAwMHAw0ICAgIBQgECAcLBwcIBQMFCQkJCwoKDAoICAgICAgICAgICAMDAwMICAgICAgICAgICAYICAgFCAkLCw8FBQgPDAsICAgICAcLDAgEBQUMDQgJBQkJCAgJCAgPCQkMDw4IDwUFAwMIBwcJAwgFBQgICAQDBQ4JCgkKCgMDAwMMDAwKCgoDBQQFBQUFBQUFBQgDCggICAMLCAkHCggJCQUFBQ0NDQgLCAMKCAsICwgICAUJCAkICwkLCggKCAgDCAQIBQoICggMCAsFCwUKCAkECQYKCAoICAgICAgMCwkIBwkFCggIBREPCA8IDwgIDwsJCQkJCQsJCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwkPDw8PDwkJCQ8QDgsLCAoJCAgLCwcJAwUNBQkFBQkFCQgLCAsICggKCAoICwgLCAsICggKCAMDAwMDAwMDBwMKBwgIAwoICwgMCAwICwUKCAkECggKCAoICggPCwkHAwkIDw0MCAMPCw8LDwsJBwMFCAkNDQ0NBQUFBQkMDQYMDAsDCQoKCggKAwoLCwoKDAoKCQkJCQsLAwkJBwgDCAkHBwgIAwgHCAcHCAgHCAgLDAMICAgMCg0ICwoDAwcQDw0JCgsJCgoICgoOCQsLCQoLCgwKCgsJCgsJCwkODwwNCgsPCwgJCAUJCAkHCAgHCAoICAgICAcHCwcJCAsLCQsICAsICAgFCAgDAwMODAgHBwgHBg8QCgAAAAAAAAAAAAAAAAAGAAMAAAQICAYICQMGCQkDCAcHCQkDBQkICQgHBwgICgoGBgYEBgwDCAgHBwgKCgoKCAgICAYICQQGCQQIBwcJBQkJCAcICAoKAwgHCAkAAAAABQUFBgMAAAAAAAAAAAgICAgICAgICAgIBQgLCwQLCAgICwsLCwsACwsLCwsLCwsKCwsLCwsEBAsLCwsICAgIBwcMDgYIDA4GCAoJBgsLCwsLCwsLCwsLCwsLCwAAAAAACwsAAAAAAAAAAAAAAAAAAAAACA8LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLBQULCQYDAwMDBgYDAwoJBAQDAwsLBAQEBgsLBAQLCwQECAgICAgICAgICAgIBQUFBQcHBwcMDAgIDAwICBAQDQ0QEA0NCQkJCQkJCQkIBwgGCAcIBgwMBAQJCQQECQkGBggIAwMFBQYGCAgEBAQGBwYGBgoJCgkEBAgJCAkICQgJCwsAAAsLCwAACwsAAAsLCwAAAAAAAAsAAAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwUFBQsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwIPHg0KDQoAAAAAAAAAAAAAAAAAAAAACA0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMJCAkICQgJCAkICQgJCAkICQgJCAkICQgKCAoICggKCAoICggKCAoIAwMDAwwIDAgMCAwIDAgMCAwIDQoNCg0KDQoNCgoICggNCg0KDQoNCg0KCQcJBwkHCQgDAwwICggKCAoICggKCAAAAAAIBQ4KCQcJBwsICAgICAoICggKCAsIDAgLBAQECQQEBAQEBAQAAAUFAAAAAAMDAwMDAwMDBgYGBgoJCwsEBAsLBAQLCwQECwsEBAsLBAQLCwQECwsEBAgICAgICAgICAgICAgICAgICAgICAgICAUFBQUFBQUFBQUFBQUFBQUFBQcHBwcHBwcHBwcHBwcHBwcMDAgIDAwICAwMCAgQEA0NEBANDQkJCAcIBgwMDAQEDAwEBAwMBAQMDAQEDAwEBAkJCQkREQ4ODA4GCAkJBgYJCQYGCQkGBgwOBggMDgYIDA4GCAwOBggMDgYICAgDAwgIAwMICAMDCAgDAwgIBAQICAgICAgEBAgICAgICAQGBgYGBgYGBgYGBgYGBgYGBgYGBgoJCgkEBAYGCgkEBAoJDAwMDAMAAAAAAAAAERAAAAAAAAADBgAACQAAAAwMCAgQEA0NCAcIBgYFBAQFBAQEBAQMDgMABQYICQgJCAkICQgJCAkICQgICAkICwoICggLCwgLDAoICAoJCQwJDQMECggDCA0LCAwNCgsICgoICQYECQQJCwsMCAkICQkICAgIBwcIBAYJBRQSEBANBxIODAgJCAAJCA8NDAgLCAoHDAgMCAkIAxQSEAsIEAkKCAkICQgKCAoIAwMDAwwIDAgLBQsFCggKCAoICQQIBwoICwkICQgJCAoIDAgADAgMCAwICQcICAgICAgICAgLBwcJCAQICAgICQgICAMDBQUFAwkNDQ0ICAgIDAwIBQUFBQUFBQgICAMEAwUEBAgJCAgLCAgICAgICAgICAwICAgIBggGCAgIDg4PCwYLCwoJBwgGBgIEBAQFBwUDBQMDAwUFBQUJCQkJBQUFBQUFBQQEBQUFBQUFBQUFAgUFBQYGBgYGBQUFBQUICAgICAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgICAgIBggICAgIBggICAgIBggICAgIBggICAgIBggICAgICAgICAYICAgICAYICAgICAYICAgICAYICAgICAYICAgICAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUJCAwODAgMCQwICwgJBgkICwkNDQoICggKCgkJCwgHBgkJCAMMBwcKCwgIFAkMCQ4LCggNCgwKEA0JBwwKDAgMCQwJEA0NCRINABQJCwgIAAAAAAAACwgKCAoICggJBwkHCwgNChENCwgLCAkHDgoKCA0KDQoDDgkKCAoJCwgLCAoIDQoFCQgJCA8NCggLCA4JCQcJCAsICwgMCAwICwgKBwoHCgcJCA0LCggPDQ4MCggPDhANDAgLCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQgKCAoICggLCAsICwgLCAsICwgKCAoICggKCAoICQQLCAoICggKCAoICggDAwMDCgcKBwoHCAMIAwgDCAMLDQsNCw0KCAoICggKCAwIDAgMCAwICggKCAsFCwULBQsFCggKCAoICggKCAkECQQJBAkECggKCAoICggKCAkHCQcPCw8LCQcJBwkHCAgICAgICAQLBwgDCQkJCQkJCQkJCQwMDAwMDAcHBwcHBwsLDg4ODggICAgICAgIDAwPDw8PDw8DAwMDAwMDAwYGCQkJCQkJCAgICAgIDAwPDw8PCAgICAgICAgMDg8ODAwMDAwMDAwMDA8PDg4ODgkJBwcICAMDCAgICAwMCQkJCQkJCQkJCQwMDAwMDAgICAgICAgIDAwPDw8PDw8MDAwMDAwMDAwMDw8ODg4OCQkJCQkJCQkJCQkJBQUFBQUICAgICAwMDQ0KBQUFAwMDAwMDAwMGBgUFBQgICAgICAgICQkNDQsFBQUMDAwMDA4MDQwLBQUICwsNCxEOCgkPCAkAAAAAAwMICgoFCgYKCgUFBQUFBQUFBQQFBQUFBgYFAAAAAAAAAAAAAAAKCAcLDQgICAgHBwMGCAYKCAgICQkJDgcICAgICAcICQsJBwsIBwYJBQgICAsIBwoGBgcGBgcGAwUGBQgGBggGBgcGBgkGBgYJBgYGBgUFBgIFCQYGBQYGBgMGBgkFBgYFBgcFAgQGBQYFBgcFDhQHEwoECAAAAAAAAAAAAAUFBwcHBgcGCwoLCQkLCgwJAAAACAUFAwMDAwwSCA8IDwUEAwgEAwEACwsNCg4NDQoLCAgJCAgJAAAAAAAJCwsLCAUAAAAFAAQEAAAAAAAAAAsLBAQLCwQECwsEBAsLBAQLCwQECwsEBAsLBAQICAgICAgICAUFBQUHBwwMCAgIBwgGCAcIBggHCAYMDAQEDAwEBAwOBggMDgYIDA4GCAUFBgYFBQYGCAgEBAgIBAQICAQECAgDAwcHBwcMDAgICAgEDQgIBQUIBAgIBggMAwMICAkICAQLCAMNCAgFCAYICAgICAgIBwcKAwgDCAgGBQUGBQMDBgYCAgICBAICBAkJBgYGBgYFAgMGBgYFBQUFBQYFAAAAAAQGBgYFBgwKCAsFCQkJCQkJCQkDAwMDAwMDAwgICAgICAgIAwMDAwgICAgICQcKCwsKCAgDCwgLBQoICAgIAwgFCggKCAkHCgkAAAAAAAAAAAAOBwgIAwgKCwgECwgKCAkICAkGCgAAAAAAAAMLCwsAAAAAAAAAAAAAAAwIDwsLAAsJEA0EBwMDCAgEBAQFAAAAAAAAAAAJCAgGCAgICAgICAgIBggICAgICAgICwsLEQsGCgwIAwcECAQICAgGBAMICQkJCAgKCQQGCQcLCQoICgkICAkIDAgICAwNBwoICQkICAgICAgJCAgICAQEBAQJCgoKCgoJCQkJCAgICAkJCQkJCQgICAgICgoKCgkJBAQEBAQKBgkHBwcHCQkJCQoKCgkJCQgICAgICAgICAkJCQkJCQwMDAwICAgICAgIDAoICQcICAgJCgQJCAsJCAoJCAgICAoICgoICAkECggKBAgICwcJCAQEBg0NCwgICQgICQcICAwICQkICAsJCgkICQgICQgJCAwLCgsICQ0JBgUFBQUFBQUFBQUFBQULCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwYGBgYGBgYGBggGBgYEBAUFBAYGBgYGBgYGCggICAgICAgICAMHBAQFBQQEBAYECAgICAkFBQUFCQkJCwkLBAQEBAQEBAQEBAQEBAQEGBoAHAAAAAAICAgICAgICAwMCAgHBwgICAgDAwMDCgkEBAoJBAQKCQQEBgYGBgwMDAwICAgIDAwICAwMCAgJCQYGCQkJCQ4LDQoWAAAAAAAKCQQEDA4GCAwOBggKCQQECgkEBAoJBAQACQcJBwsJCggUCAoOCwwLDg0KCBANEQ0LCAsIBAQIDAYJCAoJDQoLCgUIBwIFCgkDDBUQFRwDAwMDAwMDAwQDAwMDAwMDAwMDAwQEBAQEBAQDBQUIBQUICAoKCgoKCgoKCAgHCAgHCwsEBAgICAgJCQkJDAwEBAkJBAQICAMDBQUGBgoJBAQKCQQEBwcGBgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAkABggJCgAABQUICAgICAgICAgJBQYEAwAMCwsLCwsLCQsMCwoIDgwKCQsLCwsLCwsLCgwLCwsKCgoKCAsKDAsEAwMDBAMIDAgJCQgIBwgKCQgDDQgICAgICAgDCAcIBQwICAgIDAgIBgwICAsLBAUPDwsRERERFQgPAAALCwQEAwUFEBANDQwOBggEAwcHAAcLCBQQCggKCQwMCAsLCAsMCAcIBgkJBgYABAMEAwsIDAkICAgICQkICBEOEg4PDQ4LDgsOCwsICggKCAoICgUIAwwJDQoUDgoIDAsODAwIDwsJBgkJCggOCwgHCggKCAgGBwcICAgIBQoFDgoFCwoHDAgGBQkJCQgDDAkGBQoICwcMCQsICAgMCgoECggLCAoIDAgKCAsICwUKCAwJCwoKCQgLCgkPDAwHCg0JCg0EEgkOBwgKBAgGBQQNCQgICAkODg4ODggJBQgHCQcLAwgIDQ0JCAkJCQgJCAgFBgQEBgsLDg4ICgoJCwsEBAsLBAQLCwYGBwcKCQQEDAwEBAkJBAQICAQEAAAAAAAAAAAAAAAAAAAAAAAHEBAAAAAQIAwABAQFBgkJDgsDBQUGCQQFBAQJCQkJCQkJCQkJBAQJCQkJEAsLDAwLCgwLAwgLCQ0LDAsMCwsJCwsPCwkJBAQEBwkFCQkICQkECQgEAwgDDQgJCQkFCAQIBwsHBwcFAwUJCwsMCwsMCwkJCQkJCQgJCQkJAwMDAwgJCQkJCQgICAgJBgkJCQYJCQwMEAUFCRAMCwkJCQkJCAsNCQQFBQwOCQoFCQkJCQkJCRALCwwRDwkQBQUEBAkIBwkDCQUFCAgJBAQFEQsLCwsLAwMDAwwMDAsLCwMFBAUFBQUFBQUFCQMLCAkHAwwJCQcLCQkJBQUFDQ0NCQwJAwsIDAgMCAkJBQsJCwkMCgwLCQsJCQMJBAkFCwgLCAwJCwULBQsICQQJBgsICwgJBwkHCQwLCQkHCgUKCQgGEhAIEAgQCAgQDAkKCQoKCwoLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsMChAQEBAQCgoKEBEPDAwJCwoICAwMBwoDBg4FCgYGCgYLCQwIDAgLCQsJCwkMCQwJDAkLCAsIAwMDAwMDAwQIAwsICAkDCwgMCQwJDAkLBQsICgQLCAsICwgLCA8LCQcDCwkQDgwJAw8LDwsPCwkHBAUJCg0NDQ0FBQUFCw0NBgwMDAMLCwsLCQsDCwsNCwoMCwsKCQkLCwwDCQkHCAMICQgHCAkDCAgJBwcJCQgICAsNAwgJCA0LDgkMCwMDCBEQDQkKDAsLCwkLCw4KDAwJCw0LDAsLDAkKCwsMCg0ODQ4LDBAMCQkJBgkJCgcICAcICwgJCAkIBwcNBwkICwsKDAkIDAkJCAYICAQDAw8NCAcHCAgHEBELAAAAAAAAAAAAAAAAAAYAAwAABAkJBggKAwYKCQMIBwcKCgMGCQgJCQcICQgLCgYGBgQHDAMICAcHCQsLCwsJCQkJBggKBQcJBQgHBwoGCQkJCAkICwoDCQcJCQAAAAAFBQYHAwAAAAAAAAAACAgICAgICAgICAgFCAwMBQwICAgMDAwMDAAMDAwMDAwMDAoMDAwLCwQEDAwMDAkICAgICA0PBggNDwYICgkGDAwMDAwMDAwMDAwMDAwMAAAAAAAMDAAAAAAAAAAAAAAAAAAAAAAJEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFBQwKBwMEAwQHBwMECgkEBAMECwsEBAUGCwsEBAsLBAQJCAgICQgICAkICAgFBQUFCAgICA0NCQkNDQkJEhIODhISDg4JCQkJCQkJCQkHCAYJBwgGDQ0EBAkJBAQKCgYGCAgDAwUFBgYICAQEBQYHBgcHCgkKCQQECQoJCgkKCQoMDAAADAwMAAAMDAAADAwMAAAAAAAADAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMBQUFDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAhAgDgsOCwAAAAAAAAAAAAAAAAAAAAAIDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkDBAMEDAkMCQwJDAkMCQwJDAkOCw4LDgsOCw4LCwgLCA4LDgsOCw4LDgsJBwkHCQcLCQMEDAkLCAsICwgLCAsIAAAAAAkGDwsJBwkHDAkJCAkICwgLCAsIDAkMCQsEBAQJBAQEBAQEBAAABQUAAAAAAwQDBAMEAwQHBwcHCgkLCwQECwsEBAsLBAQLCwQECwsEBAsLBAQLCwQECQgICAkICAgJCAgICQgICAkICAgJCAgIBQUFBQUFBQUFBQUFBQUFBQUFCAgICAgICAgICAgICAgICA0NCQkNDQkJDQ0JCRISDg4SEg4OCQkJBwgGDQ0NBAQNDQQEDQ0EBA0NBAQNDQQECQkJCRISDw8NDwYICgoGBgoKBgYKCgYGDQ8GCA0PBggNDwYIDQ8GCA0PBggICAMDCAgDAwgIAwMICAMDCAgEBAgICAgICAQECAgJCAgIBQYGBgYHBwcHBwcHBwcHBwcHBwcHCgkKCQQEBwcKCQQECgkNDQ0NAwAAAAAAAAASEQAAAAAAAAMGAAAKAAAADQ0JCRISDg4JBwgGBwUFBAUEBAQEBA0PAwAFBgkKCQoJCgkKCQoJCgkKCAgJCgkMCwkLCQwMCAwNCwkJCwoKDAoOBAQLCAQIDgwJDA4LDAkLCwgKBgQKBAoMDAwICggKCgkJCQkHCAkEBwkFFRQREQ0HFA8MCQsJAAsJEA4MCQwJCwgMCQwJCgkEFRQRDAkRCgsICwkLCQsJCwkDAwMDDAkMCQsFCwULCAsICwgJBAkHCwgLCgkKCAsJCwkMCQAMCQwJDAkJBwkJCQkICAkJCQwHBwoIBAkJCQgKCQkJBAQGBQUECQ0NDQkJCQkNDQkFBQUFBQUFCQkIBAQEBgQECQkJCAwICAgJCQkICAgIDAkICQgGCAYJCAgPDxALBwwMCwoICAYGAwQEBAYIBQMGBAQEBQUGBgkJCQkFBQUFBQUFBAQFBQUFBQUFBQUDBQUGBgYGBgYFBQUFBQkJCQkJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQkJDA8MCQ0KDAkMCAoGCggMCQ4NCwkLCAsLCgoMCQcHCgkIAwwHBwsMCQgVCgwKDwsLCA4LDQsRDgoHDQsMCQ0KDQoRDg0KEw4AFQoMCAgAAAAAAAAMCQsICwkLCQoHCQcMCQ4KEg4MCAwICgcPCwsIDgsOCwMOCgsJCwkMCQwJCwgNCwULCQsJEA4LCQwJDgoKBwoJDAgMCAwJDAkMCAoHCgcKBwoIDgwLCRAODw0LCBAPEQ4MCQwLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCQsJCwkLCQwIDAkMCQwJDAkMCQsJCwkLCQsJCwkKBAwJCwgLCAsICwgLCAMEAwMLCAsICwgJAwkDCQMJAw0NDQ0NDQsICwgLCAsIDAkMCQwJDAkLCQsJCwULBQsFCwULCAsICwgLCAsICQQJBAkECQQLCAsICwgLCAsICwcLBw8LDwsLBwsHCQcJBwkHCQcIBAsHCQMJCQkJCQkJCQsLDQ0NDQ0NBwcHBwcHDAwPDw8PCAgICAgICAgNDRAQEBAQEAMDAwMDAwMDBgYJCQkJCQkJCQkJCQkNDRAQEBAICAgICAgICA0PEA8NDQ0NDQ0NDQ0NEBAPDw8PCQkHBwgIAwMJCQgIDQ0JCQkJCQkJCQsLDQ0NDQ0NCAgICAgICAgNDRAQEBAQEA0NDQ0NDQ0NDQ0QEA8PDw8JCQkJCQkJCwsLCwsFBQUFBQgICAgIDQ0ODgsFBQUDAwMDAwMDAwcHBQUFCAgICAkJCAgJCQ4ODAUFBQ0NDQ0NDw0ODQwFBQkMDA0MEw8LChAICgAAAAAEBAgLCwYLBgsLBQUFBQUFBQUFBAUFBQUGBgUAAAAAAAAAAAAAAAsJCAwOCQgJCQgHBAcIBgsICQgKCgoPBwkJCAkJBwgKDAoHCwcHBwoGCAgICwgHCwcHBwcHCAcDBQcGCAcHCAYHBwcHCgYGBgoGBgYGBQUGAwUJBgYGBgYGBAYHCQUGBgUGBwYDBAYFBgUGBwYPFQcUCwQJAAAAAAAAAAAABQUICAcGBwYLCgwKCgwLDQkAAAAJBQYDAwMDDRQIEAgQBQQDCQQDAQAMDA0LDw4OCwwICQoICAkAAAAAAAkMDAwJBgAAAAYABAUAAAAAAAAACwsEBAsLBAQLCwQECwsEBAsLBAQLCwQECwsEBAkICAgJCAgIBQUFBQgIDQ0JCQkHCAYJBwgGCQcIBg0NBAQNDQQEDQ8GCA0PBggNDwYIBQUGBgUFBgYICAQECAgEBAgIBAQICAMDCAgICA0NCQkJCQQNCQkFBQgECAkGCQ0EBAkJCQkJBAsIBA0JCQUIBggICAkJCQkHBwoECAQJCQYGBgYFBAQGBgMDAwMEAwMECQkGBgYGBgUDBAYGBgYFBgYGBgYAAAAABAYGBgUGDAsJDAUJCQkJCQkJCQMDAwMDAwMDCAgICAgICAgDAwMDCAgICAkKBwsMCwsJCAQMCQwFCwgICAgDCQYLCAsICgcLCQAAAAAAAAAAAA8ICAkECQsMCQQMCQsICggICQcKAAAAAAAABAwMDAAAAAAAAAAAAAAADAkPCwsADAoRDQQHAwMICAQEBAUAAAAAAAAAAAoJCQYJCQkJCQgJCQkGCQkJCQkICQkMDAwTDAYLDAkECAQJBQkJCQYEBAkJCgoJCAoKBAcJBwwKCgkKCgkICgkNCQkIDQ0HCgkKCgkJCQkJCQoJCQkJBAQEBAoKCgoKCgoKCgoJCQkJCgoKCgoKCQkJCQkKCgoKCgoEBAQEBAsHCQcHBwcKCgoKCgoKCgoKCQkJCQkICAgICgoKCgoKDQ0NDQkJCQgICAkNCgkJBwkJCAoKBAkJDAoICgoJCAgJCwkLCgkJCgQKCQoECQkLBwoJBAQHDg0MCAkKCQkJBwkJDQgKCggJDAoKCgkKCAkKCQoJDAwLDAkKDQoGBQUFBQUFBQUFBQUFBQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMBgYGBgYGBgYGCAYGBgQEBQUEBgYGBgYGBgYLCQkJCQkJCQkJBAgEBAUFBAUFBgUJCQkJCQUFBQUKCgoMCgwEBAQEBAQEBAQEBAQEBAQZHAAeAAAAAAkICAgJCAgIDQ0JCQgICQgICAMEAwQKCQQECgkEBAoJBAQHBwcHDQ0NDQkICAgNDQkJDQ0JCQoKBgYJCgkKDwwOChcAAAAAAAoJBAQNDwYIDQ8GCAoJBAQKCQQECgkEBAAJCAoHDAkLCRUJCw8MDQsPDgsIEQ4SDgwJCwkEBAkMBgkJCwkNCwwLBQkIAwULCgMMFxEWHgMDAwQDAwMDBQMDAwMDAwMDAwMDBAQEBAQEBAMGBgkGBggICgoKCgoKCgoJCQgJCQgLCwQECQgICAkJCQkNDQQECQkEBAgIAwMFBQYGCgkEBAoJBAQHBwcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCgAGCAoKAAAFBQkICQgJCAkJCAkFBgQDAA0MDAsLDAsKDA0LCwgPDAsKCwsLDAsLCwwLDQwMDAsLCwsIDAsNDAQEAwMEBAgNCQkJCQkICQsJCQQNCQkJCAkJCQQJBwkGDQgJCQkNCQkGDQkJDAsEBRAQDBISEhIWCRAAAAsLBAQDBQUSEg4ODQ8GCAUDCAgACAwJFRELCQsJDQ0JDAwJDA0JBwgGCgoGBgAEAwQDDAkNCgkJCAgJCQgJEg8TDxAODwwPDA8MDAgLCAsICwgKBQkEDQoOChYPCwkNCw8NDAkQDAkHCQkLCA8MCQgLCQsJCAcHBwgICQkFCwYPCwUMCwgMCQYFCQkJCQQNCgYFCggMBwwKDAgICQ0LCgQLCAsJCwgMCQsIDAkMBQsIDQoMCwsKCAwLCRANDAcKDQoLDQQTCQ4ICQsECQYGBA4JCQkJCg8PDw8PCQoFCAcKCAsECQkNDQoICgoKCAoICAUGBAQHDAwPDwkKCwoLCwQECwsEBAsLBgYICAoJBAQNDQQECQkEBAgIBAQAAAAAAAAAAAAAAAAAAAAAAAgREQAAABEiDQAFBQUGCQkPCwMGBgcKBQYFBQkJCQkJCQkJCQkFBQoKCgkRCwsMDAsKDAsFCQsJDQsMCwwLCwkLCxELCwkFBQUHCQYJCQkJCQUJCQQDCAMNCQkJCQYIBAkHCwcJCAYFBgoLCwwLCwwLCQkJCQkJCQkJCQkFBQUFCQkJCQkJCQkJCQkHCQkJBgkKDQ0RBgYJEQ0MCQkJCQkIDA4JBAUFDQ8JCgUKCgkJCwkJEQsLDBEQCREGBgQECQgJCwMJBgYJCQkFBAYRCwsLCwsFBQUFDAwMCwsLBQYEBgYGBgYGBgYJAwsICQgFDAkLCQsJCgoGBgYODg4JDAkFCwgMCQwJCgkGCwkLCQwKDAsJCwkJAwkECQYLCQsJDAkLBgsGCwgJBAkGCwkLCQkICQgJDA0KCQgLBgsJCQYTEQkRCREJCREMCgoKCgoMCwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKEREREREKCgoREhANDQkLCgkJDQ0ICgMGDwYKBgYKBgsJDAkMCQsJCwkLCQwJDAkMCQsJCwkFBQUFBQUFBAkDCwgICQMLCQwJDAkMCQsGCwgKBAsJCwkLCQsJEQsLCQQLCREPDQkEEQsRCxELCwkEBgkKDg4ODgYGBgYLDQ0GDQ4NAwsLCwsJCwULCw0LCwwLCwsJCwsNDQULCggJAwkKCQgJCQMICQkHCAkJCAkJCw0DCQkJDQsPCQwLBQUJEhEPCgsLCwsLCQwLDwoMDAoKDQsMCwsMCQsNCw0KDw8NDgoMEAwJCQkGCgkLCAkJBwoLCQkJCQkICQ0HCgkODgsMCQkNCQkJBgkIBAUDDw4JBwkJCAcREgwAAAAAAAAAAAAAAAAABwADAAAFCgkHCQoDBwoKAwkICAoKAwYKCQoJCAgJCQwLBwcHBAcMAwkJCAgJDAwMDAoKCgkHCQoFBwoFCQgICgYKCgkICQkMCwMJCAkKAAAAAAUFBgcEAAAAAAAAAAAJCQkJCQkJCQkJCQUJDQ0FDQkJCQ0NDQ0NAA0NDQ0NDQ0NCw0NDQwMBAQNDQ0NCgkJCQgIDhAHCQ4QBwkLCgYNDQ0NDQ0NDQ0NDQ0NDQ0AAAAAAA0NAAAAAAAAAAAAAAAAAAAAAAkRDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQUFDQoHBAQEBAcHBAQLCgQEBAQMDAQEBQYMDAQEDAwEBAoJCQkKCQkJCgkJCQYGBgYICAgIDg4JCQ4OCQkTEw4OExMODgoKCgoKCgoKCQgJBwkICQcNDQUECgoFBAoKBwcJCQQEBgYHBwkJBAQFBggHBwcLCgsKBAQJCgkKCQoJCg0NAAANDQ0AAA0NAAANDQ0AAAAAAAANAAANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0FBQUNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CESIPCw8LAAAAAAAAAAAAAAAAAAAAAAkODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQUEBQQMCQwJDAkMCQwJDAkMCQ8LDwsPCw8LDwsLCQsJDwsPCw8LDwsPCwsJCwkLCQsJBQQMCQsJCwkLCQsJCwkAAAAACQYQCwoHCgcMCQkJCQkLCQsJCwkNCQ0JDAQFBAoEBAQEBAQFAAAGBgAAAAAEBAQEBAQEBAcHBwcLCgwMBAQMDAQEDAwEBAwMBAQMDAQEDAwEBAwMBAQKCQkJCgkJCQoJCQkKCQkJCgkJCQoJCQkGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgIDg4JCQ4OCQkODgkJExMODhMTDg4KCgkICQcNDQ0FBA0NBQQNDQUEDQ0FBA0NBQQKCgoKFBQPDw4QBwkKCgcHCgoHBwoKBwcOEAcJDhAHCQ4QBwkOEAcJDhAHCQkJBAQJCQQECQkEBAkJBAQJCQQECQkJCQkJBAQJCQoJCQkFBgcHBwcHBwcHBwcHBwcHBwcHBwcLCgsKBAQHBwsKBAQLCg4ODg4EAAAAAAAAABMSAAAAAAAAAwYAAAoAAAAODgkJExMODgkICQcHBgUEBQQEBAQEDhADAAYHCQoJCgkKCQoJCgkKCQoJCQkKCQ0LCQsJDAwJDA4LCQkLCgoNCw8EBQsJBAkPDAkNDwsNCQsLCQsGBQoFCg0MDQkKCQoKCQkJCQgICQQHCgUXFRISDggVEA0JCwkACwkRDw0JDAkLCAwJDAkKCQQXFRIMCRILCwkLCQsJCwkLCQUFBQUMCQwJCwYLBgsJCwkLCAkECQcLCQwKCgoJCwkLCQwJAAwJDAkMCQsJCQkJCQkJCQkJDQgICwkFCQkKCQoJCQkEBAYGBQQKDg4OCQkJCQ0NCQYGBgYGBgYJCQkEBAQGBQUJCgkJDAkJCQkJCQkJCQkNCQkKCQcJBwkJCRAPEQwHDA0LCwgJBwcDBAQEBggFAwYEBAQGBgYGCgoKCgYGBgYGBgYFBQYGBgYGBgYGBQMGBgYHBwcHBwYGBgYGCQkJCQkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGCgkNEA0KDQoNCQwJCgcLCQ0KDw4LCQsJCwsKCg0JCAcKCgkDDQgICwwJCRcLDQoQDAsJDwwODBIPCggODA0JDgsOCxIPDgoUDgAXCwwJCQAAAAAAAAwKCwkLCQsJCggKBw0JDwsTDw0JDAkKCBAMCwkPCw8LBQ8LCwkLCgwJDAkLCQ4MBgsJCwkRDwsJDQkPCwoICgkMCQwJDAkNCQwJCwkLCQsJCgkODAsJEA8QDgsJEQ8SDw0KDQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJCwkLCQsJDAkMCQwJDAkMCQwJCwkLCQsJCwkLCQoFDAkLCQsJCwkLCQsJBQQFBQsICwgLCAkDCQMJAwkDDQ0NDQ0NCwkLCQsJCwkMCQwJDAkMCQsJCwkLBgsGCwYLBgsICwgLCAsICwgJBAkECQQJBAsJCwkLCQsJCwkLBwsHEQsRCwsHCwcLCQkICQgJCAkECwkJBAoKCgoKCgoKCwsODg4ODg4ICAgICAgNDRAQEBAJCQkJCQkJCQ4OERERERERAwMDAwMDAwMGBgoKCgoKCgkJCQkJCQ4OEREREQkJCQkJCQkJDhAREA0NDQ0NDQ0NDg4RERAQEBAKCggICQkDAwkJCQkNDQoKCgoKCgoKCwsODg4ODg4JCQkJCQkJCQ4OERERERERDQ0NDQ0NDQ0ODhEREBAQEAoKCgoKCgoLCwsLCwYGBgYGCQkJCQkODg8PCwYGBgMDAwMDAwUFBwcGBgYJCQkJCQkJCQsLDw8NBgYGDQ0NDQ0QDg8ODQYGCQwMDgwUEAsKEQkKAAAAAAQECQsMBgwGDAwGBgYGBgYGBgYFBgYGBgcHBgAAAAAAAAAAAAAACwkIDQ8JCQkJCAgEBwkHCwkJCQoKChAICQkJCQkICQoMCgcLCAgHCgYJCQkMCggLBwcIBwcIBwMFBwYJBwcJBwcIBwcLBgYGCgYGBgYFBQYDBgoHBgYGBgYEBwcKBQcHBQYHBgMEBwUHBQYHBhAWBxYLBAkAAAAAAAAAAAAGBggICAcIBwwLDQoKDQsNCgAAAAkGBgQEBAQNFQkRCREGBAMJBQMBAA0MDgwPDw8LDAkJCgkJCgAAAAAACgwMDAkGAAAABgAEBQAAAAAAAAAMDAQEDAwEBAwMBAQMDAQEDAwEBAwMBAQMDAQECgkJCQoJCQkGBgYGCAgODgkJCQgJBwkICQcJCAkHDQ0FBA0NBQQOEAcJDhAHCQ4QBwkGBgcHBgYHBwkJBAQJCQQECQkEBAkJBAQICAgIDg4JCQkJBQ4JCQYGCQUJCQYJDQQECQkKCQkFDAkEDgkJBgkHCQkJCQkJCQgICwQJBAkJBgYGBgUEBAYHAwMDAwUDAwUKCgcHBgYGBgMEBwcGBgUGBgYGBgAAAAAFBgYGBgYNCwkMBgoKCgoKCgoKAwMDAwMDAwMJCQkJCQkJCQMDAwMJCQkJCQoICwwLCwkJBA0JDAYLCQkJCQMJBgsJCwkKCAsKAAAAAAAAAAAAEAgJCQQJCwwJBQwJCwkKCQkKBwsAAAAAAAAEDAwMAAAAAAAAAAAAAAAMCRELDAAMChIOBQcDAwkJBQUFBgAAAAAAAAAACgkJBwkJCQkKCQkKCQcJCQkJCgkJCgwMDRQNBgsNCQQIBAkFCgkJBgQECQoKCgkJCwsEBwoIDAoLCQsKCQkKCQ0JCQkODggLCQoKCQkJCQkJCgkJCQkEBAQECgsLCwsLCgoKCgkJCQkKCgoKCgoJCQkJCQsLCwsLCwQEBAQECwcKCAgICAoKCgsLCwsKCgoJCQkJCQkJCQkKCgoKCgoNDQ0NCQkJCQkJCQ4LCQoICQkJCwsECgkMCgkLCgkJCQkLCQsLCQkLBAsJCwQJCQwICgkEBAcPDgwJCQoJCgoICQkNCQoKCQkMCwsKCQoJCQsJCgoNDQwNCQoOCgcGBgYGBgYGBgYGBgYGDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NDQ0NDQ0NDQ0NDQ0GBgYGBgYGBgYJBgYGBAQFBgQGBgYGBgYGBgsJCQkJCQkJCQkECAQEBQYEBQUGBQoKCgoKBgYGBgoKCg0KDQUFBQUFBQUFBQUFBQUFBRseACAAAAAACgkJCQoJCQkODgkJCAgKCQkJBAQEBAsKBAQLCgQECwoEBAcHBwcODg4OCgkJCQ4OCQkODgkJCgoHBwoLCgoQDA8LGQAAAAAACwoEBA4QBwkOEAcJCwoEBAsKBAQLCgQEAAoICggMCgsJFgkLEA0NDBAPCwkSDxMODAkMCQUFCQ0HCgkLCg4LDAwGCQgDBQsKBQ0YEhcgBAQEBAQEBAQFBAQEBAQEBAQEBAQEBAQEBAUEAwYGCQYGCQkLCwsLCwsLCwoKCAoKCAwMBAQKCQkJCgoKCg0NBQQKCgUECQkEBAYGBwcLCgQECwoEBAgIBwcHBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkKAAcJCgsAAAUFCQkJCQkJCQkJCgUHBQMADQ0MDAwMDAoMDgwLCRANDAoMDAwNDAwMDAwNDQ0MDAsMDAkNDA0NBQQDAwUECQ4JCgoJCQgJCwoJBA4JCQkJCQoJBAkICQYOCQoJCQ4JCQcOCQkNDAUGEREMExMTExgJEQAADAwEBAMGBhMTDg4OEAcJBQMICAAJDAkXEgsKCwoODQkNDQkNDgkICQcKCgcHAAUEBQQMCQ4LCQkJCQoKCQkUEBQQEQ8QDBAMEAwMCQsJCwkLCQsFCQQOCg8LFxALCQ4MEA4NCRENCgcKCgsJEAwJCAsJCwkJBwgICQkKCgYMBhAMBg0LCA0JBwYKCgoJBA4KBwYLCQwIDQoMCQkJDgwLBQsJDAkLCQ0JCwkMCQwGCwkOCgwMCwoJDQsKEQ0NCAsOCgsOBRQKDwgJCwUJBgYEDgoJCQkKEBAQEBAJCgYJCAsIDAQJCQ4OCgkKCgoJCgkJBgcFBAcMDRAQCQsLCgwMBAQMDAQEDAwHBwgICwoEBA0NBQQKCgUECQkEBAAAAAAAAAAAAAAAAAAAAAAACBISAAAAEyYOAAUFBgcLCxENBAYGBwsFBgUFCwsLCwsLCwsLCwUFCwsLCxMNDQ4ODQwPDQYKDQsPDQ8NDw4NDA0NEw0MDAUFBQcLBgoLCgsLBgsKBAQJBBAKCwsLBgoFCgkNCQkJBgYGCw0NDg0NDw0KCgoKCgoKCwsLCwYGBgYKCwsLCwsKCgoKCwgLCwsHCgwODhMGBgoTDw4KCgoLCwkOEAoEBwcPEQsMBgsLCwoMCwsTDQ0PExILEwcHBAQKCQkMAwsGBgoKCwUEBxENDQ0NDQYGBgYPDw8NDQ0GBgUGBgYGBgYGBgsEDQoMCQYOCwwJDQsLCwYGBhAQEAsPCwYNCg4KDgoLCwYNCg0KDgwODQsNCwsECwYLBg0KDQoPCw4GDgYNCgwFDAcNCg0KDAkMCQoPDgsLCAwIDAsKBxUTChMKEwoKEw4LCwsLCw0MDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDgsTExMTEwsLCxMUEQ4OCgwLCgoODggLBAcRBgsHBwsHDQoOCg4KDQsNCw0LDwsPCw8LDQoNCgYGBgYGBgYECgQNCQoLBA0KDgsPCw8LDgYNCgwFDQoNCg0KDQoTDQwJBA0KExEPCwYTDRMNEw0MCQQGCwsQEBAQBgYGBg0PDwcPEA8EDQ0NDQwNBg0NDw0MDw0NDAwMDQ4OBgwLCAoECgsKCAoLBAoJCwkJCwsJCgoOEAQKCwoQDRAKDg0GBgoUEw8LDA4NDA0KDQ0SCw4OCwwPDQ8NDQ4MDA4NDg0REQ8RDQ4TDgoLCgcLCw4JCgoICg0KCwkLCggJEAkLCg4ODA4LCg4KCwoHCgoEBgQRDwoICQoJCBMUDQAAAAAAAAAAAAAAAAAHAAQAAAULCggKCwQHCwsECgkJCwsEBwsKCwoJCQoKDQwJCQkECBAECgoJCQoNDQ0NCwsLCggKCwUICwUKCQkLBwsLCgkKCg0MBAoJCgsAAAAABgYHCAQAAAAAAAAAAAoKCgoKCgoKCgoKBgoODgUOCgoKDg4ODg4ADg4ODg4ODg4MDg4ODg4FBQ4ODg4LCgoKCQkPEgcKDxIHCgwLBw4ODg4ODg4ODg4ODg4ODgAAAAAADg4AAAAAAAAAAAAAAAAAAAAACxMODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OBgYODAgEBAQECAgEBAwLBQUEBA4OBQUFBw4OBQUODgUFCwoKCgsKCgoLCgoKBgYGBgkJCQkQEAoKEBAKChUVEBAVFRAQCwsLCwsLCwsKCQoHCgkKBw8PBQULCwUFCwsHBwoKBAQGBgcHCgoFBQUHCQcICAwLDAsFBQoLCgsKCwoLDg4AAA4ODgAADg4AAA4ODgAAAAAAAA4AAA4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgYGBg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgITJhAMEA0AAAAAAAAAAAAAAAAAAAAAChAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCw0LDQsNCw0LDQsNCw0LBgQGBA8LDwsPCw8LDwsPCw8LEAwQDBAMEAwQDA0KDQoQDRANEA0QDRANDAkMCQwJDQoGBA8LDQoNCg0KDQoNCgAAAAAKBxINCwgLCA4LCwoLCg0KDQoNCg4LDwsOBQUFCwUFBQUFBQUAAAYGAAAAAAQEBAQEBAQECAgICAwLDg4FBQ4OBQUODgUFDg4FBQ4OBQUODgUFDg4FBQsKCgoLCgoKCwoKCgsKCgoLCgoKCwoKCgYGBgYGBgYGBgYGBgYGBgYGBgkJCQkJCQkJCQkJCQkJCQkQEAoKEBAKChAQCgoVFRAQFRUQEAsLCgkKBw8PDwUFDw8FBQ8PBQUPDwUFDw8FBQsLCwsWFhERDxIHCgsLBwcLCwcHCwsHBw8SBwoPEgcKDxIHCg8SBwoPEgcKCgoEBAoKBAQKCgQECgoEBAoKBQUKCgoKCgoFBQoKCwoKCgUHBwcHCAgICAgICAgICAgICAgICAwLDAsFBQgIDAsFBQwLDw8PDwQAAAAAAAAAFRUAAAAAAAAEBwAACwAAABAQCgoVFRAQCgkKBwgGBQUGBQUFBQUPEgQABwkKCwoLCgsKCwoLCgsKCwoKCgsLDgwLDAsODgoODwwLCw0LDA8MEQQFDQoEChEOCw8RDQ4LDQ0KDAcFDAUMDg4PCgwKDAwKCgsLCQkLBQgLBhkXFBQQCRcSDwsNCgANChMRDwsPCw0JDwsPCwwKBBkXFA8LFAwNCg0KDQoNCw0LBgYGBg8LDwsOBg4GDQoNCg0KDAYKCA0KDQsLDAoNCg0LDwsADwsPCw8LDAkLCwsLCgoLCwsOCQkMCgULCwsKDAsLCwQEBwYGBAsQEBALCwsLDw8KBgYGBgYGBgoKCgQFBAcFBQsLCgoOCgoKCgoKCgoKCg8KCgsKCAoICwoKEhETDggODw0MCQoHBwMFBQUHCQYEBwQEBAYGBwcLCwsLBgYGBgYGBgUFBgYGBgYGBgYGAwYGBwcHBwcHBgYGBgYKCgoKCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYLCg8SDwsPCw8LDgoMCAwKDgsREA0LDQoNDQwLDgsJCAsLCgQPCAgNDgsKGQwPDBIODQoRDRANFBALCQ8NDwsPDA8MFBEQDBcQABkMDgoKAAAAAAAADgsMCg0LDQoLCQsIDgoRDBYRDgoOCgwJEg0NChANEA0GEg4NCgwLDgsOCw0KEA0GDQoNChMRDQsOCxIOCwkLCg4KDgoPCw8LDgoMCQwJDAkNChEODAsSERIQDQoSERQRDwsODQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQoNCw0LDQsOCg4LDgsOCw4LDgsNCw0LDQsNCw0LDAYPCw0KDQoNCg0KDQoGBAYGDQkNCQ0JCwQLBAsECwQPEA8QDxANCg0KDQoNCg8LDwsPCw8LDQsNCw4GDgYOBg4GDQoNCg0KDQoNCgwFDAUMBQwFDQoNCg0KDQoNCg0JDQkTDRMNDQkNCQwJDAkMCQwJCgUNCQoECwsLCwsLCwsNDQ8PDw8PDwgICAgICA8PEhISEgoKCgoKCgoKEBATExMTExMEBAQEBAQEBAcHCwsLCwsLCwsLCwsLEBATExISCgoKCgoKCgoPEhMSEBAQEBAQEBAPDxMTEhISEgsLCAgKCgQECwsKChAQCwsLCwsLCwsNDQ8PDw8PDwoKCgoKCgoKEBATExMTExMQEBAQEBAQEA8PExMSEhISCwsLCwsLCw0NDQ0NBgYGBgYKCgoKCg8PERENBgYGBAQEBAQEBgYICAYGBgoKCgoLCwoKDAwQEQ8GBgYQEBAQEBIQEQ8OBgYLDg4QDhYSDQwTCgsAAAAABAQKDQ0HDQcNDQYGBgYGBgYGBgUGBgYGCAgGAAAAAAAAAAAAAAANCwkOEQoKCgoJCQQICggNCgsKDAwMEgkLCwoKCggKCw4LCQ0JCQgMBwoJCg4KCQ0ICAkICAkIAwYIBwoICAoHCAkICAwHBwcLBwcHBwYGBwMGCwcHBwcHBwQHCAsGBwcGBwgHAwUHBgcGBwgHEhkIGAwFCgAAAAAAAAAAAAYGCQkJBwkHDQwODAwODA8LAAAACwYHBAQEBA8XChMKEwYFAwsFBAIADg4QDREREQ0OCgsMCgoLAAAAAAALDg4OCgcAAAAHAAUGAAAAAAAAAA4OBQUODgUFDg4FBQ4OBQUODgUFDg4FBQ4OBQULCgoKCwoKCgYGBgYJCRAQCgoKCQoHCgkKBwoJCgcPDwUFDw8FBQ8SBwoPEgcKDxIHCgYGBwcGBgcHCgoFBQoKBQUKCgUFCgoEBAkJCQkQEAoKCwsFEAsLBgYKBQoLBwsPBAQLCgsLCwUOCgQQCwsGCgcKCgoLCwsLCQkMBAoECwoHBwcHBgQEBwcDAwMDBQMDBQsLBwcHBwcGAwQHBwcHBgcHBwcHAAAAAAUHBwcGBw8NCw4GCwsLCwsLCwsEBAQEBAQEBAoKCgoKCgoKBAQEBAoKCgoKCwkNDg0NCwoEDgsOBg0KCgoKBAoHDQoNCgsJDAsAAAAAAAAAAAASCQoLBAsNDgsFDgsNCgwKCgsIDAAAAAAAAAQODg4AAAAAAAAAAAAAAA8LEw0NAA4LFBAFCAQECgoFBQUGAAAAAAAAAAAMCwsHCgoLCgsKCwsLBwsLCwsLCgsLDg4OFg4HDA8LBAkFCwYLCwsHBQQLCwsMCwoMDAUICwkODAwLDAwLCgwKDwsLChAQCQwLDAsLCwsLCwsLCwsLCwUFBQUMDAwMDAwMDAwMCwsLCwsLCwsMDAsLCwsLDAwMDAwMBQUFBQUNCAsJCQkJDAwMDAwMDAwMDAsLCwsLCgoKCgwMDAwMDA8PDw8LCwsKCgoLEAwLCwkLCwoMDAULCg4MCgwMCwoKCw0LDQwLCwwFDAsMBQsLDgkLCwUFCBEQDgoKDAsLCwkKCw8KDAwKCg4MDAwLCwoKDAsMCw8PDQ4KCxAMBwYGBgYGBgYGBgYGBgYODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgcHBwcHBwcHBwoHBwcFBQYGBQcHBwcHBwcHDAsLCwsLCwsLCwQJBQUGBgUGBgcGCwsLCwsGBgYGDAwMDgsOBQUFBQUFBQUFBQUFBQUFHiEAIwAAAAALCgoKCwoKChAQCgoJCQsKCgoEBAQEDAsFBQwLBQUMCwUFCAgICA8PDw8LCgoKEBAKChAQCgoLCwcHCwwLDBEOEQwcAAAAAAAMCwUFDxIHCg8SBwoMCwUFDAsFBQwLBQUACwkMCQ4LDQsZCw0SDg8OEhANChQRFhAOCg0LBQULDwgLCw0LEA0ODQYLCQMGDQwGDxsUGiMEBAQEBAQEBAYEBAQEBAQEBAQEBAUFBQUFBQUEBwcLBwcKCgwMDAwMDAwMCwsJCwsJDg4FBQsKCgoLCwsLDw8FBQsLBQUKCgQEBgYHBwwLBQUMCwUFCQkICAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgsACAoLDAAABgYKCgoKCgoKCgoLBgcFBAAPDg4ODg4NCw4PDg0KEg8NDA0ODQ4ODQ0ODQ8ODw4NDQ0NCg4NDw4FBAMEBQQKEAoLCwsKCQoNCwoEEAoLCgoLCwoECwkKBxAKCwoKEAoLBxAKCw4OBQYTEw4VFRUVGgsTAAAODgUFAwYGFRUQEA8SBwoFBAkJAAoOCxkUDQsMCxAPCg4OCg4PCgkKBwsLBwcABQQFBA4LEAwLCwoKCwsKCxYRFxETERIOEg4SDg4KDQoNCg0KDAYLBA8MEQwaEg0LEA0SDw8LEw4LCAsLDQoSDgoJDQsNCwoICAgKCgsLBg0HEg0GDg0JDwsIBgsLCwsEDwsIBgwKDggPCw4KCgsPDQwFDQoOCg0KDwsNCg4LDgYNCg8LDg0NDAoODQsTEA8JDBAMDRAFFwsRCQsNBgsHBwUQCwsKCgwSEhISEgoMBgoJDAkNBAsLEBAMCgwLCwoLCgoGBwUFCA4PEhELDA0MDg4FBQ4OBQUODgcHCQkMCwUFDw8FBQsLBQUKCgUFAAAAAAAAAAAAAAAAAAAAAAAJFBQAAAAVKhAABgYGBwwMEw4EBwcIDAYHBgYMDAwMDAwMDAwMBgYMDAwMFQ0ODw8ODRAOBgsODBEOEA4QDw4MDg0VDg4NBgYGCAwHDAsLCwwGCwsFBAoEEAsMCwsHCwYLCw8KCwkHBgcMDQ0PDg4QDgwMDAwMDAsMDAwMBgYGBgsMDAwMDAsLCwsMCAwMDAcLDQ8PFQcHDBUQDwwMDAwLCg8RDAYHCBATDA0GDAwMDA0MDBUNDRAVFAwVBwcFBQwKCw4EDAcHCwsMBgUHFQ0ODQ4OBgYGBhAQEA4ODgYHBwcHBwcHBwcHDAQOCw0JBg8MDgsODAwMBwcHEhISDBALBg4LDwsPCwwMBw0MDQwPDQ8ODA4MDAQMBgwHDgsOCxAMDwcPBw4LDAYMCA4LDgsNCQ0JDBAQDAwJDQgODAsIFxULFQsVCwsVDwwNDA0NDw0PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDRUVFRUVDQ0NFRYTEBALDgwLCxAPCQ0EBxMHDQcHDQcNDA8LDwsODA4MDgwQCxALEAwOCw4LBgYGBgYGBgULBA4KCgwEDgsPDBAMEAwPBw4LDQYOCw4LDgsOCxUPDgsFDQwVExAMBhUPFQ8VDw4LBQcMDRISEhIHBwcHDRARCBAREAQNDg4ODQ4GDg4RDg4QDg4NDA4OEhAGDgwJCwQKDAoJCwwECgsLCwkMDAoKCw4QBAoMChAOEgsPDgYGCxYVEgwNDw0ODgsODhMNDw8MDhEOEA4ODwwNEA4QDhIUERMODxUPDAwLCAwMDgoLCwkLDQsMCgsLCgsRCgwLEBANDwsLEAsMDAgLCwUGBBMRDAkLCwoJFRcOAAAAAAAAAAAAAAAAAAgABgAABgwLCAsNBggNDAYLCgoNDQYHDAsMCwoKDAsPDgsLCwUJEgYLCwoKCw8PDw8MDAwLCAsNBgkMBgsKCg0HDAwLCgwLDw4GCwoLDAAAAAAHBwcJBAAAAAAAAAAACwsLCwsLCwsLCwsHCxAQBhALCwsQEBAQEAAQEBAQEBAQEA0QEBAPDwUFEBAQEAwLCwsKChEUCAsRFAgLDQwIEBAQEBAQEBAQEBAQEBAQAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAAMFRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAHBxANCQQFBAUJCQQFDQwFBQQFDw8FBQYIDw8FBQ8PBQUMCwsLDAsLCwwLCwsHBwcHCgoKChERCwsREQsLFxcSEhcXEhIMDAwMDAwMDAsJCwgLCQsIEREGBgwMBgYNDQgICwsEBAcHCAgLCwUFBggJCAkJDQwNDAUFCw0LDQsNCw0QEAAAEBAQAAAQEAAAEBAQAAAAAAAAEAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBwcHEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAxUqEg4SDgAAAAAAAAAAAAAAAAAAAAALEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA4MDgwODA4MDgwODA4MDgwGBQYFEAwQDBAMEAwQDBAMEAwSDhIOEg4SDhIODgsOCxIOEg4SDhIOEg4OCw4LDgsNDAYFEAwOCw4LDgsOCw4LAAAAAAsIEw4MCQwJDwwMCwwLDgsOCw4LEAwQDA8FBgYMBQUFBQUFBgAABwcAAAAABAUEBQQFBAUJCQkJDQwPDwUFDw8FBQ8PBQUPDwUFDw8FBQ8PBQUPDwUFDAsLCwwLCwsMCwsLDAsLCwwLCwsMCwsLBwcHBwcHBwcHBwcHBwcHBwcHCgoKCgoKCgoKCgoKCgoKChERCwsREQsLERELCxcXEhIXFxISDAwLCQsIERERBgYREQYGEREGBhERBgYREQYGDAwMDBgYExMRFAgLDQ0ICA0NCAgNDQgIERQICxEUCAsRFAgLERQICxEUCAsLCwQECwsEBAsLBAQLCwQECwsFBQsLCwsLCwUFCwsMCwsLBggICAgJCQkJCQkJCQkJCQkJCQkJDQwNDAUFCQkNDAUFDQwRERERBAAAAAAAAAAYFwAAAAAAAAQIAAANAAAAERELCxcXEhILCQsICQcGBQcFBQUFBREUBgAHCwsNCw0LDQsNCw0LDQsNCwsLDQwQDgwODA8PCw8RDgwMDg0NEA0TBQYOCwULEw8MEBIOEAwODgsNCAYNBg0QDxALDQsNDQsLDAwKCgwFCQwGHBoWFhIJGhQQDA0MAA0MFRMQDBALDgoQDBAMDQsFHBoWEAsWDQ4LDQwNDA4MDgwGBgYGEAwQDA8HDwcOCw4LDgsMBgsJDgsPDQwNCw0MDgwQDAAQDBAMEAwOCwwMDAwLCwwMDBAKCg0LBgwLDAsNDAwMBQUHBwYFDBISEgwMDAwREAwHBwcHBwcHCwsLBQUFBwYGDAwLCw8LCwsLCwsLCwsLEAsLDAsICwgMCwsUExUPCQ8QDg0KCwgIAwUFBQgKBwQHBQUFBwcHBwwMDAwHBwcHBwcHBgYHBwcHBwcHBwcDBwcHCAgICAgHBwcHBwsLCwsLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwwLEBQQDBANEAwPCw0IDQsQDBMSDgwOCw4ODQ0PDAoJDQwLBBAJCQ4PDAscDRANFA8OCxMPEQ4WEg0KEQ4QDBENEQ0XExINGRIAHA0PCwsAAAAAAAAPDA4LDgwODA0KDAkQCxIOGBIQCw8LDQoTDw4LEg4SDgYTDg4MDgwPDA8MDgsSDgcNDA0MFRMODBAMEw4NCg0LDwsPCxAMEAwPCw0LDQsNCw4LEw8OCxQSFBEOCxQTFhIQDBAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDA4LDgsOCw8LDwsPCw8LDwsPCw4MDgwODA4MDgwNBhALDgsOCw4LDgsOCwYFBgYOCg4KDgoMBAwEDAQMBBEQERAREA4LDgsOCw4LEAwQDBAMEAwOCw4LDwcPBw8HDwcOCw4LDgsOCw4LDAYMBgwGDAYOCw4LDgsOCw4LDQsNCxUPFQ8OCg4KDgsNCQ0JDQkLBg8LDAUMDAwMDAwMDA0NERERERERCQkJCQkJEBATExMTCwsLCwsLCwsRERUVFRUVFQQEBAQEBAQECAgMDAwMDAwMDAwMDAwRERUVFBQKCgoKCgoKChEUFRQQEBAQEBAQEBERFRUUFBQUDAwJCQsLBAQMDAoKEBAMDAwMDAwMDA0NERERERERCwsLCwsLCwsRERUVFRUVFRAQEBAQEBAQEREVFRQUFBQMDAwMDAwMDQ0NDQ0HBwcHBwsLCwsLERESEg4HBwcEBAQEBAQGBgkJBwcHCgoKCgwMCgoODhITEAcHBxAQEBAQExETERAHBwwPDxIPGBQODRULDAAAAAAFBQsODgcOCA4OBwcHBwcHBwcHBgcHBwcICAcAAAAAAAAAAAAAAA4MChATCwsMDAoKBQkLCA0LDAsNDQ0UCgwMCwsLCgoNDw0LDwkKCQ0ICwoLDwsKDgkJCQkJCgkEBwkHCwkJCwgJCQkJDQgICA0ICAgIBwcIAwcMCAgHCAgIBQgJDAcICAcICQcDBQgHCAcICQcUGwkbDgULAAAAAAAAAAAABwcKCgkICQgPDhANDRAOEQwAAAAMBwcEBAQEERoLFQsVBwUEDAYEAgAPDxIOExMTDg8LDA0LCwwAAAAAAAwPDw8LCAAAAAcABgYAAAAAAAAADw8FBQ8PBQUPDwUFDw8FBQ8PBQUPDwUFDw8FBQwLCwsMCwsLBwcHBwoKERELCwsJCwgLCQsICwkLCBERBgYREQYGERQICxEUCAsRFAgLBwcICAcHCAgLCwUFCwsFBQsLBQULCwQECgoKChERCwsMDAYSDAwHBwsGCwwIDBEFBQwLDAwMBg8LBRIMDAcLCAsLCwwMDAwKCg4FCwUMCwgHBwgHBQUICAMDAwMGAwMGDAwICAgICAcDBQgICAcHCAgICAgAAAAABggICAcIEA4MDwcMDAwMDAwMDAQEBAQEBAQECgoKCgoKCgoEBAQECgoKCgsNCg4PDg4MCwUPDA8HDgsLCwsECwgOCw4LDQoODAAAAAAAAAAAABQKCwwFDA4PDAYPDA4LDQsLDAkOAAAAAAAABQ8PDwAAAAAAAAAAAAAAEAsVDw8ADw0WEgYJBAQLCwYGBgcAAAAAAAAAAA0MDAgLCwwLDAsMDAwIDAwMDAwLDAwPDxAYEAgOEAwFCgUMBgwMDAgFBQwMDQ0MCw4NBQkMCg8NDgwODQwLDQwRDAwLERIKDgwNDQwMDAwMDA0MDAwMBQUFBQ0ODg4ODg0NDQ0MDAwMDQ0NDQ0NDAwMDAwODg4ODQ0FBQUFBQ4JDAoKCgoNDQ0NDg4ODQ0NDAwMDAwLCwsLDQ0NDQ0NEREREQwMDAsLCwwRDgwMCgwMCw0OBQwLDw0LDg0MCwsMDgwODgwMDQUODA4FDAwPCg0MBQUJEhIPCwwNDAwMCgwMEQsNDQsMDw0ODQwNCwwNDA0MEBAOEAsNEg0IBwcHBwcHBwcHBwcHBw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8QEBAQEBAQEBAQEBAQCAgICAgICAgICwgICAUFBgcFCAgICAgICAgODAwMDAwMDAwMBQoFBQYHBQYGCAYMDAwMDAcHBwcNDQ0QDQ8GBgYGBgYGBgYGBgYGBgYhJQAnAAAAAAwLCwsMCwsLERELCwoKDAsLCwQFBAUNDAUFDQwFBQ0MBQUJCQkJEREREQwLCwsREQsLERELCw0NCAgMDQwNEw8TDR8AAAAAAA0MBQURFAgLERQICw0MBQUNDAUFDQwFBQAMCg0KDwwODBsMDhQQEQ8UEg4LFhMYEg8LDwwGBgwQCAwMDgwSDg8PBwwKAwcODQYQHhYdJwQEBAUEBAQEBgQEBAQEBAQEBAQEBQUFBQUGBQQHBwwICAsLDQ0NDQ0NDQ0MDAoMDAoPDwUFDAsLCwwMDAwREQYGDAwGBgsLBAQHBwgIDQwFBQ0MBQUKCgkJCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALDQAICw0OAAAHBwsLCwsLCwsLCwwHCAYEABEQDw8PDw8NDxEPDgsTEA8NDw8PEA8PDw8PERAQDw8ODg4LEA4QEAYFBAQGBQsRDAwMDAwKDA4MDAUSCwwMCwwMDAUMCgwHEQsMDAwRDAwIEQwMEA8GBxUVDxcXFxcdDBUAAA8PBQUEBwcXFxISERQICwYECgoACw8MHBYODA4MERELEBALEBELCQsIDQ0ICAAGBAYEDwwRDQwMCwsMDAsMGBMZExUTFA8UDxQPDwsOCw4LDgsOBwwFEQ0SDh0UDgwRDxQREAwVEAwJDAwOCxQPDAoODA4MCwkJCQsLDAwHDgcUDgcQDgoQDAkHDAwMDAURDQkHDgsPCRANDwsLDBEODgYOCw8MDgsQDA4LDwwPBw4LEQ0PDg4NCw8ODBUQEAkNEg0OEgYZDBMKDA4GDAgHBRIMDAwMDRQUFBQUDA0HCwoNCg8FDAwSEg0LDQwNCw0LCwcIBgUJDxAUEwwODg0PDwUFDw8FBQ8PCAgKCg0MBQUREQYGDAwGBgsLBQUAAAAAAAAAAAAAAAAAAAAAAAoWFgAAABgwEgAHBwgJDQ0VEAUICAkOBwgHBw0NDQ0NDQ0NDQ0HBw4ODg0YDxARERAPExEGDBANExETEBMREA4RDxcPEA8HBwcMDQgNDgwODQcODgUGDAYUDg0ODggMBw4LEQsMDAgGCA4PDxEQERMRDQ0NDQ0NDA0NDQ0GBgYGDg0NDQ0NDg4ODg0KDQ0NCA0PEhIYCAgNGBMRDQ0NDQ4MERQNBgkJEhUPDwgODQ0NDw0NGA8PExgXDRgICAUFDQwMEAQNCAgMDA0HBQgaDxAPEBAGBgYGExMTERERBggICAgICAgICAgNBhAMDwwGEQ0QDBANDg4ICAgUFBQNEw4GEAwRDBEMDQ0IDw0PDREPERANEA0NBg0HDQgRDhEOEw0RCBEIEAwOBw4JEQ4RDg8MDwwNExIODQsPCRANDAkaGAwYDBgMDBgRDg8ODw8RDxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERIPGBgYGBgPDw8ZGRYSEg0QDgwMEhILDwUJFQgPCQkPCQ8NEQwRDBANEA0QDRMOEw4TDREOEQ4GBgYGBgYGBQwGEAwMDQYRDhENEw0TDREIEAwPBxEOEQ4RDhEOFxEQDAUPDRgVEw8GFxEXERcREAwFCA0OFBQUFAgICAgPExQJExQSBg8QEBAPEQYQEBMREBMREA8OEA8TEgYQDgsOBg4OCwsODQYMDA4LCw0ODA4NEhIGDg0OEhAVDREQBgYMGRgWDg8RDxAQDRAQFg8REQ4QExETERARDg8SDxIQFhcTFRARGBENDg0JDg0QCw0NCw4RDQ0NDgwLDBQLDg0TFA8RDQwSDQ0OCQwMBQYGFhQOCwwNDAoYGhEAAAAAAAAAAAAAAAAACQAGAAAHDg0KDA4GCQ4OBgwLCw4OBggODQ4NCwsNDBEPDAwMBgoVBgwMCwsNEREREQ4ODg0KDA4HCg4HDAsLDggODg0LDQwRDwYNCw0OAAAAAAgICQoFAAAAAAAAAAANDQ0NDQ0NDQ0NDQgNEhIHEg0NDRISEhISABISEhISEhISDxISEhERBgYSEhISDg0NDQwMExYJDBMWCQwPDgkSEhISEhISEhISEhISEhIAAAAAABISAAAAAAAAAAAAAAAAAAAAAA0YEhISEhISEhISEhISEhISEhISEhISEhISEhISEggIEg8KBQYFBgoKBQYPDgYGBQYREQYGBwkREQYGEREGBg4NDQ0ODQ0NDg0NDQgICAgMDAwMFBQNDRQUDQ0aGhQUGhoUFA4ODg4ODg4ODQsNCQ0LDQkTEwYGDg4GBg4OCQkMDAUFCAgJCQ0NBgYHCQsJCgoPDg8OBgYNDg0ODQ4NDhISAAASEhIAABISAAASEhIAAAAAAAASAAASEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIICAgSEhISEhISEhISEhISEhISEhISEhISEhIDGDAVEBUQAAAAAAAAAAAAAAAAAAAAAAwUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDw0PDQ8NDw0PDQ8NDw0PDQ8NDw0PDQ8NEA0QDRANEA0QDRANEA0QDQYFBgUTDRMNEw0TDRMNEw0TDRUQFRAVEBUQFRARDhEOFRAVEBUQFRAVEBAMEAwQDA8NBgUTDREOEQ4RDhEOEQ4AAAAADQkWEA4LDgsRDQ0MDQwQDBANEA4SDRMNEQYGBg4GBgYGBgYGAAAICAAAAAAFBgUGBQYFBgoKCgoPDhERBgYREQYGEREGBhERBgYREQYGEREGBhERBgYODQ0NDg0NDQ4NDQ0ODQ0NDg0NDQ4NDQ0ICAgICAgICAgICAgICAgICAgMDAwMDAwMDAwMDAwMDAwMFBQNDRQUDQ0UFA0NGhoUFBoaFBQODg0LDQkTExMGBhMTBgYTEwYGExMGBhMTBgYODg4OHBwWFhMWCQwODgkJDg4JCQ4OCQkTFgkMExYJDBMWCQwTFgkMExYJDAwMBQUMDAUFDAwFBQwMBQUNDQYGDQ0NDQ0NBgYNDQ4NDQ0HCQkJCQoKCgoKCgoKCgoKCgoKCgoPDg8OBgYKCg8OBgYPDhMTExMFAAAAAAAAABsaAAAAAAAABQkAAA4AAAAUFA0NGhoUFA0LDQkKCAcGCAYGBgYGExYGAAgMDQ4NDg0ODQ4NDg0ODQ4NDQ0ODRIQDRANEREMERMQDQ0QDw8TDxUFBxAMBQwVEQ0TFRASDRAQDA8JBw8HDxIREwwPDA8PDQ0NDQsMDQYKDgggHRkZFAsdFxMNDw0ADw0YFRMNEw4QDBMNEw0PDQUgHRkTDhkPEQ4PDQ8NEA0QDQYGBgYTDRMNEQgRCBEOEQ4QDA4HDQoRDhEPDg8MDw0QDRMNABMNEw0TDRAMDQ0NDQwMDQ0NEgsLDwwHDQ4NDA8NDQ0FBQkIBwUOFBQUDQ0NDRMTDQgICAgICAgNDQwFBgUIBwcNDg0MEQwMDA0NDQwMDAwTDQwNDQoMCg0MDBcWGBEKERIQDwwNCQkEBgYGCQwIBQkFBQUICAgIDg4ODggICAgICAgHBwgICAgICAgICAQICAgJCQkJCQgICAgIDQ0NDQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIDg0TFxMNEw4TDREMDwoPDRIOFRQQDRAMEBAPDhINCwoODgwGEwsLEBENDSAPEw8XERAMFhEUEBkVDwsTERMNEw8TDxoWFA8dFAAgDxEMDAAAAAAAABENEA0QDRANDwsOCxINFRAbFRINEQwPCxYREA0VEBUQBhYQEA0QDhENEQ0QDRQRCA8NDw0YFRANEg0WEA8LDw0RDRENEw0TDREMDwwPDA8MEA0VERAOFxUXFBAMFxYZFRMNEhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NEA4QDhAOEQwRDhEOEQ4RDhEOEA0QDRANEA0QDQ8HEw4RDhEOEQ4RDhEOBgUGBhAMEAwQDA0GDQYNBg0GExQTFBMUEQ4RDhEOEQ4TDRMNEw0TDRAOEA4RCBEIEQgRCBAMEAwQDBAMEAwOBw4HDgcOBxEOEQ4RDhEOEQ4PCw8LFxEXEQ8LDwsQDA8MDwwPDA4HEQwNBQ4ODg4ODg4ODw8UFBQUFBQLCwsLCwsSEhYWFhYODg4ODg4ODhQUGBgYGBgYBgYGBgYGBgYJCQ4ODg4ODg0NDQ0NDRQUGRkXFw4ODg4ODg4OFBcYFxISEhISEhISExMYGBcXFxcODgsLDg4GBg0NDg4SEg4ODg4ODg4ODw8UFBQUFBQODg4ODg4ODhQUGBgYGBgYEhISEhISEhITExgYFxcXFw4ODg4ODg4PDw8PDwgICAgIDg4ODg4UFBUVEQgICAYGBgYGBgYGCgoICAgODg4ODg4ODhAQFRUSCAgIEhISEhIWFBUTEggIDRERFBEcFxAPGAwOAAAAAAUFDRAQCBAJEBAICAgICAgICAgHCAgICAoKCAAAAAAAAAAAAAAAEA0MEhUNDA0NDAsFCgwKEQ0NDA8PDxcLDQ0NDQ0LDg4SDgsRDAsKDwkMDQ0RDgsQCgoLCgoMCgQICggMCgoMCQoLCgoPCQkJDgkJCQkICAkECA4JCQkJCQkFCQoOCAkJCAkLCAQGCQgJCAkLCBYfCx8QBg0AAAAAAAAAAAAICAwMCwkLCREQEg8PEhATDgAAAA0ICQUFBQUTHQwYDBgIBgQNBwUCABIRFBEWFRUQEQwNDwwMDgAAAAAADhEREQ0JAAAACAAGBwAAAAAAAAAREQYGEREGBhERBgYREQYGEREGBhERBgYREQYGDg0NDQ4NDQ0ICAgIDAwUFA0NDQsNCQ0LDQkNCw0JExMGBhMTBgYTFgkMExYJDBMWCQwICAkJCAgJCQ0NBgYNDQYGDQ0GBgwMBQUMDAwMFBQNDQ0NBxQNDQgIDAcMDQkNEwUFDQ0ODQ0HEQwFFA0NCAwJDAwMDQ0NDQsLEAUMBQ0NCQkICQgGBgkJBAQEBAcEBAcODgkJCQkJCAQFCQkJCAgJCQkJCQAAAAAHCQkJCAkTEA0RCA4ODg4ODg4OBgYGBgYGBgYODg4ODg4ODgYGBgYODg4ODQ4LEBEQEA0MBRINEQgQDAwMDAYNCRAMEAwPCxAOAAAAAAAAAAAAFwwMDQUNEBENBxENEAwPDAwOChAAAAAAAAAFERERAAAAAAAAAAAAAAATDhcREQASDhkUBwsFBQwMBwcHCAAAAAAAAAAADw0NCQ0NDQ0NDA0NDQkNDQ0NDQ0NDREREhwSCRATDQUMBg0HDQ0NCQYFDQ4ODw0MEA8GCg4LEQ8QDRAPDQwPDRMNDQwUFAsQDQ8ODQ0NDQ0NDg0NDQ0GBgYGDxAQEBAQDw8PDw0NDQ0ODg4ODw8NDQ0NDRAQEBAPDwYGBgYGEAoOCwsLCw8PDw8QEBAPDw8NDQ0NDQwMDAwPDw8PDw8TExMTDQ0NDAwMDRQQDQ4LDQ0MDxAGDg0RDw0QDw0MDA0QDRAQDQ0PBhANEAYNDRELDg0GBgoVFBIMDQ8NDg4LDQ0TDA8PDA0RDxAPDQ4MDQ8NDw0SEhASDQ4UDwkICAgICAgICAgICAgIERERERERERERERERERERERERERERERISEhISEhISEhISEhIJCQkJCQkJCQkMCQkJBgYHCAYJCQkJCQkJCRANDQ0NDQ0NDQ0FDAYGBwgGBwcJBw0NDQ0O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CgoKCQkJCQkPDw8PDw8PDw8KDw8PDw8KDw8PDw8KDw8PDw8KDw8PDw8KDw8PDw8PDw8PCg8PDw8PCg8PDw8PCg8PDw8PCg8PDw8PCg8PDw8PDw8PDwoPDw8PDwoPDw8PDwoPDw8PDwoPDw8PDwoPDw8PDw8PDw8KDw8PDw8KDw8PDw8KDw8PDw8KDw8PDw8KDw8PDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkQDxUaFQ8VEBUPFA4RCxEOFBAYFhIPEg4SEhAQFA8NCxAPDgYVDAwSEw8PJBEVERoTEg4YExYTHBcQDBYTFQ8WERYRHRgWESAXACQRFA4OAAAAAAAAEw8SDhIPEg8QDBAMFA4YEh8YFA4UDhEMGRMSDhcSFxIIGRISDxIQFA8UDxIOFhMJEg8SDxsYEg8UDxkSEAwQDxMPEw8VDxUPEw4RDhEOEQ4RDhgTEg8aGBoWEg4aGRwYFQ8UEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg8SDxIPEg8UDhQPFA8UDxQPFA8SDxIPEg8SDxIPEQcVDxMPEw8TDxMPEw8IBggGEg4SDhIODwYPBg8GDwYXFhcWFxYTDxMPEw8TDxUPFQ8VDxUPEQ8RDxQJFAkUCRQJEg4SDhIOEg4SDhAIEAgQCBAIEw8TDxMPEw8TDxENEQ0cExwTEQwRDBIOEQ0RDRENDwgTDg8GEBAQEBAQEBASEhYWFhYWFgwMDAwMDBUVGRkZGQ8PDw8PDw8PFhYbGxsbGxsGBgYGBgYGBgoKDw8PDw8PDw8PDw8PFhYcHBoaDw8PDw8PDw8WGhsaFRUVFRUVFRUWFhsbGRkZGRAQDAwPDwYGDw8PDxUVEBAQEBAQEBASEhYWFhYWFg8PDw8PDw8PFhYbGxsbGxsVFRUVFRUVFRYWGxsZGRkZEBAQEBAQEBISEhISCQkJCQkPDw8PDxYWFxcTCQkJBgYGBgYGCAgLCwkJCQ8PDw8PDw8PEhIXGBUJCQkVFRUVFRkWGBYUCQkPFBQWFB8ZEhEbDhAAAAAABgYOEhIJEgoTEwkJCQkJCQkJCQgJCQkJCwsJAAAAAAAAAAAAAAASDw0UGA4ODw8NDAYLDgsTDw8OEBAQGQwPDw4PDwwPEBQQDRMNDAwQCg4PDhMQDBILCwwLCw0MBQgLCg4MDA4KCwwMDBEKCgoQCgoKCgkJCgQJDwoKCgoKCgYKCw8JCwoJCgwJBAYKCQoJCgwJGSMMIhIGDwAAAAAAAAAAAAkJDQ0MCwwLExIUEBAUEhUQAAAADwkKBgYGBhUhDhsOGwkHBQ8IBQIAFBQWExkYGBIUDg8RDg4QAAAAAAAPFBQUDwoAAAAKAAcIAAAAAAAAABMTBwcTEwcHExMHBxMTBwcTEwcHExMHBxMTBwcPDg4ODw4ODgkJCQkNDRYWDg4PDA4LDwwOCw8MDgsVFQcHFRUHBxYZCw4WGQsOFhkLDgkJCwsJCQsLDg4HBw4OBwcODgcHDg4GBg0NDQ0WFg4ODw8IFg8PCQkOCA4PCg8VBgYPDw8PDwgTDgYWDw8JDgoODg4PDw8PDAwSBg4GDw8KCgkKCQYGCgoEBAQEBwQEBw8PCgoKCgoJBAYKCgoKCQoKCgoKAAAAAAgKCgoJChUSDxQJEBAQEBAQEBAGBgYGBgYGBg8PDw8PDw8PBgYGBg8PDw8PEAwSFBISDw4GFA8UCRIODg4OBg8KEg4SDhAMEhAAAAAAAAAAAAAZDQ4PBg8SFA8IFA8SDhEODhALEgAAAAAAAAYUFBQAAAAAAAAAAAAAABUPHBMTABQQHBcIDAUFDg4ICAgJAAAAAAAAAAARDw8KDw4PDw8ODw8PCg8PDw8PDg8PExQUHxQKEhUPBg0HDwgPDw8KBwYPDxARDw4SEQYMDw0UERIPEhAPDhAPFQ8PDhYWDRIPERAPDw8PDw8QDw8PDwYGBgYREhISEhIQEBAQDw8PDxAQEBAREQ8PDw8PEhISEhERBgYGBgYSDA8NDQ0NERERERISEhAQEA8PDw8PDg4ODhAQEBAQEBUVFRUPDw8ODg4PFhIPDwwPDw4REgYPDxQRDhIRDw4ODxIPEhIPDxEGEg8SBg8PEwwQDwYGDBcXFA4PEQ8PDwwPDxUOEREODxQREhEPEA4PEQ8QDxUVExQPEBcQCwkJCQkJCQkJCQkJCQkTExMTExMTExMTExQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAoKCgoKCgoKCg4KCgoHBwgJBwoKCgoKCgoKEg8PDw8PDw8PDwYNBwcICQcI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CQsLCwsLCwsLCgULCwsMDAwMDAsLCwsLERERERERERERDBERERERDBERERERDBERERERDBERERERDBEREREREREREQwREREREQwREREREQwREREREQwREREREQwREREREREREREMEREREREMEREREREMEREREREMEREREREMERERERERERERDBERERERDBERERERDBERERERDBERERERDBEREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLEhIZHxkSGRMZEhcQFA0UERgSHRsWEhYQFRUUExgSDw0TEhAHGQ4OFRcREisUGRQeFxUQHRYbFiIcEw8ZFhkSGhQaFCIdGxQmGwArFBcQEAAAAAAAABcSFREVEhUSEw8TDhgRHBUkHBgRFxAUDx4WFREcFRwVCR4WFRIVExcSFxIVERsWCxURFREgHBURGBIeFhMPExEXEhcSGREZEhcQFA8UDxQPFREcFxURHxwfGhUQHx0hHBkSGBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABURFREVERURFxAXERcRFxEXERcRFREVERURFREVEhQKGREXEhcSFxIXEhcSCQcJCRUQFRAVEBIHEgcSBxIHGxsbGxsbFxIXEhcSFxIZERkRGREZERURFREXCxcLFwsXCxUQFRAVEBUQFRATCRMJEwkTCRcSFxIXEhcSFxIVDxUPIBcgFxUOFQ4VDxQPFA8UDxIJFw8RBxMTExMTExMTFRUaGhoaGhoODg4ODg4YGB4eHh4SEhISEhISEhoaICAgICAgBwcHBwcHBwcMDBISEhISEhERERERERoaISEfHxISEhISEhISGh8gHxgYGBgYGBgYGRkgIB4eHh4TEw4OEhIHBxEREhIYGBMTExMTExMTFRUaGhoaGhoSEhISEhISEhoaICAgICAgGBgYGBgYGBgZGSAgHh4eHhMTExMTExMVFRUVFQsLCwsLEhISEhIaGhwcFwsLCwcHBwcHBwkJDg4LCwsSEhISERESEhUVHBwYCwsLGBgYGBgeGh0ZGAsLEhcXGxclHhUUIBATAAAAAAcHERUWCxYMFhYLCwsLCwsLCwsJ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FQ0UFxsbJQwMFCUdGhQUFBUVEhoeFAkODhwhFxcLFhUVFBcVFSUZGR0lIxUlDAwICBQSERcGFQwMExMVCggMJRkZGRkZCQkJCR0dHRsbGwkMCwwMDAwMDAwMFQgZEhcSCRsVFxEZFRYWDAwMHx8fFR0VCRkSGxMbExUUDBkUGRQbFxsZFBkUFQcVCxUMGxUbFR0VGwwbDBkSFwoXDhsVGxUXEhcSFB0eFRURFw8YFBMOKCUTJRMlExMkGxYWFhYWGhcaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobFiUlJSUlFhYWJiciHBwUGBYTExwbEBYHDSEMFg0NFg0ZFBsTGxMZFBkUGRQdFR0VHRUbFRsVCQkJCQkJCQcTCRkTExUHGxUbFR0VHRUbDBkSFwobFRsVGxUbFSYbFxEHGRQlIR0XCSYbJhsmGxcRCAwVFh8fHx8MDAwMGR0fDh0eHAgZGRkZFxsJGRkfGxgdGxkXFxcZHhwJFxURFQgUFRMQFRUIExMVEREVFRIUExodCBQVFB0ZIBQbGQkJEyclIBYYGxkYGRQZGSIWGxsWGB8bHRsZGxcYHBkbGSIjHSEYGyUbFBUUDhYUGREVFRAWGRQVFBUTEREeERUTHh4XGxQTHBQUFQ4TEgcJCSIeFRARFBIPJSgaAAAAAAAAAAAAAAAAAA4ACQAAChUUDxMWCQ4WFgkTEREWFgkNFRQVFBESFBMaGBISEgkPHgkTExERFBoaGhoVFRUUDxMWCw8WCxMRERYNFRUUEhQTGhgJFBEUFQAAAAAMDA0PCAAAAAAAAAAAExMTExMTExMTExMMExwcChwTExMcHBwcHAAcHBwcHBwcHBgcHBwaGgkJHBwcHBUTFBQSEh4jDxMeIw8TGBYOHBwcHBwcHBwcHBwcHBwcAAAAAAAcHAAAAAAAAAAAAAAAAAAAAAAVJRwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwMDBwXDwgICAgQEAgIGBYJCQgIGhoJCQoOGhoJCRoaCQkVExQUFRMUFBUTFBQMDAwMEhISEh4eFBQeHhQUKSkfHykpHx8WFhYWFhYWFhQREw8UERMPHR0KChYWCgoWFg8PExMICA0NDw8TEwkJCg4RDxAQGBYYFgkJFBYUFhQWFBYcHAAAHBwcAAAcHAAAHBwcAAAAAAAAHAAAHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcDAwMHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcBSVKIBggGQAAAAAAAAAAAAAAAAAAAAATHx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxkUGRQZFBkUGRQZFBkUGRQZFBkUGRQZFBkUGRQZFBkUGRQZFBkUGRQJBwkHHRUdFR0VHRUdFR0VHRUgGCAYIBggGCAYGxUbFSAZIBkgGSAZIBkXERcRFxEZFAkHHRUbFRsVGxUbFRsVAAAAABQOIhkWEBYQGxQVExUTGRMZExkVHBUdFRoJCgoWCQkJCQkJCgAADAwAAAAACAgICAgICAgQEBAQGBYaGgkJGhoJCRoaCQkaGgkJGhoJCRoaCQkaGgkJFRMUFBUTFBQVExQUFRMUFBUTFBQVExQUDAwMDAwMDAwMDAwMDAwMDAwMEhISEhISEhISEhISEhISEh4eFBQeHhQUHh4UFCkpHx8pKR8fFhYUERMPHR0dCgodHQoKHR0KCh0dCgodHQoKFhYWFisrIiIeIw8TFhYPDxYWDw8WFg8PHiMPEx4jDxMeIw8THiMPEx4jDxMTEwgIExMICBMTCAgTEwgIExMJCRMTExMTEwkJExMVExQUCg4ODg4QEBAQEBAQEBAQEBAQEBAQGBYYFgkJEBAYFgkJGBYeHh4eCAAAAAAAAAAqKAAAAAAAAAcOAAAWAAAAHh4UFCkpHx8UERMPDw0KCQwJCQkJCR4jCQANEhQWFBYUFhQWFBYUFhQWExMUFhUcGBUYFRsbExseGBUVGRYXHRchCAoZEwgTIRsVHSAZHBUZGRMXDgoXChccGx0TFxMXFxQUFRUREhUKDxYLMS0nJx8RLSMdFRkUABkUJSEdFR0VGRMdFR0VFxQIMS0nHRUmFxsVGRQZFBkUGRQJCQkJHRUdFRsMGwwbFRsVGRIXChQQGxUaFhUXExkUGRUdFQAdFR0VHRUXERUVFRUTExUVFRsRERcTChUVFRMXFRUVCAgNDAsIFR8fHxUVFBUdHRQMDAwMDAwMFBQTCAoIDQoKFRUUExsTExMUFBQTExMTHRQTFRQPEw8VExMkIiUaEBscGBcSFA4OBgkJCQ0SDAcNCAgIDAwNDRYWFhYMDAwMDAwMCgoMDAwMDAwMDAwGDQwNDg4ODg4MDAwMDBQUFBQUFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDBUUHSMdFR0WHRUbExcPFxQcFSEfGRUZExkZFxYbFBEPFhUTCR0QEBkbFBUyFx0XIxoZEyEaHxknIBYRHRkdFR4XHhcoIR8XLCAAMhcbExMAAAAAAAAbFRgTGRUZFBYRFhAbFCEYKiAcExsTFxEiGhkTIBkgGQkiGRkUGBYbFBsUGRMfGQwZFBkUJSEZFBwVIhkWERYUGxUbFR0VHRUbExgRGBEYERkTIRsYFSQgIx4ZEyQiJiEdFRwZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZFBkVGRUZFRsTGxUbFRsVGxUbFRkUGRQZFBkUGRUXCh0VGxUbFRsVGxUbFQkHCQkZExkTGRMVBxUHFQcVBx8fHx8fHxsVGxUbFRsVHRUdFR0VHRUZFRkVGwwbDBsMGwwZEhkSGRIZEhkSFwoXChcKFwobFRsVGxUbFRsVGREZESYbJhsZERkRFxEXEhcSFxIVChsRFAcVFRUVFRUVFRkZHh4eHh4eERERERERHBwiIiIiFRUVFRUVFRUeHiYmJiYmJggICAgICAgIDg4VFRUVFRUVFRUVFRUfHyYmJCQUFBQUFBQUFB4kJSQdHR0dHR0dHR0dJSUjIyMjFRURERUVCAgVFRQUHR0VFRUVFRUVFRkZHh4eHh4eFRUVFRUVFRUeHiYmJiYmJh0dHR0dHR0dHR0lJSMjIyMVFRUVFRUVGRkZGRkMDAwMDBUVFRUVHh4gIBsMDAwICAgICAgJCRAQDAwMFBQUFBUVFBQXFyAhHAwMDB0dHR0dIh8hHRwMDBUbGx8bKyMZFyUTFgAAAAAICBMZ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BqYGpwRqBGsGqAapBqoGqwasBq0GrgavBrAGsQayBrMGtARsBG0GtQa2BrcGuAa5BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswGzQbOBs8G0AT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBtEG0gbTBtUG1gbXBtgG2QbaBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gHWAdcB2AHZAdoB2wsSBxAHEQcSBxMHFAcVBxYHFwcYBxkHGwccBx0HHgcfByAHIQciCxMLFAsVCw8L3wvgC+EL4gvjC+QL5QvmC+cL6Az1DPYM9wz4DPkM+gz7DPwM/Qz+DP8NAA0BDQIHIwckByUHJgcnBygHKQcqBysFJQsWCxcHgAeBB4IHgweEB4UHhgeHB4gHiQeKB4sHjAeNB44HjweQB5EHkgeTB5QHlQDWAN8HlgDYB5cHmAeZB5oHmwecB50HngefB6AHoQeiB6MHpADZANoA2wDeANcA3QelB6YHpweoB6kHqgerB6wHrQeuB68HsAexB7IHswe0B7ULGAsZCxoLGwscCx0LHgsfCyALIQsiCyMLJAslCyYLJwsoBJIEkwhCBHoIQwhECEUIRghHBHQISAhJCEoISwhMCE0ITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheCF8IYASVCykLKgsrCywLLQsuCy8LMAvpC+oL6wvsC+0LMQsyCzMIjQiOCI8IkAiRCJIIkwiUCJUIlgiXCJgImQiaCJsInA9AD0EPQg9DCJ0Ing9ED0UInw0DDQQNBQAeEHwB7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrD0YLNAs1C9sL3AvdC+4L7wvwC/EIxwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwjICMkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUIygKGAocIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6gjrCOwI7QjuCO8I8AjxCPINQgjzCPQI9Qj2CPcI+Aj5CPoCiAKJBRAFEQj7CPwFEgUTCP0I/gUUBRUFFgUXCP8JAAkBCQIFGAUZCQMJBAkFCQYJBwkICQkJCgkLCQwFGgUbBRwFHQUeBR8JDQkOCQ8JEAUgBSEFIgUjCREJEgkTCRQJFQkWCRcJGAkZCRoJGwkcCR0JHgkfCSAJIQkiCSMNBgklCSYJJwkoCSkJKgkrCSwFJAUlCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgUmBScJOwk8CT0JPgk/CUAJQQlCCUMJRAlFCUYL8gvzCUcJSA0HDQgNCQ0KDQsNDAlJCUoJSwlMCU0JTglPCVAJUQlSCVMJVAlVCVYJVwlYDQ0NDg0PDRAPSw9MD00PTg9PD1ANQw1EDUUNRg9RD1IPUw9UD1UPVg9XD1gPWQ9aEH0QfhB/EIAQgRCCEIMQhAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkL9AlqCWsJbAltCW4JbwlwCXEJcglzCXQJdQl2Ao0CjgKPApACkQKSApMClAKVApYL9QKXApgCmQKaApsCnAKdAp4Cnwl3C/YL9wv4C6ELogujC6QPSBBmDsMOxA7FDsYOxwv5AuwLpgulC6cLqAupC6oLqwusBTMPIg8jDyQPJQ8mAu0QZQv6Au4PJwLvA4EDgwOFA4cDiQONA48DkwOVA5kDnQOhA6UDqQOrA60DrwOxA7UDuQO9A8EDxQPJA80PKw8vDzMPNw87AvAD0QPVA9kD3QPhA+UD6QPtA+8D8QLxAvIC8wL0AvUC9gL3AvgFOAU5BToLrQuuC68L+wv8C/0L/gv/DAAPPwL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBBAAAwUFKAUsBTsFPAU+BUAFOQVCBUQFRgVIBUoFTgVSBVYFWgMfBV4FYgVmBWoFbgVyBXYDJwV6BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwDKwWeBaAFpAWoBawFsAW0BbYFugW7Bb8FwwXHBcsFzwXRAy0F0wXXBdsF3wXjAzEF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXA+sGGQYdBh8GIAYhBiIGJAYmBigGKgYsBi4GMAM1BjIGNAY4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BxMHFAcVBxYHFwcYBxkHGwccBx0HHgcfByAHIQciCxMLFAsVCw8L3wvgC+EL4gvjC+QL5QvmC+cL6Az1DPYM9wz4DPkM+gz7DPwM/Qz+DP8NAA0BDQIHIwckByUHJgcnBygHKQcqBysFJQsWCxcHgAeBB4IHgweEB4UHhgeHB4gHiQeKB4sHjAeNB44HjweQB5EHkgeTB5QHlQDWAN8HlgDYB5cHmAeZB5oHmwecB50HngefB6AHoQeiB6MHpADZANoA2wDeANcA3QelB6YHpweoB6kHqgerB6wHrQeuB68HsAexB7IHswe0B7ULGAsZCxoLGwscCx0LHgsfCyALIQsiCyMLJAslCyYLJwsoBJIEkwhCBHoIQwhECEUIRghHBHQISAhJCEoISwhMCE0ITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheCF8IYASVCykLKgsrCywLLQsuCy8LMAvpC+oL6wvsC+0LMQsyCzMIjQiOCI8IkAiRCJIIkwiUCJUIlgiXCJgImQiaCJsInA9AD0EPQg9DCJ0Ing9ED0UInw0DDQQNBQAeEHwB7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrD0YLNAs1C9sL3AvdC+4L7wvwC/EIxwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwjICMkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUIygKGAocIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6gjrCOwI7QjuCO8I8AjxCPINQgjzCPQI9Qj2CPcI+Aj5CPoCiAKJBRAFEQj7CPwFEgUTCP0I/gUUBRUFFgUXCP8JAAkBCQIFGAUZCQMJBAkFCQYJBwkICQkJCgkLCQwFGgUbBRwFHQUeBR8JDQkOCQ8JEAUgBSEFIgUjCREJEgkTCRQJFQkWCRcJGAkZCRoJGwkcCR0JHgkfCSAJIQkiCSMNBgklCSYJJwkoCSkJKgkrCSwFJAUlCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgUmBScJOwk8CT0JPgk/CUAJQQlCCUMJRAlFCUYL8gvzCUcJSA0HDQgNCQ0KDQsNDAlJCUoJSwlMCU0JTglPCVAJUQlSCVMJVAlVCVYJVwlYDQ0NDg0PDRAPSw9MD00PTg9PD1ANQw1EDUUNRg9RD1IPUw9UD1UPVg9XD1gPWQ9aEH0QfhB/EIAQgRCCEIMQhAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkL9AlqCWsJbAltCW4JbwlwCXEJcglzCXQJdQl2Ao0CjgKPApACkQKSApMClAKVApYL9QKXApgCmQKaApsCnAKdAp4Cnwl3C/YL9wv4C6ELogujC6QPSBBmDsMOxA7FDsYOxwv5AuwLpgulC6cLqAupC6oLqwusBTMPIg8jDyQPJQ8mAu0QZQv6Au4PJwLvA4EDgwOFA4cDiQONA48DkwOVA5kDnQOhA6UDqQOrA60DrwOxA7UDuQO9A8EDxQPJA80PKw8vDzMPNw87AvAD0QPVA9kD3QPhA+UD6QPtA+8D8QLxAvIC8wL0AvUC9gL3AvgFOAU5BToLrQuuC68L+wv8C/0L/gv/DAAPPwL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBBAAAwUFKAUsBTsFPAU+BUAFOQVCBUQFRgVIBUoFTgVSBVYFWgMfBV4FYgVmBWoFbgVyBXYDJwV6BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwDKwWeBaAFpAWoBawFsAW0BbYFugW7Bb8FwwXHBcsFzwXRAy0F0wXXBdsF3wXjAzEF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXA+sGGQYdBh8GIAYhBiIGJAYmBigGKgYsBi4GMAM1BjIGNAY4BjoGPgZABkIGRAMIBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloQBAZbC7ELswL5AvoC+wL8AwoDCwMMAwADAQMCBlwGYAZkBmgGaQu1DAIMBgwKDA4MEgwWDBoMHgwiDCYMKAwqDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMagxsDt8O4w7nDusO7Q7xDvMO9Q75Dv0PAQ8DDwUPBw8JDw0PEQ8VD6YQaA+qD64Psg+2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AAAoogAAKTIAACnaAAAq9gAALTQAADAAAAAyYgAAM/gAADWqAAA2xgAAN8IAADnmAAA7WgAAPMIAAD4aAABApgAAQWgAAET+AABHLAAASOoAAEpsAABM/AAAT+oAAFPAAABU/AAAVoIAAFj6AABcVAAAYAIAAGKeAABkJgAAZLAAAGUsAABlsAAAZlAAAGaSAABnHgAAauYAAG1WAABwEAAAcoIAAHUEAAB2qgAAeVQAAHtgAAB9kAAAf1gAAIKgAACEOgAAiBIAAIpAAACMlgAAjswAAJDqAACSLgAAltwAAJiWAACanAAAnTIAAKNsAACl4AAAqQYAAKssAACsTAAArKoAAK3OAACumAAAruQAAK8YAACvVAAAr5YAAK/8AACwQgAAsHYAALCsAACw4gAAsTIAALF0AACxxgAAsf4AALJQAACyhgAAssYAALMIAACzRgAAs5AAALPQAACz/gAAtDYAALSGAAC0vAAAtPwAALU2AAC1egAAtcQAALYAAAC2MAAAtnQAALasAAC3WgAAt/QAALpWAAC8QgAAvkgAAL6kAAC/VgAAwa4AAMQ2AADGWAAAx24AAMgAAADIgAAAydQAAMt0AADOEgAAz6gAANBkAADRPgAA0jIAANO4AADViAAA1p4AANeIAADYCAAA2HYAANm8AADbCgAA264AAN3AAADgjAAA5DQAAOVQAADmDgAA5nIAAOdGAADorAAA6nIAAOskAADsAgAA7NwAAO1iAADtngAA7fYAAO5EAADwpgAA80AAAPOGAADzyAAA9RQAAPZiAAD3JgAA994AAPimAAD5eAAA+cwAAPoCAAD6bAAA/AgAAPyOAAD8/AAA/q4AAQBIAAEBWAABAZwAAQJOAAEDlAABBjQAAQZuAAEGsgABBu4AAQdQAAEHkgABB9gAAQgkAAEIVgABCKoAAQjoAAEJGAABCVYAAQmcAAEJ3gABChwAAQqwAAELPgABDF4AAQyqAAENPgABDYQAAQ44AAEO3gABD14AAQ/YAAEQWgABEYQAARKkAAES2AABEwwAARM8AAETgAABFBQAARXGAAEYLAABGF4AARiYAAEZwAABG3gAARvCAAEdYgABHgIAAR8CAAEgMgABIgIAASO0AAEmAgABJzgAASd+AAEnsgABJ/QAASguAAEoggABKMoAASkUAAEpRAABKXQAASuWAAEr5AABLBwAASxMAAEsgAABLKYAASzMAAEtEAABLvwAATCmAAEwzAABMPIAATE2AAExZgABMZYAATHsAAEy7gABNBoAATRkAAE0nAABNPYAATU0AAE1aAABNZgAATXUAAE2FAABNlIAATaOAAE20AABNwYAATdCAAE3ggABN6gAATfMAAE4HAABOawAAToCAAE6NgABOoQAATrQAAE7EgABO0oAATuAAAE7yAABPIQAAT5OAAFAWAABQgYAAUQsAAFFwgABR3IAAUhwAAFKPgABSrwAAUrkAAFLogABTrQAAU70AAFPNAABT3QAAU+yAAFQEAABUG4AAVDcAAFQ/AABUeYAAVK0AAFS6gABU0wAAVOWAAFT4AABU/wAAVQYAAFUOAABVFgAAVR4AAFUmAABVL4AAVTkAAFVCgABVTAAAVVgAAFViAABVbAAAVXcAAFWCAABVjwAAVZmAAFWkgABVsgAAVbyAAFXHgABV1QAAVd+AAFXqAABV9wAAVgMAAFYQAABWIQAAVi0AAFY6AABWSoAAVleAAFZkAABWdIAAVoGAAFaNgABWngAAVq8AAFbAgABW14AAVt6AAFblgABW7IAAVvOAAFb6gABXVgAAWAEAAFidAABYpAAAWKqAAFixgABYuIAAWL+AAFjGgABY3YAAWOwAAFkGgABZOQAAWWEAAFmWgABZtoAAWdiAAFn0gABaGgAAWjGAAFpDAABaWoAAWnMAAFqjgABa0wAAWt4AAFr5gABbCoAAW3QAAFvBAABb0QAAW9gAAFvjAABb8QAAXAQAAFwUAABcIQAAXC0AAFw5AABcRQAAXFYAAFxiAABcbgAAXH4AAFyKAABclgAAXKIAAFyyAABcvgAAXMoAAFzWAABc34AAXXKAAF1+gABdioAAXe8AAF5ogABedIAAXoAAAF6MAABel4AAXqOAAF6vAABeuAAAXsEAAF7NAABfNQAAXz6AAF9IAABft4AAX8EAAF/KAABf04AAX90AAGBCAABgtQAAYMMAAGDTAABg4gAAYO4AAGD3gABhAIAAYQyAAGEYgABhXwAAYcqAAGHWgABh5QAAYfUAAGIBAABiDQAAYh2AAGInAABiMIAAYkCAAGJQgABiXIAAYmyAAGKugABizoAAYweAAGMTgABjH4AAYyuAAGM3gABjSwAAY1eAAGNkAABjcAAAY3wAAGONgABjmgAAY6YAAGOzgABj1YAAY+YAAGR0gABkvwAAZTSAAGXWgABmhYAAZvmAAGcXAABnOYAAZz2AAGdngABn8oAAaEsAAGixgABo84AAaV6AAGnwAABqigAAas8AAGrTAABq1wAAayOAAGsngABrK4AAay+AAGszgABrN4AAa4mAAGuNgABrkYAAa7qAAGu+gABr+YAAa/2AAGxLAABsTwAAbFMAAGxXAABsuwAAbUAAAG1QgABtXgAAbWuAAG13gABtg4AAbZiAAG2igABuEoAAbmwAAG7MAABvLoAAb5uAAG+5AABwIwAAcHEAAHB1AABweQAAcOmAAHDtgABxUIAAcbeAAHILgAByaQAActWAAHNTgABzY4AAc3GAAHN/AABziIAAc5SAAHOeAAB0DwAAdBsAAHR4AAB0fAAAdIAAAHSQgAB0lIAAdQsAAHWCgAB184AAdf2AAHYJgAB2aQAAdm0AAHbGgAB2yoAAdveAAHdbAAB3XwAAeAmAAHh7gAB46wAAePcAAHlggAB5uIAAebyAAHnAgAB5xIAAegIAAHoGAAB6CgAAeg4AAHpZAAB6yYAAes2AAHsgAAB7eIAAe9WAAHxEgAB8l4AAfQWAAH1TgAB9YQAAff2AAH4lgAB+KYAAfpmAAH8OgAB/NYAAf6GAAH+lgACAUgAAgMIAAIEpAACBNQAAgaiAAIITgACCjAAAguEAAILlAACDOAAAgzwAAINAAACDdoAAg3qAAIQFAACECQAAhF8AAISsgACFIAAAhZeAAIX0AACGXAAAhreAAIbMAACHUgAAh70AAIfMgACIRoAAiE+AAIiugACIsoAAiLaAAIjEgACIyIAAiTuAAImiAACKCwAAihQAAIogAACKhAAAirgAAIrugACK/YAAi3mAAIu/gACL4wAAjCyAAIxYAACMjQAAjJ8AAIy9AACM7QAAjPaAAI0HAACNHAAAjVMAAI1lgACNcgAAjXwAAI2FgACNkoAAjaOAAI20gACNxAAAjhOAAI5BgACOiYAAjqcAAI7agACO7wAAjxOAAI8/gACPfIAAj5GAAI+3AACP5oAAkCEAAJBNgACQlYAAkKoAAJDUgACRIgAAkVgAAJGRgACR0wAAkgyAAJJFAACSggAAkqmAAJLrAACTKYAAk0eAAJNlgACTgwAAk5CAAJOngACT2YAAk9+AAJPlgACT64AAk/EAAJP4AACUKAAAlDUAAJRBAACUTgAAlFoAAJRmAACUcgAAlNoAAJToAACU+AAAlQYAAJUUAACVOwAAlXmAAJWFgACVroAAlboAAJXKAACV3gAAleoAAJX9AACWYwAAlryAAJcUgACXJgAAlzsAAJdJAACXpYAAl7MAAJe5AACXvwAAl8UAAJfLAACYFwAAmCEAAJhwAACYlAAAmL6AAJjfAACZDgAAmVQAAJmXgACZpIAAmcYAAJodAACaPYAAmk8AAJqRgACao4AAmuSAAJsDgACbGYAAmzqAAJt1AACbuoAAm/mAAJwkAACcYAAAnJcAAJzQAACdCgAAnTYAAJ1UAACd64AAnfYAAJ4AgACeLoAAnjkAAJ6JgACeywAAnwWAAJ8QAACfGoAAnyUAAJ8vgACfOgAAn0IAAJ9MgACfVwAAn2GAAJ9sAACfdoAAn4EAAJ+LgACflgAAn6MAAJ+tgACfuAAAn8KAAJ/IgACfzoAAn9QAAJ/ZgACf5AAAn+6AAJ/5AACgA4AAoAmAAKAPgACgFYAAoBuAAKAhgACgJ4AAoHkAAKDsAAChLYAAoY2AAKH1gACifoAAotUAAKNNgACjnoAAo+oAAKQlgACkMAAApDqAAKRFAACkT4AApFoAAKRkgACkbwAApHmAAKSEAACkjoAApJkAAKSjgACkrgAApLiAAKTDAACkyQAApNGAAKTXgAClUYAApVgAAKVigAClbQAApXkAAKWFAAClmQAApa0AAKW9AACl2YAApe6AAKYGAACmG4AApikAAKY5gACmSwAApl2AAKZpgACmd4AApoOAAKbogACnugAAp8SAAKfPAACn2YAAp+QAAKfugACn+QAAqAOAAKgOAACoGIAAqCMAAKgtgACoOAAAqEKAAKhNAACoV4AAqGIAAKhsgACodwAAqIGAAKiMAAColoAAqKEAAKirgACotgAAqMCAAKjLAACo1YAAqOAAAKkggACpJgAAqTCAAKk2gACpOoAAqUWAAKlQgACpVgAAqVuAAKnFAACpywAAqdCAAKnWAACp3AAAqeIAAKnoAACp7gAAqhIAAKo1gACqO4AAqkGAAKpHAACqTIAAqlKAAKpYgACqXoAAqmSAAKpqgACqcIAAqnaAAKp8gACqgoAAqoiAAKqOgACqlIAAqpqAAKqggACq4AAAqzaAAKtZgACrXYAAq2OAAKtpgACrb4AAq3WAAKucgACroIAAq6aAAKusgACr4oAAq+aAAKvsgACr8oAArGQAAKxoAACsvgAArMIAAKzIAACszgAArNQAAKzaAACtNIAArTiAAK10gACteIAArX6AAK2EgACtioAArZCAAK3ggACt5IAAreiAAK3sgACt8oAArfiAAK3+gACuBIAArlkAAK6sgACu4AAArxkAAK8fAACvJQAArysAAK8xAACvNwAArz0AAK9DAACvSQAAr08AAK9VAACvWwAAr5yAALAcAACwIAAAsCQAALAoAACweoAAsH6AALCsgACwsIAAsPQAALD4AACxMwAAsTcAALE9AACxQwAAsUkAALFPAACxUwAAsVcAALG0AACx/wAAsj2AALJBgACyRYAAskmAALJPgACyvgAAssOAALLJAACy04AAst4AALLjgACy6QAAsu8AALL0gACzaIAAs9YAALPggACz6wAAs+8AALPzAACz/YAAtAgAALQSgAC0FoAAtBqAALQlAAC0L4AAtDOAALQ3gAC0QgAAtEyAALRXAAC0XQAAtGUAALRrgAC0dAAAtHgAALR+AAC0iIAAtIyAALSQgAC0mwAAtKWAALSwAAC0uoAAtMUAALTPgAC02gAAtOSAALTvAAC0+YAAtQQAALUOgAC1GQAAtSOAALUuAAC1OIAAtUMAALVNgAC1WAAAtWKAALVtAAC1d4AAtYIAALWMgAC1lwAAtaGAALWsAAC1toAAtcEAALXLgAC11gAAteCAALXrAAC19YAAtgAAALYKgAC2FQAAth+AALYqAAC2NIAAtj8AALZJgAC2VAAAtl6AALZpAAC2c4AAtn4AALaIgAC2kwAAtp2AALaoAAC2soAAtr0AALbHgAC274AAtwCAALceAAC3KIAAtzMAALc9gAC3SAAAt1KAALddAAC3Z4AAt3IAALd8gAC3hwAAt5GAALecAAC3poAAt7EAALe7gAC3xgAAt9CAALfbAAC35YAAt/AAALf6gAC4BQAAuA+AALgaAAC4JwAAuDQAALhBAAC4pYAAuQyAALlzgAC51oAAuegAALn5gAC6FQAAuiwAALpAgAC6XIAAupKAALrFgAC6+4AAuy6AALtWgAC7nQAAu8oAALvqgAC8AQAAvBEAALxYgAC8qwAAvREAAL0oAAC9P4AAvVaAAL1tgAC9moAAvcgAAL3zAAC+HgAAvkkAAL53AAC+pQAAvtMAAL7XgAC+3AAAvuCAAL7lAAC+6YAAvwUAAL8ggAC/ToAAv1MAAL9XgAC/XAAAv2AAAL9kgAC/aQAAv22AAL9yAAC/doAAv3sAAL+mgAC/0YAAv/0AAMAoAADATgAAwFyAAMBnAADAcYAAwIaAAMCbAADAugAAwMyAAMDrgADBAIAAwSGAAME2AADBU4AAwWmAAMGDAADBmIAAwa8AAMHOgADB4YAAwfkAAMISAADCJYAAwjkAAMJPAADCYQAAwmuAAMJ3AADCgIAAwo2AAMKZgADCpYAAwroAAMLVgADC6wAAwwgAAMMdAADDOgAAw0uAAMNlgADDdwAAw44AAMOaAADDqIAAw7IAAMO+AADDx4AAw9EAAMPdgADD6YAAw/4AAMQXgADELQAAxEaAAMRbgADEdwAAxIeAAMSfgADEsAAAxMMAAMTRgADE4IAAxO8AAMT+AADFCwAAxReAAMUjgADFL4AAxToAAMVDgADFTgAAxVmAAMVkAADFdwAAxYgAAMWVgADFpIAAxbGAAMW9AADFzIAAxdiAAMXnAADF8YAAxf0AAMYGgADGEAAAxhsAAMYyAADGPgAAxkoAAMZWAADGZAAAxnEAAMZ8gADGiIAAxpSAAMaggADGrIAAxrmAAMbPAADG3AAAxvQAAMcBAADHFwAAxyQAAMc7AADHYoAAx5YAAMfeAADIEAAAyDQAAMhZgADI1IAAyVOAAMmxgADKEIAAynsAAMrngADLIYAAy28AAMutAADL8YAAzDkAAMyGgADM4QAAzTyAAM2iAADOAQAAzkUAAM5JAADOlAAAzuMAAM8ogADPiYAAz8AAAM/dgADQCwAA0DSAANCQgADQnoAA0L0AANDtgADRHAAA0TYAANF3gADRxQAA0fgAANJPgADSbgAA0oyAANKrAADS2YAA0waAANMdgADTNAAA00YAANNiAADTgQAA05OAANOiAADTs4AA08SAANPZAADT7YAA1A4AANQugADUPwAA1E8AANRcgADUagAA1HWAANSBAADUjgAA1JsAANSrgADUvAAA1MsAANTaAADU6IAA1PcAANT/AADVBwAA1Q8AANUXAADVJYAA1TQAANVEgADVVQAA1WWAANV2AADViYAA1Z0AANWtgADVvgAA1c4AANXeAADV7IAA1fsAANYOAADWIQAA1jCAANZAgADWUgAA1mOAANZygADWiAAA1pcAANamAADWtgAA1sYAANbVAADW5AAA1vQAANcEAADXFQAA1yYAANc7AADXXoAA128AANd/gADXmYAA17OAANfAAADXzIAA19qAANfogADYDgAA2DOAANhGAADYWIAA2GeAANh2gADYjAAA2KGAANi0AADYxoAA2NyAANjygADZAoAA2RKAANkggADZLoAA2UEAANlTgADZYwAA2XKAANmDAADZk4AA2aiAANm9gADZzwAA2eCAANnyAADaA4AA2hkAANougADaRAAA2lmAANpsgADaf4AA2pKAANqlgADawoAA2t+AANr8gADbGYAA2ykAANs4gADbSAAA21eAANtnAADbdoAA24eAANuYgADbq4AA276AANvWgADb6YAA2/kAANwMgADcUIAA3GSAANx4gADchoAA3JSAANycgADcpIAA3MGAANzagADc6wAA3PuAAN0RAADdJIAA3TeAAN1KgADdWoAA3WqAAN18gADdjoAA3amAAN3AAADdzgAA3dQAAN3kAADd6gAA3h4AAN5dAADejQAA3siAAN7eAADe84AA3wgAAN8dAADfNgAA308AAN9kgADfegAA35eAAN+1AADfxYAA39YAAN/mgADf9wAA4AeAAOAYAADgLYAA4EMAAOBXgADgbIAA4I6AAOCvAADg1wAA4P+AAOEPAADhHoAA4S4AAOE9AADhTIAA4VwAAOFrgADheoAA4bOAAOHugADiNAAA4nsAAOKtgADi4AAA4x6AAONdAADjnIAA49wAAOQjgADkawAA5LSAAOT+AADlPoAA5X8AAOWjgADlyAAA5deAAOXnAADl7wAA5fcAAOX+gADmBgAA5koAAOZOAADmYAAA5nIAAOZ6AADmggAA5ooAAOaSAADmooAA5rMAAOa7AADmwwAA5ssAAObTAADm8QAA5vcAAOcbAADnLAAA5zwAAOdcgADnfQAA59MAAOfXAADn6oAA5/4AAOgNAADoHAAA6C2AAOg/AADoUoAA6GYAAOh6AADojgAA6KUAAOi8AADpGYAA6XOAAOmBgADpkAAA6ZeAAOmfAADps4AA6cgAAOncgADp8gAA6gEAAOoQAADqJYAA6jqAAOqIgADqsIAA6sQAAOrUAADq4oAA60gAAOvpAADsFAAA7HmAAOzRAADtBIAA7W4AAO4DAADukQAA7q4AAO7LAADu8AAA7zkAAO9CAADvXoAA76GAAO/lgADwKYAA8G0AAPDOgADw2wAA8QOAAPENgADxJgAA8T6AAPFXAADxb4AA8XeAAPF/gADxh4AA8Y+AAPGXgADxn4AA8aeAAPGvgADyBoAA8luAAPJfgADyjwAA8tyAAPL0AADzOgAA852AAPPHAAD0GIAA9CgAAPQ3gAD0RwAA9FwAAPRmAAD0fIAA9JWAAPSngAD0wAAA9NgAAPT0gAD1E4AA9TKAAPVTAAD1dgAA9ZkAAPW7gAD124AA9eoAAPX5AAD2UgAA9oSAAPaQgAD2nIAA9uqAAPc+gAD3QoAA934AAPezAAD38QAA+C6AAPiPAAD45YAA+OmAAPkvgAD5WoAA+asAAPoAgAD6F4AA+m8AAPqSgAD6/AAA+1iAAPudgAD7q4AA+8SAAPwwgAD8iwAA/KOAAPz9gAD9PwAA/WyAAP2XgAD94YAA/h0AAP5VAAD+pQAA/vAAAP82gAD/koAA//EAAP/1AAEALQABAGqAAQCWgAEA1YABAQCAAQFDAAEBfgABAbAAAQH5AAECOgABAoWAAQLVAAEDMAABA32AAQPigAEETIABBIqAAQTPgAEFHAABBViAAQVmgAEFfAABBaeAAQWrgAEFxAABBdsAAQX0gAEGB4ABBheAAQYlgAEGMIABBjwAAQZKgAEGmAABBqUAAQbGAAEG84ABBv+AAQcggAEHLIABBzqAAQeggAEIA4ABCBYAAQgkgAEIOgABCE0AAQhWgAEIYAABCHCAAQiBAAEIkYABCJ2AAQirgAEIuQABCMaAAQjXAAEI4wABCO8AAQksgAEJbYABCXqAAQmIgAEJmgABCacAAQmzAAEJwQABCc4AAQnbAAEJ5wABCfMAAQoAgAEKDgABChoAAQomAAEKMwABCkAAAQpMAAEKWAABCmaAAQpzgAEKgAABCoyAAQqZgAEKpoABCrKAAQq+gAEKygABCtWAAQsiAAELjIABC9mAAQwmgAEMMoABDEEAAQxngAEMwgABDRkAAQ1KAAENjwABDZsAAQ2oAAEN5gABDlIAAQ5oAAEOhoABDtWAAQ7lAAEPAYABDw2AAQ8ZgAEPKAABD0oAAQ9WAAEPYgABD8aAARAZAAEQXAABEJ+AARDqgAERQAABEZcAARHvAAESPYABEpoAARLyAAES9gABE2OAAROtgAET1AABFDYAARQ6AAEUeQABFNqAARUwgAEVXQABFZEAARXUAAEV/oABFhIAARYmAAEWUgABFnuAARaagAEW7oABFyuAARdpAAEXrAABF+IAARgYgAEYPYABGIIAARjmAAEZLYABGWsAARmVgAEZwAABGfKAARocgAEaUgABGnEAARqIgAEa4QABGy4AARuVAAEbxYABHAWAARw8AAEci4ABHLaAARzpAAEdJQABHViAAR2PgAEd2oABHiiAAR5kgAEejAABHsiAAR8kgAEfdwABIBIAASBGgAEgc4ABIKcAASDkAAEhM4ABITeAASGEgAEhyQABIc0AASIQAAEiXAABInEAASLOAAEjGAABI10AASPJgAEkToABJPOAASViAAElrQABJiUAASaVgAEm+gABJy0AASeUAAEnsYABJ90AASgUAAEoNwABKF+AASiIAAEowQABKQ8AASmmAAEp+AABKfwAASoAAAEqGIABKjAAASpIgAEqcAABKpYAASrXAAErEoABKxaAASsagAErQQABK2eAASt2gAErlYABK7KAASvIAAEr1QABK/aAASwZgAEsN4ABLE8AASx1gAEsmgABLLoAASzagAEs/4ABLQyAAS0lAAEtUYABLcMAAS3RAAEuSAABLo0AAS6RAAEunoABLq+AAS7AgAEu0YABLt8AAS7rgAEu/AABLyMAAS84gAEvYgABL4AAAS+hgAEvvYABL9YAAS/3gAEwD4ABMCoAATBHAAEwYwABMHqAATCkAAEwygABMOUAATEJAAExIIABMTwAATFmAAExkQABMbaAATHRAAEx8YABMgqAATI1gAEyY4ABMo6AATKyAAEyyQABMuQAATL5gAEzGgABMzmAATNbAAEzfgABM5SAATOvgAEzy4ABM+eAATQDgAE0JIABNEiAATRiAAE0gIABNJ+AATS9gAE05wABNQ4AATUyAAE1SYABNXEAATWQAAE1tIABNd0AATYHgAE2LYABNkSAATZaAAE2dAABNp2AATbHgAE2+gABNyOAATc8AAE3UgABN2oAATeNgAE3rwABN9KAATfqgAE4A4ABOB4AATg4AAE4UgABOHGAATiTgAE4uIABONOAATjtgAE5BoABOTCAATlfAAE5ioABOa4AATnFgAE54IABOfyAATomAAE6UIABOoEAATqpgAE6woABOuaAATsDAAE7JwABO0aAATtlgAE7gIABO6QAATu7AAE70oABO/QAATwTAAE8LQABPEYAATxbAAE8doABPJCAATywAAE8zYABPOwAAT0MAAE9IwABPTyAAT1VgAE9fYABPaYAAT3TgAE9/4ABPhaAAT40gAE+TAABPm6AAT6UgAE+uIABPtIAAT7pgAE/DQABPymAAT9OgAE/dIABP5CAAT+sgAE/yoABP+IAAT/6AAFAGIABQC8AAUBHAAFAXYABQHSAAUCOgAFAsgABQL+AAUDNgAFA8IABQPsAAUELgAFBMIABQWwAAUGQAAFBnYABQbGAAUHOAAFB+QABQh2AAUIzgAFCSgABQmAAAUJ2gAFCl4ABQrkAAULiAAFDDAABQxuAAUM3gAFDXIABQ4KAAUOoAAFD0oABQ98AAUPzAAFECAABRBmAAURCgAFEZQABRIaAAUSegAFEr4ABRMMAAUTrAAFFDwABRTcAAUVggAFFigABRbsAAUXHgAFF0gABRfOAAUYfgAFGLAABRjYAAUZpgAFGgQABRqeAAUa7AAFG1IABRv6AAUcaAAFHM4ABR1aAAUdzAAFHkIABR72AAUfUAAFH8AABR/8AAUgTgAFINQABSE0AAUh2AAFIrgABSPgAAUlcAAFJcwABSYiAAUpSAAFKeIABSo+AAUqhgAFK/QABS1GAAUtjAAFLpoABS8yAAUwQAAFMUoABTHsAAUy1AAFM2YABTQCAAU09AAFNfQABTZwAAU29gAFNz4ABThuAAU5qgAFOo4ABTreAAU7EgAFPAAABT0oAAU+wgAFP/IABUEIAAVBzAAFQugABUNWAAVD6gAFRTwABUXyAAVHXAAFSIwABUm+AAVK6gAFS5YABUxcAAVNLgAFTogABVAIAAVROAAFUlQABVQOAAVVYAAFVkwABVcoAAVX6gAFWWQABVq0AAVaxAAFWtQABVrkAAVbnAAFXFIABVyOAAVcxAAFXPwABV0yAAVexgAFYNoABWHEAAVi2gAFZFIABWXAAAVmegAFZzwABWggAAVpGgAFargABWwMAAVt+gAFb8AABXGcAAVzNAAFdBwABXT4AAV2QAAFd8IABXiqAAV5xAAFegYABXpQAAV7rgAFfSwABX6eAAV/lgAFgXYABYM2AAWDugAFg+oABYQ2AAWE/gAFhc4ABYdiAAWH6gAFiFIABYikAAWI9gAFiqgABYzYAAWODgAFj/AABZDMAAWR5gAFk5IABZWeAAWWoAAFl4wABZl+AAWbhgAFnPIABZ52AAWf1gAFoUQABaHSAAWiYgAFo3wABaSIAAWmMAAFp4oABal6AAWrRAAFq9gABax0AAWtCgAFrZIABa54AAWvUAAFsOoABbJ8AAW0CgAFtS4ABbU+AAW1bgAFtZ4ABbcYAAW4ugAFuWQABbpGAAW7BgAFu7AABbxKAAW9LAAFveoABb7GAAXAkAAFwcoABcJWAAXChgAFwrYABcLqAAXDHgAFwy4ABcM+AAXDbgAFw54ABcPSAAXEBgAFxDoABcRuAAXEogAFxNYABcZQAAXGYAAFxpAABcbAAAXG+AAFxywABcdgAAXHlAAFx8gABcf8AAXIMAAFyGgABcieAAXIzgAFyQ4ABclGAAXJjgAFydQABcoIAAXKPAAFynYABcquAAXLTgAFy14ABcywAAXOeAAF0B4ABdHIAAXTFAAF1CoABdU4AAXWTgAF10gABdgwAAXZUgAF2k4ABdsmAAXcFgAF3NIABd2GAAXeTgAF3swABd9oAAXfpAAF4AgABeEQAAXhTgAF4fwABeJoAAXipAAF4uIABeNUAAXkQAAF5MAABeVAAAXlgAAF5i4ABeZuAAXm4AAF53gABee0AAXoLgAF6IYABelAAAXpfAAF6boABeq4AAXrSgAF64wABeyqAAXt1AAF77YABfF4AAXyrgAF89wABfTcAAX1BAAF9SwABfViAAX1lAAF9cAABfXoAAX2EAAF9j4ABfacAAX3CgAF90IABfd6AAX3qgAF99AABfgEAAX4OgAF+GAABfiGAAX4tAAF+OIABfkOAAX5hAAF+awABfoOAAX6NAAF+loABfqAAAX6pgAF+tYABfsGAAX7NgAF+3AABfugAAX71gAF/AYABfw4AAX8XgAF/IQABfy4AAX87gAF/R4ABf1OAAX9dAAF/ZoABf3AAAX97gAF/iIABf6oAAX+7AAF/yYABf9aAAX/ngAF/9gABgASAAYAOAAGAGIABgCuAAYA8AAGARYABgFEAAYBagAGAZAABgHQAAYCAgAGAjIABgJiAAYCiAAGAq4ABgLeAAYDDgAGAzQABgNaAAYDgAAGA6YABgPMAAYD8gAGBBoABgSiAAYEzAAGBUAABgVoAAYF3gAGBgYABgZoAAYGmgAGBswABgb8AAYHNAAGB2YABgeUAAYHzgAGB/YABghWAAYImAAGCMgABgj0AAYJJAAGCVQABgl8AAYJpAAGCcwABgouAAYKVgAGCrQABgr4AAYLPAAGC2wABguiAAYLyAAGC/AABgwWAAYMPgAGDGQABgyMAAYMtAAGDN4ABg0EAAYNKgAGDVAABg2CAAYNqgAGDjAABg5aAAYOxAAGDvQABg8kAAYPSgAGD3AABg/IAAYP+AAGEDQABhBeAAYQjgAGEL4ABhDyAAYRJgAGEVYABhGWAAYR0AAGEhgABhI+AAYSZAAGEooABhKwAAYS1gAGExYABhNWAAYTkgAGE8IABhPyAAYUIgAGFFIABhSKAAYUwgAGFQIABhVCAAYVfAAGFbYABhXyAAYWMAAGFnoABhbEAAYXCgAGF1AABheSAAYX1AAGGAQABhg0AAYYaAAGGJwABhjWAAYZEAAGGVwABhmoAAYaAAAGGlgABhqwAAYbDgAGGz4ABhtuAAYbpAAGG9oABhwQAAYcTAAGHIAABhy0AAYdCAAGHVwABh2wAAYeBAAGHlgABh6sAAYfBAAGH1wABh+KAAYfuAAGH+oABiAcAAYgYgAGIKgABiDaAAYhDAAGIV4ABiG2AAYh+gAGIj4ABiKCAAYixgAGIxoABiNuAAYjngAGI84ABiQEAAYkOgAGJHgABiS+AAYlEgAGJVwABiWuAAYmAAAGJmAABibAAAYm8AAGJyIABidcAAYnlgAGJ+gABig8AAYohgAGKM4ABikQAAYpegAGKcgABioUAAYqRgAGKngABiqsAAYq4AAGKxYABitMAAYrigAGK8AABivyAAYsLgAGLIQABizaAAYtOAAGLZYABi3sAAYuQgAGLnYABi6mAAYu6gAGLyAABi9QAAYvlAAGL9IABjAKAAYwQgAGMHgABjC0AAYw5AAGMSAABjFgAAYxpgAGMfAABjI8AAYyiAAGMt4ABjM0AAYzggAGM9AABjQeAAY0bgAGNMoABjUmAAY1fgAGNdYABjYqAAY2fgAGNsAABjcCAAY3SgAGN5IABjfaAAY4KAAGOGwABjiwAAY5FgAGOXwABjniAAY6SAAGOq4ABjsUAAY7fgAGO+gABjwwAAY8eAAGPMAABj0IAAY9VAAGPaAABj30AAY+QAAGPoQABj7SAAY/OgAGP6IABkASAAZAggAGQOoABkFSAAZBkgAGQdAABkIaAAZCRAAGQooABkLCAAZDEAAGQ0AABkNwAAZDrAAGQ+AABkQGAAZEWgAGRJgABkTsAAZF0gAGRvoABkc8AAZHYgAGR7gABkfoAAZIKgAGSHIABkjAAAZJCgAGSVoABkmAAAZKaAAGS0wABkyeAAZMzAAGTPoABk2OAAZOFAAGTkIABk7MAAZO/AAGTywABk96AAZPyAAGUKwABlGIAAZSzAAGUvwABlMsAAZTwgAGVEoABlR6AAZUqgAGVNoABlVqAAZVmgAGVcoABlYcAAZWZAAGVroABldQAAZX6AAGWFwABliuAAZY2AAGWS4ABlliAAZZrAAGWeQABlo0AAZacgAGWr4ABlrkAAZbYAAGW7IABlzEAAZezgAGYIIABmIEAAZjdgAGZhgABmjoAAZqqAAGa+4ABm5IAAZvigAGcaAABnHyAAZyQgAGcpgABnLuAAZzUAAGc/IABnZAAAZ35AAGefAABnsMAAZ8wAAGfkIABn8CAAZ/5AAGgEwABoCuAAaBJAAGgYwABoI4AAaCqAAGgzgABoRMAAaFEAAGhVwABoXyAAaGngAGh0IABofsAAaINgAGiHgABojuAAaJVgAGieYABoqUAAaK/gAGi2IABovIAAaMggAGjRgABo12AAaNoAAGjcoABo3aAAaN6gAGjqwABo+wAAaRugAGkxAABpMgAAaT0AAGlLQABpUUAAaVJAAGlYAABpXeAAaW/gAGl+wABpf8AAaYDAAGmBwABpgsAAaZEgAGmhIABpvqAAadpgAGnqwABp8mAAafoAAGoFIABqBiAAahcAAGoYAABqGQAAaiUgAGo4YABqRyAAakggAGpJIABqSiAAamCAAGp3QABqigAAaosAAGqMAABqjQAAao4AAGqcIABqnSAAarNAAGrD4ABq08AAaudAAGr0YABq/EAAawQgAGsWIABrHeAAayKgAGsrYABrPKAAa0HgAGtWAABrYgAAa27AAGt+IABrjsAAa5ngAGuwQABrtqAAa8LgAGvjAABr++AAbBPAAGwmwABsUeAAbGYAAGx44ABskGAAbKfgAGy/4ABs2MAAbPPgAGz6wABtEQAAbSSAAG00wABtSCAAbVtAAG1oQABtdUAAbYsAAG2YoABtoqAAbbLgAG3FgABt1WAAbe1gAG4EAABuF+AAbi9gAG5EIABuUkAAbljAAG5i4ABubOAAbnzAAG6TQABupuAAbsAgAG7UwABu4wAAbumAAG754ABvA+AAbw/AAG8aoABvHqAAbzlgAG9GgABvUuAAb2VgAG9/YABvkCAAb5WgAG+vIABvuAAAb7kgAG+8IABvvyAAb8KgAG/GIABvyYAAb81AAG/QoABv1GAAb+tAAG/v4ABv+YAAcAMAAHAKoABwEuAAcBlAAHAkAABwKMAAcDrAAHBGIABwU4AAcFcAAHBa4ABwYiAAcHHAAHCDoABwk8AAcJfgAHCfwABwpqAAcKegAHCooABwqaAAcKqgAHCroABwrKAAcK2gAHCuoABwr6AAcLCgAHCxoABwsaAAcMngAHDK4ABw2IAAcOTgAHD4QABxF6AAcTfAAHFXgABxeuAAcZrgAHGhoABxssAAccvgAHHhYABx7IAAcfDAAHH6oAByDaAAchKgAHIcAAByL8AAcjDAAHJMIAByX2AAcmRgAHJpwAByb0AAcnNgAHJ3YAByf8AAcoPAAHKS4ABym8AAcp8gAHKmwAByrkAAcrNAAHLEAABy02AAct4AAHLgoABy40AAcuXgAHLogABy6oAAcuyAAHLuYABy8EAAcvTgAHL5gABy/YAAcwGAAHMDgABzBYAAcwdgAHMJQABzDuAAcxSAAHMWYABzGEAAcxyAAHMgwABzJQAAcylAAHMugABzM8AAcziAAHM9QABzQSAAc0VgAHNKYABzT2AAc1UAAHNa4ABzXYAAc2AgAHNpwABzc2AAc3egAHN74ABzjUAAc45AAHOSwABzl0AAc5xgAHOhgABzqCAAc61gAHOyIABzuAAAc8CgAHPG4ABzyyAAc8/AAHPWQABz2uAAc97gAHPjYABz5yAAc+rgAHPuoABz8kAAc/ZgAHP6gABz/oAAdAKAAHQHIAB0C8AAdBEgAHQWoAB0G4AAdCBgAHQkgAB0KWAAdC2AAHQyIAB0NkAAdDqAAHRAQAB0RgAAdErAAHRPgAB0VCAAdFjAAHRcoAB0YIAAdGKAAHRkgAB0ZmAAdGhAAHRx4AB0e4AAdIjAAHSWAAB0mAAAdJoAAHScAAB0ngAAdLPgAHS04AB0w4AAdMSAAHTH4AB0y0AAdM7gAHTSgAB01kAAdNoAAHTeYAB04sAAdPkgAHUUgAB1KUAAdUUgAHVcgAB1dwAAdYoAAHWaYAB1vEAAddCAAHXp4AB2AmAAdgpAAHYegAB2PwAAdkhAAHZRgAB2ZsAAdnlgAHaRAAB2pQAAdrvAAHbKoAB250AAdwCAAHcIoAB3G8AAdypgAHdA4AB3TwAAd2pgAHd5gAB3j6AAd6NgAHeyoAB3zuAAd+dgAHgBoAB4F+AAeDGgAHhNgAB4ZeAAeG+gAHiG4AB4lgAAeKSAAHi8gAB40aAAeOOgAHj9IAB5GoAAeTNgAHk+AAB5SWAAeWSAAHluwAB5d6AAeXxgAHmBIAB5iKAAeZaAAHmeIAB5qEAAea2AAHnDwAB51oAAeeegAHn3wAB6BEAAehuAAHovgAB6UeAAelyAAHpvIAB6f2AAeplgAHqoIAB6t8AAesegAHrWAAB656AAewNAAHseIAB7NQAAezyAAHtDwAB7VaAAe13gAHtuAAB7hsAAe55AAHuxoAB7wkAAe9mgAHv0IAB8E0AAfDIgAHxOgAB8VcAAfGDAAHxsIAB8dyAAfIMAAHySoAB8ouAAfLKAAHzDQAB8y8AAfNSgAHzdIAB85mAAfPQgAH0DgAB9EcAAfSEgAH0qYAB9NiAAfT9gAH1LQAB9WkAAfWrAAH16oAB9i+AAfZ4AAH2vQAB9w0AAfdbgAH3pAAB9+kAAfg6AAH4jwAB+RQAAfmAgAH5rYAB+fSAAfoqAAH6doAB+q4AAfsTAAH7QYAB+2iAAfulAAH73wAB/BoAAfw5gAH8eAAB/MeAAf0SgAH9H4AB/TCAAf00gAH9XIAB/YUAAf3CgAH9/YAB/jQAAf5qAAH+wYAB/xmAAf9BAAH/ZoAB/3YAAf+GAAH/lYAB/6WAAf+8AAH/0gAB/+iAAgABgAIAJIACAKOAAgC3gAIBAoACASQAAgFEAAIBeoACAbCAAgHxgAICbIACArKAAgLOgAIC8oACAyMAAgNXgAIDcoACA5IAAgPnAAID+IACBAoAAgRDAAIEUgACBGmAAgR5AAIEhYACBJaAAgSnAAIEswACBOmAAgUbgAIFVIACBXOAAgWHAAIFqYACBd8AAgX9AAIGK4ACBlgAAgZqgAIGn4ACBswAAgbiAAIG5gACBuoAAgbuAAIG8gACB04AAgdSgAIHiwACB7SAAgf3AAIIOgACCEsAAghcAAIIaQACCHYAAgiKAAIIngACCLKAAgjHAAII24ACCPEAAgk0gAIJfoACCd6AAgpGAAIKtgACCvKAAgs3AAILigACC6AAAgvnAAIMEYACDCYAAgxtAAIMyYACDOoAAg0kAAINaAACDYWAAg3SgAIOFQACDhkAAg4dgAIOIYACDiWAAg4pgAIOLYACDjGAAg41gAIOOYACDj2AAg6OAAIO1YACDvkAAg83gAIPWwACD3EAAg+fAAIP+gACEDMAAhBFAAIQZ4ACEIMAAhDDgAIQ1oACEQiAAhFKAAIRi4ACEaGAAhG9AAIRwQACEgEAAhI6gAISc4ACEpYAAhK1gAISzgACEwYAAhMdgAITKgACE0QAAhNvgAITgYACE74AAhPlgAIUGwACFEAAAhShAAIU0QACFSmAAhU6gAIVaAACFZcAAhYFgAIWQYACFmEAAhaGAAIWswACFvoAAhccAAIXgAACF6QAAhfRAAIYHYACGCmAAhg1gAIYQYACGE2AAhhagAIYZwACGHCAAhh8gAIYiIACGJSAAhihgAIYrQACGLiAAhjEAAIY0IACGNyAAhjogAIY9IACGQCAAhkMgAIZGYACGSWAAhkxgAIZPYACGUqAAhlWgAIZYoACGW6AAhl4AAIZhAACGZAAAhmcAAIZqAACGbQAAhm4AAIZxAACGdAAAhncAAIZ5YACGfGAAhn9gAIaCYACGhMAAhofAAIaKwACGlGAAhpdAAIaaIACGnQAAhp9AAIaiIACGpIAAhqeAAIap4ACGrMAAhq8gAIaxgACGs+AAhrbgAIa5QACGvEAAhsmAAIbMgACGz4AAhtLAAIbVwACG2CAAhtsgAIbeIACG4SAAhuOAAIbmgACG6OAAhutAAIbtoACG8KAAhveAAIb6gACG/YAAhwCAAIcDwACHBwAAhwlgAIcMYACHD2AAhxJgAIcVoACHGKAAhxvgAIce4ACHIeAAhyTgAIcn4ACHLGAAhy9gAIcyYACHM2AAhzRgAIc4QACHQqAAh0OgAIdEoACHRaAAh1UAAIdWAACHVwAAh1/gAIdg4ACHYeAAh2lAAIdqQACHbuAAh2/gAId64ACHe+AAh3zgAIeMYACHjWAAh5mAAIeqQACHrUAAh7BAAIezQACHtiAAh7kgAIe8IACHvyAAh8JAAIfFgACHyMAAh9VgAIfYYACH5eAAh+bgAIfn4ACH6wAAh+wAAIf6AACIBaAAiA7gAIgR4ACIFOAAiBrgAIgb4ACIJYAAiCaAAIgngACIMmAAiDNgAIhOwACIYCAAiGqAAIhtgACIgAAAiIgAAIiJAACIigAAiIsAAIiPoACIkKAAiJGgAIiSoACIneAAiK5gAIivYACItgAAiL3AAIjDgACIyqAAiNPAAIjeoACI54AAiPWAAIkDwACJEIAAiRXAAIkXoACJGWAAiRsgAIkc4ACJHsAAiSCAAIkiYACJJCAAiSYgAIkoAACJKeAAiSvAAIktoACJMKAAiTOgAIk2oACJOaAAiTzgAIlAIACJQyAAiUYgAIlIgACJTeAAiU7gAIlR4ACJVOAAiVfgAIlbIACJXiAAiWEgAIlkIACJZoAAiWmAAIlqgACJbcAAiXDAAIlzwACJdiAAiXkgAIl8IACJfyAAiYJgAImFYACJiGAAiYtgAImOoACJkeAAiZRAAImXQACJmkAAiZ1AAImggACJo4AAiaaAAImo4ACJq+AAiazgAImv4ACJsyAAibQgAIm3YACJumAAibygAIm/YACJwcAAic0gAInQIACJ0yAAidYgAInZYACJ3GAAid9gAInhwACJ5MAAiecgAInqIACJ7SAAifAgAInzIACJ9mAAifmgAIn8oACJ/6AAigIAAIoIQACKCqAAig2gAIoP4ACKEqAAihUAAIoWAACKGEAAihqAAIodQACKJGAAiidgAIoqYACKLaAAijCgAIpKYACKTEAAik4AAIpPwACKUcAAincAAIqK4ACKnkAAirugAIrLgACK3sAAiuQgAIrsYACK+EAAiwXAAIsQoACLGYAAiyXgAIstgACLNuAAi0FAAItNgACLWaAAi2OgAItxgACLfaAAi4QgAIuaQACLnWAAi6lAAIu3AACLwOAAi8yAAIvYAACL24AAi98AAIvjIACL50AAi+1AAIv0YACL+yAAjAHgAIwGwACMC6AAjBDAAIwV4ACMGsAAjB+gAIwioACMJaAAjCigAIwroACMLoAAjDFAAIw0AACMNuAAjDmgAIw8YACMPkAAjEAgAIxC4ACMRaAAjEeAAIxJYACMTKAAjFGgAIxX4ACMXiAAjGEAAIxj4ACMZqAAjGlgAIxsIACMbwAAjHHAAIx0oACMd2AAjHogAIx+AACMgeAAjIUAAIyIIACMi0AAjI5gAIyRgACMlKAAjJfAAIya4ACMnkAAjKGgAIylYACMqSAAjKwAAIyu4ACMsaAAjLRgAIzQ4ACNPOAAjbbgAI3tIACOGSAAjipgAI41gACOOiAAjkagAI5LIACOTKAAjmFgAI5i4ACOZGAAjmggAI5r4ACOb6AAjnNgAI53gACOe6AAjn/AAI6DwACOhoAAjolAAI6LIACOjQAAjpBgAI6TwACOlaAAjpeAAI6awACOngAAjp/gAI6hwACOouAAjqdAAI6ugACOtGAAjr3AAI6+wACOySAAjtbAAI7mQACO/UAAjwhAAI8w4ACPQAAAj08AAI9cQACPa+AAj3ygAI+SAACPoWAAj7CAAI+/QACPzkAAj9ugAI/pYACP7wAAj/SgAI/9AACQBcAAkBDgAJAaAACQMQAAkDXAAJA8wACQTeAAkGBgAJBuwACQfkAAkIpAAJCVgACQooAAkLaAAJC+wACQz+AAkNZAAJDcgACQ4cAAkPiAAJECgACRBMAAkT4AAJF+IACRscAAkc/gAJHm4ACR6GAAkengAJHrYACR7OAAke5gAJHvgACR8QAAkfIgAJH4gACR+YAAkfqgAJH8IACR/UAAkf7AAJH/wACSASAAkgJAAJIDwACSBOAAkgZgAJIHgACSCKAAkgnAAJIK4ACSDAAAkg+gAJIQwACSEeAAkhLgAJIUAACSJ8AAkjtAAJI8QACSVEAAklVAAJJtoACSbqAAknAgAJJxoACScyAAknSgAJJ2IACSd6AAkpWgAJKWoACSmAAAkrJAAJKzQACSxMAAksZAAJLHwACSyUAAksrAAJLMwACSzsAAktDAAJLSwACS1EAAktXAAJLXQACS2MAAktrAAJLcwACS3qAAkuCAAJLigACS5IAAkuZgAJLnwACS+qAAkvugAJMKQACTC0AAkwzAAJMOQACTD8AAkxFAAJMTQACTFMAAkxagAJMYgACTGoAAkxwAAJMd4ACTH8AAkzCgAJMxoACTMyAAkzSgAJNJgACTSoAAk1MgAJNhQACTYmAAk3MgAJONYACTjoAAk5EAAJOVYACTnqAAk5/AAJOg4ACTogAAk6OgAJOlQACTpuAAk6gAAJO3AACTuKAAk7pAAJO+4ACTw4AAk8SgAJPFwACTxyAAk8kgAJPKoACTzEAAk+dAAJP9oACT/qAAlAAgAJQBoACUAyAAlASgAJQFoACUB0AAlA2gAJQXoACUJIAAlDEAAJQygACUNAAAlDWAAJQ3AACURsAAlEhAAJRJwACUWgAAlGCAAJRmQACUaYAAlHBAAJR1IACUdqAAlIXgAJSN4ACUlyAAlJ7gAJSmoACUsWAAlLZAAJS9gACUyWAAlNKAAJTZwACU2sAAlONAAJTwYACU9yAAlP8AAJUQAACVFyAAlSJAAJUpIACVNYAAlTzAAJVJIACVT2AAlVrAAJVjoACVcQAAlXiAAJV+wACVhkAAlYdAAJWN4ACVm+AAlZ/gAJWrQACVtmAAlb+gAJXM4ACV0SAAldXgAJXYoACV3mAAleHAAJXowACV7OAAlfaAAJX+4ACWCSAAlhEgAJYZoACWI8AAlijgAJYwgACWPSAAlkYAAJZM4ACWUKAAllvAAJZmoACWbWAAlnQAAJaBIACWiKAAlpUAAJacoACWocAAlqjgAJayIACWuMAAlsLAAJbMoACW1+AAluFgAJboIACW76AAlvogAJcBAACXAgAAlwWgAJcQIACXHAAAlyZgAJc0wACXPCAAlz0gAJdCIACXXyAAl3zAAJeIQACXlKAAl6NgAJewYACXvmAAl8/AAJfbYACX/CAAmAKAAJgE4ACYBuAAmAjgAJgKwACYDKAAmBGAAJgTAACYFIAAmBYAAJgXgACYGQAAmBqAAJgpAACYOwAAmEZAAJhVAACYX+AAmGhAAJhqQACYbEAAmHGAAJhygACYeSAAmH/AAJiLQACYlkAAmKCgAJiq4ACYsUAAmLeAAJjKwACY0oAAmNwAAJjoAACY8qAAmPzgAJkUIACZIQAAmSKAAJkkAACZJYAAmScAAJkogACZKgAAmStgAJkswACZNkAAmT2gAJlE4ACZSSAAmU1AAJlUgACZXQAAmWigAJl3QACZgoAAmYOgAJmKYACZi4AAmZSAAJmVoACZlqAAmZegAJmiAACZvkAAmctAAJngAACZ6aAAmfzAAJoEIACaFSAAmh8AAJoyIACaPEAAmlAAAJpbIACaZUAAmmvgAJpygACaekAAmoHgAJqLYACalKAAmpjAAJqcYACaoMAAmqSAAJqvYACaukAAmsjgAJrWwACa5sAAmvWgAJr/oACbCsAAmxYgAJsiAACbL4AAmz0gAJtMwACbWCAAm2sAAJt5oACbgsAAm4sgAJuV4ACblwAAm54gAJukwACbsCAAm7ggAJvHwACb1sAAm+EAAJvr4ACb9iAAnAFgAJwFIACcCOAAnBPAAJwVgACcIGAAnCtAAJw3wACcOYAAnEKgAJxN4ACcUkAAnF2gAJxmYACcbeAAnHigAJyFQACckeAAnJtgAJymIACcrOAAnLOAAJy/gACcy4AAnMygAJzPgACc0aAAnNugAJzkwACc6kAAnO+AAJz3gACc/4AAnQOAAJ0RAACdFgAAnR2AAJ0pYACdNAAAnUCAAJ1J4ACdWaAAnWegAJ1u4ACdd2AAnYVgAJ2SwACdn0AAnasgAJ22AACdwIAAndBAAJ3iAACd66AAnfUAAJ3/IACeCeAAnhiAAJ4hQACeMkAAnkFAAJ5IIACeSSAAnlXAAJ5g4ACeZiAAnmmAAJ504ACefcAAnoqgAJ6LoACel6AAnpigAJ6a4ACeoYAAnq/gAJ65oACevcAAnsXgAJ7MQACezoAAntmAAJ7mwACe/CAAnwcgAJ8SoACfHuAAnx/gAJ8w4ACfOoAAnz8AAJ9HwACfVsAAn2MAAJ9yQACffUAAn4tgAJ+ZQACfqUAAn72AAJ/OIACf3KAAn+/gAJ/1gACgAaAAoAbgAKAPIACgGkAAoCggAKAuQACgOQAAoDoAAKBBIACgSmAAoFUAAKBfgACgaeAAoGrgAKB4oACggoAAoI5gAKCUQACgoCAAoKiAAKCwYACgtyAAoL9AAKDI4ACg1KAAoN5AAKDlYACg8QAAoQDgAKEOwAChF4AAoRiAAKElwAChKiAAoSwgAKEuIAChMAAAoTHgAKEz4AChNeAAoTfAAKE5oAChOyAAoTygAKFJoAChSqAAoUwgAKFNoAChT6AAoVEgAKFTAAChVOAAoVXgAKFW4AChWEAAoVmgAKFaoAChW6AAoV0gAKFeoAChX6AAoWCgAKFiIAChY6AAoW1AAKF2wAChfkAAoaDgAKGvYAChvMAAocvgAKHNgAChzyAAofWAAKIhQACiRAAAomLgAKJ3YACimaAAoqFAAKKpQACitKAAouKgAKMFwAAgEAAAAFAAUAAAMABwBCtAIB5AYHuAKZQBMABQTkAwAKBwTkAQAZCAYF5AIDvAIxAAkBmQEuABgrEPY8/TxOEPQ8Tf08AD88/TwQ/Dz9PDEwIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgCw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prRIKwEBBbkCIgApACsBK10rKzX////vAAACaAXCAiYA1QAAAQYA1tYAABZACgEABgkBAkEBAQq5AiIAKQArASs1//8ACQAAAjoFwwImANUAAAEGAI7MAAAfQBECAQggCwsGVQgCAEgrAQICC7kCIgApACsBKys1NQD//wCHAAAD5gWqAiYAUQAAAQcA1wD/AAAANbMBAQEmuQIiACkAKwGxBgJDVFi1ABcjAQtBKxu5ACj/wLciJDRPKAEoErj/4rFIKytdK1k1AP//AET/6AQnBcICJgBSAAABBwCNAPQAAAAbQA4C4B3wHQIdBABIKwIBHbkCIgApACsBK101AP//AET/6AQnBcICJgBSAAABBwBDAN4AAAAmsQIbuP/AQBELDTQPGwFwGwEbBABIKwIBG7kCIgApACsBK11xKzX//wBE/+gEJwXCAiYAUgAAAQcA1gDgAAAAIEASAhxALjI0nxwBABwfAAdBAgEguQIiACkAKwErcis1//8ARP/oBCcFwwImAFIAAAEHAI4A4AAAACpACQMCHkAWFgZVHrj/wEANCgsGVR4EbkgrAgMCIbkCIgApACsBKysrNTX//wBE/+gEJwWqAiYAUgAAAQcA1wDgAAAAMEAXAi8rPysCfyv/KwJPK48rAi8rPysCKwS4/+y0SCsCASm5AiIAKQArAStdXV1xNf//AIP/6APgBcICJgBYAAABBwCNAOcAAAAhQBMBHEAOEDQfHE8cAhwRPEgrAQEcuQIiACkAKwErcSs1AP//AIP/6APgBcICJgBYAAABBwBDAQcAAAAVQAoBARoRAEgnAQEauQIiACkAKwErAP//AIP/6APgBcICJgBYAAABBwDWANwAAAApswEBAR+5AiIAKQArAbEGAkNUWLUAGx4LFkErG7ePGQEZESNIKytdWTUA//8Ag//oA+AFwwImAFgAAAEHAI4A3AAAAB1ADwIBcBkBABkfERFBAQICILkCIgApACsBK101NQAAAQBJ/qYEHgWYAAsAfbCFK1hAMwIBCQoKASAECwADBAgHBwRuBgUACAkGBwcKCgluCyAABQQEAQEAbgNAApACAgI+DHCMGCsQ9F089DwQPBA8EP3kPBA8EDwQPAA/PPQ8EDwQPC88EP08EDwQPDEwG7YFAAUKBwMCuAMxsWwDABgvKzMyMi8vMDFZAREhNSERMxEh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FSMlMxUjJTMVIwUzFSMlMxUjJTMVIwczFSMlMxUjJTMVIxczFSMlMxUjJTMVI2Z9fQHyfX0B8319/RR9fQHzfHwB8n19+X19/g19ff4OfX0E3n19/g58fP4NfX35fX0B8n19AfN9ffl9ff4OfHz+DX19+X19AfJ9fQHzfX39FH19AfN8fAHyfX35fX3+DX19/g59ffl9fQHzfHwB8n19B0h9fX19fXx9fX19fXx9fX19fX18fHx8fH19fX19fXx9fX19fXx9fX19fX18fHx8fH19fX19fXx9fX19fQA8/+r+CAXBB0gAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwBDAEcASwBPAFMAVwBbAF8AYwBnAGsAbwBzAHcAewB/AIMAhwCLAI8AkwCXAJsAnwCjAKcAqwCvALMAtwC7AL8AwwDHAMsAzwDTANcA2wDfAOMA5wDrAO8AAjEwEzMVIzczFSM3MxUjNzMVIzczFSM3MxUjBTMVIzczFSM3MxUjNzMVIzczFSM3MxUjBTMVIzczFSM3MxUjNzMVIzczFSM3MxUjBTMVIzczFSM3MxUjNzMVIzczFSM3MxUjBTMVIzczFSM3MxUjNzMVIzczFSM3MxUjBTMVIyUzFSM3MxUjNzMVIzczFSMlMxUjBTMVIyczFSMnMxUjJzMVIyczFSMnMxUjBzMVIzczFSM3MxUjNzMVIzczFSM3MxUjFzMVIyczFSMnMxUjJzMVIyczFSMnMxUjBzMVIzczFSM3MxUjNzMVIzczFSM3MxUjZ3x8+Xx8+X19+X19+nx8+Xx8+qV9ffl9ffl9ffp8fPl9ffl9ffuffHz5fHz5fX35fX36fHz5fHz6pX19+X19+X19+nx8+X19+X19+598fPl8fPl9ffl9ffp8fPl8fPqlfX0B8n19+nx8+X19+X19/Bt9fQRifHz5fHz6fX35fX35fHz5fHx9fX35fX35fX36fHz5fX35fX19fHz5fHz6fX35fX35fHz5fHx9fX35fX35fX36fHz5fX35fX0HSH19fX19fX19fX19fH19fX19fX19fX19fH19fX19fX19fX19fXx8fHx8fHx8fHx8fX19fX19fX19fX19fH19fX19fX19fX19fH19fX19fX19fX19fXx8fHx8fHx8fHx8fX19fX19fX19fX19fH19fX19fX19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BQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAA//8ARgTXAbEHWAImAvcAAAAnAvQAAACPAAcC9AAAAScAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAf+6ASUFGwHTAAMAGL0AAgLvAAEC6wAAAvCxBQEvEOQAP+0xMAEhNSEFG/qfBWEBJa4AAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAA//8AOv6ZBbUDwAImBSgAAAAHBTACFQAA//8AOv6ZBbUDwAImBSgAAAAHBTACFQAA////uv6ZAfQDpgImBSkAAAAGBTAAAP///7r+mQH0A6YCJgUpAAAABgUwAAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wA2/k4EIAN1AiYDoQAAAAcFMAF0ATD//wA2/k4ENQNpAiYDogAAAAcFMADsAMD///+6/pkEPQNrAiYDowAAAAcFMADeAAD///+6/pkEPQNrAiYDowAAAAcFMADeAAD//wBK/0YD6QXJAiYDrQAAAAcFLwHgBT3//wBK/0YD6QXJAiYDrQAAAAcFLwHgBT0AAQAUASUGfwXfACwAurkAFv/AQBMQETQJIBARNDsFawUCCSAJDDQquP/gsxARNBK4/+izDxE0Erj/3LMNDjQSuP/wQAoKDDQEAwcSBCwNQQsC7wAMAwsAJQAkAwkAGgAsAu8AHALrswMEAAe4AvO2QBISKAwMAEEJAwAAGwLwAC4AJQL7ACAAJP/AtQkLNCQkKLoDAwAgASqFL/0yGS8rGu0YEPUZ7TMYLxI5LxrtEjk5AD/9PD85P+0RFzkrKysxMAErK10rKwEmJicHJyY1NDc2NyUVBwYHBhUUFxYXFhcWFxUhIicmNTQ3NjcXBgYVFBcWMwYLRrSZIXY+VE6/ARrRfU1iQCgpmHF6SvtV72VsLw0qIiIVc1amAdNqnVsfWjQdrGJaSG6tRikiKxcXMB4ec36Hka45PZNYcB9UFE5UJm0sIQABABQBJQd2Bd8ARQD9uQAq/9azEBE0Ibj/8LMPETQvuP/gsw8RNCy4/+CzDxE0MLj/4LMNETQuuP/gQBUNETQ7G2sbiT0DHyAJDzQTIA8RNA64/+CzEBE0KLj/4LMPETQouP/csw0ONCi4//BACwoMNEEaGR0oBRAjQQwC7wAiAwsACQAIAwkANwAQAu8AOAAAAuuzGRoVHbgC80ANDyhfKAIoKBUMIyM4FbgDA7RAQUEMOL4C8ABHAAkC+wAgAAj/wLUJCzQICAy6AwMABAEqhS/9MhkvKxrtGBDlETkvGu0SOS8REjkvXe0SOTkAPzz9PD85P+0RFzkrKysxMAErKytdKysAKysrKwEiJyY1NDc2NxcGBhUUFxYzITI3NjU0JyYnBycmNTQ3NjclFQcGBwYVFBcWFxYXFhcWFxYXFjMzFSMiJyYnJicmJxQHBiMB1O9lbC8NKiIiFXNWpgGqn2yBMRlIIXY+VE6/ARrRq0Y7QCgpWEc9NSFJLy09LYN7UlosUTELGTNvd+sBJTk9k1hwH1QUTlQmbSwhKTFZQy4YJh9aNB2sYlpIbq1GOiMeEhcwHh5DQTg8JVo5JjOuVClpPw0eMbJkawAAAf+6ASUDJwXfAB0AobkAGf/AQBMQETQMIBARNDsIawgCDCAJDDQVuP/osw8RNBW4/9yzDQ40Fbj/8EAKCgw0BwYKFQQCEL8C7wAPAwsAHQACAu8AAQLrswYHAwq4AvNAFkBvFY8VAg8VLxVfFQMgFQEVFQEPDwO+AwAAIAAAAvAAHwABASqFLxD0GhntMxgvEjkvXV1dGu0SOTkAP/08P+0RFzkrKysxMAErXSsrASE1ISYmJwcnJjU0NzY3JRUHBgcGFRQXFhcWFxYXAyf8kwL5RrSZIXY+VE6/ARrRfU1iQCgpmHF6SgElrmqdWx9aNB2sYlpIbq1GKSIrFxcwHh5zfoeRAAH/ugElBB4F3wA2ANy5AC//1rMNETQmuP/wsw0RNDS4/+CzDxE0Mbj/4LMNETQ1uP/gsw0RNDO4/+BAHw0RNFQrVDICRCtEMgI7IGsgiQsDJCAJDzQYIA8RNC24/+CzDxE0Lbj/3LMNDjQtuP/wQA4KDDQALQEPHx4iLQUVKEEJAu8AJwMLAAUAFQLvAAYAFALrsx4fGiK4AvNACw8tAS0tGhQoKAYauAMDsw8PFAa7AvAAOAAUASqFLxDlETkv7RI5LxESOS9d7RI5OQA/PP08P+0RFzldKysrMTABKytdXV0rKwArKysrARYXFjMzFSMiJyYnJicmJxQHBiMjNTMyNzY1NCcmJwcnJjU0NzY3JRUHBgcGFRQXFhcWFxYXFgLVLy09LYN7UlosUTELGTNvd+tnbJ9sgTEZSCF2PlROvwEa0X1NYkAoKVhHPTUhAmU5JjOuVClpPw0eMbJka64pMVlDLhgmH1o0HaxiWkhurUYpIisXFzAeHkNBODwlAAIAFAElBn8G8AAsADcA8UAQMAgTFTQvIAoLNDYgCgs0Frj/wEATEBE0CSAQETQ7BWsFAgkgCQw0Krj/4LcQETQzDTIMLbgC77YPLgEuLgwSuP/osw8RNBK4/9yzDQ40Erj/8EAKCgw0BAMHEgQsDUELAu8ADAMLACUAJAMJABoALALvABwC60AJLgwyMgcDBAAHuALztkASEigMDABBCQMAABsC8AA5ACUC+wAgACT/wLUJCzQkJCi6AwMAIAEqhS/9MhkvKxrtGBD1Ge0zGC8SOS8a7RI5OREzLxA8AD/9PD85P+0RFzkrKysRMy9d7REzEjkxMAErK10rKwArKysBJiYnBycmNTQ3NjclFQcGBwYVFBcWFxYXFhcVISInJjU0NzY3FwYGFRQXFjMBFQYHBgc1NjY3NgYLRrSZIXY+VE6/ARrRfU1iQCgpmHF6SvtV72VsLw0qIiIVc1amBErYuKNdIMCGlgHTap1bH1o0HaxiWkhurUYpIisXFzAeHnN+h5GuOT2TWHAfVBROVCZtLCEFHalPWU4/aiR+Rk8AAgAUASUHdgbwAEUAUAEzQBBJCBMVNEggCgs0TyAKCzQquP/WsxARNCG4//CzDxE0L7j/4LMPETQsuP/gsw8RNDC4/+CzDRE0Lrj/4EAVDRE0OxtrG4k9Ax8gCQ80EyAPETQOuP/gtxARNEwjSyJGuALvtg9HAUdHIii4/+CzDxE0KLj/3LMNDjQouP/wQAsKDDRBGhkdKAUQI0EMAu8AIgMLAAkACAMJADcAEALvADgAAALrQAlHI0tLHRkaFR24AvNADQ8oXygCKCgVDCMjOBW4AwO0QEFBDDi+AvAAUgAJAvsAIAAI/8C1CQs0CAgMugMDAAQBKoUv/TIZLysa7RgQ5RE5LxrtEjkvERI5L13tEjk5ETMvEDwAPzz9PD85P+0RFzkrKysRMy9d7REzEjkxMAErKytdKysAKysrKysrKwEiJyY1NDc2NxcGBhUUFxYzITI3NjU0JyYnBycmNTQ3NjclFQcGBwYVFBcWFxYXFhcWFxYXFjMzFSMiJyYnJicmJxQHBiMBFQYHBgc1NjY3NgHU72VsLw0qIiIVc1amAaqfbIExGUghdj5UTr8BGtGrRjtAKClYRz01IUkvLT0tg3tSWixRMQsZM2936wKl2LijXSDAhpYBJTk9k1hwH1QUTlQmbSwhKTFZQy4YJh9aNB2sYlpIbq1GOiMeEhcwHh5DQTg8JVo5JjOuVClpPw0eMbJkawXLqU9ZTj9qJH5GTwAC/7oBJQMnBwIAHQAoANJADsghASAgCgs0JyAKCzQZuP/AQBcQETQMIBARNDsIawgCDCAJDDQkECMPHrgC77MfHw8VuP/osw8RNBW4/9yzDQ40Fbj/8EAKCgw0BwYKFQQCEL8C7wAPAwsAHQACAu8AAQLrQAkfDyMjCgYHAwq4AvNAFkBvFY8VAg8VLxVfFQMgFQEVFQEPDwO+AwAAIAAAAvAAKgABASqFLxD1GhntMxgvEjkvXV1dGu0SOTkRMy8QPAA//Tw/7REXOSsrKxEzL+0RMxI5MTABK10rKwArK10BITUhJiYnBycmNTQ3NjclFQcGBwYVFBcWFxYXFhcDFQYHBgc1NjY3NgMn/JMC+Ua0mSF2PlROvwEa0X1NYkAoKZhxekph2LijXSDAhpYBJa5qnVsfWjQdrGJaSG6tRikiKxcXMB4ec36HkQUvqU9ZTj9qJH5GTwAAAv+6ASUEHgcCADYAQQEbs8g6AUG4/+BAExARND8gDQ40OSAKCzRAIAoLNC+4/9azDRE0Jrj/8LMNETQ0uP/gsw8RNDG4/+CzDRE0Nbj/4LMNETQzuP/gQCMNETRUK1QyAkQrRDICOyBrIIkLAyQgCQ80GCAPETQ9KDwnN7gC77M4OCctuP/gsw8RNC24/9yzDQ40Lbj/8EAOCgw0AC0BDx8eIi0FFShBCQLvACcDCwAFABUC7wAGABQC60AJOCg8PCIeHxoiuALzQAsPLQEtLRoUKCgGGrgDA7MPDxQGuwLwAEMAFAEqhS8Q5RE5L+0SOS8REjkvXe0SOTkRMy8QPAA/PP08P+0RFzldKysrETMv7REzEjkxMAErK11dXSsrACsrKysrKysrXQEWFxYzMxUjIicmJyYnJicUBwYjIzUzMjc2NTQnJicHJyY1NDc2NyUVBwYHBhUUFxYXFhcWFxYTFQYHBgc1NjY3NgLVLy09LYN7UlosUTELGTNvd+tnbJ9sgTEZSCF2PlROvwEa0X1NYkAoKVhHPTUhOti4o10gwIaWAmU5JjOuVClpPw0eMbJka64pMVlDLhgmH1o0HaxiWkhurUYpIisXFzAeHkNBODwlBEOpT1lOP2okfkZPAAABADL/pwTZA7IAOwCZuQAm/9ZAEw4RNCk0DhE0KjQLETQDBg4hJyBBCQMHAAYC7wA5AwQAJwLvABb/wLMJCzQWvgMNAA4C7wAwAusAMwMMQAkKCiwkAxIAACy4Av20QBISPSG7AvsAIAAg/8C1CQs0ICAkugMMABoBOYUv/TIZLysa7REzGC8a7TMvEjkREjkv7QA/7T8r7T/tPxI5ERI5MTABKysrARQGByYmIyIHBhUUFjMzMhYWFRQHBiEiJyY1NDc2NzY3FwYGFRQWMzI3NjY1NCYjIyImNTQ3Njc2MzIWBNkMAiNhMldgWCs1UEhFYNvJ/qmyXmYiGi4DPCo/Q6mdeJ+I2hkc6itCNzxVZmdCTAMgIEMOLTRlXTcTEwMQQfuDeEVLl2hyV18GcRFww0t6ejApchsTDD4xQ3N9VGVQAAABACT/HwS1AgUANgCQuQAg/+BACQwRNBo1GRk1Brj/wEAKCQo0BgYBLCwBIroC7wAR/8CzCQ00Eb4DDgA1Au8AAQLrACYDDLMNDQAvuAMMtEAEBB4AvgLwADgAGgL7ACAAGf/AtQkLNBkZHroDDAAVATmFL/0yGS8rGu0YEOQROS8a7RI5L+0AP+0/K/0ROS8SOS8rETMvEjkxMAErASMiBhUUMzIWFxYXFhUUBwYhIicmNTQ3NjcXBgcGFRQXFjMyNzY1NCYjJiYjIiY1NDc2NzYzMwS1r5qbXSkwUTASHXuG/svXf4dAF2IoJiU5gHrVj22GHiMbcxI/Nkk8ZUxUrwElEBghBAkGCQ8lu1VdSU6QdIIvmhRBQG5Ge0A9FhsvEREDByEhfE9AHxcAAAL/9wElAwAEqQAeACcAbkAMBAMBHyMgBSYIFRUOuAMKsiAgJrgC77IICB67Au8AQAABAuu3GwAOIB8FBBG4Av63IA8VARUVIwC9AvAAKQAjAxMACwEThS/tEOUZETkvXRr9FzkSOQAYPxr9Mi/9Mi/9Mi8REjkROTkxMAFdASMiJyYnBgYjIiY1NDY3JiY1NDc2NxYWFxcWFxYzMwEnBgYHFhYzMgMAj0g3KRkeXDNzmeCoAg0XEx8KFQ4eGRQfIY/+oxNXZCIVODE8ASV7XJE4Ph8YVtFOCEQIIioiJD50PqyORGgBEW0fQzcJCgACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAP//ADEE1wHQB3UCJgL3AAAABwLy/+sBG///AEYE2QGxBzsCJwL3AAABIgAnAvYABgWAAAcC9gAGBQT//wBGBNcBsQa5AiYC9wAAAAcC9AAHAIgAAwBABNkBsQcuACAASgBWAOy3HVQEDwsACBa6AvUATv/AQAoLDTROTlQAAAhUuAL1QB0PDwhACRg0CAg0KDolR0hDPj8zOj8/NEhINDQ6Q7gC9bIlJTq6AvUALAL0QAlUBEsPURMAABm4Ava1S0tRCwsTuAL2QApRUSg/Pjc0MyFIuAL5tEdHPy8zuAL5sjQ0P7oC+QA+/8CzFRc0Prj/wLMNEDQ+uAEkhS8rK+0zL/0yETMv/TIREjkREjkzL/0yLxEzL/0yLxESORE5OQA/7Tkv7REzLzIvEjkvETkSORESORESOREzLyszL+0SOS8RMy8r7RESORE5EjkxMAEiJyYnBgcGIyImJzY3NjcmJyY1NDYzMhYVFAcGBxYXFhUUBwYjIiYnBgcGIyImNTQ3Njc3FAYVFBYzMjc2NzcWFxYzMjc2NTcWFic0JiMiBhUUFhc2NgGxIycIIzkXPDgOGw9MHzA6FwsRRy0dLwoDFCAGChodMxEhERQTICMqKggFDhUEEhIrGgwSFQkEDBwmFhIVBAdRHhYHBhQjAwcGMQkCCjEOJgkIIg8XIRYPFxcrVSkdFRcHIw8LEaFLMDYNDCITIDgyGh0SJAgIJAwWIzgZSwcyCx8yKS0GFDHyFSgOCRUdEwcSAP//AEYE2AGxBtMCJwL3AAAAugAHAvYABgUDAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAH/3P7tAa8E0gAFABC1AAMCBQECL93GAC8vzTEwExEjESEVJEgB0wSL+mIF5UcAAAH+Uf7tACQE0gAFABC1BQIDAAMEL83GAC8vzTEwATUhESMR/lEB00gEi0f6GwWeAAH/Fv7tAOoFhQALACFADgYJCgAFCgMIAAIDCgUDL9bNEN3WPAAvL908ENbNMTATIxEjESMRIRUhESHqxkjGAdT+cgGOA9j7FQTrAa1H/uEAAf8W/u0A6gWFAAsAIUAOBQIBCwYBCAEGCAkDCwkv1sAQ3dbNAC8v3cAQ1s0xMAMhESE1IREjESMRI+oBjv5yAdTGSMYEHwEfR/5T+xUE6wAB/xb+7QDqBYUABwAbQA0vBn8GAgYABQMAAgUDL8bdxgAvLzzNXTEwEyMRIxEjESHqxkjGAdQD2PsVBOsBrQAAAv8W/u0A6gWFAAYACgBAQB4FBwkDAwoECEAQFTQICgYCAQgECgoAAQcFAAEJAwEv1s0Q3dbNERI5PS88PAAYLy883d4rzRI5PS88PDwxMBMjESc3Fwc3JwcXJEjG6urGYoaGhv7tBQu219e2tnl5eAAAAf8W/u0A6gWFAA0AI0APBAMHAAgNCwgGCgsDDQELL8DWwBDdwM4ALy/A3cDWzTEwAzMRIzUhETMVIxEjESPqxsYBDsbGSMYEHwEfR/6aR/sVBOsAAf8W/u0A6gWFAA8AKUASBQQGAwkACg8NBQoHDA0EDwINL8DWwBDdwNbAAC8vwN3A1sDdwDEwAzMRIzUhFSMRMxUjESMRI+rGxgHUxsbGSMYEHwEfR0f+4Uf7FQTrAAL/Fv7tAOoFhQADAAsAIUAOBQMABwQACgEHCQoABAov1s0Q3dbNAC8v3TwQ1s0xMAMhESEDESERIxEjEaQBSP64RgHUxkgEHwEf/poBrf5T+xUE6wAAAf8W/u0A6gWFAAUAFLcDBQIBBAADAS/G3cYALy88zTEwEyMRAyEDJEjGAdTG/u0FLAFs/pQAAf8W/u0A6gWFAAYAHUALBQYEAgUFAgYBBAIvxt3GEjk9LwAYLy88zTEwExEjESMTEyRIxurqA9j7FQTrAa3+UwAAAv/c/lcAJAcnAAMABwAdQAwCAgMHBwYDBgEFAgYvPN08AC8vEjkvEjkvMTATESMRExEjESRISEgHJ/w4A8j6+Pw4A8gAAAH/Fv5XAOoHJwALAB9ADQcEBQoBAAcLCQIEAAIv3cAQ3d3AAC/dwC/dwDEwAzUzESM1IRUjETMV6sbGAdTGxv5XRwhCR0f3vkcAAf/c/lcA4AcnAAQAE7YBAAQDAAIDL93OAC8vGd3NMTATBxEjEeC8SAZujvh3CNAAAf8g/lcAJAcnAAQAG0AMBgQWBAIDBAACAQQCL87NAC8vGd3NMTAAXRMRIxEnJEi8Byf3MAeJjgAB/9z+VwDqBycABQAQtQUBBAMBBC/dzQAvzS8xMBMRMxUhESTG/vIHJ/d3RwjQAAACAEoA6wQhBMAAGwAnARmwhStYQBgvKQEIEA4PFgIAARcPERAJAQMCFiEQARC8AqIAEQK4ABUCuLIfKRO4AWm1BQguAgECvAKiAAcCuAADArhAFiUpBQkuDzAPQA+CDwQPPiIpDj4KPgy4AWlAGxwpGhchAT8BTwGNAQQBPhg+AD44GkgazxoDGrgB/rUoBQeeeRgrAD8BThD0XU3k5PRdPBDt/eTk7fRdPABNEO3k5PRdPBD97eTk9F08ERI5ORESOTkBERI5ORESOTkxMAFdG0AoEQ4OBRUYGAUHCgoFAwAAEwUJCA8QEBMXFhYTEx8IAh8fAiUFBQFAAgAYLxrNOS8zETMvETMRMxEzL80RMy/NL80REjkRMxE5ETMROREzETkRMzAxWRMnNxc2MzIXNxcHFhUUBxcHJwYjIicHJzcmNTQXFBYzMjY1NCYjIgbVi3OLaoOEaYt0i0dHi3SLaYSDaotzi0ejmGtrmJdsa5gDwYh3i0hIi3eIbn1+boh3jElJjHeIbn59fWyYmGxrmJgAABAAAAAACAAFwQAFAAkADQAZAB0AIwAuADQAOABEAEgATABSAFkAYABoAf5A/6cPtw8Cdw+HD5cPA3omAVMlYyUCIyUzJUMlA1k9aT0CKT05PUk9A1lBaUECKUE5QUlBA1Y7ZjsCJjs2O0Y7A1ZDZkMCJkM2Q0ZDA8ZmAcVoAcpiAclkAVZgZmACWVtpWwKlKrUqAmMqAbUqxSrVKvUqBHUqhSqVKgMzKkMqUyoDY0IYQigtV29dAT9dT11fXQNdXSdWUCgBLyg/KE8oAygvDE9HAUcBMjMHGwMvCBwEMxMVZxA8XlAnAQ8nTydfJwOfJwEgJzAnQCcDJ1ILRiJPTTdLIFI2Sh9NYXA5gDmQOQNAOVA5YDkDHzkBOSdXMF4BXh8nvycCHydfJ28nn0BmJ98n7ycGJyRVLWUtAiUtNS1FLQMtU58rAStfEm8SAhJaUCQBJBeQDgFvDn8OAg4hBzYJNSMDAB8BHyMBCyEACiNqMGUBZW8/fz8CDz8fPz8/Tz8EPxpJG0pOLw9NAU1OMUVRMkZOL8DA3cDAEN1dwBDUwN3AL11xzXIQ0MDA3cDAENRdwBDUwN3AENZxXc3UXc3GXdRxzTNdXRDUXXHdcsAQ1l1dXc0AL8A8PN3APDwQ1MDWwBDWXV1xXc3UwN3Qxi/APDzdwDw8EN3A1l3AENZdcc0SOS9xcc05EMTAEM0xMF1dcV1dcXFdXV1dAV1dXV1dXV1dXV1xXV0BIzUjNSEFITUhASMRMwEUIyInNxYzMjURMwEhNSEBITUzNTMBFCEjETMyFRQHFgEjFSMRIQEhNSEBFAYjIiY1NDYzMhYBIxEzASE1IQUhETMVMwE0IyMVMzIXNCMjFTMyJRAjIhEQMzIIAGTfAUP9wf69AUMCP2Rk/vbTVjRJGShfdPyM/r0BQwR+/r3fZP2P/u7w6/lZd/u032QBQwR+/r0BQ/2VpJmZoaGZmaT9DmRkAx7+vQFD/cH+vWTfA7qjWWWXHqtvfJ79x8nGxskEft9kZGT8fgFD/uHxLU8aigHkARtk+j9k3wEM0QLEuls2LgKU3wFD+j9kAnutwMCtr8DA/rEBQ/x+ZGQBQ98DGWPCz23c/wEN/vP+9QACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEA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/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wBGBNcBsQa5AiYC9wAAAAcC9AAHAIj//wBGBNcBsQdYAiYC9wAAACcC9AAAAI8ABwL0AAABJ///AEYE2AGxBtMCJwL3AAAAugAHAvYABgUD//8ARgTZAbEHOwInAvcAAAEiACcC9gAGBYAABwL2AAYFBP//AEAE2QGxBy4ABgNKAAD//wAxBNcB0Ad1AiYC9wAAAAcC8v/rARsAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wBG/9UBnACkAAYC9gAA//8ARv72AZwAWwAGAvMAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAMoBGAHJBbcAEgAeAD65ABAC8rcHQAkKNAcHHLwC7gAWAuwABgLxtAcHExkAuALtsg0NE7kC7QAZL+0zL+0REjkv7QA//TIvKz8xMAEUBwYHBhUjNCcmJyY1NDYzMhYDFAYjIiY1NDYzMhYByRorBRo5GQolGkY3OUkGSDQySEg0MkgFHUN2wxySiH6ZOrZ+LT1dXPw3MkhIMjNKSgAAAQDHARgBzwIiAAsAFr4ACQLuAAMC7AAAAu0ABi/tAD/tMTABFAYjIiY1NDYzMhYBz083NkxNNThOAZ02T043Nk9OAAACAMYBGAHNBFcACwAXACq5AAkC7rIDAxW8Au4ADwLsAAAC7bIGBgy5Au0AEi/tMy/tAD/9Mi/tMTABFAYjIiY1NDYzMhYRFAYjIiY1NDYzMhYBzU44NUxKNzhOTzc1TEs2OE4D0jhOTjg3Tk79lDZPTjc2T04AAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA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BVkHLAImACQAAAEHCE0CWAFqACuyAwIUuP/AsyoyNBS4/8BADQcINCgUDwECQQIDAhS5AiEAKQArASsrKzU1AP//AEr/6AQcBcICJgBEAAABBwhNAfQAAAAZQAwDAhQ9OBwcQQIDAj25AiIAKQArASs1NQD////9AAAFWQciAiYAJAAAAQcITwKZAWoAFkAKAgAUEAECQQIBFbkCIQApACsBKzX//wBK/+gEHAW4AiYARAAAAQcITwJEAAAAHrUCUD1gPQK4//y3PTkcHEECAT25AiIAKQArAStxNf//AKIAAAToBywCJgAoAAABBwhNAmoBagAZQAwCAQARDAECQQECAhG5AiEAKQArASs1NQD//wBL/+gEHgXCAiYASAAAAQcITQH0AAAAGUAMAwIhIx4KCkECAwIiuQIiACkAKwErNTUA//8AogAABOgHIgImACgAAAEHCE8CvAFqABZACgEAEgwBAkEBARK5AiEAKQArASs1//8AS//oBB4FuAImAEgAAAEHCE8COgAAABZACgIAJB4KCkECASS5AiIAKQArASs1////igAAAksHLAImACwAAAEHCE0A6gFqAByxAgG4/85ACQkEAQJBAQICCbkCIQApACsBKzU1////ZAAAAiUFwgImANUAAAEHCE0AxAAAAByxAgG4//RACQkEAQJBAQICCbkCIgApACsBKzU1//8ABAAAAlMHIgImACwAAAEHCE8BLAFqABZACgEACgQBAkEBAQq5AiEAKQArASs1////9gAAAkUFuAImANUAAAEHCE8BHgAAABZACgEACgQBAkEBAQm5AiIAKQArASs1//8AY//nBd0HLAImADIAAAEHCE0CvAFqABlADAMCACEcAwNBAgMCILkCIQApACsBKzU1AP//AET/6AQnBcICJgBSAAABBwhNAeAAAAAZQAwDAhIfGgQEQQIDAh+5AiIAKQArASs1NQD//wBj/+cF3QciAiYAMgAAAQcITwMgAWoAFkAKAgAiHAMDQQIBIbkCIQApACsBKzX//wBE/+gEJwW4AiYAUgAAAQcITwJEAAAAFkAKAgAgGgQEQQIBH7kCIgApACsBKzX//wChAAAFrQcsAiYANQAAAQcITQJYAWoAILQDAgAoAbj/1UAJKCMBBkECAwIouQIhACkAKwErcTU1////zAAAAsYFwgImAFUAAAEHCE0BLAAAABlADAIBABcSAQhBAQICF7kCIgApACsBKzU1AP//AKEAAAWtByICJgA1AAABBwhPArwBagAYuQAC/9G3KSMBBkECASm5AiEAKQArASs1//8AaAAAAsYFuAImAFUAAAEHCE8BkAAAABi5AAH/8bcYEgEIQQEBGLkCIgApACsBKzX//wCh/+cFIgcsAiYAOAAAAQcITQKUAWoAGUAMAgEZGhULAUEBAgIauQIhACkAKwErNTUA//8Adv/oA+AFwgImAFgAAAEHCE0B1gAAABlADAIBEh4ZChdBAQICHrkCIgApACsBKzU1AP//AKH/5wUiByICJgA4AAABBwhPAuEBagAWQAoBABsVDABBAQEauQIhACkAKwErNf//AIP/6APgBbgCJgBYAAABBwhPAjIAAAAWQAoBAB8ZChdBAQEfuQIiACkAKwErNf//AFz92QTrBdMCJgA2AAABBwHtAVQAAAATuQAB/9+2MjMtLUEBMgAvNQErNQD//wA//dkDsQQ+AiYAVgAAAQcB7QCgAAAAE7kAAf/wtjIzLi5BATIALzUBKzUAAAIAMP29BLoFugAHABIA7rCFK1izDRIIDroBMQANAUlADQkLZQoSCGUJCQAKAQq4ArlAFAcSUQgICWUKLQcFAh4EAwIHAAgUuAJztQYFIAQBBLgBAbcGIAECLwMBA7gBAbQBByABALj/6EALEBACVQAIDw8CVQC4//K0DAwCVQC4/+K0DQ0CVQC4//y0DAwGVQC4//63DQ0GVSAAAQC4AnOzE7aZGCsQ9l0rKysrKys87RD0XTwQ/fRdPBDmAD88Pzz9PAEQ9P08EOQAEPZdPBD9PBDtEP3tARESOTEwG0AJDQhACQAIBgMCuAMzsmwDAgAYPysyPy8azcQwMVkhESE1IRUhEQM1MxUUByc2NzY3AhP+HQSK/hvKzacyPB4UBAUNra368/66zc20SUwbMyFCAAIAJP3sAioFmQAXACEBQbCFK1hAFSEhLyMxIQMAAQ0MCh4hGAEDAAkWHrgBSUAMGRtAGhhAGRkAGgEauAK2QC8DIZEYGxoYGUAaGgEHEAkrDwoGFhwDCw8QI0kQIgAinwEBAQ0SJQwB/wcIRQlFB7j/6rQQEAJVB7j/8LQPDwJVB7j/6rQODgJVB7j/9LQMDQJVB7j//LQLCwJVB7j/+LQQEAZVB7j/7EAYDw8GVQcCDAwGVQcNDQ0GVQAHIAeQBwMHugIwACIBNrHEGCsQ9F0rKysrKysrKyv05BDtPP08EF3k5OYQPAA/7T88/TwBERI5L/08EDwQ5AAQ9l08EO0Q7RDtERI5EjkBERI5ABEzMxDJMTABXRu1HhhAGQMWuAMytGwDCwEAuAMyQAlsAQoNDREOCgm4Ay2ybAoGABg/KzMyMi8/Kz8rLxrNxDAxWSUXBiMiJiY1ESM1MxE3ETMVIxEUFhYzMgM1MxUUBgcnNjcCEBpMPGJsLISEs7W1EysoHsy5SU4sXwehnxA+ZaICY4wBB2z+jYz9k00sGv41uLhGeyJFKnQAAAEAUf5RA/YF1AAeAMtADgAZEBkCEA8NHw0CFwUDuP/wQHwSFTSJAgEGBpYGpgbGBgR1BgFIClgKAgYKFgoC+Q0Bdw0BeBCIEAK4EwF6E4oTAgUZFRkCSR0BCQkBKQkBiQkBHQkXdwwBDB4LCwQUEh4mFQEVFwMFHgQPCQcWHQEdAA4mGwcmAAAQACAAAwcAIBAVIBUCFQQACzALAggLL15dwMZdENZeXe3Q7REzXREzAD/tPzNx7TISOS/tcRI5OV1xcl0xMF1dcV1dcXFxXV1dKwFfXl1eXQEQBQYFNSQRNCcGBTUkETQnJiMiByc2ITIXFhUUBxYD9v7UwP5+AqZOs/5bAqZARnrgdYipATXKfYCJiQFo/sjWiYCtzAGJiFGIjK3MAX58TlTAbfpydsjPpHgAAQAT/lEDLgQ+AB4AzrkAGv/gQGwICzTEGtQaAqMVsxUCAwQBFAEkAQMwB0AHAnIIAUQdVB2EHZQdBAkdGR0pHQMIAgsSCwISBB0LGQ4cQA0NGQQWEAcKNLkWARYUHBcZBwUcBA8LCQIdEh0iHWIdgh2SHQYIBB0AEiQbCSQAQAC4/8BAGAgMNAAgJBY0FgJkFnQWhBYDFhcFTw0BDS9dwMYyXXEQxisBGhgQTe3Q7REzX15dETMAP+0/M+0yXSsAERI5GC8aTe0SOTlfXl1eXV0xMF1yAV1fcV0rJRQFBgU1Njc2NTQnBgU1JDc2NTQjIgcnNiEgERQHFgMu/v2P/q7zbMxKgv6hAQJczd+QTqV2ARcBjmxsmfuaVV6jQTpup3w/TGKjRi5op/KsQv/+jqF3Zf//AKQAAAUiBywCJgArAAABBwDfAYsBagAWQAoBABAPAQZBAQEQuQIhACkAKwErNf//AIcAAAPoBywCJgBLAAABBwDfAMgBagAfsQEZuP/AQAwHCDSNGRkCAkEBARm5AiEAKQArASsrNQAAAQCk/mkFAQXUABUAUEA2WAgBhg2WDaYNAwgNBh4PAwsCCggBDgUSFRIlEmUSdRIFBxIJASCvAL8AAgAXDAkgoAqwCgIKL139wBDWXe0SOV5dAD8/Pz/tMjJdcTEwASMRNCcmIyIHESMRMxUkMzIXFhcWFQUBwjhGrM3iwsIBBcSLdIAsJ/5pBTy3XHRb+y8FukdhPkV6bbMAAAIAXv/nBHgF1AAkADQAzUCRBzMBBi8BZi92LwK2IcYhArUVxRUCaDN4MwJnK3crAmgneCcChiQBtB3EHQInHVcdApsYqxgCCg46DgJqDnoO6g76DgQ5DAGZDKkM2QzpDPkMBYgJASMKKR4UFBsEEF8Pbw8CDy8aPxpPGgMaGwMxHgQJEBoaFhIiCwAIFiYfJSYAABAAAgcANhImDS0mIAgBCC9d7dTtENZeXe3U7RESOTkREjkvzgA/7T/dcdZxzRESOS/tOTkxMAFdXXFdcV1dXV1dXV0AXV1dcXEBFAcGIyInJjUQJTUkNTQhFSAVFCEgNTQnJiM1MhcWFRQGBxUEAzQnJiMiBwYVFBcWMzI3NgR4mY3n542ZATz+7AHR/vYBHgEeTkh1yXiRl30BPMhfVpCQVl9aVpWVVloBvON+dHR+4wE6OQ8k1fZxkKftbz46e0dWsH+vGw85/tCOSUJCSY6VU1FRUwAAAgBe/+cEKAXUACEALQDOQJOWAgGYBgFGCgFWCgGYCgGZDukO+Q4DGRCZEKkQuRAEFhyWHKYcthwElh7mHvYeA5ch5yECJiQBeSSJJAJ2KIYoAnUrhSsCei2KLQIgDCYcFhYbBBIaERsBLBwEC5wSrBICKRI5EgKTGqMaAiYaNhoCGhIYFCAMAAgYJB0iJAAAIAAwAAMHAC8UJA8qJCAIAR8IAQgvXV3t1O0Q1l5d7dTtERI5ORESOTldXV1dAD/tP8DdwBESOS/tOTkxMAFdXV1dcV1dXV1dXXFyXV0BFAcGIyInJjU0NzY3NSYRNCUXBhUUMzI1NCc3BBUQBxUEAzQnJiMiBwYVECEgBCiCf+Tkf4JNSH/sARM5hfb2hTkBE+wBFMhOS4SATFEBHQEdAbzje3d3e+ObYlwaDzMBC9t9cliO9/eOWHJ92/71Mw85/tCJSkZGS4j+xwAAAQAp/x0EsAW6ABUAdkBOBwsBCBABDBEQESALDBQLCwwFEBUQAhAMHg8CAAIB4ALwAgJQAmACAgIKCgsaCwIoCzgLuAvICwQLER4KCAwRCxAFAAAQAEAAAwcAFw0LL8YQ1l5dzcQROTkAP/3FXXEQxl1xcj/9wHGHBRArh33EMTAAcXEFFAcnNjU0JyYjITUBITUhFQEhMhcWBLATmQ5PI2z89QOH/M4EGvxwAjOzTnRWSUQiNh9NFgm0BFmtrfugJzkAAAEAKP8dA9QEJgAZAL5AWpQMpAwCmROpEwJWGWYZdhkDDBMSEyULDBQLCwxlEgEFEhUSJRIDABIwEnASgBIEBxIMDitAEAYAAhACAgwDAgoLGCsyNA8LHwsvCwMXBAsTFStACgoMExILErj/wEAeDBU0EgVAAAAQACAA0AAECQMAGw8LC0AMGTQfCwELL10rARgQxhDWX15dGs3EKwEREjk5ABg/Gk39xcRfXl0rABgQxF9eXT8aTf3FzV5dcXKHBRArh33EMTABXXFxBRQHJzY1NCcmIyE1AQYjITUhFQE2MzMyFxYD1BOZDk8jbP3QAqSVNv5PA2T9UqFCd71GcVZJRCI2H00WCZIDCAaSd/zjCR8y/////QAABVkG9AImACQAAAEHANoBSgFqABZACgIADxIBAkECAQ+5AiEAKQArASs1//8ASv/oBBwFigImAEQAAAEHANoA8AAAABpADQKwOAEAODscHEECATi5AiIAKQArAStdNQABAKL+WwToBboAHwCUQBQABRAFIAUDDwIfAi8CAxEFAhOcDbgCtbIIQAi4/8BAQgkMNDAIQAgCAAigCAIHDwgB7wj/CAIIDxoeHR0VGR4WAh4eABUICzoKpQR2D00BnBAUIBQwFAMUFBUYHAAhGh4gFS/9wBDWxMQSOS9d7fTt9OUAP8DtP+0SOS/tP11xXl1xKwAaGBBN/eYyX15dMTABXSEhBxYVFAcGIyInNxYzMjU0JyYnNyERIRUhESEVIREhBOj+HxqrZVBsUj4LQB6hNh9ILf4hBCT8ngMr/NUDhFQUf2MzKAx1BEsnEQoBmgW6rf4/rP4NAAIAS/5bBB4EPgAqADMBD7kAMf/oQEYMDzQGLRYtAvYtAWkteS0CtiUB6iEBCSEpIQIIZhB2EIYQA1cLZwt3CwMHBRcFJwUDCwMFEwUCDgMPDR8NLw0DEQUNHpwYuAK1shNAE7j/wEBwCQw0MBNAEwIAE6ATAg8THxMvEwMTD3AJgAnQCeAJBAkJH38DjwOfAwMDHA8zHzNPM18zbzMFDzP/MwIHMzMnBxwMHwsvHCcHFjoVpQ92Gk0MnBAfUB9gH9AfBB8fIwkkCiskADUzAyQfIz8jTyMDIy9d7TIQ3u3U7RI5L13t9O305QA/7T8z7RI5L15dcu1xETkvXT9xXXErABoYEE395jJfXl0xMF9eXQFeXV1dXl1dXV1dcSsBFAchFhcWMzI3FwIFBxYVFAcGIyInNxYzMjU0JyYnNyYnJhE0NzYzMhcWByYnJiMiBwYHBB4B/OgJTFaWyk66U/7DE6tlUGxSPgtAHqE2H0gnunWJe4Xw6oJ3vgw4VomCVE8JAhUQIJxgbdoX/ssfPxR/YzMoDHUESycRCgGFEnuQAQL2maWjloyGQ2hYVYQA//8AY//nBd0HMwImADIAAAEHBQwDIAAAAD1AKwQDAgAkIQMDQQQD7yT/JAIkgEL/NCRAJUE0JEAKETQkQAcINAIkQAcINCQALys1KysrK101NQErNTU1AP//AET/6AQnBtECJgBSAAAAJwCOAPIAAAEHANgA8gFyAFdAIAQAIiUaIUEDAgAaIQQEQQRgIgEPIj8iwCLvIgQiAwIhuP/AQB5FNQAhMCFgIQMgIUAhUCGQIaAhwCHgIQdAIaAhAiEAL11xcis1NS9dcTUBKzU1KzUAAAL+/QXYAQIHMwADABUA8rUOEAoVNAW4/+C0Bxk0ABW+AxYAQAAEAQAAAQAMAxayCwwTuAMWQCEGQAZAT1M0BkArMDQPBgFeTwZfBm8GAw8GHwYCHwMGgAm4AxZAX0AVEBCAfv80EEA2fTQQQAcWNA8QHxACDxAfEC8QAwcDEAACQAJAiIk0AkBPczQCQD5FNAJANzo0AkAuMzQCQCQpNAJAGh40AkASFDQCQAcNNPACAS8CjwKfAgN/AgECuAEYhQAvXXFdKysrKysrKysrABoYEN3OX15dcSsrKwAYEMYaTe0azV9eXXJeXSsrABoYEE3txAEv/cAa3BrtwDEwASsrASE1IRUGIyImIyIHIyY3NjMyFjMyNwEC/fwCBASTKZIgLgpaATIrQiWMJi0IBr51rKxJTFQvKkRGAP//AGP/5wXdBzMCJgAyAAABBwcaAyoAAAAjQBcDAidACAk0Lyc/J18nAwAnIAMDQQMCIgAvNTUBK10rNTUA//8ARP/oBCcG0QImAFIAAAAnANcA8gAAAQcA2ADyAXIAUEA9A3AygDICADI1GiZBAgAaJgQEQQNgMgEPMj8yTzJfMp8yrzLAMgcyAilABww0HykvKQJAKZApAl8pnykCKQAvXXFyKzUvXXE1ASs1K101//8AY//nBd0G9AImADIAAAEHANoBzAFqABZACgIAHB8DA0ECARy5AiEAKQArASs1//8ARP/oBCcFigImAFIAAAEHANoA3AAAABZACgIAGh0EBEECARq5AiIAKQArASs1//8AY//nBd0HMwImADIAAAEHBtQDIAAAAB9AEwMCcCEBACEgAwNBAwIhQAcINCEALys1NQErXTU1AP//AET/6AQnBtECJgBSAAAAJwDaAPIAOQEHANgA8gFyAGWxAx64/8BAIgc14B7wHgIAHiEaHUECABodBARBA2AhAQ8hPyHAIQMhAh24/8BAJEU1YB0BIB1AHVAdkB2gHcAd4B0HDx0/HW8dfx2gHcAd8B0HHQAvXXFyKzUvXXE1ASs1K10rNQD//wAGAAAFRga+AiYAPAAAAQcA2AFoAV8AFkAKAQANEAELQQEBDbkCIQApACsBKzX//wAh/lED7gVfAiYAXAAAAQcA2AC+AAAAFkAKAQAbHgsTQQEBG7kCwwApACsBKzUAAgBX/+gEKQQ+ACoAOwDdQHd1AYUBAgcDFwMCB6cNAXcUhxQCSRkBWRlpGfkZAwkZGRkpGckZBPgmAScpNylHKQPGKgEoODg4SDgDABIQEmASAwkSFwQ0FDQCNBwnCDcIAgcIFwgCDskI2QgCAAgBEgMICBcxJS8cJwciBg4cFwsSJRMrJABAALj/wEAiCQ008AABAD0lCDMlHiMlIqAeAbAe8B4CAB4gHtAe4B4EHi9dcXLW7RD9xDMQxnErARoYEE3t1O0AP+0/P+0yMhI5L19eXV1eXXHtcRDEXl0xMAFdXV1dXXFyXXFeXV0BFAcGBwYHBgcGFRQXFjMyNzY3FwYHBiMiJyYnJjU1NCcmJzMWFzYzMhcWBzQnJiMiBwYVFTY3Njc2NzYEKYA6SDNt22YBM0WIezxAHrAvv2mI/V0pDwkBCS+8HAi20ZxibcBDOVrfUR1ixFokRx8ZAw6fVycUDg0aJCUKbi09Ki1zGNxFJnEySCt78NcNhFU4S5tIUZxVLSaqPXdCKBwNCxcwJwAAAgBI/+gD4AQ+ABAAIADlQAsTEBodNBMYFBc0HLj/yEA+DA80CR9ZHwJpH/kfAgkbAfYbAfcXAQkWAXIWghYCAwkJAXYJhgkCDQoBB1YGhgaWBuYGBAIGEgYCDgQPBg64/+hAVQsPNBMOFRxADAcPHwELBQIQDhE0CwIbAgI7AgEfAh0cBAsBChEBDiVPAJ8ArwC/AAQPAC8AvwDPAN8ABQ8A7wACCAAiGSS/CM8I3wgDHwg/CE8IAwgvXXHtENZeXXFy/cTAAD8/7TIyXXErAF9eXRg/Gk3tMjIrABg/MTABX15dXV5dXXFfXXFdXXFdcSsrKyEjNQYjIicmNRA3NjMyFzUzAzQnJiMiBwYVFBcWMzI3NgPgtGK024Bz2Wl+xXGioj9OmJZJOT9Ol5FLPXGJs5/jAVmHQaaO/eCldJGKbKSib4mDagAAAgCG/+gEHgQ+ABAAIACkQHgFGAsPNAwYCw80HjAMDzRZAgF5AokCAvcMAXkOiQ4CBA4BB20UfRQC5xYBphy2HAI5HEkcAskX2RcCFwsVHA0HCwYbBksGAzkGSQZZBokGmQYFGwYdHAQLCAoJBhEkDwABACILGQYl3wgBAAggCAIACBAIMAgDCAgvXl1xXf3ExBDeXe0APz8/7TIyXXE/7TIyXTEwAV1xXV1eXV1dXXErKysBFAcGIyInFSMRMxU2MyATFgc0JyYjIgcGFRQXFjMyNzYEHnKA3LRitKJxxQEYcTe5OUiXl08/PUuRl04/Ah3kn7KJcQQmjqb+/n6opWuKkXWknWqDiW8AAAIAhv/oBB8F0wAbACsAi0BhBRgLDzQLEAsPNBgYCw80KTAMDzRpAnkCAmkaeRoCbR99HwKmJ7YnAjknSScCEhwNASIXIBwZByYGKBwECwgKDw8XHCTAAAEPAAEALQYkFyXfCAEACCAIAgAIEAgwCAMICC9eXXFd/cTEEN5dce0SOS8APz/tMjI/7TIyP+0xMAFdcV1dXSsrKysBFAcGIyInFSMRNDc2MzIXByYjIgcGFRU2MzISBzQnJiMiBwYVFBcWMzI3NgQfbn7fvGunP0aiTFwbODJWIh5ysdPvuDpKlpNOQTRVkZVNQAIj6Z60nYUEl55LUxKdCickWduP/tL8o2uIhG6dv1WLiW8AAAEAE//oA7AEPgAYANRAVgcClwICiQIBJgU2BQLFBQGpBQGFCZUJAgYLFgsCewuLCwIHDRcNAowNAWkNeQ0CNQ9lD5UPA0oSWhICqhIBxxIBBhYBBxkXAQ8QHxAvEAMOAxAQEwQIuP/AQD0MEDQACBAIMAhACFAIBaAIsAjwCAMICAQOHBMHChwECwwkwADQAOAAAw8AAQgDABoIJAcQJBFAEUAMGzQRLysBGhgQTe3W7RDeX15dce0AP+0/7RI5L11xKwAREjkYL19eXTEwAV1eXV1dcXFdXXFdcXFdXXFdXQEUBwYjIiYnNxIzIBEQISIHJxIhMhcWFxYDsHWA7rLsHLEl5gEo/s7AMq9BAWeQbnU4OQIP9JOg1LIX/vcBmAGW1xsBUEBEfoEAAAIAUP+YA9wEPgAdACYA3LkACv/gQJUNEDRoAgEIBBgEAmYEdgQCiAeYBwIaByoHAgYMFgwC9gwBRg1WDWYNA2kReRECShZaFmoWAwoaihoC5R0BpR0BNh0BaBEBSRYBFhEcDwcJIiQgHAkJHD8BAT8BAX8BjwGfAQMBAQ8DHBwHJBwPC6YRAREWCxgiBwWwHgEeCwEkHwABACgFJBTvGP8YAg8YPxhfGAMHGC9eXXEz7RDeXe3WzV0ROTkREjk5XQA/7T/tEjkvXXFyETkv7RE5EjkREjk5XTEwXQFdXXJdXV1dXXFdXV1xcSsBByYjIBEUFzYzIBUUBwYjIicGByc2NyY1EDc2MyADNCMiBxYzMjYD3K8ywP7OK73CARVxZ6midSZBeSJMbud0iQFndm+KmkppXYMC7hvX/mqBYtD+jEtESzphaDJsk94Bb4BA/MVltDhLAAIARv5RBMMFugAeAC4Az7UDIBwnNCq4/8hAOAwPNIgtmC3oLQOGKZYpAocllyUCAiQSJAKJIZkh2SHpIfkhBYcM5wwCBQwVDAIOAwANARMGFgAVuP/oQFQLDzQhFSMcEwc5LQFoB3gHAjsHAS0HKxwJCxwCDx8HFSUATxifGK8YvxgEDxgvGL8YzxjfGAUPGO8YAggYMCckLw8Bvw/PD98PAx8PPw9PD18PBA8vXXFy7RDWXl1xcsT9wMQAP80/7TIyXV1dP+0yMisAGD8xMAFfXl1fXl1dXV1dXV0rKwEGIyInJjU1BiMiJyYnJjUQNzYzMhcRMxEUFxYzMjcBNCcmIyIHBhUUFxYzMjc2BMNESaQ8KmW4g2tnOTvUaoO7arMKFk0fNv6aO0ycl0k5P02VlEo9/mQTclGywJ5JR3p/oQFdikWSAg76EWsjTg4DBqtujYhqpaBvh4BpAAIARv/oBPoF0wAdAC0A17UbEAsRNCm4/8hAPwwPNIgsmCzoLAOGKJYoAocklyQCAiMSIwKJIJkg2SDpIPkgBckb2RvpGwOHD+cPAgUPFQ8CDgMAEAETBgkKGLj/6EBUCw80IBgiHBYHOSwBaAp4CgI7CgEsCiocDAsDHAEeChglAE8InwivCL8IBA8ILwi/CM8I3wgFDwjvCAIICC8mJC8SAb8SzxLfEgMfEj8STxJfEgQSL11xcu0Q1l5dcXLE/cTEAD/NP+0yMl1dXT/tMjIrABg/MTABX15dX15dXV1dXV1dXSsrAQcmIyIHBhURIzUGIyInJicmNRA3NjMyFzU0NjMyATQnJiMiBwYVFBcWMzI3NgT6GzgyVyEep2XEg2tnOTvUaoO7aoqcTP6dO0ycl0k5P02VlEo9BcGdCigkWvt4hp5JR3p/oQFdikWS7KKZ/DCrbo2IaqWgb4eAaQACAFX/6AQoBD4AFwAgAM1APAsICw80lxqnGgIJGhkaApkeqR4CBh4WHgIIAhgCAjkFAZYIAQkWGRbpFgMFCxULAg4DDwUfBW8FAxAFB7j/wEA1Bwo0cAeABwIHBwl/DY8Nnw0DDRwPGB8YTxhfGG8YBQ8YAQcDGBgEHBwUBwkcBAsYDSQAQAC4/8CzJCg0ALj/wEARBw00ACIWBwEHJAYgJB8OAQ4vXe3W7XIQxisrARoYEE39xQA/7T/tEjkvX15dcu1xETkvXSsxMABfXl1fXl0BXXFxXV1dXV0rARQHBiMgAzcWMzI3NjchJjU0NzYzMhcWByYnJiMiBwYHBCiAhvT+il26TsqWVkwJ/OgBd4Lq8IV7xAlPU4OJVjgMAgr4kZkBVxfabWCcIBDwlqOlmYeFVFhoQ4YAAAIAVf/oBekEPgAmAC0A4ECbAygXHTRJA3kDiQMDeQgBBhYB9hYBeRwB5yIBCSoBZSp1KgJ8LQFaLWotAn0TAVoTahMCCScBJygEKB4REB8fKAQoKxAfFBAQH0YQAXAEgAQCBgQmBNYE5gQEB3kEiQQCKBAEHwQVLCQCAgpPF28XAg8XHxdfF28XBBcVHBoHLBwKCxEXJyTvH/8fAh8eBAQQAC8XJBgoJB8QARAvXe3W7RDAETkvM81d7RE5AD/tP+3EXXESOS/NERIXOV1eXXFdhxArh33Eh8TEEIfEMTAAXV1dAV1dXXFdXXFyXV0rAQYjIicWFRQHBiMiJyY1NDclJicmIyIHJxIhMhcWFzcXFhcWMzI3IQUWFxYzIAXpdmW6LgJ6hfHrgnYBAvwDNlaWyk66XQF29YZBH5wXDQ8XMS5+/aL9oAdDTZEBOAGcOfYdIPeYpaOV8RAglRNUbdoXAVeYSWMfhEsbKj1yllhmAAABAEn/6AN5BD4ALADYQH0EGAcKNAwQCAs0iiqaKgJZEgGNEp0SAnQBhAECRgEBxgEBCBocsB8BHx8CvxHPEQIvEQEAEQERExwOByAsARAsICxwLMAsBA8sAQgDLCgcQAILCAgHCzRNCAEIChsbFgARyRAsyQAAEAAgAGAAcACAAKAABwkDAC4WJApACrj/wEAVHiM0CiQkvwbPBt8GAx8GPwZPBgMGL11x7cQrARoYEE3tENZfXl3t1u0REjkvEjlxKwAYPxpN7cRfXl1dcT/txF1dcRI5L13tOTEwAV1xcl1xXSsrAQIhIicmNTQ3JjU0NzYzIBMHJiMiBhUUFhcWFxUmIyIHBgcGFRQXFjMyNzY3A3k6/pWnanqgfm9mlgEyUKs9mExiQjIqcSAJZhxBKiZCPFZiRUIWASv+vUtWoLVWTYKTV1H+1RyzVUs0VgoIAY0BBQ0zLj5TNDA8OWH//wAy/+gDYgQ+AgYCYQAAAAEAMv/oBQ0EPgA4AQq5AC7/6LMICzQKuP/oQFwHCjQDKBYaNCgDATkNSQ0CdhABFigBwSjRKAJxKIEoAnMQgxACMAQsNgICLAwGHxyQG6AbAhsbDA8pAa8pvykCACkBCSknHCwHcA8BAA9QD7APAw8DDxIcQAwLBrj/8EBIBws0RgYBBgQeHikIJCR4MQFmMQExMD8ETwRfBAMEFiQACAEACGAIkAiwCOAIBQsICA4AOinJACoQKgIfAyoPyQ5ADkAOEzQOLysBGhgQTe3WX15d7RDAETkvXl1x7dRxMjJdXe0REjkvEjlxKwAYPxpN7cRfXl1xP+3EXl1xchI5L13tORESOS/NETk5MTBdAV1xcnFxXSsrKwEGIyIDBgcWFRQHBiMgAzcWFjMyNzY1NCYnJiMiBzU2NzY3NjU0JiMiBycSITIXFhc3FxYXFjMyNwUNdmW+NAd3oHpqp/6VOqkWiGFXPEFEMylzCSBqE0UoJWFNmD2rUAEyqmEwGaAXDQ8XMS5+Aho5ARN3SVa1oFZLAUMkYHYvNFQ2Yg4LAY0BAworKDxMVLMcAStdLjwghEsbKj0AAAIARP/oA8YEPgASACoAprkAAv/oswcKNA24//CzCAs0Jbj/6EAbCw40YiVyJYIlA4QhAQQhAQsNIR0hLSEDDAQRuP/4QD0HCjQRDxgYIxwkDxMkHwAvAD8AAwAAIABAAAMJAwAsIyQHQAdADA40PwcBHwcBBxEYHBYWBB8cCwcnHAQLAD/tP+0SOS/tOQEvXXIrARoYEE3tENZfXl1y7dTtETkvEjkrMTAAX15dAV5dcXErKysBFAcGIyIAERA3NjMyFxYVFAcWBzQjIgc1Njc2NTQmIyIHBhUUFxYzMjc2A8Z6a6fj/u2kiciXZm5+oLT/FyZ/NFxiTKFTRlldilc8QgEpoFZLAR8BDAEnjnZRV5OCTVausQGNARMiZ0tVgGyrzGVqMDQAAf+5/lECJgQmABcAUUAvSw1bDQIABRAFAg0FCxwGDxYTKwEQChQGARYlQBATE0ANEDTfE+8TAhMTGBcZEggvLxDGEjkvcSsBEMAaGE39wAA/P8D9wD/tMTABX15dcSEjFRQHBiMiJzcWMzI3NjU1IzUzETMRMwImnxM62UxcGzgyVyEez8+zn3NrNJ0SnQooJFpkjAOa/GYAAAIAQv5RBQUF0wArADsA1rkAMf/QQHEMDzTYOgFjN3M3AtguATkpSSlpKQNpGHkYAgMcKgA2J0YnVicDLicwHCUHODpIOlg6A2gbeBsCOhtKG1obAzobOBwdCjASQBJwEoASkBLQEuASBxIXHA4PAAgsJxslDwhPCN8IAw8IAQgDCD0TJRJAErj/wEAfHCo0EjQkIUAhQCsuNCFADA80vyHPId8h/yEEHyEBIS9dcSsrARoYEE3txCsBGhgQTe0Q1l9eXXL9wMQQxAA/7c1dP+0yMl1dXT/tMjJdP+0xMAFdXV1dXSsBByYjIgcGFREUBwYHBiMiJyY3FxYXFjMyNzYnBiMiJyY1EDc2MzIXNRAhMgE0JyYjIgcGFRQXFjMyNzYFBRs4MlchHh0tiG6guW6BBK8LMkN06zIOAXaw2n5z12mMq3oBKkz+mUJPlpNNQDxLnJlNPgXBnQooJFr8CMdfk0o8TVqwGlElMr41soujleEBT5BGmPEBPPxNoGp/fmidqGiBf2j//wBC/lED6gQ+AgYASgAAAAEAUP/oA+0EPgAZAKVAbxULJQsCdQuFCwJJDgFpDgFTEGMQAjYQRhACVBJkEgIJABkAKQADAAIYhxUBFRMXHBgYApANoA0CDw0fDQIJDQ8cCgcTHAILFxcRFQ0lDBUlDwABDwAfAC8A/wAEFgMAGxEkBkAGQCMmNB8GPwYCBi9dKwEaGBBN7RDWX15dce3U7RESOS8AP+0/7cReXV0SOS/tETldERI5XTEwAV1dXV1xXXElBiEiJyY1EDc2MyATByYjIBEQITI3NSE1IQPtt/797YB253SJAWdBrzLA/s4BKJ9p/s0B53yUoJTzAW+AQP6wG9f+av5oTLeVAAIAGf5RA+kEJgAPABkBKEA32QsBCAsYCwK4C/gLAnoHigcCRgdWBwKIB5gHAnYFhgUCpgG2AdYB5gEEBgEWAQIHAw8BARMGDrj/wECUKDg02w4Bmg4BNg4BqAHoAQIOAg0KDwECDRQAExIMFAALEgwKDw0CAiUSDBQSEgwPCgolFAAUFBQA/BIB/BQBEhQYAgoGAA8NDAYYHAYPFAAWEgwCABAKDC8QARAWFgwPJZwArAD8AAPZAOkAAgkAATAAAQAbDSVzDPMMAkYMpgzmDAMGDBYMtgzGDAQIJQwBaAwBDC9dcV5dcXHtENZdXXFx7RI5L8ZdEjkREjkSORESOQA/7T/AwMASOTkSOTlxcYcFECt9EMSHGBArfRDEDw8PDzEwAF1xcXErAV9eXV9eXXFxXXFxXXFxAQEXFhUUIyI1NDc3ATMBAQM0JycHBhUUMzID6f52QTvb2TtB/nbEASQBJPMiDw8iMjAEJvx6koVM7OxMhZIDhv1aAqb7HBtPIyNPG00AAAIAGf/oBNYEPgAfACkA1kAwBx8BWh0BKh06HcodA1UZASUZAQgXAQoFFBUUAhADjwWfBQIPAR8BAhMGIxgMDzQbuP/AswwPNBu4/8BAVyAnNEAbUBsClxunGwIjEAYbBBMoAa8VARUYAxMcHhgGKBwLC5cGpwYCBgYBBwkQGRACEBAGGwMJDSMmywkBDwkBCSDEDQEADQESDSYmFg8AHwACOgArFi8Qxl5dETkvzV5dXdbNXV0SORESFzleXV5dXQA/7T/A/cAQ3V3AERIXOV1xKysrMTABX15dcV9eXV5dXXFdcV0BByYjIgcDFxYVFCMiNTQ3NwMmIyIHJzYzMhcXNzYzMgE0JycHBhUUMzIE1m1bSz0fkD872tk7P5AfPUtbbXigwkRDPj/HoP5KIg8OIjMuA4J2lEf+uJySIdraIZKcAUhHlHa8raqqrfx8FE8jI1UOPgAAAQCL/mkD7AQmABMAb0AVdAyEDAKrBgEPBR8FAgkEAhIlE0ATuP/AQDAVGDQPE98TAg8TAf8TAdATARMVCiUACQEACRAJMAngCfAJBQgJAQ4PAg0cBAsSCQYAP8A/7TIyPwEvXl1x7RDGcV1xcisBGhgQTf3AMTBfXl1dXQEjEQYjIicmNREzERAzMjY2NREzA+y0fsD5UCa04FCNPLT+aQIRkq9TmwKh/V/+/lOOfQJFAAEAhwAAA+gF0wAfAHC5AA3/6LMLDjQcuP/YQEMHCjSLA5sDArYdARQcDwEHGQQcGwcBCwoBJQ8AzwDfAAMPAAHvAP8AAgAhERkKJc8LAd8LAd8L7wsCAAsQCzALAwgLL15dXXFy/cDEENZdcXLtAD/AP+0yMj/tMTBdXSsrISMRECMiBwYGFREjETQ2MzIXByYjIgcGFRU2MzIXFhUD6LTgUURIPLSLnExcGzgyVyEefsD6UCUCoQECKCqPff27BJihmhKdCigkWtySr1GdAAABAIf+UQPoBdMAKwCMuQAZ/+izCw40KLj/2EBYBwo0iw+bDwK2KcYp1ikDNQJFAgJFAgEgHBsBEyUQHCcHCRwEDxcKQAZQBgIGDSUPAM8A3wADDwAB7wD/AAIALR0lFiXPFwHfFwHfF+8XAgAXEBcwFwMIFy9eXV1xcv3AxBDWXXFy/cRdAD8/7T/tMjI/7TEwAV1xAF1dKysFFAcGIyInNxYzMjc2NREQIyIHBgYVESMRNDYzMhcHJiMiBwYVFTYzMhcWFQPoM0KWSUQiNh9NFgrgUURIPLSLnExcGzgyVyEefsD6UCU6w05kE5kOTiRqAtYBAigqj339uwSYoZoSnQooJFrckq9RnQAAAgAZAAABqgW6AAMADwBxQDoPCisFCQkMBwF+AgAMBgcKYA8BDw8fDy8PAwcPDgAGJUAPCQFBfwkBbwkBAAkQCSAJAwcDCQcBCwcHuP/AtgcLNAcHERAREjkvKwEQ0MAYEMZfXl1xcl5dGk39wMDEXl1xAD8/P+0REjkvwP3AMTABIzUzEyMRIxEjNTMRMxEzATy0tG5utG9vtG4E68/8K/4bAeWEAb3+QwABAFf/5wHHBCUADAAcQA0MDAYlBAYGDAocAAILAD8z7TI/AS/tMi8xMAUGIyARETMRFBYzMjcBxzA8/vy0Mz8pIQoPAUgC9v0KZEoIAAABAEQAAAKWBCYACwAlQBIBCQslBQcDBQsGHAgGBQAcAwoAP/3EP/3EAS/dxBD93cQxMCUzFSE1MxEjNSEVIwHHz/2uzs4CUs+UlJQC/ZWVAAEAAAAAAp4FugAZAF1AOxgYMDU0OA5IDogOAzYBRgG2AcYB1gEFCRAgGQEZFwIMDAYTAAYKGSAAAQAbCzAMQAwCDBUFJRIGBhsaERI5L8D9wC9dzRDQXc0APz8SOS/U3dZd1M0xMAFdXSsBBiMiJxEjESYjIhcjJjc2MzIXETMRFjMyNwKeBr4VGbQZEE4CggE1OF8WFrQXED0MA0fkBv2XArcIX2E/RAUCe/01B18AAgAUAAACWgW6AA4AFQBhQD4GGAwVNAgYDBU0BhArMDQIECswNAoAEBAQMBBAEAQHEAQPDQQBAQMLAAMKDQIlCw8AAxADIAMDAwMTABcTBy/NEMYROS9dwMD9wAA/PxI5L8DdwBDWXl3NMTABKysrKwEjESMRIyI1NDMzETMRMyE1IyIVFDMCWqW0DeDfDrSl/qcOZmYCZ/2ZAmfb2QGf/STGZmAAAAEAg/5RAhsFugAPAENAEw8DHwMCGwUHAA0cAg8ACSUGQAa4/8BAEQcLNAAGEAYCQAbwBgIGBhEQERI5L3FyKwEaGBBN/cQAP+0/MTABX15dAQYjIicmNREzERQXFjMyNwIbREmWQjO0ChZNHzb+ZBNkTsMF9PoSayRODgABAIP+UQRPBboAIgDfuQAf//BARCotNBQIKi00VgIBSQsBNRQBBhQWFAL2FAEIFAEIFiEmIaYhAwMhAQ0DFB8eHyUTFBQTFBMRHB8fBBQeFBcrQBwGGgAHuP/AQEcIDDQHBxkKCRxABA8fFBMeE0AOETRqE3oTmhO6E8oT2hMGShMBPxMBExMYnx6vHr8eAx4NJCAAAQAkHBglGQclBgAZIBkCGS9d0O0Q/cAQ1l3txF0ROS9dXXErARESOTkAGD8aTe0/OS8rABg/PxpN/cXNERI5L+3VhwUrh33EMTABX15dXV5dXXFxXV0rKyUUBwYjIAM3FjMyNzY1NCcmIyM1AQYjIREjETMRIRUBFhcWBE+Kjd7+bEO0KvmPV1BhXJpdAVCVNv7WtLQC3f6PtXeAYd+XmgExEK1xZ5SfWVSfAV4G/GwFuv5sd/6JDXmDAAABAIT/6AYjBCYAIACSQGaGGQGHDwEpCckJAgsJGwkCFh8LBjkcSRwCORNJEwI5BkkGAgYTHAIEGhEcBAgLAQoNJUAKAcAKAQoYAR4lTwABzwAB8AABABglCAYYBigGAwYQFQFAFWAV8BUDABWQFbAVAxUVIiEREjkvXXFyM13t1F1dcf3EENRdce0APz/A/cAXM11dXT/AwDEwAV1dXV0hIzUGIyInBiMgEREzERQXFjMyNzY1ETMRFDMyNzY1ETMGI6Fv0+pCfsr+uLNRLj6FRDu0vK87HbSVrbq6AWUC2f1jtTMdXVGLAmn9TvCdTZECJwAAAQCE/mkGIwQmACAAkkBmhhkBhw8BKQnJCQILCRsJAhYfCwY5HEkcAjkTSRMCOQZJBgIGExwCBBoRHAQICwEODSVACgHACgEKGAEeJU8AAc8AAfAAAQAYJQgGGAYoBgMGEBUBQBVgFfAVAwAVkBWwFQMVFSIhERI5L11xcjNd7dRdXXH9wBDUXXHtAD8/wP3AFzNdXV0/wMAxMAFdXV1dASMRBiMiJwYjIBERMxEUFxYzMjc2NREzERQzMjc2NREzBiO0b8DqQn7K/rizUS4+hUQ7tLyvOx20/mkCLK26ugFlAtn9Y7UzHV1RiwJp/U7wnU2RAicAAQCH/lEGJgQ+ACsAjEBiiRkBxirWKgIEKhQqJCoDNidGJwIjHCcUBBMaHCklByEGFyAKCRwEDyMfJUAgAcAgASAVBgwlTwABzwD/AAIABicWJyYnAycVJQ8YPxi/GN8Y7xgFPxhfGI8YAwAYARgYLSwREjkvXV1x7TJd1F1x/cQQ1F1x/cUAP+0/wD8/wP3AFzNdMTABXV1dBRQHBiMiJzcWMzI2NRE0JyYnJiMgEREjETQjIgcGFREjETMVNjMyFzYzIBEGJjNClklEIjYfNzcJETcuPv78tLyvOx20oW/T6kJ+ygFIOsNOZBOZDkuSAtFbJ0MjHf7H/ZcCsvCdTZH92QQmla26uv6bAAH/pv5RA+oEPgAgAHRAUQcQFxo0phwBxhzWHOYcAwUcJRw1HAMHiQSZBKkEA4kDARgGHBoHFgYSHA0PAQoBJQ8A3wACDwAB/wAB0AABACIYCQ8JJd8VAQAVEBUwFQMIFS9eXV3txBDFENZxXXFy7QA/P+0/P+0yMTABcV1eXV1xKyEjETQnJiMgEREUBwYjIic3FjMyNjURMxU2MzIXFhcWFQPqtF81Sf7mNEKWSUQiNh83N6J13dBZKBAKAobCOiD+ov2Cwk9kE5kOS5MEWZevfThNMX4AAAEAi/5RBM4EPgAgAHW5ABb/6EBNExY0DBAXGjSmFgElFjUWApkJqQm5CQOZCAEDFgEHEgscFAcQBh4cAg8PCgAGJQ8b3xsCDxsB/xsB0BsBGyISDiXfDwEADxAPMA8DCA8vXl1d/cUQ1nFdcXLtxAA/P+0/P+0yMTBeXQFxXV1xKysBBiMiJyY1ETQnJiMgEREjETMVNjMyFxYXFhURFBYzMjcEzkRJlkIzXzVJ/ua0onXd0FkoEAo2Nx82/mQTZE7DAsDCOiD+ov28BCaXr304TTF+/UCUSg4AAQCHAAAD5QQmAAkAZ0BECQIZAikCAwcCAQIrBgcUBgcHAgEIBgYBBAqnAQEBByUPAAEPAAEPAP8AAgALqAYBBgIlAAQBAAQBAAQQBDAE8AQECAQvXl1xcv3FXRDWXXFy/cVdAD/AP8ASOTmHK4d9xDEwAF0hIwERIxEzAREzA+W9/hO0vQHttAMQ/PAEJvzwAxAAAAMARP/oBCcEPgAPABgAIQCfuQAW/+hARAwPNBIYDA80iSD5IAIOHx4fAgEdER0Chhz2HAIJDhkOAhcKAQgBGAECDhgrABoQGgISAxoaBBQcDAceHAQLEBkkAEAAuP/AsyQoNAC4/8BAGQkNNAAjGBokCEAIQCQsNB8IPwhPCF8IBAgvXSsBGhgQTf3FEMYrKwEaGBBN/cUAP+0/7RI5L19eXe0xMAFeXV1dXV1dXSsrARAHBiMiJyY1EDc2MzIXFgcmJyYjIgcGBwUhFhcWMzI3NgQn8HWM9IR6pInF64d/vxFCWYaHWUIRAmr9kQhJU5STU0gCIv6MhUGflPgBJ452m5KYgEtlZUuAlJtgbm9gAAACAET/6AYPBD4AHAAsAQdAQgkrGSsCCSsZK/krAyIoMigCBigWKAIWJwEXIwEHIxcjAiEiMSICCB8YHwIIHxgf+B8DDBcrQAAaEBoCEgMaGhMBErj/yEBLFho0AhISEiISAw4EEhYrEwYhHEAOBwI4Fho0AhgOETQCGysBCikcBgsdEgElQBcgGzAbcBuwG8Ab0BsGgBsBGxsKABkBBwMZFQAAuP/AQB0JDjQPAAEWAwAuJSUKQApAJCw0Hwo/Ck8KXwoECi9dKwEaGBBN7RDGX15dKwEYEMTEX15dEjkvXXHAGk39wMAAP+0/7TMrKwAYPxpN7T/tM19eXSsAERI5GC9fXl0aTe0xMAFeXXFdXXFxXV1dcSEhNQYHBiMiJyY1NDc2MzIXFhc1IRUhESEVIREhATQnJiMiBwYVFBcWMzI3NgYP/V8uXVRZ84R7fIXxW1tTLwKL/ikBsv5OAe39X0dTnqFTRUVToaJSRHNCJiOflPj4lJ8oJjZslf7gk/63AYSmbH6Aa6urbICDbQAAAgBX/+gF6QQ+ABMALACWQGtlK3UrAmYedh4CeRrpGgLpFwF5FgGJCZkJAnkHAQoDGgMqA4oDmgMFCGkGeQaJBgM3BkcGVwYDBhAjUCMCIyMIGBwQBykgHAQICwYkJKAj0CMCIyMMFCQAABAAIAADCQAuHCQADAE7HwwBDC9dXl3tENZeXe0SOS9y7TkAP8D9wD/tEjkvXTldXTEwXl1dXV1dXV1dARQHBiMiJwYjIicmNRA3NiEgFxYDNCcmIyIHBhUUFxYzMhE1MxUUFxYzMjc2BelTZMTtYWLsxGRT08EBNQE1wdO3o4zj44yjLDl037MpOX90OSsB59SIo+/vo4jUASGhlZWh/tTueGdneO6GYYABbnV1jl2DgGEAAAMARP5pBCIFugAVAB4AJwBxQEcGFBYUAmgJAQYCFgJmAgMaIBwSDwcbHxwEBwsQAAYOFiSgAAEQAAFPAAEAEhsFJQYPHwYkJK8LAUALAQALAQcLIAYBBgYpKBESOS9d1F5dcXHtETMzEP0yMtRxXXHtAD8/P8X9xT/F/cUxMAFdXV0BFAcGBxEjESYnJjU0NzY3ETMRFhcWBzQnJicRNjc2BREGBwYVFBcWBCJka8a0xmtkZWvFtL5uabk0O21wOjL+cHE5MjI5AiLok50c/nsBhh2ZkN7ekJgeAYP+fhyVj9+MZXQg/OkgeWf+AxMhdWWOjmV1AAH/5P/oAiUEJgARAG1ASTYFRgUCKA04DQIoDTgNSA0DCQQZBCkEAwsMGwwrDAMLAQ8lQB8A/wACDwABFwAAASYDABMIDSALEDQCIAsQNA0CCxwGCwEKEAYAPz8/7TIyKysBGC8Q1l9eXV5dcRpN/cQxMABeXV0BcXJxISM1BgcGIyInNxYzMjc2NREzAiWiMSk7UVtePkJCgyoetKFZJzk6pyeGX3MCLAAAAf/k/+gCJQW6ABEAbUBJNgVGBQIoDTgNAigNOA1IDQMJBBkEKQQDCwwbDCsMAwsBDyVAHwD/AAIPAAEXAAABJgMAEwgNIAsQNAIgCxA0DQILHAYLAQoQAAA/Pz/tMjIrKwEYLxDWX15dXl1xGk39xDEwAF5dXQFxcnEhIzUGBwYjIic3FjMyNzY1ETMCJaIxKTtRW14+QkKDKh60oVknOTqnJ4ZfcwPAAAAB/+T+UQMJBCYAGwByQEw2CEYIAigQOBACKBA4EEgQAwsIGwgrCAMLDxsPKw8DCwYSJUAAHxX/FQIPFQEXABUBJgMVHQsQIAsQNAcgCxE0EAcOHAkLGRwCDxMGAD8/7T/tMjIrKwEYLxDWX15dXl1xxBpN/cAxMABeXV0BcXJxAQYjIicmNTUGIyInNxYzMjc2NREzERQXFjMyNwMJREmjPCxGjltePkJCgyoetAoWTR82/mQTclOz2Lk6pyeGX3MCLPukaiNODgAAAQCF/mkCxgQ+AA8Ab0AbJgU2BUYFxgUEBAQUBCQEAwMADRANIA0DCwUFuP/gswsQNAy4/+BAKAsQNAUMAxwOBwoGCQ6wAAEAACAAAgARDAgl0AkB8AkBAAkgCeAJAwkvXXFy/cUQxl1xAD8/P+0yMisrMTAAX15dX10BcQEHJiMiBwYVESMRMxU2MzICxj5CQoMqHrSiZoBbBASnJ4Zfc/w9Bb2huQAAAQCF/lECxgQ+ABsAfkAjChIaEgL6EgEmBTYFRgXGBQQEBBQEJAQDAwAZEBkgGQMLBQW4/+CzCxA0GLj/4EArCxA0BRgDHBoHFgYMHBEPsAABAAAgAAIAHQ8YCCXQFQHwFQEAFSAV4BUDFS9dcXL9xcQQxl1xAD/tPz/tMjIrKzEwAF9eXV9dAXFdcQEHJiMiBwYVERQXFjMyNxcGIyInJjURMxU2MzICxj5CQoMqHgoWTR82IkRJozwsomaAWwQEpyeGX3P9nmokTQ6ZE3JTswRdobkAAAEAhQAAAsYEPgAPAEJALSUMAfUMAQkMGQwpDJkMBAgDHA4HCQqwAAEAACAAAgARCCXwCQEACSAJ4AkDCS9dce0Qxl1xAD8/7TEwAV5dXXEBByYjIgcGFREjETQ3NjMyAsY+Qkx/Khi0e2SfZQQEpyd6RJr91AJ48nVfAAAB/+T+aQIlBD4ADwAkQBUGDRYNJg2WDQQIBhwLBwEOASUAEQkvENbtAD8/7TEwAV5dASMRNCcmIyIHJzYzMhcWFQIltBgqf0xCPl5ln2R7/mkDw5pEeienOl918gAAAgCKAAAENgQmABQAHQECuQAC/+izHiE0Abj/4LMeITQBuP/wQIcSFjSYHKgcAhsWKxZLFgPbFusW+xYDhxQBeBQBZhDmEAI1EAHXDecNAiMMMwwCCgMaA0oDWgME+gMBNAIBJgIBAgEAFAIUASUAFBQAABS7EssSAgkSGRI5EgMSGSsABgEHAwYGCBgcCQYAAQgKmxQBCxQBCgAUEBQCEAUUAQIDBwAVJEAOAAC4/8BAFwkONAAfGQclsAjACNAIAwAIIAjgCAMIL11y/cAQxisBGBDWGk3tERIXOV9eXV5dcQA/wMA/7RI5L19eXe0zXV2HBRArEADBhwV9EMQxMAFxcV1xXV1xcXJycXJdKysrISMnJiYjIxEjESEyFxYVFAcGBxYXAzQjIREzMjc2BDbfnVtaYGizAeykZXNWUIlYWTn+/wDHi0Np6Icv/mIEJkdSnYdVTxMRgwHMp/6hGykAAgCKAAAENgQmABUAHgDMuQAV//BAahMYNEYVhhWWFaYVBAYUNhSmFANZEgHWCeYJAiMJMwkCZgUBFBUAARQBFSUAARQAAAG0A8QDAgUDFQM1AwMDGysPDwEHAw8PDRwcDAoAFQ0GmwEBCwEBCgABEAECEAUBFRQDHAAWJEAHAAC4/8BAFwkONAAgHA4lsAzADNAMAwAMIAzgDAMML11y/cAQxisBGBDWGk3tERIXOV9eXV5dcQA/wMA/7RI5L19eXe0zXV2HBRArEADBhwV9EMQxMAFxXV1xcXErAQMGBxYXFhUUBwYjIREzETMyNzY3NwM0JyYjIxEhMgQ2wllYiVBWc2Wk/hSzaG83Ik2dHGlCjMcBAP4EJv7igxETT1WHnVJHBCb+Yiobcej9FnUpGv6hAAABAD/+UQOxBD4AOAD3QEQ1GBkcNAImEiYCpiUBAiMSI1IjA3QeAXsZAcYV1hUCgBUBDREdEQIJTRBdEAIpBQEPKh8qLypfKgQPBCoBKC8cQDQPIrj/8EBiDhE0IhwKlQqlCrUKAyYKNgpWCmYKBJYKpgrGCgNYCngKiAoDCigfGAEYGhwTBwABEAECCQMBAxwoCyIKHAcYJBcHJCQ6HCQPQA9AHSE0Lw8BDwAAMgEHMgEqJQAAIAACADkQ3l39wMReXRDGcSsBGhgQTe0Q3u3U7RESOTkAP+3EX15dP+3EXRI5XV1xcRDtKwAYPxpN7RESOV9eXTEwAV1dXl1dXV1dXV1dKxM3FjMyNzY1NCcmJyYnJjU0NzYzIBcWFwcmIyIVFBcWFxYXFhUUBwYjIicVFBcWMzI3FwYjIicmNT+0H/JgQlI1JJSfN9h9a58BBmEtEbAZz+ZbGYa2G9vMZHy5WQoWTR82IkRJlkIzAT0c3SQtWD0jGCUoFVS5mFNHhT5nGK6JSyQKJDEKUMHKWixZdmokTg6ZE2ROwwAAAf+i/lECVQXTABoAbEAZCxfLFwIOAgoSCiIKAxoEAxwZARAcQAsPALj/wEATExY0AAAQACAAAwsDAAclQA0UFLj/wEARBws0ABQQFAJAFPAUAhQUHBsREjkvcXIrARgQxBpN/cRfXl0rABg/Gk3tP+0xMAFfXl1eXQEHJiMiBhURFAcGIyInNxYzMjc2NRE0NzYzMgJVGzgyVz8sPaJJRCI2H00WCkRHnEwFwZ0KTVr7P7JScROZDk0kagTNoktPAAAB/7n+UQKiBdMAIwCYuQAO//hAPg4RNAsgyyACDgIOEg4iDgMaBAgdKwsaCgMcIgEVHEAQDxJAExY0DxIfEi8SAwsSHRwaJQAJEAkCFAMJC0AAuP/AQBATFjQAABAAIAADCwMACAsLuP/AtiEkNAsLJSQREjkvKwEQwBjEX15dKwEaGBDNX15dTf3NwMReXSsAGD8aTe0/7T/A/cAxMAFfXl1eXSsBByYjIgcGFREzFSMVFAcGIyInNxYzMjc2NTUjNTMRNDc2MzICohs4MlchHp+fEzrZTFwbODJXIR7Pz0NHnEwFwZ0KKCRa/ASMc2s0nRKdCigkWmSMBAuiS08AAf9y/lECJQQ+ABsAgUA4ABIBDgAEEAQgBAMaBgscEAcZHEACDw5AGiE0DkATFzQPDh8OLw4DCw4GJUAAAJAAoAADFwMAFRW4/8CzIiY0Fbj/wEATFRg0cBWAFZAVA3AVgBUCFRUdHBESOS9dcisrARgQxF9eXRpN/cReXSsrABg/Gk3tP+0xMAFfXl1eXQEGIyInJjURNCcmIyIHJzYzMhcWFREUFxYzMjcCJURJoj0sHiFXMjgbXEycR0QKFk0fNv5kE3FSsgMsWiUoCp0ST0ui/MhqJE0OAAACAAD+UQNZBdMAGwAkAMtAGhgQCw80GxErEQJrEQEPDx8PAgISEhICDAQHuP/oQC4oLTQVBwkDEwUMAfUMAQwcCh4DHBoBEwAeEB4gHgMJAx4KIw4PCgwJFRwlB0AMuP/gQBckJzSwDAEGDBYMAh0MDwkBHwMJQAAHB7j/wLMfJDQHuP/AQBIQFTQwBwEgB0AHAgcmbyEBIRAvzXEQxl1xKysBGBDEGs1fXl3FXl1dKwEaGBBN/cUREjkAP83A1F9eXc0/7RESOTlxchEXOSsxMABfXl1dAV1xKwEHJiMiBhURFhcHJicGIyARNDYzMhcRNDc2MzIBJiMiBhUUMzIDWRs4Mlc/TpJsKGU6zP7hlHc+QURHnEz+jEc6LDl0bAXBnQpNWvtJR8J2N3uyAQ52jBoEUKJLT/nAMDoqcAABAA//8gIVBZkAFwBeuQAT/+BAMwkRNEYTAQAPEA8CDQMPBgQHJQBAARYWQB8iNCAWMBYCgBYBFhYZGBYHKwEEBAMMHBEAAwAvP+0SOS/A/cABERI5L11xKwEQwBoYzU39wM3EX15dMTBxKwEjEQcRIzUzETQnJiMiByc2MzIXFhURMwIVhLO1tQ0VRB4xGkw8szEWhAFl/vlsAXOMAm1PGykHnxBxM6H9nQAAAQAk/lECKgWZABcAfUAxBCAJEDRoBHgEArgEARUcAg8QCCsNDAsJBg8AABAAIAADFAAZDRAlAAgBFwMIQAoHB7j/wLMfIjQHuP/AQBUTFjQABwE3QAcBAAcQByAHQAcEBwcvXl1yXl0rKwEQwBoYzV9eXU39wBDWXl3GAD8zM8D9wD/tMTABXXErAQYjIicmNREjNTMRNxEzFSMRFBcWMzI3AipMPLMxFoSEs7W1DhVDHjH+YRBxM6EEBIwBB2z+jYz78k4bKgcAAAIAGf/oBFIEJgAYACQAf0BTCBAHCjSWHqYeAskH2QfpBwMXEw8rARoODgYVEQYDCkkjWSNpIwMjBB8cBgsDFBklABfPAgEPAh8CAgcCJhMaJTAOQA4CDg0AEAEAEBAQMBADCBAvXl1x0M1x/cAQ1l5dccDG/cDEAD/tMjJdPz/AEjkvwMD9wMAxMAFdXSsBIxEjNQYjIicmJyY1NSM1MxEzESERMxEzBSEVFBcWMzI3Njc2BFJyoXzVzFwoEAtqarQB9bRy/tr+CwsjrVFFSh0cAeX+G5y0fzdONnJRhAG9/kMBvf5DhAyPL5gpKkhEAAEAVP/nBDcEJQAtAE1ALFkMAVYKASkkAwMILS0lJCAIMAgCCAgvGyQTEx8kDhcXDgErLRUrFwYiHAsLAD/tP+3U7QEvMy8Q7TMv7REzL13tMy8RMy/tMTBdXQEjIhUUFhcWFRQAIyIANTQ3NjY1NCMjNTMyFhUUBwYVFBYzMjY1NCcmNTQ2MzMEN1JWFzFg/uDS0v7hYDEXVlJeY3Y9QriBirBCPXZjXgOaPhkzP3mD4/71AQvjg3k/Mxk+i2hVSGJoebKwuqh5aGJIVWgAAQCI/+gD2gQ+ABkAhkBdBhAHCjRXAmcCAhMDIwMCVw1nDQIJEBkQAtkQAQoQmhCqEMoQBAMAGQELBRMcGAcJBg8cBAsWFgoRJABAAEAnKjQAQBccNG8AAQ8ALwACABsKJQAJEAkwCfAJBAgJL15d7RDGXXErKwEaGBBN7RE5LwA/7T8/7TEwAV9eXV9dXXFdXV0rARAHAiEiJyY1ETMRFBcWMyARNCMiByc2MyAD2ktw/ubOW1S0Iy96AR+WMjgbXEwBJgLv/re0/vZyadoCif13i0BWAmK7Cp0SAAEAGgAAA+gEJgAKAPu5AAr/8EAZFRg0CRAVGDRnBgFoAgEfBAFPBF8EnwQDCbj/6EALEhJCVQoYEhJCVQG4/+hAYRISQlUHGBISQlUCAwQBBgUEBwQBBAcBJQAKFAAACgQHByUICRQICAkECAoJBgABBwgKWQkBGAkoCQIHCQQKAQUIJwABZwCHAJcApwDHAAUgAEAAAgMPAB8ALwADBwUADAi4/8BAGicqNCgIAWgIiAiYCKgIyAgFBggWCCYIAwcIL15dXXErARgQxl9eXV9dXXERFzldXQA/wMDAP8ASOYcFEE0rfRDEhxgQKwh9ENSHDsTEhw7ExAErKysrMTAAcXIBcXErKyEjAyYnBgcDIwEzA+i57CsYHyXkvgGUqAKIdlRuaP2EBCYAAAEABgAABbcEJgAMAQBAxWcMAQkLGQtJC1kL6Qv5CwY5C0kLeQsDtgvmCwIGCRYJRglWCWYJ5gn2CQc2CUYJdgkDuAnoCQIpBEkEWQQDiQQBdgQBJgNGA1YDA4YDAToKSgq6CgMMCgGdBa0FAosFAQQFAZ0CrQICiwIBBAIBBwUKAgMHDAsJCAYAAQMEBgcKdgwBLQw9DAIKDBoMAghVCnUKhQoDaQgBEwgjCAIVBSUFAlIDcgOCAwMaAioCAggFCQQKAwILDAkHASUAACAAAgAOBiUHL+0Q1l3tEhc5XV1dXV1dXl1dXQA/wMDAwMA/wMDAEhc5Xl1dXV1dXV1dMTABXXFdXXFdXXFdXXFxISMDAyMDAyMBMxMTMwW3r/PbudnougFFvNfcuwNJ/LcDSfy3BCb8zwMxAAEAGAAAA+YFugAHAMVAhhcHARcHATgCAbgCAQcHAAICAQMGAwIBASUABxQAAAcGAwMlBAUUBAQFVwcBtwcBNQdFBwIVB9UHAkQHpAcCAAdwB4AHkAcEAgcEBgUAAAEDBAqyBcIFAhcFhwUCJgUBhgW2BcYFA6gFAZ8FAQMBAgcFBgYEMAABEQABAAnWBAEHBHcEAggEL15dXRDGXV0RFzldXV1xcXEAP8DAwD/AEjk5XV1dcV1xhwUQK30QxIcYECt9EMQQhwjECMQxMABdcgFdciEjAQEjATMDA+a+/tf+174CJL6eAxr85gW6/lgAAAEAGQAABA8EJgAMAGJAQsgLAQcBFwHXAQMIeAGIAQJ5BIkEAhUJAQQJAQMDDAUGAwoJASXABNAEApAEAQQEBQwlMAABAAAgAAIADgYlAAUBBS9y7RDWXXHtEjkvXXLtOQA/P8ASFzlxXV1eXTEwXQEBESMRATMTFhc2NxMED/5YtP5mycgyOS5GxAQm/Zz+PgHCAmT+yk1nUGwBLgAAAQAo/lEEowQmABsAlkBkiQSZBKkEA7gKAZQKpAoCRwoBmhGqEQIKERARJQkKFAkJChkcAg9lEAEFEBUQJRADABAwEHAQgBAEBwMQCgwcQA4GERMJGCsyNAsJAesJ+wkCCRMcCAoHJQAQFB0NAAkgCQIJHBDeXcYQ3sbE7QA//cRdcSsAGBDFPxpN/cXNX15dcXI/7YcFECuHfcQxMAFxcXFxXQEGIyInJjU1ITUBBiMhNSEVATYzIREUFxYzMjcEo0w8szEW/QcCpJU2/k8DZP1SoUIB6w4VQx4x/mEQcTOhapIDCAaSd/zjCf7xThsqBwACACj/XQQoBCYAGgAhAQJAs5YZphkCfBeMF5wXA5wXrBcCKhc6FwJqF3oXihcDmhOqEwKUDKQMAkYMVgwClwKnAgIMExITJQsMFAsLDB0cMBgBGBZXEmcSAgcSAQelErUSAkgSWBICAhISEgIOAxIMDhxAEAYTFgsQKy40qQsBiQuZCwIKCxoLAvoLASgLAQsfFhwECgoJFgEWAAkfGwQlCQkLGx8SLxI/EgMSGyVvAAEPAAEIACMPQAsBAAsQCyALAwsiEN5dccYQ3l5dce3EXRESORDtETkREjldAD/A/cDEXV1xXXIrABgQxT8aTf3FzV9eXV1dXl1yENVd7YcFECuHfcQxMAFdcXFxXXFdcV0lFAYjIQYHJzY3ITUBBiMhNSEVATYzMxIzMhYHNCMiBzMyBCiFb/7YLiSLERv+zQKklTb+TwNk/VI9Qi3Ev3CDo1BTdMZR7W5/U1A9LDqSAwgGknf84wkBQH9vUaMAAAEATP5RBBgEJgAhAN25AB7/6LMoKzQKuP/wQHcMDzQIDgEJFxkXKRcDORdJF9kXAxMgIyAzIAMXAicCNwIDSQYBSBIBCBIBDBceHR4lFhcUFhYXFRwWDx4BFh4eBBcGHQFDHRkrGwYIDBwEDxceFpUWpRYCNBZEFgIEFhQWAgh3FocWAhYHDx0fHQISAx0QJABAALj/wEAPCw40AAABACMaCCQ/BwEHL13txhDGXSsBGhgQTe3EX15dETldXl1xchE5OQA/7cQ//c1eXcUSOS9eXcXthwUQK4d9xDEwAF5dcQFdXV1xcl0rKyUUBwYjIiQnNxYXFjMyNzY1NCcmIyM1AQYjITUhFQEWFxYEGIqN3sL+/hO9E0RLeI9XUGFcml0BUJU2/k8DZP6PtXeAYd+Xmt/AEH1LU3FnlJ9ZVJ8BXgaSd/6JDXmDAAIAef5RBFMEJgAmADEB1LULIAgPNB+4/+BA/ygrNFgTATkYWRhpGHkYqRi5GAaJGJkYAmkYARoYKhg6GAMVHyUfNR8D9yEBFiEmITYhdiGGIQVlIQEEIQEHViVmJXYl1iXmJQXqJ/onAgMPJx8nAggGBxAXGjQHEAgMNAgHAfgHAakHAUknARgfHh8lFxgUFxcYlQClAAIFD5UPpQ8DB4QllCUCACUPAw2FJ5UnAlgDaAN4AwMnAykBFhwXDx8fHy8f7x8ECB8fBRgGHgFDAh4SHiIeAx4aKxwGDRxwKdApAg8pAQgpMBwBBQ8mJQEXAycDAgUDFQMCJQMjCQ8nESwYHxc3F0cXhxeXFwQAFxAXIBcDyhfaF+oXA0ATCBcBChcbDx4fHgISAx4RJCNAI7j/wEAfCw40ACMBIzMPGwEAGxAbIBtAGwQJGw8sARIDLAlACbj/wEAPBws0AAkBgAnwCQJACQEJL11xcisBGhgQzV9eXS9eXXIQxl0rARoYEE3txF9eXRE5Xl1dcXEROTkREjk5ERI5OV1xXQA/wO3UXl1d7T/9zV1eXcUSOS9eXcXtERI5OV1dEhc5XV5dXYcFECuHfcQxMABycXFyKysBX15dX3FdXl1dXV1dXV1xcl0rKwEHJicGIyInJjU0NzYzMhc2NTQnJiMjNQEGIyE1IRUBFhcWFRQHFiUmIyIGFRQXFjMyBFNkGWKF9JVdbFlRf7i8H2Fcml0BUJU2/k8DZP6PtXeAREj+yJeKOUpHOT6H/tB/HGB8PUeJeEE7gz5En1lUnwFeBpJ3/okNeYPOkIFCNWwvJzciGwAAAQAkAAADsAXUABcAfrkADv/oQEIYIDQWAiYCApMDowMCCAwBDCoROhFKEQMHFBcUApgVAQQVFBUCDQkcBAQSBg8NHBIBBgoGJQAFAREDBQUQCyQAQAC4/8C3CQw0ABkPJRAv7RDGKwEaGBBN7RI5L19eXe0APz/9xhESOS/tMTABXl1dXV1eXXFdKwEUBwYHESMRFjMgERAhIgcnEiEyFxYXFgOwXm3DtCw1ASj+zsAyr0EBZ5BudTg5A6XPlq4N/nsCIA4BmAGW1xsBUEBEfoEAAQBQAAAD3AXUABUAZ0BFAiAYIDQnAgE2BAFJDlkOAkkSWRICZRV1FYUVAwccDAwUCwEDHBQBCwoKJZALAQsLEAEkMAABAAAgAAIAFwUlHxA/EAIQL13tENZdce0SOS9d7QA/P/3GERI5L+0xMAFdXV1dcSsBByYjIBEQITI3ESMRJicmNRA3NjMgA9yvMsD+zgEoNSy0w21e53SJAWcEhBvX/mr+aA794AGFDa6WzwFvgEAAAQAk/+YDsAW6ABkAdrkACv/oQD0YIDQWGCYYAggNAQynBscG1wb3BgQpBjkGAgUCFQICDREcFhYEFAAJCxwECxMlABZQFgIRAxYWCA8kAEAAuP/AtwkMNAAbCSQIL+0QxisBGhgQTe0SOS9fXl3tAD/9xj8SOS/tMTABXl1dXV5dXSsBEAcGIyInJic3FjMyNzY1ECEiBxEzERYXFgOw5nWJqW5xIK8ywKNPQP7YNSy0w21eAhX+kX9BVVekG9d/aa4BmA4CIP57Da6WAAABAFD+UQPtBD4AGQCbQFApGDkYAqkWuRYCBxYXFgIGExYTAg0JERkRqRG5EekR+REGJQ7FDtUOAwgLAUcGAQkFGQUCDwYCAREPEAEYAxASHA0HGRccBA8ZJQAQJQ9AD7j/wLMVHDQPuP/AQBINETQADyAPAg8bFCUfCT8JAgkvXe0Qxl0rKwEaGBBN7dbtAD/9xj/9xl9eXTEwAV5dXl1dXV1dXl1dXV0FBgcGIyInJjUREDc2MyATByYjIBERECEyEwPtHHR3s+2Adud0iQFnQa8ywP7OASjmJSmzaGuglPMBlwFvgED+sBvX/mn+av5oAQkAAwBj/+cF3QXUABUAJQApALZAZBokKiRaJGokBBUgJSBVIGUgBBUcJRxVHGUcBBoYKhhaGGoYBGgUAYkPqQ/JD9kPBGgCAScmDyhvKH8onyjPKAUPKD8oryjPKN8o/ygGCAMoKAYaHhADIh4GCSYmJycMFiYAQAC4/8CzNDc0ALj/wEAYBwo0gAABACseJmAMcAwCIAwBDwwfDAIML11dce0QxnErKwEaGBBN7RI5L+0AP+0/7RI5L19eXXHtMTABXV1dXV1dXQEUBwYHBiMiJyYnJjUQNzYhMhcWFxYHECcmIyAHBhEUFxYzMjc2JSM1MwXdUVutpr7KoqZXVLK+AU7IoqZXVcjtdJL+/YJyf4ns9od5/m/NzQLb1am8X1tgY7KtwQFV1OFeYbCs3QFylkm4oP7y8Z6rsaCJzQD//wCIAAAD8AQmAgYCXAAAAAIASf/oA8sEPgASACoAsUBWDRAICzSaKaopuikDOilaKWopA1wWbBYCuRUBORUBWREB2QwBrAgBCgUaBSoFygUECNkZ6RkCCR4cAB8QHwIfHwMXHA8HJxwDCw8fARIDHx8LEyQAQAC4/8BAIAkONAAsCRAHCjRNCQEJGiQLIyUQByAHMAcDPwdPBwIHL11y7dTtM3ErARgQxisBGhgQTe0ROS9fXl0AP+0/7RI5L13tOTEwXQFeXXFdcV1xXV1xKwEQACMiJyY1NDcmNTQ3NjMyFxYDNCcmIyIGFRQXFhcVJiMiFRQXFjMyNzYDy/7u5KdreqB+bmaXyImkuUZToUxiXDR/Jxb/QjxXil1ZAhP+8v7jS1agtVZNgpNXUXaO/tmrbIBVS2ciEwGNAbFUNDBqZQAAAQBQ/+gE9wTjACcAmLkAJf/oQGMLETRyIoIikiLCIgQ4FgEIHgFpGXkZAggMAfgMAUcMVwwCExyvFL8UAhQUDwsfCS8JAgkgJhwDBwscIAcPHBgLExMNESIJJQAIESUPFu8WAgiAFgEWKQ0krxy/HAIfHD8cAhwvXXHtENZdXl3t1MT9wBESOS8AP+0/7T/tEMRdERI5L13tMTABXV1xXV0AXV0rAQcmIyIHBhUVByYjIBEQITI3NSE1IREGISInJjUQNzYzMhc2NzYzMgT3GzgyVyEerzLA/s4BKJ9p/s0B57f+/e2Adud0iZNmBQo62UwE0Z0KKCRaqhvX/mr+aEy3lf5olKCU8wFvgEBALByd//8AiAAAA+MEJgIGAmcAAAADAAD+UQMqBboAAwAWACAApUBVIAgOETQLECElNAsQGBs0CxAJDDRZD2kPAisPOw9LDwMnBzcHRwcDFRErBU8YAe8Y/xgCEBiwGMAYAxgBfgIAABMQEwIHAxMGHysJDwEXEiVAAAUVFbj/wEAaLzI0sBXAFdAVAwAVEBWgFQMHFRUNFiIbJQ0v7RDGETkvXl1xKwEQwMAaGE39wMAAP+0/X15dP+0vXV1xwP3AMTABXV1dKysrKwEjNTMTIwYHBiMiJyY1NDc2MzMRMxEzBSMiBhUUFxYzMgKhtLSJiQdYXqSbVVBOS3zYtIn+w9EpRjErOpQE6dH6FKtmbE9KfHtFQwO9/EObPio5IhwAAQAI/mkDeAQmAAsA90AYBxATGjQDIB0hNHkDAT8DAQ0DLQMCEwQCuP/YQIweITQGAgEWCAgHBQUGBAkECAcHJQYFFAYGBQIDAyUECRQEBAkBDgoJAT1aCboJygkDegmaCQJ6CdoJAgQJAZwJAY0FAXgFATkFAQMFAQgDBQgCCQQGAwQKCgcGBgQIKy40BgQWBAIGBBYENgQDqgS6BOoEA6oE+gQCCAUHAwQFBgkCJcAAAe8AAQANBi8Q1l1x/cASFzldcV1yKwAYP8DAP8ASFzlfXl1dXV1dcV1xcl5dP4cFEE0rBH0QxIcFGBArfRDEEIcIxAjEMTAAXl0rAV9eXV1dKysBIxEBIwEBMwE3ETMDeLT+VukBlv5B3gFff7T+aQNH/lABigKc/eF6AaUAAAEAiAAAAusEJgAFADVAJAIGBCsBCi8AAQAAIAAwAAMABwQlwAHQAQLwAQEAASAB4AEDAS9dcXLtEMZdcgA/7T8xMCEhETMRIQLr/Z20Aa8EJvxvAAIASP5pBPsF0wAbACsA70ALGRALETQeEBQXNCe4/8hASQwPNAkqmSqpKvkqBA2GJpYmAocilyICAiESIQKZHtke6R75HgTJGdkZ6RkDmBIBhw6XDucOAwUOFQ4CDgMADgETCQ4AFgEYBha4/+hAUgsPNB4WIBxAFAcPKgELBQoQDhE0OwoBKgooHAwLAxoBHAoWJQBPCJ8Irwi/CAQPCC8IvwjPCN8IBQ8I7wgCCAgtJCS/EM8Q3xADHxA/EE8QAxAvXXHtENZeXXFyxv3AxAA/zT/tMjJdKwBfXl0YPxpN7TIyKwBfXl0YPzEwAV5dX15dXV1dXV1dXV5dKysrAQcmIyIHBhURIxEGIyInJjUQNzYzMhc1NDYzMgE0JyYjIgcGFRQXFjMyNzYE+xs4MlchHrRitNuAc9lpfrpqi5xM/p8/TpiWSTk/TpeRSz0FwZ0KKSRa+eICCImzn+MBWYdBiOGhm/wzpXSRimykom+Jg2oAAAEAJAAAA7AF1AAfAMG5ABb/6EBrGCA0BgJmAnYCA+MD8wMCihmaGaoZA2ccdxwCBB1kHXQdAwcOBSsLQAhQCGAIAwAIARIDCAgKERwEQARAEhg0BEAJDDQPBAEEBBoKDxcBBxcVHBoBCgoGBgAFDgolCAAFAREDBQUYEyQAQAC4/8BACQkMNAAhFyUYDC8v7RDGKwEaGBBN7RI5L19eXcD9wBESOS8APz/9xl5dERI5L10rKwAaGBBN7RI5L19eXXLA/cAxMAFeXV1dcV0rARQHBgcVIRUhFSM1ITUhERYzIBEQISIHJxIhMhcWFxYDsF5twwFJ/re0/rYBSiw1ASj+zsAyr0EBZ5BudTg5A6XPlq4NbYSUlIQBCA4BmAGW1xsBUEBEfoEAAQBQAAAD3AXUAB0As0B1FCAYIDRHFAFWFgEJCmkKeQoDCQ5pDnkOAwcFERURJREDDxwHKwFABFAEYAQDAAQBEgMEBAMZHAhACEASGDQIQAkMNA8IAQcICBADExUcEAEDCgUFAwwcAiUHkAMBAwMMEyQAMBIBABIgEgISHxclHww/DAIML13tENZdccDtEjkvXcD9wBESOS8APz/9xhESOS9eXSsrABoYEE3tEjkvX15dcsD9wDEwAV5dXl1dXXErJSEVIzUhNSE1JicmNRA3NjMgEwcmIyARECEyNxEhA9z+trT+twFJw21e53SJAWdBrzLA/s4BKDUsAUqUlJSEbQ2uls8Bb4BA/rAb1/5q/mgO/vgAAwBG/+gHiwW6ABkAHgAuAR65ACr/yEBzDA80CC1YLQL4LQEGKQH2KQEHJQH3JQFiJHIkgiQDCSFJIVkhaSEE+SEBgRqRGqEaA1cHAfcHAXUHhQcCxwgBjx6fHq8eAxoWFRYlHhoUHh4aCBUBFRocKxMGDx4fHj8eTx5fHgUDAB4BBwYeFhgrQAEKELj/6EBPCw80IRAjHA4HKS0BSAJYAmgCAysCAS0CKxwECxEAGhYVHhMlEB8fAT8BAgABEAECAQEKFcAZARkwJyQvCgG/Cs8K3woDHwo/Ck8KXwoECi9dcXLtENZdxhI5L11xxNT9wBE5OQA/P+0yMl1dXT/tMjIrABg/Gk391cBfXl1fcT/9xcVdhwUQK4d9xDEwAHEBXV1dcXFdcV1dcV1xXXErISE1BiMiJyYnJjUQNzYzMhcRMxEhFQE2MyEBBiMhEQM0JyYjIgcGFRQXFjMyNzYHi/utZcSDa2c5O9Rqg7tqswOM/VKhQgHr/viVNv4npDtMnJdJOT9NlZRKPYaeSUd6f6EBXYpFkgIO/mx3/OMJAv8G/P4BcatujYhqpaBvh4BpAAACAEb+UQb8BboANABEAUm5ADH/4EBkKC80FyAoLzTJQ9lDAkJAUkACJkA2QALGP9Y/AsY71jsCQjpSOgIZNyk3Ask32TcCNTNVM9Uz5TMEaReZFwIoDgEXMTAxJRYXFBYXFhQcQFAxAQAxAQoPMa8xvzEDDAMxMQMZMLj/8EANBxE0MBcaK0AuBiwAK7j/6EBMDA80Nys5HCkGBwcMHAoJHRkdAg5DHUEcHwsMHAMPMRfrFgEZFkkWeRYDDxYBDxYWMBsIJQcdNSslLhsbJQ8wHzAvMAMSAzAQJABAALj/wEARCg00AEY9JB8lPyVPJV8lBCUvXe0QxisBGhgQTe3EX15dEjkv0P3ExNTtERI5L15dcXE5OQA/7T/tMjJeXT8SOS8/7TIyKwAYPz8aTf3FzSsAERI5GC9fXl1eXXEaTe3VhwUrh33EMTABXXFdXXFdXV1dXV0rKyUUACMiJyYnMxYXFjMyNzY1NCcmIyM1AQYjIREjNQYjIicmJyY1EDc2MzIXETMRIRUBFhcWJTQnJiMiBwYVFBcWMzI3Ngb8/t7frICGEa8QQVB1kFtVYVyaXQFQlTb+0adlxINrZzk71GqDu2qzAuL+j7V3gPw/O0ycl0k5P02VlEo9Yd7+zk9SgjUoMnFok59ZVJ8BXgb8bIaeSUd6f6EBXYpFkgIO/mx3/okNeYPUq26NiGqloG+HgGkABABG/10H3wW6ACYALQAyAEIBzLkAPv/IQMkMDzQIQQGoQbhBAqY9tj0Cpzm3OQISOCI4MjgDCTUZNQKpNbk1+TUDMS5BLlEuA7kuyS7ZLgM8IwFsI3wjAgojqiPaI+ojBAwXHwGUH6QftB8DhxDnEAIFEBUQAg4HEQETCQIZAgIGJQEdDzIfMi8yAx8DLh8eHyUyLhQyMi4eQBoeNB5AEhU0Dx4fHi8eA0weAQgeAQceLjArHAYpHEAAJAEKAyQiMkAWGDRZMmkyAnkyAbkyAX8yAQMAMgEHBjIfKyIrQAQKChm4/+hAdQsPNDUZNxwXBzlBAVgLaAt4CwM7CwFBCz8cDQsaAFkiAQkiAQgiAAl2KwErJwQlCQsJGwkCCScuHx4yHCUZMx8KPwrPCgNACpAKAgoKEyclDx4fHi8eAx4gAMAAAgBEOyQvEwG/E88T3xMDHxM/E08TXxMEEy9dcXLtENZdxF3tEjkvXXHE1P3AETk5ETldEO0ROV0REjleXXEAPz/tMjJdXV0/7TIyKwAYP8AaTf3A1cBfXl1fcV1xcisAGBDVX15dGk3tP/3FxV5dXXErK4cFGBBNK4d9xDEwAF9eXV5dXQFeXV5dXV1xXl1dcV1xXXFdXV1dcSslFAYjIQYHJzY3ITUGIyInJicmNRA3NjMyFxEzESEVATYzMxIzMhYHNCMiBzMyAwYjIREDNCcmIyIHBhUUFxYzMjc2B9+Fb/7YLiSLERv+JmXEg2tnOTvUaoO7arMDjP1SPUItxL9wg6NQU3TGUbmVNv4npDtMnJdJOT9NlZRKPe1uf1NQPSw6hp5JR3p/oQFdikWSAg7+bHf84wkBQH9vUaMC/wb8/gFxq26NiGqloG+HgGkAAgAkAAAFZAWZACMAOAEQQDCmAQEGAhYCAlkHaQd5BwOEFQF5GQEFIxUjAgkrGSsCCQgsWCwCDgUeAQMAKgEQBSG4//BAiA4RNCEcJwcnAVUnlSelJwOGJ5Yn1ifmJ/YnBWonAUgnWCd4JwMnBQ8YAQoDGBocEwc2KwUxCytAEA8ODAYhJxwkMCgXKTQRMBccJF8uby6PLgMPLi8uPy5PLt8u7y4GDC4uMQAYJBckJAA6EDElAAsBFwsNAAoBN0AKAQAKIApACsAK0AoFBwovXl1yXl3AzV5d/cAQ3u3U7RESOS9eXXHtEjk5KwEREjk5ABg/MzPAGk39wC/tP+3EX15dEjldXV1xchDtKzEwAF9eXV9dAV5dXl1dXV1dXV0BFAcGIyEiJyY1ESM1MxE3ESE2MyAXFhcHJiMiFRQXFhcWFxYHNCcmJyYnJicmNTQ3IxEUFxYzITIFZItxsP30pjYohISzAZhPVQEGYS0RsBnP5lsahcZFoblXG3ukMoAwKCbbDhVEAfX0ATikUkJaQaoCVYwBB2z+jRiFPWgYrolLJAokNR5Fx0ooDB8pFDFOQU1LQ/2hThsqAAIAJP5RA/0F0wApADIAl0BDJhgOETQlCjUKRQoDISAeLB0rIh4GMRwXCxAcCw8DHCgBDSMqFCXAANAA4AADAA8H7wcCCAc0IiwlAB0BFwMdQB8cHLj/wLMzOTQcuP/AsxMYNBy4/8BADgcMNCAcAUAcYBzwHAMcL3FyKysrARDAGhjNX15dTf3AENZeXcRd/cDAxAA/7T/tP+0/wP3AETMzMTABcSsBByYjIgYVERQHBiMiJzcWMzI3NjU1BiMiJyY1ESM1MxE3ETM1NDc2MzIBESMRFBcWMzID/Rs4Mlc/LD2iSUQiNh9NFgpLQaQzI4SEs9NER5xM/o3TDRVEKgXBnQpNWvs/slJxE5kOTSRqNw9aPa4CY4wBB2z+jXGiS0/61ALz/ZNPGioAAAIAJP/oBZwFmQAxADsBM0C4lTEBBjEWMSYxA3guAQYPATYPRg9WD+YP9g8FJww3DEcM1wwERQtVC2ULA0YEVgRmBAN1B4UHlQcDKgcJKDkTSRNZEwO5N8k3AhM3FTUcCQkwLwEBLwEBbwF/AY8BAwEBEQMcMAc5HBELHx4cIxsrIBwGKBwVC8kq2SrpKgMTKg0sZTcBNwcyBSQvLM8sAm8sfyyPLAMsLAAjoDIBMg0BJA8AAQgAPSAPIgEQIiMlABsBFwMbQB0aGrj/wEAZHyQ0ABoBN0AaAQAaIBpAGsAa0BrgGgYHGi9eXXJeXSsBEMAaGM1fXl1N/c1eXcAQ3l5d7dbNXRESOS9dce0ROTldERI5OV0AP+0/wP3AETMzP+0/7RI5L11xchE5L+0ROTldXRESOTldMTABXV1xXXFdXV0BByYjIBEUFzYzMhcWFRQHBiMiJwYjIicmNREjNTMRNxEzFSMRFBcWMzI3JjUQNzYzIAM0JiMiBxYzMjYFnK8ywP7OH9Stf0xUcWep6Xucb5Q0KISEs7W1DRQ7NGdC53SJAWd2QzaXqVCJXYMC7hvX/mp5SK47QoGMS0SJf1pEpwJjjAEHbP6NjP2TTRwqTHK3AW+AQPzFKjuVV0sAAAEAE/5RBZMF0wA3ASRALyEgCg40ExAXGjQiAzIDAoYQAYkQuRACaSJ5IokiAwI0EjQyNMI0BAkEKBxAIwEvuP/gsyk1NC+4/+hAchcdNC8SHDEHGBwrLR0GCRwEDxYaCi4VJRZAFkAkKjQPFh8WAjw/Fl8WbxYDDxYfFk8WXxavFt8W7xb/FggMAxYWABgGDSUAQABAJik0LwA/AN8A7wD/AAUPAB8AAg8A/wACCAA5LQ8lARIDJRglQB4bG7j/wLMpLjQbuP/AQBQdITQAGyAbQBuwGwQHGwAcIBwCHC9dL15dKysBEMAaGE39xF9eXcAQxl5dcXIrARoYEE39xBESOS9fXl1xXl0rARoYEE39xAA/wD/tP8D9wD/9xCsrABg/Gk3tMTABX15dXV1xcSsrBRQHBiMiJzcWMzI3NjURNCcmIyARESMRIxEjESM1MzU0NzYzMhcHJiMiBwYVFSEVNjMyFxYXFhUFkyw9oklEIjUgThUKKzSA/ui0z7OfnxM62UxcGzgyVyEeAXF13W9ZZiEcOrRSbxOZDk0ibAK8iENR/qL9vAOa/GYDmoxxazSdEp0KKCRaYpevLjRgUZ4AAAEAg//oBPsFugAxAPxAMwUCFQICpwEBBTAVMFUwA3YqAXklAcch1yEChCEBCh0aHSodAwk6HEocAgMPDx8PAhAFLrj/8EB8DhE0LhwUhRSVFKUUAxYUJhRGFFYU5hT2FAaGFJYUthQDSBRoFHgUAxQEDyQBCgMkJhwfBwsNHA8GHwYvBgMMBQYECwkACAouFBEoJBtAG0AHCjQfG88bAo8b7xsCGxsACyQkIxEkADMGCyXvCAEgCFAIAgAIEAgwCAMICC9eXXFx/cAQ3u3U7RESOS9dcSsBGhgQTe0ROTkAPz8/M19eXe0yP+3EX15dEjldXXFxEO0rMTABX15dX11eXV1dXV1dXV0BFAcGIyInFSMRMxEWMzI3NjU0JyYnJicmJyY1NDc2MyAXFhcHJiMiFRQXFhcWFxYXFgT7r4PU/MK0tMrzf1d4NSSUpDKAMCh5ZqgBBmEtEbAZz+ZbGoW2G34yKwE4u1VAcFgFuvtbmR8rXz0jGCUpFDFOQU2QWEqFPWgYrolLJAokMQouST4AAAIAgwAABOMFugAKAA8Ai0Bb+AsB1AvkCwKHCwHaB+oHAlUHAQsHBgclDwsUDw8LDwZfBn8Gjwa/Bt8G7wYHEwMGCw0cQAQGD0AUFzQfDwEPBwkcAQoCAAsHDwYPCi8KAggKEQQPJQABIAECAS9d/cAQ3l5dxhE5OQA/P/3FxHErABg/Gk39xcVfXl2HBRArh33EMTABXV1dXV0hIREzESEVATYzIQEGIyERBOP7oLQDjP1SoUIB6/74lTb+JwW6/mx3/OMJAv8G/P4AAAIAHgAAA8QFugAMABkBNEB4DBkBDgsYAg8KFwMQCRYEEQgVBRIHFAcZFxkCphi2GMYYA8cY1xgCBxdnFwKnF7cXAkcVVxUClxUBaBJ4EgKWEQGZDwFnDncOpw63DscOBccO1w4CFBIVERAWFw8OGBkLEwCDDZMNAmoNeg0CAA0QDQIIAw0bBhMTuP/oQGAOETQTSQtZCwI4CAFmA3YDhgMDSQNZAwI0AwECAxIDIgMDCAMLAwYCBQAJEAkCDAkGAEkYWRgCORUBZhB2EIYQA0kQWRACNBABAhASECIQAxUYEAMAFhAWAggZFhMPEgoAP8DNMjJeXRc5XV1dXV1dPzMzXd3AEhc5XV1dXV1dAS8rAREzGBDGX15dXV0yERc5XXFdXXFdcV1xXXFdETMRMxEzETMRMxEzETMRMxEzETMRMzEwAQMjAwMjAzMTEzMbAgMjAwMjAzMTEzMTEwPEsYGhoICzhXumYap1gLGBoaCAs4V7pmGqdQW6/UUB/f4DArv97QIT/e0CE/0B/UUB/f4DArv97QIT/e0CEwACAGMAAAPVBboABwAPADhAHwEJJQAACBAIAggRBAwlBSANAQ0BBQMrBgALKw4JDQoAP8Dd7T/t3cABL13A/cAQ1l3A/cAxMAEjESERIxEhESMRIREjESED1bT99rQDcrT99rQDcgPTATr+xgHn+kYBOv7GAecAAQBkAdoCrQW6ABMAa7kAEf/oQBQNEDQJAxkDAhcDAAYQBgIjBgsADbj/6LQkOjQNBL8DHQAPAxkAAQAKAxoAAQMcQAlwAOAAAgAKDAm4AxxACU8KXwoCIAoBCi9dcf3AENRd7QA/wD/tMisAGD8xMAFfXl1fXl0rASMRNCMiBwYVESMRMxE2MzIXFhUCrXqXfiwUenpVgqk2GQHaAcevaC9W/ncD4P6cY3c3agAAAQBkAdoCrQXJABwAhLkAGv/oQBcNEDR/A48DAjQGRAYCDwwfDC8MAxAFErgDHbNADQAWuP/otCQ6NBYEvwMdABgDGQABAAoDGgABAxxAEQAAAZAAAQAKAA8QDwIHDxUJuAMcQAlPCl8KAiAKAQovXXH9wMReXRDUXXHtAD/AP+0yKwAYPxpN7TEwAV9eXXFdKwEjETQjIgcGFREjETQzMhcHJiMiBhUVNjMyFxYVAq16l34sFHrIND0SJyE7KlWCqTYZAdoBxq9oL1b+eAMb1AxqBzM9lWN3N2oAAAL/zgC2AOIFuQADABMASLkAB//wtiUpNAECABK/AxkADAMdAAgDGwAAAAQDHEATCgEPEQHfEf8RAhARIBECEREVFBESOS9dXXLAxP3AAD/tPz/NMTABKxMjNTMRFAcGIyInNxYzMjc2NREz4np6Iy1lMC8XJxM0Dgd6BS2M+/mDNUQNaAo1F0gC8wAAAQBkAdoB6wS4AA8AabUFEBMXNAW4/+hACywxNAAFEAUCKAUMuP/wQBATFzQMDwMfAwI5LwMBAw4KugMZAAkDGrcPAAEHAAkLCLgDHEANAAkQCWAJoAkEIAkBCS9dcf3EEMReXQA/P9TNcl5dMisxMAFfXl0rKwEHJiMiBwYVESMRMxU2MzIB6yosLlkcFHpuRVY/BJFxGlpATv6IAs5tfQAAAQAAAcoBhwSoAA8AabULGCwxNAu4/+hAHBMXNA8LHwsCKAUCGBMXNAIACRAJAjkgCQEJBAG9AxoADgMZAAEADQMcQBcPAAEAnwavBr8GA28GAQAGEAYwBgMHBi9eXV1x1F39xAA/P9TNcl5dMisxMAFfXl0rKwEjNQYjIic3FjMyNzY1ETMBh25FVj8/KiwuWRwUegHabX0ncRpaQE4BeAAAAQAAALcCIQSoABoAkLUQGCwxNBC4/+hAEBMXNC8QPxACDwMfAwImBRi7Ax0AQAACAxtAEAcYExg0B4AOkA4CgA4BDgm6AxoAEwMZQAoAABAAAiEAFQcSuAMcQBsPFQE3DxUBFZ8Lrwu/CwNvCwEACxALMAsDBwsvXl1dcdRdXl39wBDEXl0APz/NXXEyKwAYPxpN7TEwAV9eXV0rKyUGIyInJjU1BiMiJzcWMzI3NjURMxEUFjMyNwIhLzFvKB0wYD4/KiwuWRwUeSUlFyPEDU03epJ9J3EaWkBOAXj9DmIyCQAAAgBkAdoC4ASoABUAHADZuQAJ/+izDRE0Cbj/+EAWHyI0GAEBVwUBRggBNQkB9xIB+RcBGbgDHUAaSQMBNwMBBgMWAyYDAwMPDx8PAj8PAQ8PDRq9Ax0ADAMaABUADQMZQAwlFDUUAigUOBQCFBW4AxxAGmcBdwECJQE1AcUB1QHlAQU4AagBuAEDAQAWuAMcQB0ABwGAB5AH8AcDcAeAB7AH4AcETwcBPwcBBwwOGrgDHLUgDDAMAgwvXf3AENRdcV1xcu3WMl1xcu0yXXEAP8A/7RI5L11xM11dce0xMF1dAV1xcXErKwEHBgcWFxYVFAcGIyERMxEzMjc2NzcDNCMjFTMyAuCDPDxcNzpORG/+s3lHSiYYM2oT0oetrASowVgMDDc6Wmo3MQLO/ugdE0ud/gh87QAAAQAAAdoD2QSoAAwCIUBKtgsBKwv7CwI/C28LfwsDDQsdCwIrCPsIAj8Ibwh/CAMNCB0IAgQDFAMkAwMEAxQDNAMDCssDATcDAQADEAMCDAMDCAsDBgECBAW4Axq1AAwKCQcGuAMZQAsCEBIYNAIQQEM0BLj/8LMSGDQEuP/ws0BDNAe4//BACRIYNAkQNjo0Crj/8LMdIDQKuP/gszY6NAq4//BA/zxDNAwQEhg0BAE0AQI39AEBFAEBlAGkAQImAQEGAbYBxgHWAQT2AQGNAQEKAWoBegEDB0kCWQJpArkCBGkCeQKpArkCyQIFmwKrAgLbAgF2AoYCAgwCAZoDAZQEpAQCBAQBDwYENgRWBGYEBAkEGQQCFgoFOgUCNyoF+gUCCgUaBcoF2gUEmgWqBfoFA8gF2AXoBQNIBVgFuAUDhQUBBgVmBQIHtgcBpgcBeAiICAJXCGcIAgUIAQ8JCRkJAkIJCRkJqQkDGQkpCXkJiQkE6AkBnAkBZgp2CuYK9goEdgqGCrYKA6UKAVUKZQoCmQoBdguGCwJYC2gLAgoLAQ8JDEAdAToJDAEHCAUECQMKAgsBDAswAEAAUAADAE8GAQYvXcRdFzlyXl1eXV1dXV1xXXFdXV1xXl1eXV1dcXJeXV1xcl1xcl5dXl1xXl1yXV1dcXJxcl5dXV1xcl1xcl5dKysrKysrKysrKwAYP8DAwMDAP8DAwBIXOV9eXV1dXl1xXV1dXV1dcTEwAQMjAwMjAzMTEzMTEwPZ4H+OkX/cfp2XfY+lBKj9MgIo/dgCzv3HAjn91gIqAAEAAAC3ApEEqAAYAOy1ABMBGAYVuP/gQCkkKTQFFQE61RXlFfUVA4YVlhWmFQMAFQEDDxUfFS8VAwgEAQ4QFQQRCrsDHQBAAAUDG7MAGBIRuAMZQAsYEBUYNBUQCw40Erj/6EBZFRg0ASALDjQZGAEUGAEGGBYYAhkGEgE6VhJmEnYSthLGEtYSBhkSAQkSGRICORBJEFkQAzkOSQ5ZDskO2Q7pDgaXAacBAhIYFRAOAQYRGEgAWAACIAABABK5AxwAES/t1F1dzRIXOV1dXXFycV5dXl1xcisrKysAGD/AwMA/Gk3tERc5X15dX3FxXV5dKzEwAV9eXQEBBgcGIyInJxYzMjc2NzY3ATMTFhc2NxMCkf7vLRc/byMsDSkcSCEMGQUG/vCDlR8VFhyaBKj9JnkqdA9yCzQTRw4QAs/+YFdPWEwBov//AFoDswEnBboCBgAKAAD//wBeA7MCdwW6AgYABQAAAAEAgAPzAVEF0wAKADVACgI8fwWPBZ8FAwW4AVBAEwCrCgACAwYKOAADPAAGMAYCCAYvXl391uUREjkAP+30Xe0xMAEGBzMVIzU0NzY3AVFpBV7BICpbBY0sndGlhT1QKQAAAQBsA+kBPQXJAAoAMUAKBatvBH8EjwQDBLgBUEAQCDwKAAcKCQQ4BQo8IAkBCS9d7dblERI5AD/t9F3tMTABFAcGByc2NyM1MwE9HytbLGgGXsEFJIY7USlHKp7RAAEAigPpAVsFyQAKADVACgCrfwGPAZ8BAwG4AVBAEwg8BgAJBwYBOAAHPAAGMAYCCAYvXl391uUREjkAP+30Xe0xMAEHJicmNTUzFSMWAVssWysfwV4GBDBHKVE7hqXRngAAAQD7BH8BrwXtAA0AbLkADf/wQCQHEjQJGB8kNAUYHiQ0CoQLQAtABw00DwsfC88LAwcDCwSEQAO4AiKyCgQEuP/AQBIlKDQABBAEIAQDBwQAhAcHDw4REjkv7cZeXSsBEMAAGD8aTe3GX15dKwAaGBBN7TEwASsrKwEUBiM1MjY1NCYjNTIWAa9nTSw8PStKagU6Tm1LQi0rQElqAAABAPsEfwGvBe0ADQBmuQAI/+izHiQ0DLj/6EAaHiQ0B4QGQAZABw00DwYfBs8GAwcDBg2EQAC4AiJAFgYAAEAlKDQPAB8ALwADBwADhAoKDw4REjkv7cReXSsBEMAAGD8aTe3GX15dKwAaGBBN7TEwASsrASImNTQ2MxUiBhUUFjMBr01nakorPTwsBH9tTklqSUArLUIAAAEAMgHaApgFygAVALq1DBgSFTQOuP/oQCgmLTQmAjYCAkUDVQOlA7UDxQMFlwynDALGDgHaEeoR+hEDJhM2EwIJuAMdswQEEga7AxoADwANAx2yEgAGuAMcQAlPBF8EAgQEEAu4AxxAEKAAAQAAEAAwAGAABAkDAA+4AxyyEEAQuP/Asz5GNBC4/8BAEBUbNIAQkBACQBBQEHAQAxAvcXIrKwEaGBBN7dRfXl1x7RI5L13tAD/txD8SOS/tMTABXV1dcV1dKysBFAcGBxEjERYzMhEQIyIHJzYzMhcWAphASYR6HiTIz4Iidizz000nBFCMZXUJ/vkBbwkBFAESkRLjrlgAAQAyAdoCmAXKABUApbkABP/gQDISFTQCGCYtNCkOOQ4CSg1aDaoNug3KDQWYBKgEAncEhwQCyQIBKRI5EgLVFeUV9RUDCbgDHbMMDBQLuwMaAAEAAwMdshQACbgDHEAJQAxQDAIMDBABuAMcQBCgAAEAABAAMABgAAQJAwAFuAMctxBAEEAMFDQQLysBGhgQTe3UX15dce0SOS9d7QA/7cQ/Ejkv7TEwAV1dXXFxXV0rKwEHJiMiERAzMjcRIxEmJyY1NDc2MzICmHYigs/IJB56hElAnE5d8wTnEpH+7v7sCf6RAQcJdWWM+VYr//8AcADiBDsEwwIGAB8AAP//AHAA4gQ7BMMCBgAhAAAAAQBlAO0ERgS4AAYAckAgAAIQAsAC0ALgAgUAAgEIBAI8BUAFQBMWNAUBBK8BAQG7AloAQAAAAVC1AiCgAwEDuwJaAEAABAFQQA0GqwWrIAACAQcCAggHERI5GS9eXRrt7f0aGO1dGhkQ/RoY7V0AL8AvKwAaGBBN7TEwX15dciUjAQEjATMERrP+wf7EswGaqO0DAvz+A8sAAAEAZQDtBEYEuAAGAG5AHw8FHwXPBd8F7wUFDwUBCAQGAwNAExY0AwU8Aq8GAQa7AloAQAAAAVC1BSCgBAEEuwJaAEAAAwFQQA0BqwKrIAAFAQcFBQgHERI5GS9eXRrt7f0aGO1dGhkQ/RoY7V0AL+0vKwAQwDEwX15dcgEBIwEzAQEERv5hqP5mswE8AT8EuPw1A8v8/gMCAAABASEEbgGIBboAAwAiQAoPAh8CLwIDBwIBuAIitQBkAQEFBBESOS/tAD/NXl0xMAEjETMBiGdnBG4BTAABAN4EqgJPBcIAAwBeQBIYAygDOAMDDwMBFgMDQA0RNAO4AmCyAEAAuP/AQA0OETQAhgABEAEgAQMBuAJTQA8AAhACAgcCDwMfAwIDhwK4AiIAP+1dAS9eXf1x7SsBGhgQTe0rAV9eXTEwXQEDIxMCT9yVhQXC/ugBGAAAAQBZBKoB0QXCAAMAWEANFwMnAzcDAwADARYDA7j/wLMNETQDuAJgQBICQAJADhE0AoYPAQHvAf8BAgG4AlNACQAPAx8DAgOHAbgCIgA/7V0BL/1dce0rARoYEE3tKwFfXl0xMF0BIwMzAdGR5/EEqgEYAAABASH+aQGI/7UAAwA8tQABAQcDAbj/wLUJDDQBDgK4/8BAEgkNNAIDZAACQAJgAgMHAgIFBBESOS9eXe0ALysAGD8rAF9eXTEwASMRMwGIZ2f+aQFMAAEAHf7WAo3/agADABlADQAFAZ8BrwG/AQMBNQIAL+1dAS8QxjEwASE1IQKN/ZACcP7WlAABAFn+aQHR/4EAAwBqQA0XAycDNwMDAAMBFgMDuP/Asw0RNAO4AmBAEgJAAkAOETQChg8BAe8B/wECAbgCU0ANAA8DHwMCCQMDhwFAAbj/wLQJDDQBDgA/KwAaGBBN7V9eXQEv/V1x7SsBGhgQTe0rAV9eXTEwXQEjAzMB0ZHn8f5pARgAAAEA3v5pAk//gQADAHBAEhgDKAM4AwMPAwEWAwNADRE0A7gCYLIAQAC4/8BADQ4RNACGAAEQASABAwG4AlNAEwACEAICBwIPAx8DAgkDA4cCQAK4/8C0CQw0Ag4APysAGhgQTe1fXl0BL15d/XHtKwEaGBBN7SsBX15dMTBdBQMjEwJP3JWFf/7oARgAAgC2AAABgwQmAAMABwBPQBYCPAMGBjxABQoEAABAEhw0ADxABQMDuP/AsxseNAO4/8BADRIXNAADEAMCBwMDCQgREjkvXl0rKwEQwBoYTe0rARDAABg/Gk3tP+0xMAEHIycTIzczAYNaGVrNzVoZBCbNzfvazQAAAQC2A1kBgwQmAAMAQkAPAjxAAwYAQBIcNAA8A0ADuP/AsxseNAO4/8BADRIXNAADEAMCBwMDBQQREjkvXl0rKwEaGBBN7SsAGD8aTe0xMAEHIycBg1oZWgQmzc0AAAEA+wBkAa8B0gANAGi5AA3/8EAnBxI0CRgfJDQFGB4kNAqEC0ALQAcNNA8LHwvPCwMHAwsEhEADCgQEuP/AQBIlKDQABBAEIAQDBwQAhAcHDw4REjkv7cZeXSsBEMAAGC8aTe3GX15dKwAaGBBN7TEwASsrKwEUBiM1MjY1NCYjNTIWAa9nTSw8PStKagEfTm1LQi0rQElqAAABAPsAZAGvAdIADQBhuQAI/+izHiQ0DLj/6EAwHiQ0B4QGQAZABw00DwYfBs8GAwcDBg2EQAAGAABAJSg0DwAfAC8AAwcAA4QKCg8OERI5L+3EXl0rARDAABgvGk3txl9eXSsAGhgQTe0xMAErKyUiJjU0NjMVIgYVFBYzAa9NZ2pKKz08LGRtTklqSUArLUIAAAEApgCyAgMB/gAHAF9AQAcGZAIAA0ADUANgAwQHAwMHAmQBQARAKi40BEAfITS/BM8E3wQDLwQ/BE8EAyAEAQAEEAQCAAQQBPAEAwcEwAEALxrMXl1xcnFyKysAGhgQTf3AAS9fXl3N/c0xMCUhNTM1MxUzAgP+o3tne7Jn5eUAAQCmALICAwH+AAcAX0BAAAJkBQADQANQA2ADBAcDAwAFZAZABkAqLjQGQB8hNL8GzwbfBgMvBj8GTwYDIAYBAAYQBgIABhAG8AYDBwbAAwAvGsxeXXFycXIrKwAaGBBN/cABL19eXc79zjEwASMVIzUjNSECA3tnewFdAZfl5WcAAAEApgCyAgMB/gALAGtARgAKAmQFBwADQANQA2ADBAcDAwoHZEABBAQIAwhAKi40CEAfITS/CM8I3wgDLwg/CE8IAyAIAQAIEAgCAAgQCPAIAwcIwAMALxrNXl1xcnFyKysAERI5GC/AGk39wAEvX15dwM79wM4xMAEjFSM1IzUzNTMVMwIDe2d7e2d7ASVzc2dycgABAB0BDQKNAaEAAwAZQA0ABQGQAqACsAIDAjUBAC/tXQEvEMYxMAEhNSECjf2QAnABDZQAAf/iAWMCEQMZAA4AJ0AWrwS/BAIEBwwCAAUHAAQQBCAEAwcEBS/dXl3NEMQAL83UzV0xMAEGIyIDByc3FxYXFjMyNwIRdmXFJFEa6xcMDBg0Ln4BnDkBAAmYJ4RFGTI9AAAB//sDBgKvBboACwB9QDMGCggLBQIEAAgHAQMDgBocNANAFxk0CQMZAykDA1UNAwEdAQMJBwIDBwUCCAsJBwQKAAC4/4CzGhw0ALj/wEAXFxk0BgAWACYAA1VCAAEBAAY/BE8EAgQvccDEX3FeXSsrARDAERc5ABg/wMRfXl1eXSsrABDAEhc5MTABBycHJzcnNxc3FwcCr2D6+mD7+2D6+mD7A2Zg+/tg+vpg+/tg+gAAAgAAALcClASoAA8AGQFqQF/XAQEmATYBRgHGAQQFAQHYBegF+AUDBwUB5wcBqAcB2AsBWAtoCwIpCzkLSQvJCwQ6EkoSWhIDNRRFFFUUA1YLATIOQg5SDgMBAg0UAA4CDQoPCwoPDBITFAAMEg0CArgDHEAJEgwUEhIMDwoKuAMcQBIUABQUFAAUEgoCBAwDGAEHGAa4AxuzAA8NDLgDGUCMChIaEioSahJ6EooSyhIHOooSmhK6EsoS2hIFWRJpEnkSuRLJEtkSBpsSqxK7EvsSBAcSFxICCQUUFRQlFGUUdRSFFMUUBzqFFJUUtRTFFNUUBVYUZhR2FLYUxhTWFAa0FPQUAgoUEgIEDA8AABAAAiAAAdYA5gACmQCpALkAA0gAAQANDNgM6AwCDBoRM10QzdRdXV1dcc0SFzldcXJeXV5dXXFyXl0AP8DAwD/NXl0RFzmHBRArfRDEhxgQK30QxA8PDw8xMAByXQFycnFdcV1xcXFdcXEBARcWFRQjIjU0NzcBMxMTAzQnJwcGFRQzMgKU/vYrKJSSKCv+9oXFxaQXCgoXIiAEqP2eYlszn58zW2ICYv42Acr8shA3GBg3EDQAAAEAZAHaAN4FugADAB+yAgABugMaAAADHEAJTwFfAQIgAQEBL11x7QA/PzEwEyMRM956egHaA+AAAQAyAcoChgS4AC0BULUZGA0RNB24//BAMB4hNAcBAfcBAQUBFQElAQPbCAEpFTkVAhkYKRgCCxkB+xkBBSwVLAINAw8TARgFKbj/0LMHCzQpuAMcQC8QJhD2EALWEOYQAqUQtRDFEAN4EAEQIglfIG8gAi8gzyDfIO8gBA8gnyACDwMgIr0DHQBAABsDGQAH/8CzHSE0B7j/wEAaFRg0EAcBgAewB8AH0AcEAAcQByAHAw0DBwm6Ax0ABAMatCkQJA0guwMcAB8ADQMcsgBAALj/wEAYDBg0sAABMABAAKAAAwAAMABQAAMHAwAHuwMcAAYAJAMcshdAF7j/wEALLDI0PxdPF18XAxcvXSsBGhgQTe3W7cRfXl1xcisBGhgQTe3U7RESOTkAP+3EX15dcXIrKwAYPxpN7cRfXl1xchESOV1dXXEQ7SsxMABfXl0BX15dXXFxcnFdXXErKwEUBwYjICc3FjMyNzY1NCcmJyYnJicmNTQ3NjMyFxYXByYjIhUUFxYXFhcWFxYChopCVf72KXgVpUAtOCQYZG8iVyAbUkVxsUIfC3cRjJs9EFx6E1UiHQKtiT0d5hOVGB87KRgQGRwNITUsNGI7MloqRRB1XDQYBhkhBx8xKgABAAAB2gKgBKgADwDSQCcEDwEOBAUUBQISDwIBOwUKBA0HAA8ABwMOAgEGAw4FBgEEDQcBBgG4AxxACgAHFAAABw0DDgO4AxxADwQNFAQNCg8FAgQGAAEDBLgDGrMODQcGuAMZQA4EAwEHDQoFAg8JBA4AALj/wEAoHSE0AAAgADAAwADQAPAABgsAAAYQBiAGAzMDBgQEIB0hNE8EXwQCBC9dKwEYEMZfXl3EXl0rARgQxhIXOQA/wMDAP8DAwBIXOYcFTSuHfcSHGBArh33EDw8PDzEwAF9eXQFeXV5dASMDAyMBAzMXFhc2NzczAwKglbu9kwEG8phuGRkSJXmR+AHaARv+5QF1AVmoJyobNKr+rv//ADIB2gKYBcoCBgeRAAAAAQCWAAACegW6AAUAGEAKAgUHAAMBAwIFAQAvL80BL10Q3s0xMCEjESE1IQJ6nP64AeQFHpwAAQCWAAACegW6AAcAIEAOAgUHCQADAQMEAgIBBwEALy8SOS/NAS9dEN7dwDEwISMRITUhETMCepz+uAFInAPWnAFIAAABAJYAAAJ6BboABwAgQA4CBQcJAAMBAwQCAgEHAQAvLxI5L80BL10Q3t3AMTAhIxEhNSERMwJ6nP64AUicAo+cAo8AAAEAlgAAAnoFugAHACBADgIFBwkAAwEDBAICAQcBAC8vEjkvzQEvXRDe3cAxMCEjESE1IREzAnqc/rgBSJwBSJwD1gAAAQCWAAACegW6AAUAGEAKAwUHAAIBAgQDAQAvzS8BL10Q3s0xMCEhNSERMwJ6/hwBSJycBR4AAQBiAAACSQNwAAUAE7YFBwQBAwQBAC/NLwEvzRDOMTAhIREzESECSf4ZXgGJA3D87gABAGIAAAJJA3AABwAcQAsACQYBAwYAAAIFAgAvLxI5L80BL93AEM4xMAEhESMRMxEhAkn+d15eAYkBif53A3D+dwABACj+aQKh/4EABgB3QBEGDwQfBC8EAwgDBIcFZAJAArj/wEAVCQw0Ag4APEAGPSAAAQEHAwFkBUAFuP/AQAwHDDQFZAJ/BDwDQAO4/8C2BxA0YAMBAxkvcSsBGhgQTf0Z9RjtKwEaGBBN/V9eXRoZ/RoY7QA/KwAaGBBN7f1fXl3AMTAFAyMDMxc3AqHhwNjOcW5//ugBGKqqAAACAB0EqgKNBhwAAwAHAC1AGQQACQUBkAKgArACAwI1AZAGoAawBgMGNQW4AiIAP/1d3u1dAS/AENbAMTABITUhESE1IQKN/ZACcP2QAnAFiJT+jpQAAAIARwPpAk4FyQAKABUAWUAMEAWrD38EjwSfBAMEuAFQQCYKEwg8FAoAEhUUDzgQFDwAFQEIFQkHCgkEOAUKPJAJAUAJoAkCCS9dce3W5RESORDWXl391uUREjkAP8D9wBD0XcD9wDEwARQHBgcnNjcjNTMFFAcGByc2NyM1MwJOHytbLGgGXsH+yh8rWyxoBl7BBSSGO1EpRyqe0aWGO1EpRyqe0QABAJYAAAPBBboACQBKQC50BoQGAjYGRgYCAwYEAgcJCwAEEAQCBDQHRAdUB3QHhAeUBwYHAgQGCAICAQgBAC8vEjkvENDNEjldAS9dEN7dwBI5OV1dMTAhIxEBITUhAREzA8Gc/rj+uQFlASqcA9YBSJz+1gEqAAABAJYAAAPBBboACQBaQDkkAwEWAwGUBqQGAnIGAUMGARQGJAY0BgMDBgQCBwkLAAQQBAIEAwYIkAegBwKEBwFwBwEHAgIBCAEALy8SOS8zXV1dENDNAS9dEN7dwBI5OV1dXV1dXTEwISMRASE1IRMRMwPBnP64/rkBoe6cAo8Cj5z+BwH5AAEAlgAAA8EFugAJAERAKQQGFAaUBqQGBAMGBAIHCQsABBAEAgQDBgmhBwFwB4AHkAcDBwICAQkBAC8vEjkvM11dENDNAS9dEN7dwBI5OV0xMCEjEQEhNSETETMDwZz+uP65AaHunAFHA9ec/TcCyQABAJYAAAPBBboACAA4QCCmBQECBQMBBggKAAMQAwIDAgUHoAYBkQYBcAaABgIGAQAvM11dXS/QzQEvXRDe3cASOTldMTAhIwEhNSETETMDwZz+uP65AaHunAUenPxKA7YAAAEAQwAAA8EFugAIAFZAM7cGAQMGBLYHAZkHAQcCCAoFBLcEAagEAQQFCJMGAYYGAXcGAQYDAwHGAgFIAlgCAgIIAQAvLzNdXRI5LzNdXV0QwDJdXQEvMxDe3cBdXRI5OV0xMCEjEQEBNwEBMwPBnP64/mZTAUcBSJwFCv7MAYVf/swBNAAAAQBDAAADwQW6AAkAMkAYqgMBVgYBAwYEAgcJCwUEBAUIBgICAQgBAC8vEjkvzRDAMgEvMxDe3cASOTldXTEwISMRIQE3ASERMwPBnP6a/oRTAUcBSJwD1gGFX/64AUgAAQBDAAADwQW6AAcAQkAmAgUHCQQDtgMBAwQGyAUBkwUBdAUBZQUBRgVWBQI3BQEFAgIBBgEALy8SOS8zXV1dXV1dEMAyXQEvMxDe3cAxMCEjEQE3AREzA8Gc/R5TAo+cAo8CzF/9jwJxAAEAQwAAA8EFugAJAEJAIwMGBAIHCQsFBLYDAZsDAacGAVYGAQMGArYEAQQFCAcCAggAAC8vOS8zEMAyXRE5OV1dXV0BLzMQ3t3AEjk5MTAhIxEBATcBExEzA8Gc/rj+ZlMBmvWcAUcCjwGFX/5+/g8DcwAAAQBDAAADwQW6AAgAQkAlAgUDAQYICgQDtgIBlgUBZwV3BQJVBQECBQG2AwEDBAeQBgEGAQAvM10vwDJdETk5XV1dXQEvMxDe3cASOTkxMCEjAQE3ARMRMwPBnP64/mZTAa7hnAPWAYVf/mr9XgQ4AAEAQwAAAnoFugAHADZAHgIFBwkEAAMBA7YDAQMEBoQFlAUCVgVmBQIFAgIGAAAvLzkvM11dEMAyXQEvXTMQ3t3AMTAhIxEBNwERMwJ6nP5lUwFInAPWAYVf/swBNAABAC8AAAPBBboACAB2QEpoBwGIBAGDAwF3AwFYA2gDAgQDNANEAwN3BgEDAwYEBwIICgUExwQBJgQBBAUHkwYBAoMGowYCdAYBJwYBBgMDAXsCAUgCAQIHAQAvLzNdXRI5LzNdXV1fXRDAMl1dAS8zEN7dwBI5OV9dXV1dXTEwAF0BXSEjEQEBNwEBMwPBnP64/lJnAUcBSJwExP3LAuRH/csCNQAAAQAvAAADwQW6AAkAZkBAhgPGA9YD5gMEWANoAwI2A0YDAgQDAYUGlQYCAwYEAgcJCwUEtgQBeQQBBAUIogYBdAaUBgIGAwcCAwIDAgEIAQAvLxI5OS8vETMRM11dEMAyXV0BLzMQ3t3AEjk5XV1dXV0xMCEjEQEBNwEBETMDwZz+uP5SZwFhAS6cA9b+uQLkR/2gAUABIAABAC8AAAPBBboACQA+QCKcAwF5A4kDAqYGAVcGZwYCAwYEAgcJCwUEBAUIBgICAQgBAC8vEjkvzRDAMgEvMxDe3cASOTldXV1dMTAhIxEhATcBIREzA8Gc/rj+UmcBfQESnAKPAuRH/XECjwABAC8AAAPBBboACQBgQDmlBgGlBgGaAqoCAnsCiwICaAIBWwIBSgIBAwYEAgcJCwUEkQYBhQYBdgYBAwYCBAUINwcBBwICCAAALy85LzNdEMAyETk5XV1dAS8zEN7dwBI5OTEwAF1dXV1dXQFdISMRAQE3ARcRMwPBnP64/lJnAZf4nAFHAUgC5Ef9QPkDuQABAC8AAAPBBboABgA4QB8BBAYIAwICAwWhBAEDkwQBAoAEAXMEAWQEAVYEAQQAAC8yXV1dXV9dX10vwDIBLzMQ3t3AMTAhIwE3AREzA8Gc/QpnAo+cBXNH+1sEpQAAAQAvAAACegW6AAcARUApiAOYAwICBQcJBAAD0AMCAyYDAQMEBpAFoAUCcgWCBQJjBQEFAgIBBgEALy8SOS8zXV1dEMAyXQEvXTMQ3t3AMTAAXSEjEQE3AREzAnqc/lFnAUicAo8C5Ef91QIrAAABACUAAAPBBboACAB4QE2oBgEpBwGJBKkEAnUDhQMCaAMBRQMBNgMBKgMBBwMXAwIGAwQHAggKBQR5BJkEAgQFB5AGoAYCgQYBdAYBBgMDAXsCARwCAQsCAQIHAQAvLzNdXV0SOS8zXV1dEMAyXQEvMxDe3cASOTldXV1dXV0xMABdAV1dISMRAQE3AQEzA8Gc/rj+SHEBRwFInARq/N0EPDf83QMjAAABACUAAAPBBboACQB6QEyoBgGkBwGVBwGJBJkEqQQDeAQBhQIBdgIBhAMBNQNFA3UDAwMGAxYDAgMGBAIHCQsFBAQFCJQGpAYCgwYBAnAGAQYDBwIDAgMCAQgBAC8vEjk5Ly8RMxEzXV9dXRDAMgEvMxDe3cASOTldX11dMTAAXV1dXV1dAV0hIxEBATcBATUzA8Gc/rj+SHEBUQE+nAPW/XEEPDf8xQKJsgAAAQAlAAADwQW6AAkAZEA7NgNGAwIXAwEEAwGRBqEGAqkEAZsEAYkEAXkCAWwCAQMGBAIHCQsFBAQFCHIGggYCBgMHAgMCAwIBCAEALy8SOTkvLxEzETNdEMAyAS8zEN7dwBI5OTEwAF1dXV1dXQFdXV0hIxEBATcBAREzA8Gc/rj+SHEBcQEenAKP/rgEPDf8ggENAnEAAQAlAAADwQW6AAkAPEAhdgaGBgKmBQGZA6kDAogDAQMGBAIHCQsFBAQFCAYCAggAAC8vOS/NEMAyAS8zEN7dwBI5OTEwXV1dXSEjESEBNwEzETMDwZz+uP5IcQGW+ZwBRwQ8N/wpA9cAAAEAJQAAA8EFugAIAFVANXQGAVYGAaUFAVcFAaoDAZkDAYoDAasCAZwCAYoCAWgCeAICOQJJAgIBBggKBAMDBAIFBwYAAC8yLzk5wDIBLzMQ3t3AMTAAXV1dXV1dXV1dXV1dISMBATcBFxEzA8Gc/rj+SHEBtNucAUcEPDf73t4FAAABAC8AAAJ6BboABwA7QCCiBQGVBQGCBQF3BQGpAwECBQcJBAADAQMDBAYFAgIGAAAvLzkvMxDAMgEvXTMQ3t3AMTAAXV1dXV0hIxEBNwERMwJ6nP5RZwFInAFHBDw3/MkDNwAAAQAaAAADwQW6AAgAfEBQiQYBdgYBygMBlwMBigMBdAMBNQNFAwIoAwEVAwEHAwFHBgGbBKsEAokEAXoEARAEAUgCAQMGAwQHAggKBQQEBQIHowYBAnAGgAaQBgMGAwEAL8AyXV9dLzPAMgEvMxDe3cASOTkxMABfXV1dXV1dAV1dXV1dXV1dXV0hIxEBATcBATMDwZz+uP49dgFNAUicBBD78AWMLvvwBBAAAAEAGgAAA8EFugAJAIZAVooGAXYGAagEAYoDAXQDAVgDATYDRgMCKAMBFQMBBgMBkAagBgKCBgGqBAEDeQSJBJkEAxQEAZoCqgICIgIBAgMGBAIHCQsFBAQFCQcCAgEJcAYBBgMBAC/AMl0vEjkvMxDAMgEvMxDe3cASOTkxMABfXV1dXV9dXV0BXV1dXV1dXV1dXSEjEQEBNwEBNTMDwZz+uP49eQFVAT2cA9b8KgWMLvvJA7eAAAABABoAAAPBBboACQB6QEt2BgEHBgGKAwF0AwE1A0UDAgMGAxYDAqcHAZMGowYCAoIGAasEAZoEAQMCBAECewIBAwYEAgcJCwUEBAUIBwICAAhwBgFUBgEGAwAAL8AyXV0vEjkvMxDAMgEvMxDe3cASOTkxMABdX11fXV1dX11dAV1fXV1dXV0hIxEBATcBAREzA8Gc/rj+PXYBaQEsnAKP/XEFjC77kAJtAgMAAQAaAAADwQW6AAkAXEA3lgamBgKXBQE2A0YDAhcDAQYDAYIGkgaiBgNxBgGrBAGJAgEDBgQCBwkLBQQEBQgHAgIACAYDAAAvwDIvEjkvMxDAMgEvMxDe3cASOTkxMABdXV1dAV1dXV1dISMRAQE3AQERMwPBnP64/j15AYEBEZwBR/65BYwu+0MBBAO5AAEAGgAAA8EFugAHADRAHXYEhgSWBAOmAwGXAwGpAQEBBAIGBwkDAgIDBgUAAC/NL8AyAS8zEN7NETk5MTBdXV1dISEBNwEzETMDwf4c/j15AaHxnAWMLvriBR4AAQAaAAACegW6AAYARkApeAEBAwcBAaQEAYMEkwQCAqsCAYkCmQICBAIBAQQGCAMAAgECAgMFBAAALzIvwDIBL10zEN7dwDEwAF1dXV9dXQFdX10hIwE3AREzAnqc/jx0AVCcBYwu+9wEJAAAAQBCAAADwQW6AAcALEAVqwYBWAYBBgMFAgcJBAUFBAQBAgcBAC8vzRI5LzMBLzMQ3s0ROTkxMF1dISMRIQEnASEDwZz+uf61UQF+AgEFHv64awF5AAABAEIAAAPBBboACQBPQC2TBwFHB1cHAqYFAZsDAYkDAXgDAbYCxgICAwYFAgcJCwQFAwYIBwIFBAQBCAEALy8SOS8zwDIQwDIBLzMQ3t3AEjk5MTAAXV1dXV1dXSEjEQEBJwEBETMDwZz+uP6wSwGbAUicA9YBNP7MawF5/swBNAAAAQBCAAADwQW6AAkAS0AouwfLBwJ2BwFnBwGmBQGbAwEDBgUCBwkLBAUDBggHAgUEAgQCBAEIAQAvLxI5OS8vETMRMxDAMgEvMxDe3cASOTkxMABdXV1dXSEjEQEBJwEBETMDwZz+pf7ASAGbAUicAo8Cav7dawF5/cECPwAAAQBCAAADwQW6AAkAVEAuKAYBGQYBCwYBzwcBuwcBpgUBqQMBmwMBAwYFAgcJCwQFAwYIBwIFBAIEAgQIAAAvLzk5Ly8RMxEzEMAyAS8zEN7dwBI5OTEwAF1dXV1dAV1dXSEjEQEBJwEBETMDwZz+jv7aSwGbAUicAUcDlf76awF5/NMDLQABAEIAAAPBBboACABeQDmIBQEpBQELBQF5AokCAjgCSAJoAgPtBgHbBgHPBgGmBAGtAgGbAgECBQQBBggKAwQCBQcEAwMHBgAALzIvOS8zEMAyAS8zEN7dwBI5OTEwAF1dXV1dXQFdXV1dXSEjAQUnAQERMwPBnP6B/udLAZsBSJwEzvhrAXn75gQaAAEAQgAAAnoFugAGADVAHKYEAZsCAYoCAWkCAVgCAQUCBggDBAQDAwECBgEALy8zEjkvMwEvMxDe3cAxMABdXV1dXSEjEQEnATMCepz+r0sBnJwFFP7CawF5AAEAlgAAA8EFugAIAEJAJVkHmQcCmgYBiAYBeQYBOAZIBgIYAgEGAwQHAggKBAUDAwECCAEALy8zEjkvzQEvEN7dwBI5OTEwAF0BXV1dXV0hIxEBITUhATMDwZz+1v6bAUcBSJwFAP7WnAFIAAEAlgAAA8EFugAJAEJAJDgDSAMCkgeiBwJlB3UHAogCAQMGBAIHCQsEBwIFAwIDAgMJAAAvLzk5Ly8QzREzAS8Q3t3AEjk5MTAAXV1dAV0hIxEBITUhAREzA8Gc/rj+uQFlASqcAo8BR5z+1wJxAAABAJYAAAPBBboACQBEQCSVBqUGAgOUB6QHAoIHAXMHAQIDBgQCBwkLBAcCBQMCAwIDCAAALy85OS8vEM0RMwEvEN7dwBI5OTEwAF9dXV0BX10hIxEBITUhExEzA8Gc/rj+uQGh7pwBRwKPnP4HA0EAAQCWAAADwQW6AAgARkAolAWkBQJ2BQE4AUgBAgOkBgGTBgECcAaABgICBQMBBggKAwQCAgcGAAAvMi85L80BLxDe3cASOTkxMABdX11dAV9dXV0hIwEhNSETETMDwZz+uP65AaHunAPWnP04BBAAAAEAQgAAA8EFugAIAFVAMYQGlAYCRwYBRwUBCAUBiQSpBAKbAgF6AgFpAgEGAwQHAggKBQQGAwUEAwQDBAECCAEALy8zEjk5Ly8RMxEzAS8zEN7dwBI5OTEwAF1dXV1dXV1dISMRAQE3AQEzA8Gc/rn+ZFQBLgFhnATE/csBnG/+wAJgAAEAQgAAA8EFugAJAF1ANroHAbgGAYQGlAakBgOiBQGTBQGGBQFHBQEIBQFZAgEGAwQCBwkLBQQGAwUEAgcCAwIDAgEIAQAvLxI5OS8vETMQxDIRMwEvMhDe3cASOTkxMABdXV1dXV1dXV0hIxEBATcBAREzA8Gc/rj+ZVEBSgFInAPW/rkBnF7+tgFHATQAAAEAQgAAA8EFugAJADdAG6MFAYYFAQgFAQMGBAIHCQsFBAcFBAMEAwQIAAAvLzk5Ly8RM80BLzMQ3t3AEjk5MTAAXV1dISMRIQE3ASERMwPBnP6a/oNRAUoBSJwCjwGcYv6eAo8AAAEAQgAAA8EFugAHAFFAMXIFkgUCZAUBVgUBRAUBNQUBJwUBZAR0BAJGBAGIA6gDAgIFBwkEAwUCBAMCAwIDBwAALy85OS8vETMRMwEvMxDe3cAxMABdXV1dXV1dXV0hIxEBNwERMwPBnP0dVAKPnAFHAuRl/XEDuQAAAQBCAAADwQW6AAgATUAsVAaUBqQGAwgEAakCAZoCAQIFAwEGCAoEAwUCBAOEAwE2A0YDAgIDAgMHBgAALzIvOTkvL11dETMRMwEvMxDe3cASOTkxMABdXV1dISMBATcBExEzA8Gc/rj+ZUsBt+GcAo8BnGT+Tv5VBIgAAAEAQgAAAnoFugAHAE9AMJQFAXUFAUYFVgVmBQNWBHYEAkcEAQgEAYgDqAMCAgUHCQQAAwEDBQIEAwIDAgMHAAAvLzk5Ly8RMxEzAS9dMxDe3cAxMABdXV1dXV1dISMRATcBETMCepz+ZEgBVJwCjwGcXf6tAoUAAAEALwAAA8EFugAIAHZAS4YGAXcGAckFAXUDhQPFAwNoAwE2A0YDAigDAZQGpAYC2wX7BQLMBQHAAgGcAgGLAgF4AqgCAgYDBAcCCAoFBAYDBQQDBAMEAQIIAQAvLzMSOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dXQFdXV1dXV1dISMRAQE3AQEzA8Gc/rn+UV0BSAFRnARq/N0DRz79dwN3AAABAC8AAAPBBboACQBqQEGFBgF2BgGFAwF0AwE1A0UDAikDAZQGpAYCywXbBQKnBQGOAgF6AqoCAgYDBAIHCQsFBAYDBwIFBAMCBAQCAwMJAAAvLxc5Ly8vETMRMxEzAS8zEN7dwBI5OTEwAF1dXV1dAV1dXV1dXSEjEQEBNwEBNTMDwZz+uP5SXQFRAUicA9b9cQNHPv1xAo/uAAABAC8AAAPBBboACQBeQDd2BgF2AwE3A0cDAqQGAZMGAYQGAcsF2wUCpgUBbAIBAwYEAgcJCwUEBgMHAgUEAwIEBAIDAwgAAC8vFzkvLy8RMxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dAV1dXSEjEQEBNwEBETMDwZz+uP5SXQFrAS6cAo/+uANHPv1GAUECZwABAC8AAAPBBboACQAvQBWmBQEDBgQCBwkLBQQHBQQDBAMECAAALy85OS8vETPNAS8zEN7dwBI5OTEwAF0hIxEhATcBIREzA8Gc/rj+Ul0BhwESnAFHA0o7/RcD1wAAAQAvAAADwQW6AAgAcUBGoAYBkwYBdAYBZQYBVgYBoQUBkAUBhQUBRAUBNgUB2wQByQQBlgSmBAJ3BAGUAgGIAgECBQMBBggKBAMFAgQDAgMCAwcGAAAvMi85OS8vETMRMwEvMxDe3cASOTkxMABdXV1dXV1dXV1dXV1dXV1dISMBATcBFxEzA8Gc/rj+Ul0BoficAUcDRz785vgFAAABAC8AAAJ6BboABwBUQDL6BAHZBOkEAncEAaIFAZEFAYAFAcsEAacEAZQEAQIFBwkEAAPQAwIDBQIEAwIDAgMHAAAvLzk5Ly8RMxEzAS9dMxDe3cAxMABdXV1dXV0BXV1dISMRATcBETMCepz+UV0BUpwBRwNHQv13A3MAAQAvAAADwQW6AAgAYkA8hQYBdQOFAwJYAwE1A0UDAigDAQcDFwMCA5QGpAYCdgaGBgKbAgGMAgECBgMEBwIICgUEBQQEAQIIBgMBAC/AMi8zEjkvMwEvMxDe3cASOTkxMABfXV1dXQFfXV1dXV1dISMRAQE3AQEzA8Gc/rn+UWoBOgFSnAQQ+/AFECr8SQQ3AAABAC8AAAPBBboACQBwQEaFBgF2BgHYBQF1A4UDAlgDATQDRAMCKAMBBwMXAwKSBqIGAnAGgAYCuQUBfwKPAgIGAwQCBwkLBQQHAgUEAgQCBAAJBgMAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXQFdXV1dXV1dXSEjEQEBNwEBNTMDwZz+uP5SagFEAUicA9b8KgUQJPw6A8yAAAABAC8AAAPBBboACQB4QEynBgF2BgG4BQGKAwFFA3UDAjYDASgDAQcDFwMCoQYBcAaABpAGA1QGZAYCngKuAgKPAgF9AgEDBgQCBwkLBQQHAgUEAgQCBAAJBgMAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dAV1dXV1dXV1dISMRAQE3AQERMwPBnP64/lJqAVoBMpwCj/1xBRAt/BkCawH5AAEALwAAA8EFugAJAGZAPlcGAXYFAXkDiQMCNgNGAwIHAxcDApIGogYChAYBdQYBmgSqBAKKAgEDBgQCBwkLBQQHAgUEAgQCBAAJBgMAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV0BXV1dXV0hIxEBATcBAREzA8Gc/rj+UmoBewERnAFH/rkFEC37xAEAA7kAAQAvAAADwQW6AAcANEAchgSmBAJ3BAGYAagBAgEEAgUHCQMCAwICAAcFAAAvzS8SOS8zAS8zEN7NETk5MTBdXV0hIQE3ATMRMwPB/hz+UmoBne+cBRAq+2IFHgABAC8AAAJ6BboABgAwQBqZAakBAgEEBggDAAIBAgMCAgamBAGABAEEAAAvMl1dLzkvMwEvXTMQ3t3AMTBdISMBNwERMwJ6nP5RagFFnAUQJ/wjBGAAAAEAJgAAA8EFugAHAD5AJIsGmwarBgNZBmkGAqUEAYYEAXYDAQYDBQIHCQQFBQQEAQIHAQAvL80SOS8zAS8zEN7NETk5MTBdXV1dXSEjESEBJwEhA8Gc/rn+smoBXgI9BR79cVAC2wAAAQAmAAADwQW6AAkAdEBHyQYBRgYBNwYBpgQBlQQByQcBlAcBRwdXBwLGAwG3AwGsAwGLA5sDAn0DAVkDaQMCBgMFAgcJCwQFAwYIBQQHAgQCBAIBCAEALy8SOTkvLxEzETMQwDIBLzMQ3t3AEjk5MTAAXV1dXV1dXV1dAV1dXV1dISMRAQEnAQERMwPBnP7W/pVqAbgBR5wD1gEj/ZlNAtv+zAE0AAEAJgAAA8EFugAJAHZASvkGAXYGhgbGBgNFBgE0BgEqBgHHAwF0BwFmBwFFBwGmBQGHBQFmBQFXBQGfAwGLAwF9A60DAgYDBQIHCQsEBQMGCAUEBwICAQgBAC8vEjkvM8AyEMAyAS8zEN7dwBI5OTEwAF1dXV1dXV1dXV0BXV1dXV1dISMRAQEnAQERMwPBnP64/rNqAbcBSJwCjwI1/ctQAtv9ywI1AAEAJgAAA8EFugAJAJhAY/UGAcYGAYQGAXUGAVkGATYGRgYCKgYB9QMBxwMBhQMBdgMBpgcBkAcBdAeEBwJsBwFXBwErBwGUBQFmBYYFAlQFAa0DAXsDmwMCaQMBAwYFAgcJCwQFAwYIBwIFBAIEAgQIAAAvLzk5Ly8RMxEzEMAyAS8zEN7dwBI5OTEwAF1dXV1dXV1dXV1dXQFdXV1dXV1dXV1dXSEjEQEBJwEBETMDwZz+ov7JagG3AUicAUcDV/35SALb/N0DIwABACYAAAPBBboACAB2QEvFBQGLBQF6BQFoBQFaBQE2BUYFAioFAcYCAYsCAXoCAVkCAckGAZAGAYQElAQCnwKvAgKLAgF+AgECBQQBBggKAwQCBQcEAwMHBgAALzIvOS8zEMAyAS8zEN7dwBI5OTEwAF1dXV1dXQFdXV1dXV1dXV1dXSEjAQEnAQERMwPBnP6W/tVqAbgBR5wEgf4ZRQLb+/AEEAAAAQAmAAACegW6AAYAPUAjhwSXBAKsAgECjwKfAgJtAn0CAgUCBggDAAQBBAQDAwECBgEALy8zEjkvMwEvXTMQ3t3AMTAAXV1fXV0hIxEBJwEzAnqc/rJqAbicBLr9104C2wABAEIAAAPBBboABgAzQBydAgFbAmsCewIDSQIBOAIBBQIGCAMEBAMDAgYAAC8vMzkvMwEvMxDe3cAxMABdXV1dISMRAScBMwPBnP1xVALjnAUA/Y9qAsEAAQBCAAADwQW6AAkAMkAYaQZ5BgIGAwUCBwkLBAUFBAYCBAIEAgkAAC8vOTkvLxDNETMBLzMQ3t3AEjk5MTBdISMRIQEnASERMwPBnP65/rhUAX4BZZwD1v68ZwF5AUgAAQBCAAADwQW6AAkAW0A1yQcBZQd1BwJHBwG5BgGHBgF1BgFmBgG5BQGpAwGbAgEGAwUCBwkLBAUFBAcCBgMCAwIDCQAALy85OS8vETMRM8YyAS8zEN7dwBI5OTEwAF1dXV1dXV1dXV0hIxEBAScBAREzA8Gc/rj+uVQBmwFInAKPAUf+yVoBjf65AnsAAAEAQgAAA8EFugAJAFNAL8wHAQK8BwG7BgGWBgGJAwFYA2gDeAMDAwYFAgcJCwQFBwIFBAYDAgQDAwQCAwkAAC8vFzkvLy8RMxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1fXSEjEQEBJwEBETMDwZz+pf7MVAGbAUicAUcCj/7JWgGe/ZwDhwAAAQBCAAADwQW6AAgAXkA4VAUBJwUBGQUB6wYB3wYBzQYBogYBZAZ0BpQGAx8GAZQFpAUCAgUEAQYICgMEBAMFAgMCAwIIBgAALzIvOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dXQFdXV0hIwEBJwEBETMDwZz+j/7iVAGcAUecA9b+yVoB0vyFBGoAAAEAQgAAAnoFugAHADhAHvYEAccEAYcDpwMCAgUHCQMABAEEBAMFAgMCAwIHAAAvLzk5Ly8RMxEzAS9dMxDe3cAxMF1dXSEjEQEnAREzAnqc/rhUAZycA9b+0lEBgwE+AAEAlgAAA8EFugAIADpAH5YDpgMCqQIBiwKbAgJ8AgECBgMEBwIICgQGAwMCCAAALy8zOS/NAS8Q3t3AEjk5MTAAX11dXQFdISMRAyE1IQEzA8Gc7v5fAUcBSJwEiP4HnAKPAAABAJYAAAPBBboACQA9QCBGBwE3BwEJBwGLAgEJAgEGAwQCBwkLBAUHAgMCAwIJAAAvLzk5Ly8RM80BLxDe3cASOTkxMABdXV1dXSEjEQEhNSEBETMDwZz+1v6bAUcBSJwD1v65nAFlASoAAQCWAAADwQW6AAkAO0AfpgcBlQcBRgcBNAcBeAIBAwYEAgcJCwQFAwIDAgMJAAAvLzk5Ly8QzQEvEN7dwBI5OTEwAF1dXV1dISMRASE1IQERMwPBnP64/rkBZQEqnAFHAUic/tYDuQABAJYAAAPBBboACAA+QCN0BQGJApkCqQIDeAIBlAakBgJTBgECBQMBBggKAwQCAggGAAAvMi85L80BLxDe3cASOTkxMABdXQFdXV0hIwEhNSETETMDwZz+uP65AaHunAKPnP4HBIgAAAEAQgAAA8EFugAIAE5AK6cGAaMGAZQGAUYGAZIFogUCdAUBZQUBBgMEBwIICgUEBgMFBAMEAwQCCAAALy8zOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dAV0hIxEBATcBATMDwZz+uP5lVAEdAXKcBHT80wGccP7SA5UAAAEAQgAAA8EFugAJAFdAM6AGAZIGAUQGdAaEBgOSBaIFAnYFAWUFATcFAQYDBAIHCQsFBAYDBQQHAgMEAgIEAwMJAAAvLxc5Ly8vETMRMxEzAS8zEN7dwBI5OTEwAF1dXV1dXV0hIxEBATcBATUzA8Gc/rn+ZFQBLgFhnAPW/XEBnHD+0wK62gABAEIAAAPBBboACQBhQDuiBgGTBgGHBgFkBnQGAkYGAaEFAZIFATYFRgVmBXYFBLcC1wICAwYEAgcJCwUEBgMFBAIHAgMCAwIJAAAvLzk5Ly8RMxDEMhEzAS8yEN7dwBI5OTEwAF1dXV1dXV1dXSEjEQEBNwEBETMDwZz+uP5lVAFRAT6cAo/+uAGccP6qAUICewAAAQBCAAADwQW6AAkAPkAgogUBlAUBlgUBZwV3BQIDBgQCBwkLBQQHBQQDBAMECQAALy85OS8vETPNAS8zEN7dwBI5OTEwAF1dAV1dISMRIQE3ASERMwPBnP6a/oNUAUcBSJwBRwGcYf6fA9cAAQBCAAADwQW6AAYAQkAomAGoAQI2BEYEVgQDJwQBRgMBNwMBaAJ4AogCAwEEBggDAgMCAgYEAAAvMi85LzMBLzMQ3t3AMTAAXV1dXV0BXSEjATcBETMDwZz9HVQCj5wC42b9cQUAAAABAEIAAAJ6BboABwA7QCGFBQFIA1gDaAOYA6gDBQIFBwkEAAMBAwUCBAMCAwIDBwAALy85OS8vETMRMwEvXTMQ3t3AMTAAXV0hIxEBNwERMwJ6nP5kVAFInAFHAZxS/rgDzQAAAQAmAAADwQW6AAgAeEBNigYBKQZ5BgL5AwHFAwF7A4sDAjYDRgMCKQMBBwMXAwKgBgGBBpEGAnAGAZQFpAUChwUBA5sCASACAQIDBgQHAggKBQQFBAQAAggGAwAAL8AyLzMSOS8zAS8zEN7dwBI5OTEwAF9dXV9dXV1dXQFdXV1dXV1dXSEjEQEBNwEBMwPBnP65/khwASwBY5wEEPvwA25J/ZMEcAAAAQAmAAADwQW6AAkAiEBZxQYBiQYBVgZ2BgIpBgH5AwHFAwGLAwE2A0YDdgMDKQMBFwMBBgMBdgcBkAagBgJwBoAGAmQGAaIFAZMFAYYFAYoEAQMjAgECBgMEAgcJCwUEBAIEAgAJAwAAL8AvEjk5Ly8BLzMQ3t3AEjk5MTAAX11fXV1dXV1dXV0BXV1dXV1dXV1dXV0hIxEBATcBATUzA8Gc/rn+SHABMgFdnAPW/CoDbkz9nAPudgAAAQAmAAADwQW6AAkAfEBPdgaGBgL5AwGFA8UDAnQDATUDRQMCBwMXAwKRBqEGAoAGAXQGAVUGAaIFAZQFAa4CAY8CnwICewIBBgMEAgcJCwUEBwIFBAIEAgQACQYDAAAvwDIvEjk5Ly8RMxEzAS8zEN7dwBI5OTEwAF1dXV1dXV1dXQFdXV1dXV0hIxEBATcBAREzA8Gc/rj+SXABRwFInAKP/XEDblL9WQKtAfQAAQAmAAADwQW6AAkAXEA2VwYBBwMXAzcDRwMEogYBgAaQBgJyBgGiBQGUBQGJAgEDBgQCBwkLBQQHAgUEAgQCBAAJBgMAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dAV1dISMRAQE3AQERMwPBnP64/klwAWUBKpwBR/65A25J/S4BOgObAAEAJgAAA8EFugAHADZAHqUDAYQDlAMCWQF5AakBAwEEAgUHCQMCAwICAAcFAAAvzS8SOS8zAS8zEN7NETk5MTBdXV0hIQE3ATMRMwPB/hz+SXABkf6cA25J/OUFHgABACYAAAJ6BboABgBGQCyEA5QDpAMDgASQBKAEA3IEAWQEAUYEAWQDdAOEAwMBBAYIAAIBAgMCAgYEAAAvMi85LzMBL10Q3t3AMTAAXV1dXV0BXSEjATcBETMCepz+SHABSJwDbk/9VwSmAAABACMAAAPBBboABwBHQCqXBQGLBpsGqwYDeQYBhgQBdQSlBAJXBAFnAwEGAwUCBwkEBQUEBAACBwAALy/NEjkvMwEvMxDezRE5OTEwXV1dXV1dAF0hIxEjAScBIQPBnO/+YHMBugHkBR78KUgEKwAAAQAjAAADwQW6AAkAdEBJNgYBBwYXBgKWA6YDApAHAVUHATYHAZQFpAUCdAWEBQKuAwGdAwGPAwF9AwFLA1sDawMDBgMFAgcJCwQFAwYJBQQHAgQCBAIJAAAvLzk5Ly8RMxEzEMAyAS8zEN7dwBI5OTEwAF1dXV1dXV1dXV0BXV1dISMRJQEnAQERMwPBnP7v/oJzAboBSJwD1uP8jkEEMv7qARYAAAEAIwAAA8EFugAJAHhATXkGiQYCRAYBMwYBBwYXBgJ5A4kDAkUDATYDAXQHpAcCRQdVB2UHA5QFpAUCngOuAwKJAwGZAgEGAwUCBwkLBAUDBgkFBAcCBAIEAgkAAC8vOTkvLxEzETMQwDIBLzMQ3t3AEjk5MTAAXV1dXV1dAV1dXV1dXV0hIxEBAScBAREzA8Gc/sv+pnMBugFInAKPAgL8tjsEOP3pAhcAAQAjAAADwQW6AAkAkEBf+QYBygYBdQaFBgI2BkYGAgcGFwYCdgOGAwKRBwFyB4IHAi0HARMHAQQHAaYFAZIFAYQFAXYFAY8DnwOvAwNtA30DAq0CAQMGBQIHCQsEBVsDAQMGCQcCBQQCBAIECQAALy85OS8vETMRMxDAMl0BLzMQ3t3AEjk5MTAAXV1dXV1dXV1dXV1dAV1dXV1dXSEjEQEBJwEBETMDwZz+uP65cwG6AUicAUcDBfz7PgQ1/N0DIwABACMAAAPBBboACAByQEsHBQH5BQE1BUUFdQWFBcUFBSgFAQcFFwUCdgKGAgKEBgGSBKIEAoQEAXYEAa4CAY8CnwICXQJ9AgICBQQBBggKAwQCBQgEAwMIBgAALzIvOS8zEMAyAS8zEN7dwBI5OTEwAF1dXV1dXV0BXV1dXV1xISMBAScBAREzA8Gc/q7+w3MBuwFHnAQ3/RA+BDX78AQQAAABACMAAAJ6BboABgA+QCJnAwGjBAGuAgEDiwKbAgJ8AgECBQIGCAMABAEEBAMDAgYAAC8vMzkvMwEvXTMQ3t3AMTAAX11dX11dAV0hIxEBJwEzAnqc/rhzAbucBHT80zgEOwAAAQAvAAADwQW6AAgAYUA6kgYBdgaGBgJnBgGiBQGTBQGGBQF0BQGvAwGZAwGLAwF4AwFbAgEGAwUHAggKBAUFBAYDBAMEAwIIAAAvLzM5OS8vETMRMwEvMxDe3cASOTkxMABdXV1dXV1dXV1dXV0hIxEDAScBATMDwZz4/mlnAa4BSJwE9v7g/XFRAr0BZQAAAQAvAAADwQW6AAkAREAmrwYBmwYBegaKBgKVBAFXA2cDAgYDBQIHCQsEBQUEBgIEAgQCCQAALy85OS8vEM0RMwEvMxDe3cASOTkxMF1dXV1dISMRIQEnASERMwPBnP7u/oNnAa4BSJwD1v1xTgLdAUgAAQAvAAADwQW6AAkAXkA3SQYBOAYBBwYBdAcBZQcBlAakBgKZA6kDAooDAXgDAQYDBQIHCQsEBQUEBwIGAwQCAwMCBAMJAAAvLxc5Ly8vETMRMxEzAS8zEN7dwBI5OTEwAF1dXV1dXQFdXV0hIxEBAScBAREzA8Gc/tL+n2cBrgFInAKPAUf9cUEDGf6oAnEAAQAvAAADwQW6AAkAS0AqhAekBwJ2BwGhBgFwBoAGkAYDAwYFAgcJCwQFBwIFBAYDAgQDAwQCAwkAAC8vFzkvLy8RMxEzETMBLzMQ3t3AEjk5MTAAXV1dXSEjEQEBJwEBETMDwZz+uP65ZwGuAUicAUcCj/1xMgNn/V0DfQAAAQAvAAADwQW6AAgATUAslgamBgJ0BoQGAqMFAQJwBYAFkAUDZAUBAgUEAQYICgMEBAMFAgMCAwIIBgAALzIvOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1fXV1dISMBAScBAREzA8Gc/qP+zmcBrwFHnAPW/XFBA5r8TARMAAEALwAAAnoFugAHAEVAKJQEpAQChgQBnwKvAgKNAgFqAnoCAgIFBwkDAAQBBAQDBQIDAgMCBwAALy85OS8vETMRMwEvXTMQ3t3AMTAAXV1dXV0hIxEBJwE1MwJ6nP64ZwGvnAPW/XFEA32yAAEASwAAA8EFugAIAF9AOZIGogYChAYBZwZ3BgJGBgE3BgGmBQGUBQFYAwGvAgGdAgGLAgEGAwUHAggKBAUFBAYDBAMEAwIIAAAvLzM5OS8vETMRMwEvMxDe3cASOTkxMABdXV1dXV1dXV1dXSEjEQMBJwEBMwPBnP/+cEsBfQFdnASI/gf+uHMBQALAAAABAEsAAAPBBboABwAzQBm5BQFlBQFWBQECBQcJAwQFAgQDAgMCAwcAAC8vOTkvLxEzETMBLzMQ3t3AMTAAXV1dISMRAScBETMDwZz9cUsC2pwD1v1xbQLcASoAAAEASwAAA8EFugAJADBAFogGAQYDBQIHCQsEBQUEBgIEAgQCCQAALy85OS8vEM0RMwEvMxDe3cASOTkxMF0hIxEhAScBIREzA8Gc/rj+uUsBfgFcnAKP/rhnAX0CjwABAEsAAAPBBboACQBTQC+EBwFWBwFHBwGEBgF3BgG5BQGZA6kDAgMGBQIHCQsEBQcCBQQGAwIEAwMEAgMJAAAvLxc5Ly8vETMRMxEzAS8zEN7dwBI5OTEwAF1dXV1dXV0hIxEBAScBAREzA8Gc/rj+uUsBkgFInAFHAUj+uGMBlf64A8MAAAEASwAAA8EFugAIAE1AK6IGAZQGAYUGAVcGAaYFAXQFlAUCpAQBAgUEAQYICgMEBAMFAgMCAwIIBgAALzIvOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dXSEjAQEnAQERMwPBnP6f/tJLAZMBR5wCj/64cAGj/ZwExAABAEsAAAJ6BboABwA/QCPpBQG7BcsFArkE6QQCeQIBAgUHCQMABAEEBAMFAgMCAwIHAAAvLzk5Ly8RMxEzAS9dMxDe3cAxMABdXV1dISMRAScBETMCepz+uEsBk5wCj/64WgGUAoUAAAEAlgAAA8EFugAIADpAHzgHAZsGqwYCnwIBiwIBfAIBBgMEBwIICgQGAwMCCAAALy8zOS/NAS8Q3t3AEjk5MTAAXV1dAV1dISMRAyE1IQEzA8Gc7v5fAUcBSJwEEP03nAPXAAABAJYAAAPBBboACQAoQBEGAwQCBwkLBAYHAgMCAwIJAAAvLzk5Ly8RM80BLxDe3cASOTkxMCEjEQMhNSEBNTMDwZz4/mkBUQE+nAPW/XGcAzmeAAABAJYAAAPBBboACQBBQCNlBwE3BwEYBwF6AgFIAgEZAgEGAwQCBwkLBAUHAgMCAwIJAAAvLzk5Ly8RM80BLxDe3cASOTkxMABdXV1dXV0hIxEBITUhAREzA8Gc/tb+mwFHAUicAo/+uJwBZgJxAAEAlgAAA8EFugAIAD5AIzgCSAKIAgOiBgGTBgFlBnUGAlYGAQIFAwEGCAoDBAICCAYAAC8yLzkvzQEvEN7dwBI5OTEwAF1dXV0BXSEjASE1IQERMwPBnP64/rkBZQEqnAFHnP7XBQAAAQBCAAADwQW6AAgATkAtaAZ4BgJGBQEoA8gDAqIGAZQGAZkEqQQCqwIBBgMEBwIICgUEBQQEAAIIBgMAAC/AMi8zEjkvMwEvMxDe3cASOTkxMABdXV1dAV1dXSEjEQEBNwEBMwPBnP65/mRUAREBfpwEEPvwAZtm/vwEvQAAAQBCAAADwQW6AAkAREAjRgUBKAPIAwKZBKkEAgYDBAIHCQsFBAUEBwIEAgQCAAkGAwAAL8AyLxI5OS8vETMRMwEvMxDe3cASOTkxMABdAV1dISMRAQE3AQE1MwPBnP64/mVUAR0BcpwD1vwqAZtm/ucEXHYAAAEAQgAAA8EFugAJAEhAJUcFASgDAZMGAakEAZgEAQYDBAIHCQsFBAUEBwIEAgQCAAkGAwAAL8AyLxI5OS8vETMRMwEvMxDe3cASOTkxMABdXV0BXV0hIxEBATcBAREzA8Gc/rj+ZVQBNAFbnAKP/XEBm2b+ygLEAisAAQBCAAADwQW6AAkATUAquQcBuAYBdwYBRgUBmQSpBAKMAgEGAwQCBwkLBQQHAgUEAgQCBAAJBgMAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dISMRAQE3AQERMwPBnP64/mVUAUcBSJwBR/65AZtm/rkBRwO5AAABAEIAAAPBBboABwAyQBinBAGrAgGaAgEBBAIFBwkDAgMCAgAHBAAAL80vEjkvMwEvMxDezRE5OTEwAF1dAV0hIQE3ASERMwPB/f/+glQBSAFHnAGkXf6bBR4AAAEAQgAAAnoFugAGAEFAJ4QEAWUEAakCAXgCmAICWQIBKAI4AkgCAwEEBggDAAIBAgMCAgYEAAAvMi85LzMBL10zEN7dwDEwAF1dXV1dXSEjATcBETMCepz+ZFQBSJwBm2b+uQUAAAEAGgAAA8EFugAHADxAJKoGAYkGmQYCWAZ4BgKWBKYEAncEhwQCBgMFAgcJBAUCBwUEAAAvwDIvzQEvMxDezRE5OTEwXV1dXV0hIxEjAScBIQPBnPH+YnwBwwHkBR764i4FjAABABoAAAPBBboACQBuQEU2BkYGAgcGFwYCpgMBVwMBkQcBVQcBNgdGBwKkBQGVBQF0BYQFAq8DAY0DnQMCewMBBgMFAgcJCwQFAwYJBwICAAkFBAAAL8AyLxI5LzMQwDIBLzMQ3t3AEjk5MTAAXV1dXV1dXV1dAV1dXV0hIxElAScBAREzA8Gc/vH+gHwBwwFInAPW8fs5LgWM/uABIAAAAQAaAAADwQW6AAkAcEBIeQaJBskGAzYGRgYCBwYXBgJ4AwFBBwEyBwGiBQGEBZQFAnYFAZ8DrwMCXQNtA30DAwYDBQIHCQsEBY0DAQMGCQcCAgAJBQQAAC/AMi8SOS8zEMAyXQEvMxDe3cASOTkxMABdXV1dXV1dAV1dXV0hIxEBAScBAREzA8Gc/tj+mXwBwwFInAKPAe37hC4FjP3fAiEAAQAaAAADwQW6AAkAhEBX+QYBygYBiQYBdQYBFgY2BkYGAwUGAYkDAXUDATYDRgMCcgcBKwcBFAcBBwenBwKiBQGEBZQFAo8DnwOvAwNdA30DAgYDBQIHCQsEBQMGCQcCAgAJBQQAAC/AMi8SOS8zEMAyAS8zEN7dwBI5OTEwAF1dXV1dXV1dAV1dXV1dXV1dXSEjEQEBJwEBETMDwZz+x/6qfAHDAUicAUcC+PvBLgWM/NMDLQABABoAAAPBBboACACAQFP5BQGKBcoFAjUFRQV1BQMoBQEWBQEHBQHJAgGIAgF2AgGUBgFHBgEVBgEDpQQBlgQBhQQBmwKrAgKMAgECfwIBWwIBAgUEAQYICgMEAgUIBAMGAAAvMsAyL8AyAS8zEN7dwBI5OTEwAF1dX11dXV1dX11dXQFdXV1dXV1dXV0hIwEBJwEBETMDwZz+uP65fAHDAUicBBD78C4FjPvwBBAAAAEAGgAAAnoFugAGADZAH3cDAYQElASkBAOPAp8CrwIDBQIGCAMABAEEAgYEAwAAL8AyLzMBL10zEN7dwDEwAF1dAV0hIxEBJwEzAnqc/rh8AcScBCT73C4FjAAAAQAkAAADwQW6AAgASUAqpQYBhgaWBgJXBgFrA3sDqwMDWQMBqwIBBgMFBwIICgQFBgMDAAIIBQQAAC/AMi8zEjkvMwEvMxDe3cASOTkxMABdXV1dXV0hIxEDAScBATMDwZzb/kxyAbkBSJwE9v7g/CoyA/UBkwAAAQAkAAADwQW6AAkAMEAYiQaZBqkGAwYDBQIHCQsEBQYCAgAJBQQAAC/AMi8SOS/NAS8zEN7dwBI5OTEwXSEjESMBJwEhETMDwZz5/mpyAbkBSJwD1vwqMgRAAUgAAAEAJAAAA8EFugAJAFdAM7gHAWQHdAcCoQYBdAaEBpQGA2YGAaIFAYQFlAUCBgMFAgcJCwQFBwIGAwIDAgMACQUEAAAvwDIvEjk5Ly8RMxEzAS8zEN7dwBI5OTEwAF1dXV1dXV0hIxEBAScBAREzA8Gc/uL+j3IBuQFInAKPAUf8KjIEmf6IAmcAAAEAJAAAA8EFugAJAGZAPHkGAUYGARUGNQYCAwcGAaQHAZMGowYCAoAGAXQGAZQFpAUChwUBBgMFAgcJCwQFBwIGAwIDAgMACQUEAAAvwDIvEjk5Ly8RMxEzAS8zEN7dwBI5OTEwAF1dXV1fXV0BXV9dXV0hIxEBAScBAREzA8Gc/tn+mHIBwwE+nAFHAo/8KjIE+P1FA0sAAQAkAAADwQW6AAgAYEA5RgUBNAUBFQUBA6YGAaIFAZMFAQKABQF0BQGUBKQEAnQEhAQClgIBAgUEAQYICgMEBQICAAgEAwYAAC8ywDIvEjkvMwEvMxDe3cASOTkxMABdXV1dXV9dXV0BX11dXSEjAQEnAQERMwPBnP7M/qVyAc0BNJwD1vwqMgUc/CAETAAAAQAkAAACegW6AAcAPkAkZwN3AwKEBJQEpAQDjwKfAq8CAwIFBwkDAAQBBAUCAgAHBAMAAC/AMi8SOS8zAS9dMxDe3cAxMABdXQFdISMRAScBNTMCepz+uHIBupwD1vwqMgUmYgAAAQAvAAADwQW6AAYAOUAhogQBlQQBrQIBjwKfAgJ7AgFZAmkCAgUCBggDBAIGBAMAAC/AMi8zAS8zEN7dwDEwAF1dXV1dXSEjEQEnATMDwZz9cWcC9pwEpftbTwVrAAEALwAAA8EFugAJAF1AOJYGAYcGAZQFpAUCdgWGBQKtAwGLA5sDAlkDaQN5AwOJAgEGAwUCBwkLBAUGAwcCAwIDAgAJBQQAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dXV0hIxEDAScBAREzA8Gc+P5pZwGuAUicA9b+uf1xTwKrAaoBFgABAC8AAAPBBboACQBEQCarBgGeBgGLBgFYBgGlBAF1AwFnAwEGAwUCBwkLBAUHAwMACQUEAAAvwDIvEjkvzQEvMxDe3cASOTkxMF1dXV1dXV0hIxEhAScBIREzA8Gc/u7+g2cBpAFSnAKP/XFPAtwCjwABAC8AAAPBBboACQBhQDqDBwFmBwFUBwGQBqAGAnQGhAYCVgYBpgUBlAUBdgWGBQJoAwEGAwUCBwkLBAUHAgYDAgMCAwAJBQQAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXV1dXV1dXSEjEQEBJwEBETMDwZz+8P6BZwHRASWcAUcBSP1xTwMf/p0DrwAAAQAvAAADwQW6AAgAaEBANgVGBQInAgFUBoQGAhUGAQcGAQOjBQECgAWQBQJyBQEkBQGEBJQEAqkCAZcCAQIFBAEGCAoDBAUCAgAIBAMGAAAvMsAyLxI5LzMBLzMQ3t3AEjk5MTAAXV1dXV1dX11fXV1dAV1dISMBAScBAREzA8Gc/sz+pWcBxQExnAKP/XFPA1T9hQSSAAABAC8AAAJ6BboABwBIQCmmAwGjBQECgAUBdAUBZgWWBQKbAgGKAgECBQcJAwAEAQQFAgIABwQDAAAvwDIvEjkvMwEvXTMQ3t3AMTAAXV1dXV1fXQFdISMRAScBETMCepz+uGcBr5wCj/1xTwNUAhcAAQBOAAADwQW6AAgAQUAjogYBlgYBVwZnBgKaAwGIAwEGAwUHAggKBAUGAwMAAggFBAAAL8AyLzMSOS8zAS8zEN7dwBI5OTEwAF1dXV1dISMRAwEnAQEzA8Gc4f5SSAGVAUKcBDj9D/65ewEyBA0AAAEATgAAA8EFugAJAEdAJqIGAZQGAZkDqQMCWANoAwIGAwUCBwkLBAUGAwcCAwIDAgAJBQQAAC/AMi8SOTkvLxEzETMBLzMQ3t3AEjk5MTAAXV1dXSEjEQMBJwEBNTMDwZz1/mZIAY8BSJwD1v1x/rl7AS4Dc54AAAEATgAAA8EFugAHADVAHEYFZgUCpgQBlwQBawIBAgUHCQMEBQICAAcEAwAAL8AyLxI5LzMBLzMQ3t3AMTAAXV1dXSEjEQEnAREzA8Gc/XFIAtecAo/9cXsCzgJxAAABAE4AAAPBBboACQAyQBmpBgGWA6YDAgYDBQIHCQsEBQcDAwAJBQQAAC/AMi8SOS/NAS8zEN7dwBI5OTEwXV0hIxEhAScBIREzA8Gc/uD+kUgBmQE+nAFH/rl7AWgD1wABAE4AAAPBBboACABLQCt0BgFTBgE2BgG7BQF0BQGHBJcEpwQDaQIBAgUEAQYICgMEBQICAAgEAwYAAC8ywDIvEjkvMwEvMxDe3cASOTkxMABdXV1dXV1dISMBAScBAREzA8Gc/sz+pUgBpwEwnAFH/rl7AXz+zQT2AAEATgAAAnoFugAHADFAGbkFAZcEpwQCAgUHCQMABAEEBQICAAcEAwAAL8AyLxI5LzMBL10zEN7dwDEwAF1dISMRAScBETMCepz+uEgBkJwBR/65ewGGA7kAAAEAlgAAA8EFugAIADZAHakGAXYDhgMCrQIBjwKfAgIGAwUHAggKBQIIBgMAAC/QzS8zAS8Q3t3AEjk5MTAAXV0BXV0hIxEDITUhATMDwZzu/l8BRwFInAO2/EqcBR4AAAEAlgAAA8EFugAJAC1AFZsCqwICBgMEBwIJCwQHAgIACQUDAAAv0M0vEjkvMwEvEN7dwBI5OTEwAF0hIxEBITUhATUzA8Gc/v7+cwFHAUicA9b8KpwE0E4AAAEAlgAAA8EFugAJAC9AFq8CAZkCAQYDBAIHCQsEBwICAAkGAwAAL9DNLxI5LzMBLxDe3cASOTkxMABdXSEjEQMhNSEBETMDwZzu/l8BWwE0nAKP/XGcA2EBvQAAAQCWAAADwQW6AAkAO0AfRgcBNwcBCwcBiwIBCQIBBgMEAgcJCwQHAgIACQYDAAAv0M0vEjkvMwEvEN7dwBI5OTEwAF1dXV1dISMRASE1IQERMwPBnP7W/psBRwFInAFH/rmcAWUDuQAB/sEEqgE6BcIABgBrQA0CZB8FLwU/BQMFhwEEuAIiQBAAPEABPSAABgEHAwZkAkACuP/AQAwHDDQCZAV/BDwDQAO4/8CzHyQ0A7j/wLMNETQDGS8rKwEaGBBN7Rn1GO0rARoYEE39X15dGhn9GhjtAD/A/V3tMTABIycHIxMzATrMbnHO2MAEqqqqARgAAf7GBMsBNgVfAAMAGkAMAAGQAqACsAIDAjUBuAIiAD/tXQEvzTEwASE1IQE2/ZACcATLlAAAAf2sBh4CVQafAAMAHEANAAECMA8BHwEvAQMHAbgCIQA/Xl3tAS/NMTABITUhAlX7VwSpBh6BAAAB/tgEtQEnBbgACQBfQCI3BkcGVwYDxwbXBucGAzgISAhYCAPICNgI6AgDqAi4CAIJuAKftLAAAQAEuAKfQBIFCR8ELwQCDwQfBC8ErwQEBAe6Ap8AAgIiAD/t1F1xwAEv/dRd7TEwXXFycXIBAiEgAzMWMzI3AScf/vj+9x97HIuXGwW4/v0BA4eHAAH/kgSqAHEFigADABK1ADwBAjwBuAIiAD/tAS/tMTATIzUzcd/fBKrgAAL+6QT2ARoFwwADAAcAHUAMADwBnwU8BAIGPAEFuAIiAD/A/cABL+327TEwASM1MwUjNTMBGry8/ou8vAT2zc3NAAL/TAR/ALQF7QALABcASUAJAIQMTQlNEoQGL/0Z9PQY7QCxBgJDVFhADA+ECUALDTQJCRWEA7gCIj/tMy8r/RtACQmED00MTRWEA7gCIj/9Gfb2GO1ZMTATFAYjIiY1NDYzMhYHNCYjIgYVFBYzMja0aEtNaGtJTGhIPS0sPj0tLT0FNkxrbU5JamtLLUA/LC1CQAAC/qAEqgFhBcIAAwAHAMNAGAgHGAcoBwMIAxgDKAMDDwYfBi8GAxcDBrgCU0AcBUAFQA4RNA8FHwUCBwWGBEAPBwEWAwdADRE0B7gCYEAUQAAEEAQCBwQCDwMBFgMDQA0RNAO4AmCyAEAAuP/AQBQOETQAABAAAgcAhgABAeAB8AECAbgCU0ALAgQPAx8DAgOHBgK4AiIAP8D9XcABL/1dce1eXSsBGhgQTe0rAV9eXRgQ1l5dGk3tKwFfXl0aGBBN7V5dKwEaGBBN7V9eXTEwXV0BAyMTIwMjEwFhz5d/d9OQeQXC/ugBGP7oARgAAf7EBKoBPQXCAAYAa0ANBh8ELwQ/BAMEhwVkArgCIkAQADxABj0gAAEBBwMBZAVABbj/wEAMBww0BWQCfwM8BEAEuP/Asx8kNAS4/8CzDRI0BBkvKysBGhgQTe0Z9RjtKwEaGBBN/V9eXRoZ/RoY7QA/7f1dwDEwAQMjAzMXNwE94cDYznFuBcL+6AEYqqoAAf/OBG4ANQW6AAMAHEAKDwIfAi8CAwcCAbgCIrIAZAEv7QA/zV5dMTATIxEzNWdnBG4BTAAAAv9mBG4AnwW6AAMABwAqQAwHDwIfAi8CAwcCBAG4AiJACQVkAAQBBABkAS/t1l3tAD/A3V5dwDEwEyMRMwMjETOfZ2fSZ2cEbgFM/rQBTAAC/qAEqgFhBcIAAwAHAEm3AAAQAAIAcgO4AxhADA8CHwKfAq8CBAIEBrgDGEATDwcfBwIHB3IEAg8GHwYCBocBBbgCIgA/wP1dwAEv/V5d7RDWXf3tXTEwASMDMwMjAzMBYZDT6uKXz+cEqgEY/ugBGAAC/tgEtQEnBoUAAwANAHVAJwcKVwpnCncKBOcK9woCCAxYDGgMeAwE6Az4DALIDNgMAgA8AQEJDbgCn7TQBAEECLgCn0AbDwkfCQIHCQI8AQ0fCC8IAg8IHwgvCK8IBAgLugKfAAYCIgA/7dRdccDQ7QEvXl391F3tETkv7TEwXXFycXITIzUzFwIhIAMzFjMyN1+8vMgf/vj+9x97HIuXGwW4zc3+/QEDh4cAAf7YBLUBJwW4AAkAZkAeVwRnBHcEA+cE9wQCWAJoAngCA+gC+AICyALYAgIBuAKftNAAAQAFuwKfAAYAAgKfQBZALwgBPwhPCALPCAEACBAIAgcIgAEFuAIiAD/QGtxeXV1xchrtAS/t1F3tMTBdcXJxcgEjJiMiByMSISABJ3sbl4scex8BCQEIBLWHhwEDAAAB/5cD8wBoBdMACgAtQAoCPG8FfwWPBQMFuAFQQA0AqwoAAgMGCjgAAzwGL/3W5RESOQA/7fRd7TEwEwYHMxUjNTQ3NjdoaQVewSAqWwWNLJ3RpYU9UCkAAf+YA+kAaQXJAAoALUAKBatvBH8EjwQDBLgBUEANCDwKAAcKCQQ4BQo8CS/t1uUREjkAP+30Xe0xMBMUBwYHJzY3IzUzaR8rWyxoBl7BBSSGO1EpRyqe0QAAAf+ZA+kAagXJAAoALUAKAKtvAX8BjwEDAbgBUEANCDwGAAkHBgE4AAc8Bi/91uUREjkAP+30Xe0xMBMHJicmNTUzFSMWaixbKx/BXgYEMEcpUTuGpdGeAAH/9APpAMUFyQAKAC1ACgWrbwR/BI8EAwS4AVBADQg8CgAHCgkEOAUKPAkv7dblERI5AD/t9F3tMTATFAcGByc2NyM1M8UfK1ssaAZewQUkhjtRKUcqntEAAAH/Qv5pALr/gQADAGpADRcDJwM3AwMAAwEWAwO4/8CzDRE0A7gCYEASAkACQA4RNAKGAAAB4ADwAAIAuAJTQA0BDwMfAwIJAwOHAUABuP/AtAkMNAEOAD8rABoYEE3tX15dAS/tXXHtKwEaGBBN7SsBX15dMTBdEyMDM7qR5/H+aQEYAAH/Qv5pALr/gQADAGpAEhgDKAM4AwMPAwEWAwNADRE0A7gCYLIAQAC4/8BADg4RNACGDwIB7wL/AgICuAJTQA0BDwMfAwIJAwOHAkACuP/AtAkMNAIOAD8rABoYEE3tX15dAS/tXXHtKwEaGBBN7SsBX15dMTBdFwMjE7rnkYd//ugBGAAAAf9E/mkAof+1AAcAhEAgA0AVGDQPAx8DLwMDAAMQAwIHAwMAZAUBBWRAAgIGAQG4/8CzKi40Abj/wEAxHiE0sAHAAdABAyABMAFAAQMvAQEPAR8BAg8BHwH/AQMHAcAfBgEPBgFfBm8GfwYDBgAvXXFyGs1eXXFycXIrKwAREjkYLxpN7QEvwP3EX15dcisxMBMjNSM1MzUzoWf29mf+aXNncgAB/1/+aQC8/7UABwCHuQAA/8BAHhUYNAAAEAAgAAMPAB8AAgcDAANkBQEGZEABAQUCArj/wLMqLjQCuP/AQDEeITSwAsAC0AIDIAIwAkACAy8CAQ8CHwICDwIfAv8CAwcCwB8FAQ8FAV8FbwV/BQMFAC9dcXIazV5dcXJxcisrABESORgvGk3tAS/A/cRfXl1yKzEwEyMVIxEzFTO89mdn9v7ccwFMcgAB/ocEugF5BogABQAeQA4DAAGfA68DvwMDAzUEAbgCIgA/1O1dAS/dxDEwASMRITUhAXmV/aMC8gS6ATmVAAH/7APvAQYFugAIAEu1BAgTFzQBuP/4QA4LETQDDwIfAi8CAw8DArgBUEAJBjxACAAFCAcDuP/AtgkLNAMIPAcv7cYrARESOQAYPxpN7fRfXl3NMTABKysBECE1MjUjNTMBBv7mt17BBRX+2kqw0QAB/6b+UQBa/78ADQBjuQAI/+izHiQ0DLj/6EAQHiQ0B4QPBgEQAwYNhABAALj/wEAfCQw0AACgAAIHAwAOBgAAQCUoNA8AHwAvAAMHAAOECi/txF5dKwEQwAAYP19eXSsAGhgQTe0vX15d7TEwASsrEyImNTQ2MxUiBhUUFjNaTWdqSis9PCz+UW1OSWpJQCstQgAAAf9R/mkArv+1AAcAdkAWBwZkAgADQANQA2ADBAcDAwcCZAFAAbj/wLMqLjQBuP/AQDEfITSwAcAB0AEDIAEwAUABAy8BAQ8BHwECDwEfAf8BAwcBwB8EAQ8EAV8EbwR/BAMEAC9dcXIazF5dcXJxcisrABoYEE39wAEvX15dzf3NMTATITUzNTMVM67+o3tne/5pZ+XlAAAB/1H+aQCu/7UABwB2QBYAAmQFAANAA1ADYAMEBwMDAAVkBkADuP/AsyouNAO4/8BAMR8hNLADwAPQAwMgAzADQAMDLwMBDwMfAwIPAx8D/wMDBwPAHwYBDwYBXwZvBn8GAwYAL11xchrMXl1xcnFyKysAGhgQTf3AAS9fXl3O/c4xMBcjFSM1IzUhrntnewFdsuXlZwAB/1H+aQCu/7UACwCCQBwACgJkBQcAA0ADUANgAwQHAwMKB2RAAQQECAMDuP/AsyouNAO4/8BAMR8hNLADwAPQAwMgAzADQAMDLwMBDwMfAwIPAx8D/wMDBwPAHwgBDwgBXwhvCH8IAwgAL11xchrNXl1xcnFyKysAERI5GC/AGk39wAEvX15dwM79wM4xMBMjFSM1IzUzNTMVM657Z3t7Z3v+3HNzZ3JyAAH+yf7WATn/agADABdADAABnwGvAb8BAwE1AgAv7V0BL80xMAEhNSEBOf2QAnD+1pQAAf8c/lEAtACbAA8AGUAMNgMBDgkeBA8PJQYOL8TtAD/tLzEwAXEXFAcGIyInNxYzMjc2NTUztDNClklEIjYfTRYKtDrDTmQTmQ5OI2rRAAABAAD+UQGYAJsADwAcQA8pAzkDAgcADRwCDwAJJQYv/cQAP+0/MTABcQEGIyInJjU1MxUUFxYzMjcBmERJlkIztAoWTR82/mQTZE7D1dFqJE0OAAAC/un+aQEa/zYAAwAHACFAEQA8AZ8FPAQCBjwBAAUBBwUOAD9eXcD9wAEv7fbtMTABIzUzBSM1MwEavLz+i7y8/mnNzc0AAv9M/lEAtP+/AAsAFwBaQB4VhD8DAY8DAX8DjwOfA98DBAADEAMCBwMDD4QJQAm4/8BAGgkPNJ8JAQkMhIAAkADQAAMPAB8AAgcAEoQGL+3UXl1d7QAvcisAGhgQTe3UX15dXXFy7TEwFxQGIyImNTQ2MzIWBzQmIyIGFRQWMzI2tGhLTWhrSUxoSD0tLD49LS09+ExrbU5JamtLLUA/LC1CQAAB/5P+PQBx/78ADABZuQAE/+hADBYbNAQ4BQkMPEALBbj/8EAKHCU0BQQKCgsEBLj/wEALCQw0AAQBBwMEDwu4/8CzCQ80CwAvKwAYP19eXSsAERI5GC8SOSsBGC8aTe051uUrMTAXFAcGByc2NzY1IzUzcSMlaiw+Exxg0cBpNTksVBoSGzivAAAB/yr+WwDbABcAEwBDuQAT//BADhQZNCgCOAJIAgP3EgEEuAK1tQmcTw8BD7gCWkANEAoHOgalAHYLTRGcEC/t9O305QA//XH27TEwAXFxKxcUBwYjIic3FjMyNTQnJic3MwcW22VQbFI+C0AeoTYfSDSGIavnYzMoDHUESycRCgGxaxQAAAH/Vv5SAKkAAAAUAB5ADhQRrAoAAxQICQasCgwPAD8z7TI/AS8zzO0yMTAzBgYVFBYzMjY3FQYjIi4CNTQ2N2Q5Py40FzAUST8zTDMZSEIjZzUqOg0LgCMdM0ImQIE1AAH/zv5pADX/tQADACu1AAEBBwMBuP/AtQkMNAEOArj/wLYJDTQCA2QCL+0ALysAGD8rAF9eXTEwEyMRMzVnZ/5pAUwAAf6H/lEBef/JAAcAKUAXAS8EAd8EAQAEEAQCBwQDBgEABe8EAQQvXd3UzQAvzd1eXV1xwDEwASM1IRUjESEBeZr+QpoC8v5R3t4BeAAAAf67/rYBRv+DABYAW7kAAv/4QAkIETQKCAgRNA64//izISw0E7j/+EAcISw0BhIRFkAAEoANQAyAEhEGCBQPQAQIgBYRDAAvwMAa3MAa3cASOQEvzRrcGs0aENwazRESOTEwASsrKysFFAcGIyInBiMiJyY1MxQzMjUzFDMyNQFGLjFXWjU1W1cxLk1qaE1qaH1ZODxERDw4WXR0dHQAAAH+xP5pAT3/gQAGAGxAEQYPBB8ELwQDCAMEhwVkAkACuP/AQBUJDDQCDgA8QAY9IAABAQcDAWQFQAW4/8BAEQcMNAVkAn8EPB8DLwM/AwMDGS9xGP0Z9RjtKwEaGBBN/V9eXRoZ/RoY7QA/KwAaGBBN7f1fXl3AMTAFAyMDMxc3AT3hwNjOcW5//ugBGKqqAAH+xP5pAT3/gQAGAHxAEQJkDwUfBS8FAwgDBYdAAQQEuP/AQBUJDDQEDgA8QAE9IAAGAQcDBmQCQAK4/8BADAcMNAJkBX8EPANAA7j/wLMfJDQDuP/Asw0RNAMZLysrARoYEE3tGfUY7SsBGhgQTf1fXl0aGf0aGO0APysAEMAaGE39X15d7TEwASMnByMTMwE9zG5xztjA/mmqqgEYAAAB/tj+aQEn/2wACQB6QCIHBlcGZwZ3BgTnBvcGAggIWAhoCHgIBOgI+AgCyAjYCAIJuAKftNAAAQAEuAKfQBoPBR8FAgcFCR8ELwQCDwQfBC8ErwQECQMEB7gCn7ICQAK4/8C0CQw0Ag4APysAGhgQTe3UX15dccABL15d/dRd7TEwXXFycXIFAiEgAzMWMzI3AScf/vj+9x97HIuXG5T+/QEDh4cAAf7Y/mkBJ/9sAAkAekAiBwRXBGcEdwQE5wT3BAIIAlgCaAJ4AgToAvgCAsgC2AICAbgCn7TQAAEABrgCn7cPBR8FAgcFA7gCn0AVQB8ILwgCDwgfCC8IrwgECQMIAQUFuP/AtAkMNAUOAD8rABDAGNRfXl1xGk3tAS9eXf3UXe0xMF1xcnFyASMmIyIHIxIhIAEnexuXixx7HwEJAQj+aYeHAQMAAAH+s/5pAVH/UAATAIG5AAH/2LMIETQBuP/YQB4eIzQLEAgRNAwQHiM0AgQSBCIEAxQEEAUIE3YAQAC4/8BAEA4TNABABwo0AAl2CAY/DRO4Ari1ET9ACQICuP/AQAkJDDQAAgEHAg4AP15dKwAYEMQaTf3+1u0BL/3EKysBGhgQTe0ROTkxMF9eXSsrKysFBiMiJyYjIhcjJjc2MzIXFjMyNwFRBr4/Z0MfTgKFATU4Xz5rOyM9DLDkOCRfYT9ENh5XAAAB/sn+1gE5/2oAAwAXQAwAAZ8BrwG/AQMBNQIAL+1dAS/NMTABITUhATn9kAJw/taUAAH9rf5pAlb+6wADAA60AwICPwEAL+0BL80xMAEhNSECVvtXBKn+aYIAAAL+yP5OATj/jAADAAcAXkA/AAQBBQACAQACEAICGAMCAUABQAoRNAABATsBEAYBEAYgBgIGAAUQBQIQBXAFwAXwBQQABSAFMAVABeAFBQcFAC9eXXFy3XFyxl5dKwAaGBDNX15dcQEvxN3EMTAFITUhESE1IQE4/ZACcP2QAnD2gv7CgQAAAf6zAOEBUQHIABMAbbkAAf/YswgRNAG4/9hAHh4jNAsQCBE0DBAeIzQCBBIEIgQDFAQQBQgTdgBAALj/wEATDhM0AEAHCjQACXZ/CAEIBj8NE7gCuLMRPwkCAC/E/f7W7QEvXf3EKysBGhgQTe0ROTkxMF9eXSsrKysBBiMiJyYjIhcjJjc2MzIXFjMyNwFRBr4/Z0MfTgKFATU4Xz5rOyM9DAHI5DgkX2E/RDYeVwAB/skBDQE5AaEAAwAXQAwAAZACoAKwAgMCNQEAL+1dAS/NMTABITUhATn9kAJwAQ2UAAH9rQEXAlYBmQADAA20Aj8BAAEvzQAv7TEwASE1IQJW+1cEqQEXggAB/hb/5AHpA7kAAwCtQEMXAScBhwGXAQQHARcBAucBARgDKAOIA5gDBAgDGAMC6AMBAwEAAXYCAxQCAgMAAgEPA+8DAgcDAwEDAQACAEA8QTQAuP/AQDUXGjQfAAEPAC8A/wADNx8APwCPAK8AzwDvAAb/AAEPAAEHQABQAAJgAIAAoAADcACQAAIAAi/NXXFyXl1xcl5dcSsrARESOTkAGC8vX15dEjk5hwUQTSuHfcQxMAFdcXJdcXIBAScBAen8h1oDeQNe/IZbA3oAAAH+5v/nAR8F0wADAD9AHZ8BrwECnwCvAAIAAQF2AgMUAgIDAAMAAQIKAOgDuAGptQHorwIBAi9d7f3tAD/AP8CHBRArfRDEMTABXV0BASMBAR/+WJEBqQXT+hQF7AAB/6b+UQBa/78ADQBquQAN//hAGgkWNAkYHiQ0BRgeJDQKhA8LARADCwSEA0ADuP/AQA8JDDQAA6ADAgcDAw4KBAS4/8BADyUoNAAEEAQgBAMHBACEBy/txl5dKwEQwAAYP19eXSsAGhgQTe0vX15d7TEwASsrKxcUBiM1MjY1NCYjNTIWWmdNLDw9K0pq9E5tS0ItK0BJagAAAf6H/lwBef/UAAcAKUAXBC8BAd8BAQABEAECBwEGAgUAAe8EAQQvXd3dzQAvwN1eXV1xzTEwASERMxUhNTMBef0OmgG+mv5cAXje3gAAAv9E/lEAvP/JAAMABwA/QA0HDwFfAQIUAwEGAkACuP/AQBQHDTSAApACAgIIBAAAAbAAAQAHAS/N3V1xzQAQxl0rABoYEM3dX15dzTEwEyERIQM1IxW8/ogBeFrE/lEBeP7ixMQAAf66/qIBR/+DABUAYrkAFf/wQAkHETQPEAcRNAS4/+hAKhkiNAkYGSI0AUBwAAEABoANQA6AEgZABxILfwePB58HAwcQgAEOAwsUEAAvwN3A3MAaEMxxEjkBLxrNORreGs0aEN5xGs0xMAErKysrASMmIyIGFSM0JyYjIgcjNjMyFzYzMgFHTRFPND9OHiEzUBBNG5F2JCR3kf7oQlM1NScsQptYWAAAAf8jBG4A3QYoAAsAO0ARBgoICwUCBAAIAwkvBwEHAQO4AiJAEAMHBQIICwkHBAovAAEABgQvwNRdwBEXOQA/wNRdwBIXOTEwEwcnByc3JzcXNxcH3VyBgVyBgVyBgVyBBMpcgYFcgYFcgYFcgQAB/5oEbgBiBm4ADwAvuQAG//BAExIVNA4QEhU0AAUKBwINBwAPCAe4AiIAP83UzQEv1M0Q1N3GMTABKysTBhUUFhUUBzU2NTQmNTQ3YmhmxmhmxgYUBjUShTaRDVoENxeGMZQJAAAC/awF7AJVByoAAwAHAGRARQAHAQYAAgEAAhACAhgDAgFAAUAKETQAAQE7AQAG8AYC8AYBBg8FAR8FLwVPBV8FjwWfBc8FB58FrwW/Bd8F7wUFgAUBBQAvXV1xct1dccZeXSsAGhgQzV9eXXEBL8DdwDEwASE1IREhNSECVftXBKn7VwSpBqiC/sKBAAH+iASqAAAFwgADAFhADRcDJwM3AwMAAwEWAwO4/8CzDRE0A7gCYEASAkACQA4RNAKGDwEB7wH/AQIBuAJTQAkADwMfAwIDhwG4AiIAP+1dAS/9XXHtKwEaGBBN7SsBX15dMTBdESMDM5Hn8QSqARgAAAEAAASqAXgFwgADAFhAEhgDKAM4AwMPAwEWAwNADRE0A7gCYLIAQAC4/8BADg4RNACGAAEB4AHwAQIBuAJTQAkCDwMfAwIDhwK4AiIAP+1dAS/9XXHtKwEaGBBN7SsBX15dMTBdAQMjEwF455GHBcL+6AEYAAAB/rAEwwFOBaoAEwBwuQAB/9izCBE0Abj/2EAeHiM0CxAIETQMEB4jNAIEEgQiBAMUBBAFCBN2AEAAuP/AQBMOEzQAQAcKNAAJdn8IAQgGPw0TuAK4sxE/CQK4AiIAP8T9/tbtAS9d/cQrKwEaGBBN7RE5OTEwX15dKysrKwEGIyInJiMiFyMmNzYzMhcWMzI3AU4Gvj9nQx9OAoUBNThfPms7Iz0MBarkOCRfYT9ENh5XAAAB/5gD6QBpBckACgAtQAoFq28EfwSPBAMEuAFQQA0IPAoABwoJBDgFCjwJL+3W5RESOQA/7fRd7TEwExQHBgcnNjcjNTNpHytbLGgGXsEFJIY7USlHKp7RAAAD/pMEzgFqBeMAAwAHAAsAPEAeAzwCMAQBgAQBBAcFCTwIBkAFnwcBBwaAAgo8AQYJuAIiAD/AwP3AGhDNXQEvGt3W7RDV3V1x1u0xMAEjNTMnAyMTAyM1MwFqra2syHWDxK2tBM7AVf7rARX+68AAAf+m/mkAWv+BAAMAIrkAAf/AQBAJDDQAAQEBDgACAQcCACUBL+0AL15dP10rMTATIxMzWrQoZP5pARgAAf6HBKoBeQYiAAcALUAQAyAGAdAGAQ8GHwYCBwYEAbgCIrYBAAXvBAEEL13d1M0AP9DdXl1dcc0xMAEjNSEVIxEhAXma/kKaAvIEqt7eAXgAAAL+HP5OAeT/jAADAAcAXkA/AAQBBQACAQACEAICGAMCAUABQAoRNAABATsBEAYBEAYgBgIGAAUQBQIQBXAFwAXwBQQABSAFMAVABeAFBQcFAC9eXXFy3XFyxl5dKwAaGBDNX15dcQEvxN3EMTAFITUhESE1IQHk/DgDyPw4A8j2gv7CgQAAAv9m/mkAn/+1AAMABwA5twQBAAEBBwMBuP/AtwkMNAEOBgICuP/AQAoJDTQCBmQHA2QCL+3W7QAvKwAQwBg/KwBfXl0QwDEwEyMRMwMjETOfZ2fSZ2f+aQFM/rQBTAAAAf9E/mkAof+1AAUAhrQCZAVABbj/wEAYFRg0AAUQBSAFAw8FHwUCBwMFAwNkBEABuP/AsyouNAG4/8BAMR4hNLABwAHQAQMgATABQAEDLwEBDwEfAQIPAR8B/wEDBwHAHwQBDwQBXwRvBH8EAwQAL11xchrMXl1xcnFyKysAGhgQTe0BL81fXl1yKwEaGBBN7TEwEyM1IzUhoWf2AV3+aeVnAAAB/rAEeQFOBfcAGQCLQAoPBQERDxMBFAYBuP/YswgRNAG4/9hAFx4jNA4QCBE0DxAeIzQHBBIVBAsZAEAAuP/AQB8OEzQAQAcKNADvDAHvDAEMfwsBCxIVEBcHBAIJPxAZuAK4sxc/DAK4AiIAP8T9/tTtETk5ERI5OQEvXd1dccQrKwEaGBDNERc5MTABKysrKwBfXl1eXQEGIyInByc3JiMiFyMmNzYzMhc3FwcWMzI3AU4GvjFLPlo7HhFOAoUBNThfLkc9WjkeFj0MBarkI3AyawxfYT9EHm4yZwtXAAP+sARaAU4HAwADABcAGwDPuQAF/9izCBM0Bbj/2EAqHiM0DxAIEzQWGC06NKsQuxDLEAMCCBIIIggDFAQAGzwBGhoUCQwXBEAEuP/AQDcOEzQEQAcKNAQNAAwBLwwBjwyfDAIMAjxQAWABAgABEAECBwEAChAKIAoDFAMKQBEXF0AeIzQXuAK4QBe/Fc8V3xUDFQ0wBkAGUAYDBho8ABkBGbgCIgA/Xf3WcsTdXe4rABgQ1hrNX15d1l5dck3tAS9dcXHdxCsrARoYEM0ROTk5L8BN/cAxMF9eXV0rKysrEyM1MxcGIyInJiMiFyMmNzYzMhcWMzI3AyM1M1+8vO8Gvj9nQx9RAoIBNThfPms7Iz0Mbby8BjbN4eQ4JF9hP0Q+Hl/+OM0AAv6wBMMBTgalABMAJwEYuQAB/9izCBM0Abj/2EAOHiM0CxAIEzQSGC06NBW4/9izCBM0Fbj/2EA3HiM0HxAIEzQmGC06NKsMuwzLDAMCBBIEIgQDqyC7IMsgAwIYEhgiGAMUBBkkBRAEHBMnQAAUFLj/wEArDhM0FEAHCjQUCR0IgBwBDxwfHK8cAw8cAAYQBiAGAxQDBkANExNAHiM0E7gCuEAk3xHvEf8RAxEJAAIQAgIHAicAGhAaIBoDFAMaQCEnJ0AeIzQnuAK4QA2/Jc8l3yUDJR0AFgEWuAIiAD9dxN1d7isAGBDWGs1fXl0Q1l5dxN1dTe4rABgQ1hrNX15dAS9eXV3A3cDEKysBEMAaGN3AEhc5MTBfXl1dXV0rKysrKysrKwEGIyInJiMiFyMmNzYzMhcWMzI3FwYjIicmIyIXIyY3NjMyFxYzMjcBTga+P2dDH1ECggE1OF8+azsjPQyCBr4/Z0MfUQKCATU4Xz5rOyM9DAal5DgkX2E/RD4eX/vkOCRfYT9EPh5fAAH/A/5qAP3/xwAJADZAHggJAfgJAQgGAfgGAQEEA2QHQAmABgEGAAIIBYADBy/AGs3WwM0AL13AGt393cAxMHFycXIXBzUjFSc3FTM1/YL2goL26K57e66ve3sAAf9S/lwAr//UAAYAN0AhCAAB+AABAAFkBUAEAwbAAQSADwYBgAaQBqAGwAbQBgUGAC9dcRrdwBoQzQEvGs39zTEwcXIXIxUjNSM3r3tne66u9vaCAAAY/R8AAALgBcEABQAJAA0AFQAdACUALQA1AD0ARQBLAFEAWQBhAGkAcQB5AIEAiQCRAJkAnQChAKcBWECtB6AGnqCeoJ5NRqKapEmcpUiadnp+MoKGam6SllaKjjY6OjJSVm5WblZ2Ml5aDmZiGhYWLhIOQj4iHg4eDh4mLjIycipRAAoMTQNQAQwmKnJ2CpsMnZudm51IUKWgaGSQjERAiISEdJiUYFyUjJSMlHx0ICRscHB4VFgQFFgYHDg8WDxYPDR4dCwodHSAMAFIB0sECUYDAAcQBwIHNCAwATCAAHwBB3ynTqCiTZ4AL8DA3cDA3l5d3d5d3d5dwMDdwMAQ3sAREjkv0M0QzRE5OS8vEM3QzRDQzRDNETkvzdDNERI5OS8vENDNEM0ROS/N0M0QzdDNEN7AEjk5Ly8QwBDAAS/d3t3ewMDewBDdwMAREjkvzRE5OS8vEM3QzRDNETkvzdTNENTNERI5OS8vEM0ROS/N0M0Q0M0QzdDNENDNEN7AwN3AwBDcwBI5OS8vEMAQwDEwASM1IzUhBSE1IQEjETMlFCMiNTQzMicUIyI1NDMyExQjIjU0MzIXFCMiNTQzMgEUIyI1NDMyBxQjIjU0MzIBFCMiNTQzMgEjFSMRIQEhNTM1MwEUIyI1NDMyARQjIjU0MzIHFCMiNTQzMgEUIyI1NDMyBxQjIjU0MzIBFCMiNTQzMiUUIyI1NDMyExQjIjU0MzInFCMiNTQzMiUjETMBITUhBSERMxUzAuBk3wFD/cH+vQFDAj9kZP6UMDQ0MJQwNDQw9zMxMzEkMDQ0MP43MjIyMq0zMTEzAlIzMTEz/IvfZAFDBH7+vd9k/BEyMjIyAoUyMjIylTEzMzH9rTA0MjIiMjIyMgHGMjIyMv5cMjIyMvczMTEzlDIyMjL+kmRkAx7+vQFD/cH+vWTfBH7fZGRk/H4BQ5YxMTMvMTEz/tczMzHfMjIyAZczMzFWMTEz/XsxMTMDAt8BQ/o/ZN8C1TEuNv1HMTEzlTAwNAIgMzMx3zIyMv4HMzMx6DExM/7ZNDA0LjExM3oBQ/x+ZGQBQ98AAAH/UwTDBYUF/wATAFW2CQwBBgIBBrgCn0ALDQ8THxMvEwMHExC7Ap8AAwAJAiJAEOYPAVoFygXqBfoFBA8FCRO8Ap8AAAAKAp8ACS/91O0ROTldXQA/1u3UXl3W7TEwAV1dAQYGIyIkIyIGByM2NjMyBDMyNjcFhSLhiIb95olOkxiFI9+JgQIrfU6TGAX/hLOrZkqFsqtmSgAB/1MEtQWGBjIACQAsuQADAp9ACQ8IHwgCBwgBBb4CIgABAp8AAAAGAp8ABS/91O0AP8DUXl3tMTABIwIhIAMjEiEgBYZ7uv4b/hy6e/ACKgIpBLUBAv7+AX0AAAH/U/5qA9H/xwAGACZAFAgGAfgGAQECZAVAgAYBBgCAAgUELy/AGs0AL10a3f3NMTBxcgUHNSE1ITUD0YL8BAP86K57Z3sAAAL+tQHKAUsEuAApADYAyLUHIA0QNCG4/+BAKAwRNLAhAS8cAUQZVBlkGQMPCh8KAhYFLwgRFTTJDAHZLukuApg0ASu4Ax1ADAYRFhEmEQMREQUfAbgDGrI1AzO6Ax0ABQMatt8a7xoCGha6Ax0AHwMZsgMSKrgDHEAYAAAmECYwJgNgJnAmoCawJtAm4CYGJgkauwMcABsAMQMcQA0/CZ8JAn8J3wnvCQMJL11x7dTtENRdccb9xTMAP+3EXT/tMjI/ERI5L13tMTBdXV0rAV9eXXFdXSsrASMmJwYjIicmNTQ3Njc2NzY3NzQnJiMiBwYHJzY3NjMyFxYXFhUVFBcWAzUGBwYHBhUUMzI3NgFLgBIGfIxpQktXKDAhS5NGASMuXFMpLBR3IIFFXqs/HAoGAQaCQoUrTDSRljcUAdolNGkxN2VsOxsNCQkSGB9KHykcHk4QlS8ZTCIxHVOijQ1aAQMsGxMGGB49cnMqAAL+tQHKAUoEuAAWAB4A7bkAHP/oQCwSFTSGHAG5GQHEFNQUAgMPDB8MzwzfDAQPEB8QzxDfEAQKAAOwA9ADAxUFB7j/wEARLjs0AAcB4AfwBwIHBwoBFx64Ax1AGi8APwACADABQAFQAaABBA8BHwECCAMBAQobQQwDHQASAxkABQMdAAoDGgAHAxwACAAXAxyyAEAAuP/AQBsOGDTwAAEwAJAAwADwAAQAABAAMAADCAAOAR64AxxACn8Ojw7fDu8OBA4vXf3FEM1eXXFyKwEaGBBN7dbtAD/tP+0SOS9fXl1xwF39wBESOS9dcSsxMAFfXl1eXV1fXV1xKwEhFhcWMzI3FwYjIicmNTQ3NjMyFxYVJyYnJiMiBgcBSv3oBjQ6ZYk1fT/8pVtWU1qinlhQgAgmOl1ZbQYDImlCSZMP6GdiqKdmcG5lo0RaLkZ0WgAAAv/DAdoAPQW6AAMABwAhsQcAuAMcsgYBBboDGgAGAxmyAQIAAD/NPz8BL8D9wDEwEyM1MxEjETM9enp6egUujPwgAs4AAAL+rgHKAU8EuAAPAB8AqrUTKBIVNBW4/9izEhU0G7j/2EAxEhU0HSgSFTRYHgFzDoMOow4DBg6mDgJ5CokKqQoDCQqpCgIKBqoGAgMAAqACAgwFFEEJAx0ADAMZABwDHQAEAxoAEAMcsgBAALj/wEAZDhg0TwABIAAwAFAAkAAEAAAwAEAAAwgAGLgDHLV/CN8IAggvXe3EXl1xcisBGhgQTe0AP+0/7TEwAV9eXV9dXXFdcXErKysrARQHBiMiJyY1NDc2MzIXFgc0JyYjIgcGFRQXFjMyNzYBT6NQXaVZU29dhZ5bV30wOGtuNy8vN25uNy4DS/taLGtkqMdgUGljp3BJVVZIdHRJVllJAAH+3AHKASMEqAAXAEtAEAYQDRA09hABlhKmEgITAgFBCwMaABEDHQAEAxoAFgALAxkAAQAVAxy2cADgAAIADbkDHAAKL+3UXf3EAD/AP+0/MjIxMAFdXSsBIzUGIyInJicmNREzERQXFjMyNzY1ETMBI21UkIs+GgsIeggYdIArFHoB2mp6VSM4J0oBvf5yXyJmaDBcAYEAAf7HAcoBOAS4ABYAw7kAAf/4QA4jJjQPGCovNA8YJCg0Ebj/+LMSFTQVuP/oQBwjJjQJBBkEAiYBATcMRwwCJQwBAw8JHwkCFgUWuP/AQCASFzQAFhAWAjEDFhYLAw5ABws0Dw4fDj8OTw4EFgMOEEEMAx0ACwMZABQDHQADAxoADgMcAA0AFgMcsgBAALj/wLcSFzTQAAEAErkDHAAHL+3EcSsBGhgQTe3W7QA/7T/9xl9eXSsAERI5GC9fXl0rMTABX15dX11dXV0rKysrKwEGBiMiJyY1NDc2MzIXByYjIhEQMzI3ATgTn3mhVk+cTl3zLHcigc/ImxkC0XmObGKm+VYr4xKR/u7+7LMAAv7IAckBNwW5ABAAIACjQCgKEBQXNAUYFBc0Sx9bH9sfA2YbdhsCSRNZE9kTAwsKAQ0FAQwEDwAOuP/otRIXNBMOFb0DHQBAAAwDGQABAxpADR8YEhc0AhgSFzQfAh26Ax0ABAMasgERD7gDHEASnwABMABgAHAAoADQAOAABgAZuAMcs+8IAQgvXe3UXXH9xMQAP+0yMisrABg/PxpN7TIyKwAYPzEwAV9eXV1xXXErKwEjNQYjIicmNTQ3NjMyFxEzAzQnJiMiBwYVFBcWMzI3NgE3cUSFuVQokEhYfkh5bygzamYxJys0ZWMzKQHaWmu0Vm3rXi9jAWT9fXNLX1xHcGxLXFdIAAAB/twB2gElBboAEwBguQAR/+hAFA0QNAkDGQMCFwMABhAGAiMGCwANuP/otCQ6NA0EvwMdAA8DGQABAAoDGgABAxxACXAA4AACAAoMCbkDHAAKL/3AENRd7QA/wD/tMisAGD8xMAFfXl1fXl0rASMRNCMiBwYVESMRMxE2MzIXFhUBJXqXfiwUenpVgqk2GQHaAcevaC9W/ncD4P6cY3c3agAB/h4B2gHrBLgAHwCKuQAa//CzDRA0Hrj/4EAYDRA09wcBqQ65DskOA5cPpw8ClB4BAQoTuAMasxsWBg1BCQMdAB0AGAMZABQDGQAVABIDHEAOQBMBABMQE1ATAwgTCQG4AxxACz8AAQ8ATwACABsJuQMcAAov7TLUXXHtENReXXH9xAA/P8D9wDMzP8DAMTABcXJdcSsrASMRNCcmIyIVESMRNCMiBwYVESMRMxU2MzIWFzYzMhUB63k3ICmweX93KBN6bUuPT2YVVYneAdoBxHojFNT+XwHSo2syZP6MAs5ldUI8fvEAAf9CAdoAyQS4AA8AWrUFEBMXNAW4/+hACywxNAAFEAUCKAUMuP/wQBATFzQMDwMfAwI5LwMBAw4KugMZAAkDGrcPAAEHAAkLCLkDHAAJL/3EEMReXQA/P9TNcl5dMisxMAFfXl0rKxMHJiMiBwYVESMRMxU2MzLJKiwuWRwUem5FVj8EkXEaWkBO/ogCzm19AAAB/1EB0ACvBaMAFwBSQBuJBJkEqQTZBAQNBB0ELQQDFgQMQAkMNAwJEAi/Ax0ADQAJAxkAFQMdAAIDGrMADw0QuAMcsggKBy/Azf3AzcQAP+0/wP3AEMQrMTABX15dcRMGIyInJjURIzUzNTcVMxUjERQXFjMyN680KHkhD1lZeXt7Cg4tEyMB2wtMIm4BnV+ySftf/lw0ExwFAAAB/rcB2gFJBKgACgC8QDkHQAgNNAIHAeIH8gcCkgeiB7IHAysHOwdLBwNrB3sHiwcDDgceBwLxBwHEB9QH5AcDBwACBwoHBAq4AxxACQABFAAAAQcEBLgDHEAKAwIUAwMCBwMBArgDGrMACgQDuAMZQCdJAZkBqQG5AQRGApYCpgK2AgQECgIBBwWEAAF5AAEgADAAQAADAAMvxF1xcRc5XV0AP8DAwD/AEjmHBRArfRDEhxgQKwh9EMQAERI5XV1xXXFdcXIrMTABASMBMxMWFzY3EwFJ/vBx/u+AmhkVDiCfBKj9MgLO/lJGSzBZAbYAAAH+sAHaAVAEqAAPAL5AJwQPAQ4EBRQFAhIPAgE7BQoEDQcADwAHAw4CAQYDDgUGAQQNBwEGAbgDHEAKAAcUAAAHDQMOA7gDHEAPBA0UBA0KDwUCBAYAAQMEuAMasw4NBwa4AxlADgQDAQcNCgUCDwkEDgAAuP/AQBsdITQQAAEgAEAAUADgAPAABQCgBrAGwAYDBgQvxnLEXXErARgQxhIXOQA/wMDAP8DAwBIXOYcFTSuHfcSHGBArh33EDw8PDzEwAF9eXQFeXV5dASMDAyMBAzMXFhc2NzczAwFQlbu9kwEG8phuGRkSJXmR+AHaARv+5QF1AVmoJyobNKr+rgABAN4EqgJPBcIAAwBeQBIYAygDOAMDDwMBFgMDQA0RNAO4AmCyAEAAuP/AQA0OETQAhgABEAEgAQMBuAJTQA8AAhACAgcCDwMfAwIDhwK4AiIAP+1dAS9eXf1x7SsBGhgQTe0rAV9eXTEwXQEDIxMCT9yVhQXC/ugBGAAAAQBZ/mkB0f+BAAMAakANFwEnATcBAwABARYDAbj/wLMNETQBuAJgQBICQAJADhE0AoYPAwHvA/8DAgO4AlNADQAPAx8DAgkDA4cCQAK4/8C0CQw0Ag4APysAGhgQTe1fXl0BL/1dce0rARoYEE3tKwFfXl0xMF0FAyMTAdGH8ed//ugBGAABAPr+aQGu/4EAAwAsuQAB/8BAFgkMNAABAQEOAAIBAgAlAAEBBwEBBQQREjkvXl3tAC9dP10rMTABIxMzAa60KGT+aQEYAAADAHD/6AQjBdMAGwAlADUAjkBcNjABZRoBWQUBTAUBagIBhSIBZiJ2IgISIhQcJAwMJiQAN3QuhC4CLhYUJAYiJBwQEhAqHBhVFmUWdRYDMxZDFgIWGAAQEBACABgQGCAYAxAYEBgyIBwIATIcBAsAP+0/7RE5OS8vXV0RM11dEO0RMxDtMgEv7TIyXRDe7TMv7RE5OV1dMTAAXV1dXV0BFAcGIyARECEyFxYVFAcGIyInBhUUFzYzMhcWATQnJiMiBxYzMhM0JyYjIgcGFRQXFjMyNzYEI3N/2/4aAfOHYmZuWX6akBkBdcPaeW3+6DcyQZtRfHqgXzREj49ENDREj49ENAGbtXmFAvUC9ktPdXtBNUtqjioabIV3AnwzIR2PRP0vckthYUtyckthYUsAAgAA/+cEYAXTACkAMgClQGd2MQFFMQF5LwFMKwFkJwFVJwGFJgFpIYkhAlohAXMeAVUeAUYeATUeAWUdAYsDASkDAR8qJQEAKDQwJSIiBxAPDwcVJQsLGSUHKigcAR8BDw0cEhASIBJAEgIBEgESHC0cJQEcHAQLAD/tP+0ROTkvL10RMxDtMhEzEO0yAS/tMy/tETMvMxEzL+0Q3M0z7TIxMABdXV1dXV1dXV1dXV1dXV1dASMCACMiJjU0NzY1NCMiByc2MzIWFRQHBhUUFjMyEhMgJDU0NjMyEhEzITQmIyIGFRQWBGBUGv7NyZWrHhQ6IWQpdVRmcRcaST5+zhb+5v620KvB3FT++IRlWGvjAu7+i/5ul4Yse1ITLTOQP2dZHWRwJDtGATcBNNm4l73+0/7jz+doVnKGAAEAFAAABh4F1AAYAIhAU0gVARMQECAIBxQIEA0IBw0QECALDBQLCwwTF2kLAUcLVwsCCwgQBwQKAx4XAw0MAgoIJgcBJgc2B3YH1gcEZwcBSQcBBxMACA0MEAggCwsMABoMLxDGETkv7TkSORESOTldXV1xAD8/wD/tERc5XV0SOYcFECt9EMSHCBgQKwV9EMQxMAFxAQcmIyIHBgcBESMRATMBFhc2NxM2NzYzMgYeWWo9Jh8TKv6Dwv234gEmWEhEUapFLT1IgwVWhEgeEz/9w/2TAm0DTf5Rhn16fgEIayo3//8AAAAAB5oF1AAnCKIBfAAAAQcInf8iAAAAM7EBGbj/wLILMDS4/+FAGhkZDAxBAAxABwg0PwxQDGAMoAwEDAEBHAApACsBL10rNSsrNQD//wAUAAAGHgctAiYIogAAAQcAjgFoAWoAGUAMAgEAGSALCEEBAgIZuQIhACkAKwErNTUAAAMATP5pBC8FugAVAB4AJwBpQES4AsgCAhAAGiAcEg8HBg4bHxwEBwoWJBAAYACwAAMAEhsFJQYkJW8LvwsCAAsBBwsPH0AGgAYCEAYgBqAGsAYEBgYpKBESOS9dcTMz1F5dXe0Q/TIy1F3tAD/F/cU/P8X9xT8xMAFdARQHBgcRIxEmJyY1NDc2NxEzERYXFgc0JyYnETY3NgURBgcGFRQXFgQvZGvItMlrZGVryLTAbmm5NDtvcjoy/m50OTIyOQIi6JOdHP57AYYdmZDe3pCYHgGD/n4clY/fjGV0IPzpIHln/gMTIXVljo5ldQACAFf/6AXoBCYAFAAtAKG1FhgiKTQZuP/oQFIiKTR6KwF2KAF5IAFlHXUdhR0DlhMBmA4BmAmoCQKEBwGJBfkFAoUDlQOlAwN2BgEGCAAkECQCBwMkExgPKxAGKh4cBAgLBiYlIyMMEhUlAEAAuP/AQAwJCzQALxolDx8MAQwvXcDtEMYrARoYEE3twBI5L+05AD/A/cA//TIyxF9eXRE5XTEwAV1dXV1dXV1dXV0rKwEUBwYjIicGIyInJjU0NyM1IRUjFgc0JyEGFRQXFjMyNzY2NREzERQXFjMyNzYF6FNmzOJhYuLLZlRWVgWRVla3WPyNWC48eUM5NSSzXjk/eD0tAgXckLHv77KQ28PMkpLMzq7s6rCLa481MoeAATf+yepSMpBrAAEARP5RBIsEPgAvAQpAGAAhECECGgADEAMCGwUoExQnFCUWFSYVJrj/4LMeITQmuP/wQGASFjQUIB4hNBQQEhY0FiYBGRQBJhQnFCUVJhQVFSYWJRMoBCYVGxwgBycmBhQVCi0cDgsJHAQGDiUvJhQVNydHJ1cnAycTJb8ozygCDyhvKH8oAwwDKCgxMBUeJSUWQBa4/8CzJio0Frj/wLMfIjQWuP/AQBoSFjQAFgE+wBbQFuAWA0AWASAWMBYCFhYxMBESOS9dcXJeXSsrKwEaGBBN7cTNERI5L19eXXHtzV0ROTnW/cQAL+0/7T/AP8A/7RESFzmHBRArh33EAXFxKysrKxB9hwTExBCHxMQxMAFfXl1eXQUUBwYjIic3FjMyNzY1NSYnJjU1ASMTETQnJiMiByc2MzIXFhUVATMDERQXFjMyNwSLM0KWSUQiNh9NFgp4OTP+OunkChZNHzYiREmWQjMBxunkChZNLkk6w05kE5kOTiNqIAxWTsPS/dEBGQGqayRODpkTZE7D0gIv/uf+VmskThUAAgBj/mkF3QXUABgAKACrQGEqJzonaid6JwQlIzUjZSN1IwQlHzUfZR91HwQqGzobaht6GwR4FwG5EgGYEQGZDAG7CwGJCwEFBLUEAgd3A4cDAikDAQMPAh8CAg0GCA4lHgYJCR0eEwMGIAkJDxkmAEAAuP/AQBUHCjSAAAEAKiEmYA9wDwIPDx8PAg8vXXHtEMZxKwEaGBBN7RI5L+0AP+0/M+0/MTABX15dX11dXl1dXV1dXV1dXV1dARQHBgcGBxEjESYnJicmNRA3NiEyFxYXFgcQJyYjIAcGERQXFjMyNzYF3VFbrXyHwpZ7oVdTsr4BTsiipldVyO10kv79gnJ/iez2h3kC29WpvF9EEf58AYQSTGOwp8UBVdThXmGwrN0BcpZJuKD+8vGeq7GgAAIARP5pBCcEPgASACIApbUgQAwPNB64/9CzDA80GLj/yEAJDA80FkAMDzQCuP/oQDEHCjQLERsRApYJpgkCeQgBlAKkAgINAh0CAg4EBg4fHAQHCxccDwcEJQcHCxMkAEAAuP/AsyQoNAC4/8BAGAkNNAAkGyQLQAtAJCw0Hws/C08LXwsECy9dKwEaGBBN7RDGKysBGhgQTe0SOS/tAD/tPzPtPzEwAV9eXV1dXV0rKysrKwEQBwYHESMRJicmNRA3NjMyFxYHNCcmIyIHBhUUFxYzMjc2BCfwT1i0zGthpInF64aAuUdSn6FTRUZSoaJSRAIi/oyFLA7+egGFHp6Q2QEnjnabk/ena36Aa6uqbYCDbQAAAQBwAAAFSwXUABsAZEBAdhaGFgJ7E4sTAjkTATgSASQKAQcKFwoCaQgBKQdpBwJ4A4gDAg4gEBAUASYAHQkmFA4MHhERDwABAQUeGAMPCAA/P+0yLzMROS/tMgEv7RDe7RE5L+0xMABdXV1dXV1dXV0BByYnJiMiBwYVFAQzMjcRIxEkABEQNzYhMhcWBUunKWV3ls6DjwEDxUIptP78/szFsgEi26CJBGs2aUtXdH7bxfYI/kABJhABOAEAAS6klHJhAAEAUP5RA9wEPgAhAK9ATmYYAYgeAZwbrBsCVQ7VDgJWBGYEdgQDaQIBChwZeRkBSxlrGQIIGQEHGQ8PAR8BLwG/AQQPAwEDHCAHEQ8CEhISAhAEEhQcDw8WJA1ADbj/wEAJBwo0DQElAEAAuP/AQBQLETQAIw8SHxICBxIFJB8cPxwCHC9d7cReXRDGKwEaGBBN7cYrARoYEE3tAD/9xl9eXRE5P+3EX15dEjleXV1dEO0xMAFxXV1dXQBxAQcmIyARFBcWFxYXFhUQISInNRYzMjU0JyYnJBEQNzYzIAPcrzLA/s5WTa2SQnf+X5ifrJLaQCBt/jnndIkBZwLuG9f+aqRRRx4ZKEiZ/rkitUOZWCIREEMBswFvgEAAAQCoAAAEhQW6AAsAPUAlBQIeBwcJAR4KAgkIBSAQAwEDAAABCAANAgggIAmgCbAJwAkECS9d/cAQ1l5d1l3tAD8/7RI5L+3GMTABIREhESM1IREjESEEhfzlArDC/hLCA90FDf46/nvY/WYFugABAIj+aQLrBCYACwBkQCMFBxwCAgkBHAoGCQ4GJc8DAQMAACAAMAADCQMADQIIJQlACbj/wEAYKCs0AAkBRNAJAeAJAQAJEAkwCfAJBAgJL15dcXJeXSsBGhgQTf3AENZfXl3WXe0APz/tEjkv/cYxMAEhESERIzUjESMRIQLr/lEBfbTJtAJjA5H+6f6yufyEBb0AAQAA//AE/wXUACUA2LkAHf/gQJkQEUJVCiAQEUJVCgoJHR4dIAsKFAsdHAsKCgkJKyAfFCAgHxwdHSsMDRQMDA1WCwEDCwEISR4BDRwdHh8KDAsJIAokER4VAyQeAwkmIDYgRiADxiABOSBJIIkg+SAEeR+JHwJUHmQedB4DKQ05DUkNA8kNATYNRg2GDfYNBIUMAVsLawt7CwMNHAwLHQoeHwkgChMgAAEAJxMvEMBdERc5cV1dXXFxXV1dcQA/7T/tERc5XV5dXYcFECt9EMSHGBArfRDEhwgYECuHCH3EKysxMCUHBiMiJyY1NDcTAScTNjU0IyIHNzYzMhcWFRQHAwEXAwYVFDMyBP8VKiEkKvgEQf0GGHgEhjlJFywfIiv5BEQC+xd2BIY7kp0FBiPyHx0B2v4TAwNTHBOFDJ0FBiPyHx3+GwHvAvy2HRKHAAABADIAAAQKBboACQCEQDsHCAggBQYUBQUGAwICIAEAFAEBAAAFCB5ADwMfAz8DTwOvA78DBg0DAwMCBwYAAQIKBgcIAwIBBgAFALj/wEASCxQ0AAAQAAIHAwALBUAMFDQFLysBGBDGX15dKwEREhc5ABg/wD/AEjkvX15dGk3tOTmHBRArfRDEhxgQK30QxDEwAQEjEyE1ATMDIQQK/uzC6P0WARTC6ALqAwX8+wKGMQMD/XwAAAEACv5pBcAF1AAlAOhAlSkVAQwVAQ8MIgEdAxMYBwo0hiWWJQJ2IwGGIgFPFd8V7xUDnxUBxBUBShUBhw2XDQJpGXkZiRkDGUYbxhvWGwMsGzwbjBucGwQbFhgYFhEUHAALMAtwCwMICwsRChYcIAEHHAQPCRQZFAL5FAEaFCoUahR6FAQUCwkRJQ8QTxBfEAMKAxAQHAAWJRkZAAUFHAkkAEAAuP/AtQkNNAAnHC8QxisBGhgQTe0SOS8ROS/tERI5L19eXe0SOTldXXEAP+0/7T85L15d7RESOS8QxF1dOV0xMAFdXV1dcV1dXSsAX15dXl1dARAHBiEnFjMgETQDBgcGFREjERAlACURIxEGByc2NzYzMhcWExIFwM+v/lxVkHIBuF2OOTS2AVv+/v7vspmTVXGKpLLi2cB4cgE5/legh7AMAfnPARcCRD6P/icB3AGANQGkCv3DAglUyJSPWWnIsv7j/vEAAQBC/lEEaQXUABMA30CUGAsBmA0BCRABCHoTihMCBBMUEyQTRBME1gnmCQImCUYJlgkDZwoBBwoXCgINGAooCgKYCgEFChUKJQoDDwkMKQwCQGkMiQwCKQz5DAIHDncOAqcOtw4CFg4BBg4BBg8WDwIRAgcKCQwPDggDEgEDDw4NCQgEBQASEBIgEgMPAxIADw8BDw8BEAYHCgwPBBEFJABAALj/wEAJBxM0ABWWEQERL10QxisBGhgQTe0RFzlfXl1xEjlfXl0SFzkAPz8SFzldXXFxcl1xXl1eXXFyXl1yXXIxMF1dXl1dAV0lFAcHEjU0JwUnJSYnBSclJiU3AARpOdNTLP6cRgF+LUf+hEcBcML+c80DWmrT4mQBGd7hkq2Pu3dxuZC187Fk/mYAAAEApP5pBnsFugAmALxAiAkQDRA0lCEBkBiwGAIAAgEIBQwQCxA0KQ45DgIpEjkSAgsSGxICSSNZIwIGHgUOCw8iGR4NEQklHhUCHyAJDxkPAgcPHh4mFQslIH8mAQAmECYwJgMNJigWIAYAFSAVAkMgFTAVUBVwFZAV0BXwFQdQFWAVsBXQFQQAFSAVQBXAFdAV4BUGBxUvXl1xcl5dwO0Q1l5dXf3FERI5LzNeXe0AP8DAP8D9wDMzP+0xMF1dXV0rAV9eXV1dKyUQBwYhITUhMjc2JwYjIicGIyImNREzERAzMjc2NREzERQzIBERMwZ7WWz+5vwIA+66QzcBX9z4Qn7Kq7nBy4ZDO8K8AQfCj/7oeZWtYE/Go7q6vqcEbfvZ/vtdUYsD8/vE8AF7A7EAAAEAhP5pBiMEJgApAK9AfKYiAacYAUkS6RICKxI7EgKZCQFpCQEWAnYChgKWAgQfKBQGWSVpJQJZHGkcAlkPaQ8CDxwlCwQjGhwNEQsGKwUOBhYlYBMB4BMBEyELJyVvAAHvAAEQAAEAISUoDzgPSA8DCw8BBw8QHgFAHmAe8B4DAB6QHrAeAx4eKyoREjkvXXFyM15dXe3UcV1x/cUQ1F1x7cAAP+0/wP3AFzNdXV0/wMAxMAFdXXFdXV1dJRAHBiEhNSEyNzY1BiMiJwYjIBERMxEUFxYzMjc2NREzERQzMjc2NREzBiNZbv7o/EADybRIOW/T6kJ+yv64s1EuPoVEO7S8rzsdtI/+832cm3Bbxq26ugFlAtn9Y7UzHV1RiwJp/U7wnU2RAicAAAEAYwAABMAF1AAbAFVANgoGWgZqBgMIClgKaAp4CgQIGRceAgQEGgERHgwDGgIBCA4OCBkBIK8AvwDPAAMAHRMmHwgBCC9d7RDWXf3AEjkvAD8/P+0REjkvM+0yMTABXl1dISMRBCMiJyY1NDc2MzIXByYjIBEUFxYzMjcRMwTAwv77sPiCbH6C7XZnUks5/s4+Uq654sICT2GihcDth4swhSH+poVXdFsCyQABAIsAAAPqBdQAIwBZQDmGHZYdth0DaA8ByAoBGgkqCQICHxwGBiIBFhwRASIAAQoTExohASXQAAEAJRolAA0QDTAN4A0ECA0vXl3tENZx/cASOS8APz8/7RESOS/tMzEwAV1dXV0hIxEGBwYjIicmJyY1ETQ3NjMyFwcmIyIHBhURFBcWMyARETMD6rQoVFlrcFhkIh0tPaFJRCI1IE4VCis0gAEYtAIXRCotLjRhVJoBMrNScBOZDk0ibP7ZiENRAV4CRAABAKT+aQUBBboAGQB5QFc5GEkYApkMqQwCSgxaDAKpCQEpCTkJaQl5CQTqCfoJAgQCRAKEApQCpAIFDw0eFBYWERICEQgGHgUOCyYAABAAMAADBwAbExAgBgARMBGwEcAR0BEFCBEvXl3A/cAQ1l5d7QA/7T8/EjkvM+0yMTABXV1dcV1dcQEQBwYhITUhMjc2ERAhIgcRIxEzETYzIBcWBQGyqP7b/iIB0tJ5fv6anNfCwti1ARWHcgFF/pW/sq2IjgEIAfBb/TcFuv2xYceoAAACAAr/6APcBI4AJwAwAM1AjBoYDRA0WCgBViYBdiYBGR0pHUkdWR3pHfkdBlwaAfgTAVsSaxJ7EgN6DIoMmgwDegyKDJoMA4sGmwYCNgIBeRcBISgjLyYXJBkcYC8BDy8BBy8vBCocHwcOHD8HTwdfBwMHCREcBAsJChcmGySmKAEoISObIwEjLSQVJA8AAQgAMp8tAS0bCRwfCgEKL13t1M1dEN5eXe3AETldEjk5XRESOTkAPz/tENZd7T/tETkvXl1d7RE5ORESOTkxMHIBXV1dcV1dXV1dcV0rARQHBiMiJiMiFSM0NzYzMhYzMjc2NTQnBiMgNTQ3NjMyFzY3FwYHFiUmIyIGFRQzMgPceYHfTb0WQZg1OWE5vzSOTUMrvbj+62xjqKJ1JkF5Ikxu/r5KaVx6b4ACF/aYoWNLYT1BY39uqYFi0P6NSkRLOmFoMmyTfThLPGUAAQBr/+cE9AXTADMA5ECNBgIWAgIKBhoGigYDSAkBCwkBVhUBaRl5GQJHIAFXKQFZLWkteS0DBh0WHYYdAwdVKGUoAiYLRgt2C4YLlgsFCx4kBiQWJAIGJDYkpiS2JMYkBYokmiQCSyQBJAQPFwE/FwEXFB4bAwAyEDJwMgMAMjAyYDKQMqAywDIGCAMyKx4ECSQLJxAmHy8mAEAAuP/AQBYHCjR/AI8AAgA1FyYYJyYgCAEPCAEIL11d7dTtEMZxKwEaGBBN7dTtETk5AD/txF9eXXE/7cRdcRI5XV1dcRDtXTEwXV5dAV1dXV1dXV1dXQEUBwYjIicmNTQ3NiU2NzY1NCcmIyIGByM2ADMgFxYVFAcGBwYHBhUUFxYzMjc2NTQnNxYE9Lqp/vGVovo6ARDrNDl0V4anqhS6CgEs8QFFgD/QWbPQRKyBaI2jc4corTYBqtZ8cW121PNzG0I6LzNPeDkrlaLgAQLEYW/Rbi8qMBpCjX9DN0JNjmBXNmcAAQBr/+cE2gXTACkArEB0egMBCgOKAwILBQHmCQFWEQFpFXkViRUDBhmGGQIHhhyWHAJEHAFVJWUlAgNwB4AHkAcDBxwgECABJCDEIAIPII8gnyADCAUgAhMQHBcDABwpQCkQERc0KSccAgsgByMMJAAPGwEIGysTJBQjJCAEAQ8EAQQvXV3t1O0Q1l5dxu0ROTkAP+0yKwAaGBBN7T/txBI5X15dXXEQ7V0xMAFfXV1dXl1dXV1dXXElBiEgETQ3NiU2NzY1NCcmIyIGByM2JDMgFxYVFAcGBwYHBhUUFxYzIDcE2tT+vv2n+joBEOs0OXRXhqeqFLoKASzxAUWAP9BZs9BErJZ2iAEbzx43AbfpcxtCOi8zbXg5K5Wi4O7EYW/Rbi8qMBpCjZFFN0AAAAIABQAABNsF1AAeACEApEBsOAgBBwgBlgimCAIHCDcIZwgDBwgJGSEHIB8OIQcNDh8MGxoZCQwbDh8fJQkZFAkJGQchISUMGxQMDBsOBw0IIAUhEBkbGgMLFwEPFAEUBRAeHRcDCR8MIR4LCg4ZGwcaDQggDCEfCQwVACMVLxDGERc5AD/9wMDAP8D9wNZdwBESFzkREhc5hwUQK30QxIcYECt9EMQPDw8PMTABXl1dAF1dAQcmJyYjIgcDARUhNQEDJiMiBwYHJzYzMhcXNzYzMgEDAwTbYx0uMjNBG50BMvzeATKdG0EzMhE6Y3igxD5SUDzGoP7k1tgFGHIiMzI+/pb9KK2tAtgBaj4yEURyvKLX16L62QH9/gMAAgAZAAAErAQ+AB4AIQFGuQAh//BARCksNB8QKSw0BwhnCHcIlwinCAUZFikWORYDFh4mHjYeAygfASYhAWYIASogAQgJGSEHIB8OIQcNDh8MGxoZCQwbDh8fuAMiQAkJGRQJCRkHISG4AyJAKwwbFAwMGw4HDQggBSEQGRsaAwsXAQ8U3xQCBwMUBRAcHRcHCR8MIUALCgy4/+BAaisvNAkgKy80HwkvCT8JA3sJiwmbCQOLCbsJywnbCQQQDCAMMAwDdAyEDJQMA4QMtAzEDNQMBAcZFxkCNxkBAxlzGZMZoxkECRsZGwI5GwEMG3wbnBusGwQHDhkbBxoNCCAMIR8JDBUAIxUvEMYRFzleXV1xXV1xXXFyXXFyKysAGD8a3cXAxT/ATf3A1l9eXcAREhc5ERIXOYcFECt9EMSHGBArfRDEDw8PDzEwAHJdAXFxXV1dKysBByYnJiMiBwMTFSE1EwMmIyIHBgcnNjMyFxc3NjMyAScHBKxjHS4yMzkjh679/KyEIjozMhE6Y3igvjo3PEC4oP5+Uk0DgnIrPDJQ/sr+ZomJAZoBNlAyEVZyvKKZmaL8Xbe3AAIAX//nBYYFugAWACUA1UAziyQBhCEBhB0BixkBAhVCFZIVohUEnQetBwJPBZ8FrwUDAgJCApICogIEBwISEhICFgQRuP/AsyMxNBG4/8BAHhkfNBEbHgATEBMCBwMTEwQNHgoCIx4ECQwXJgBAALj/wLUHCjQAJxG4/9izIzE0Ebj/0LMZHzQRuP/oQB8HCjSTEQGIEQF6EQFHEVcRZxEDER8mIAYBDwYfBgIGL11d7TJdXV1dKysrARgQxisBGhgQTe3EAD/tP+0ROS9fXl3tMysrMTAAX15dAV5dXV1dXV1dXQEQBwYhIBEQNzYhIRUhIgcGBzYzIBcWAzQnJiMiBwYVFBcWMzIkBYbBtv7i/W6tvQE+Af3+AYtrdDGu2QEdt8HIhH/Ky36BgX7LygEDAj7+6aScAvYBMc3frTo9cnSdpv7pxndycnbHx3Z06wAAAQBE/+gEKgQ+AB8AhEBZCQ0BFQMPDB8MAhcGEhgOETQ2HgFHEAFkEHQQAjYNAUgFWAUCBgEWASYBAxcc3xwBgByQHAIcHAIJHAgHERwCCxkZEw8JEyQPAAEIACEPJB8EPwRPBF8EBAQvXe0Q3l5d7cQREjkvAD/tP+0ROS9dXe0xMAFdXV1dcV0rAF9eXV9eXQEQISARECU2MxUiBwYHBhUQISA1NCcmIyIHNTY3NhcWBCr+Cv4QApt7iVOt9G+DAT4BNl1EmUJ9QafibnoBev5uAj4B+BsFowULTlzU/m/+fi8jGJ8LDwlRWQABABQAAAOiBboAHwB6QFIJGAE5GEkYWRj5GAR5GAEGHwE2H0YfVh/2HwR2HwECDxUfFQIHFQoNHh0aGgwbAgwIEh4fF88XAhcMBR7AAAEAHAsgGwAMEAywDMAMBAgMDCEgERI5L15dwP3A1F3tENRd7QA/PxI5L9D9wNReXcAxMAFdcXJdcXIBFAcnNjU0JyYjIxEjESMiBwYVFBcHJjUQITMRMxEzIAOiE5kOPBtJKMIpSRo8DpkTAT4owigBPgNzSUQpNh9NFgr8LwPRChZNHzYpREkBCwE8/sQAAQAoAAADHwW6ABEAf0AfDwkfCS8JAwcDCQEGKxAKBg4NQA1ACg40DQwBBANAA7j/wEAsCg40AwILDhABJQQLHwUvBT8FA18FbwXPBd8F7wUFBQUJXwABAAABABMHCAkvzTIQxl1xETkvXXHAxf3AxAA/zSsAGhgQzT/NKwAaGBDNP8BN/cDEX15dMTABIRElNTMRIwcjESERBRUjESEDH/7i/udlm2QmASUBGWUBHgOa/GZkKAMOlAEgAZRkKP74AAABAET/6ASLBD4AIwEJtwAVEBUCGgUZuP/oQBUNEUJVBxgNEUJVHAcIGwgZCgkaCRq4/+CzHiE0Grj/8EBaEhY0CCAeITQIEBIWNBYaARkIARoIGwglCRoUCQkaChkHHAQaCQ8cFAcbGgYICQohHAILABoICTcbRxtXGwMbByW/HM8cAg8cbxx/HAMMAxwcJSQJEhklCkAKuP/AsyYqNAq4/8CzHyI0Crj/wEAaEhY0AAoBPsAK0ArgCgNACgEgCjAKAgoKJSQREjkvXXFyXl0rKysBGhgQTe3EzRESOS9fXl1x7d1dETk5wAA/7T/AP8A/7RESFzmHBRArh33EAXFxKysrKxB9hwTExBCHxMQrKzEwAV9eXQUGIyInJjU1ASMTETQnJiMiByc2MzIXFhUVATMDERQXFjMyNwSLREmWQjP+OunkChZNHzYiREmWQjMBxunkChZNHzYFE2ROw9L90QEZAaprJE4OmRNkTsPSAi/+5/5WayRODgACAFv+UQREBD4AJQA1AKu5ABD/6EBZDRE0LzMBJzAB5zABACsQKyArAw8pHykvKQMMSCgBCSRZJAJFHVUdAkUYVRgCAw8YAQ8C/wICDgACARUFDCUXQBdADR00FxMPBiAyHAQKKhwgBxMSJiQAQAC4/8BAEQgMNLAAwAACADcGLiQfGgEaL13tzRDGcSsBGhgQTe3UzQA/7T/tEjk/xisAGhgQTe0xMAFfXl1eXV1fXV1dcV5dXV1xXSsBFAcGIyInFhcWFxYzMhcWFxYXIyYnBiMgABE0NzY3NjMyFxYXFgc0JyYjIgcGFRQXFjMyNzYERH2F4eSIBCQuf0mujxpqLSQLnwsqUmr+2P7jHS6OaL6WY2BMRbxDUZmYVEpEUqGXUEUCFOWTnMqKYXolFgMLNCluIQQDASUBnPx8x3VWPDmEd7+kcYl2aJ+sbYJ2Zv//AFD/6APtBD4CBgBGAAD///+i/lEBOgW6AgYATQAA//8AYP/nBdoF1AIGBqcAAAABAE0AAAM5BCYAFgBoQEVlFAF1FAFXDmcOdw4D1gfmBwKJBwHqAwEKA4oDmgMDB3kCARAcExMBDBwJBhUcAQoSEhMLAAAQADAAAwgAGBATJD8FAQUvXf3AENZeXcASOS8AP+0/7RI5L+0xMAFdXl1xXV1dXXEhISInJjc2NzYzIRUhIgcGByEVIRIhIQM5/un0dmsDA3N98AEG/vKBTUUPAXf+iR8BBAENl4j08oqXm1RMgZT+xQAAAQBQAAADPAQmABYAZkBE2RXpFQKGFQFYDmgOeA4DaQgBeggBhgMB5QIBBQKFApUCAwcLHAoKBREcEgYGHAUKCgoRDAkkAAAQADAAQAAECAAYBhEvwBDWXl39wBI5LwA/7T/tEjkv7TEwAV5dcV1dcV1dXQEWBwYjITUhIBMhNSEmJyYjITUhMhcWAzkDa3b0/ukBDQEEH/6JAXcPRU2B/vIBBvB9cwIT9IiXmwE7lIFMVJuXiv//AKIAAAToBywCJgAoAAABBwBDAYEBagAiQBUBAA0QDSANcA2ADQUPDQ0BAkEBAQ25AiEAKQArAStdNf//AKEAAAUgBywCJgJCAAABBwBDAWcBagAcswFwCwG4//G3CwoABEEBAQu5AiEAKQArAStdNf//AEv/6AQeBcICJgBIAAABBwBDAN0AAAAetQLvH/8fArj/4rcfHwoKQQIBH7kCIgApACsBK101//8AhwAAA/AFwgImAmIAAAEHAEMA0gAAABxADwGAC8ALAh4LCgAEQQEBC7kCIgApACsBK101AAEAbf/nCkcF0wA2AN9Ak2U1AVM1AQU1FTUCiS4BiS0BSC0BSSmJKQI2JAE4HwFGGoYaAoYWAUcWAYYVAWsOAVwOAQoOGg4CaQoBWgoBCQoZCgJmAgFVAgEGAhYCAoUxAXYxATEyMgYiICCKEgF5EgESEREgIBgrJmAAAQA4GCYMMjEvHjQPISEUHDExEQ8SEhQeDwMgHB4IIyceBEkGAQYICQA/M13U7TIQ7TI/7TIvEjkzLxESOS8Q1O0SOQEv7RDeXe0ROS8zLzNdXRDtOTIvM11dMTBdXV1dXV1dXV1dXV1dXV1dXV1dXV1dARAHBiEgJwYhICcmERAAISAXByYjIAcGERAXFiEyNzY3ETMRFhcWMyA3NhEQJyYhIgcnNiEgAApHycz+qP719fX+9f6ozMkBigFUARaae3a+/viNgoiOAQRsd3xNvk18d2wBBI6Igo3++L52e5oBFgFUAYoC1v6uzdCgoNDNAVIBXQGgi39kqJz++f7znKMpK0QBvf5DRCspo5wBDQEHnKhkf4v+YAAAAQAQAAAE7gQmABgBsUBQABYBDAYDQBkcNNkD6QP5AwM5AwEvAz8DTwMDPwOPA58DAwsDGwMrAwMOlA4BNQ/1DwIVDwEiDwEDAA8BEAAXASkEDwMOFwQFGBEIBgIFCgG4/+BANQ4RNAABAT0HAVcBAgcBAQoEARQBAgQBARwBAQNUFmQWAqYXAR0XAQIXAQsEFhcBAxIlEUADuP/wQHIZHDQDA5MDowOzAwTzAwGTA6MDAqYDxgPmAwNGA2YDdgOGAwSIAtgCAlkCeQK5AgNFAgG4DwGWD6YPAg8DAgMPEZ8RrxG/EQQvET8RrxG/Ef8RBU8RXxGfEa8RBGIRAckR2RECAxEBBwMREQkYJUAAGgS4/9hAPxkcNAMEEwQjBAM7cwSDBJMEA4MEwwTTBOMEBGYEpgQCdgSGBAIkBAHHDgENDgQDCSVYBagFApkFAQUGjwgBCC9dMzNdXe0XMl1dXXFxcl5dKwEYENYaTe0SOS9fXl1dcV1xchczXV1dXV1dcV1xcisBGhgQTe0XMl9eXV1dXV9dXXFeXXFeXSsAGD/APzMzEhc5X15dXl1fcV1xcV5dcXJdcisxMABfXl0BASMDAyMDJgMzFhcWFxMTJgMzFhcWFxMTBO7+tL2HdL3jKBK6BAYOFpR0JhK6BAYOFpT7BCb72gFl/psCV2kBZmpUyTr+dgGCbgFbalTJOv52A0sAAAIAFAAABe8FugAUAB8AgUBTlwEBBxIXEgInFlcWAmoWehYCaR55HgIHCh4EoA0BDQ0IDh4aGgMIAhseAwgfDAEMDA4VJgAhXwUBBQoOGyAHUANgAwIAA4ADAgiPA98DAgMDISAREjkvXV5dccD9wMAvXRDe7RI5L10AP+0/Ejkv7RE5L13A/cAxMAFdXXFdXQEQISERITUhNTMVIRUhFSEyFxYXFgc0JyYjIREhMjc2Be/93P3T/nYBisIBiv52AV65a51AMNGuT73+/AFjpFBnAar+VgQxrdzcrekhMYJiaL0oEv4EMT0AAAIAFAAABKgFugAUABsAuUCJRxtXG5cbA5cbpxvHG9cb5xsFmBaoFsgW2BboFgUnEzcTAikCOQICDg4AEAwZJQkgBXAFoAUDQAVQBbAFwAXQBfAFBgUFHBUkDwABBwAdDwdfB38HAxgHEBwPGB8YAjovGG8YrxjfGO8YBe8YAaAYAR8YXxgCXxifGN8YAxgGDysJDAYKABkcBQoAP+0/P8T9xC9dcXFxcl5d7QEvXl0Q3l5d7RI5L11xxO0yMhE5LzEwAF1dXV1xARQHBiMhESE1IREzESEVIREzMhcWBzQhIxEzIASohXCx/j7+1AEstAEs/tTkwHiYuv7b1b0BPQFCp1VGA6KEAZT+bIT+5UJTsbH+ogAAAQC//+cHTwXTACcA9ECYOiYBlyOnIwJmI3YjAiccNxwCmRkBSREBSA8BSQOJAwKpBAEJBAGwAcABAlcBZwECJwAAQACAAJAAoADgAPAABwcAABMCGKAXARcXAhMeDB4hbwd/BwIHBwoJGh4TAwoCJR4CCQkIICAhABgmFycmACkeISYNfwaPBp8GAw8GHwY/Bk8GXwZ/Br8G7wb/BgkKAwYMCCAJQAm4/8CzGx40Cbj/wLYQFTQgCQEJL10rKwEaGBBN/cDWX15dccX9xRDe7dbtERI5LwA/P+0/P+0REjkvXcD9wBESOS9dxRESOS9eXcUxMAFdcV1xXV1dcV1dXXEBAiEgJyYDIxEjETMRMzY3Njc2MzIXFhcHAiEiBwYHIRUhFhcWMyATB09//hv+pqqSDMjCws0PN1KinsndmZ84vlP+w9d8dgwCGf3fCm591wFeWQHN/hrgwQEW/WIFuv2Rl3i0ZGFrb9EyATOFftut4ZCjAXQAAAEAiP/hBYoEPgAlAPRAqpUCAYoFmgUCGQYpBgI4BwEZEYkRApQVpBW0FQM4GWgZAlYcZhx2HLYcBHUiATgkeCSIJAMPHisIISEMCwAQJSAlUCVgJYAlwCUGJSUTBBcfGC8YfxiPGAQYGAQaHBMHDAYjHAQLCwoPIB8gAgcDICAlHiEkCEAPCAhADhI0Hwg/CL8I3wjvCAXfCAEICAAKGCQXJSQfAAEAJw4KJfALAQALIAvgCwPPCwELL3Fdcf3AEN5d7dbtERI5L11xKwERMxoYEE3tMhE5L19eXQA/P+0/P+0SOS9dxRESOS9dxRESOS/A/cAxMAFxXV1xXV1xXV1dAQYHBgcGJyYnIxEjETMRMzY3NjMyFxYXByYjIgcGByEVIRIhMhMFihx1b8XmeGsKtrS0uhV2ftOncHUaryzRf09EEAF3/okiAQHkKQFtsGplBgeXh9f+KgQm/kTWe4NWW6Ec2WNWhpT+pgEIAAIAAQAABVIFugALAA4AfEBGBw4NCggNCCAJChQJCgsJAQkNAyWQBaAFwAUDBQUCDA0LAQ0BIAALFAALbwABPQABCQABAA0NDA4eAgcHBQsKAgkIBQABCAA/xMTUxD/EEjkvxP3ELwEZL91dXV2HGCuHfcQQxMQBMxgvXe0ZEN1dhxgrh33EEMTEMTAhIwMjESMRIwMjATMTAwMFUtPQrLSx18YCR8hqz9YCQP3AAkD9wAW6/R8CQP3AAAIABgAAA/wEJgALAA4Ag0BMBw4NCggNCCUJChQJCrAJAQcJFwkCCQ2QA6ADsAMDAyUFBQIMDQsBDQElAAsUAAu/AAEIABgAAgCwDQENDQwOAgcHBQsKBgUJCAABCgA/xMTExD/EEjkvxN3ELwEZL13dXV2HGCuHfcQQxMQBMxgv7V0ZEN1dXYcYK4d9xBDExDEwISMDIxEjESMDIwEzEwMDA/y5iGG0XYW+AaioN42JAWT+nAFk/pwEJv2+AW7+kgAAAgC/AAAHKAW6ABMAFgCOQE4KERIJEgcWFRIIFQggCRIUCRIJFQMlkAUBBQUCFBUTARUBIAATFAATDwA/AG8AzwAEABUVGAsQIA0VFBEWHgoCBwcFEw4SAg0JCAEABQgAP8TExMTEP8TEEjkvxMT9xMQvAS/9xBI5GS/dXYcYK4d9xBDExAEzGC9d7RkQ3YcYK4d9xBDExBCHxMQxMCEjAyMRIxEjAyMTIREjETMRIQEzEwMDByjT0Ky0sdfG5f7FwsIBeAElyGrP1gJA/cACQP3AAkD9wAW6/R8C4f0fAkD9wAAAAgCIAAAFjAQmABMAFgCmQGEKERIJEgcWFRIIFQglCRIUCRKwCQEHCRcJAgkVkAOgA7ADAwMlBQUCFBUTARUBJQATFAATvwABGAABCQABABUVGAsQJQANEA0gDQMNFRQRFhwKAgcHBRMPEgYNCQgBAAUKAD/ExMTExD/ExBI5L8TE/cTELwEvXf3EEjkZL91dXV2HGCuHfcQQxMQBMxgv7V0ZEN1dXYcYK4d9xBDExBCHxMQxMCEjAyMRIxEjAyMTIxEjETMRIRMzEwMDBYy5iGG0XYW+jui0tAEb56g3jYkBZP6cAWT+nAFk/pwEJv2+AkL9vgFu/pIAAAIAeAAABikFugAYABsBN0DeVhoBphq2GgK4GcgZArgZARMXAYYXAQYXFhfWF+YXBNYWAdcVAScRNxECCBEB1goBNgpGClYKA8gKAVQJlAmkCQMpBDkEaQQDOQRJBAKKBJoEqgQDGhMUEyAbGhQbGhkWFRYgGxkUGxsZBQgeGxYTExQHGRoeFRQCAQcOCBkWFRoTFBsbBiAHBw4BIBQVJBUC9BUBAxUBcxWDFQK8FQEVIAABAAAQAKAAAwAdDSA1FEUUVRSFFAQdFC0UAt0U7RQCBhQBBhSWFKYUAwdpFHkUAhRQDnAOAiAOAQ8OAQgOL15dXXEzXV5dcV1xce0Q1l1xMl1dcV1x7RI5L+05ERI5ORI5OQA/MzM/wP3AERI5L8TF/cCHBRArh33Ehxgrh33EMTABXV1xXV1dcV1xcXJdcXJdcXFyISM1ECYnESMRBgcGFRUjNRA3NjcBIQEEEQEhAQYpw+LTwulkaMKXffj+NgVA/iUCCv6A/WsBSJEBAc4N/ZMCbRNiaOepzQELm4AaAq39Ujn96QRR/fsAAAIAegAABQEEJgAZABwA8bUQEAcLNBe4/+hAnAcLNAoQGhACLgYVATtVF2UXAscbASUcNRwCBBwB5Bz0HAIbEhMSJRwbFBwbGhUUFSUcGhQcHBoFCBzGHAFFHAErHAEcFRISEwcaGysUEwYBBw0KGhUUGxITHBwGJQcHDQElFxQnFAIUAAABIABQAGAAgACgANAABgAeDCWnEwETEA0gDUANAyANMA1ADXANoA3QDfANBwANMA0CDS9dcXIzXe0Q1l1xMnHtEjkv7TkREjk5Ejk5AD8zMz/A/cAREjkvwMVdcXH9wIcFECuHfcSHGCuHfcQxMABdcXEBXXJeXV5dKyshIzU0JiMRIxEiBhUVIzU0NzY3ASEBFhcWFQEhEwUBs4C1t7WAs1Va4P7PA87+zeBZVf6Y/k/WRsaL/mkBl4vGRkb1bXMQAfv+BRBzbfUDTv6KAAACAL8AAAf1BboAHQAgAXpA/1YfAaYfth8Clx8BuB7IHgK4HgETHAGGHAEGHBYcphzWHOYcBdYbAQYbAdcaAQoRARoRKhHqEfoRBFoRAb0RzRHdEQOvEQHWCgE2CkYKAsgKAYQJlAkCKQQ5BGkEAzkESQQCigSaBAJaCQEfGBkYICAfFCAfHhsaGyAgHhQgIB4FCB4gGxEekBjAGAIYGBkHHh8eFRoZAgcBFAMOCB4bGh8YGSAgBiAHBw4BIBQaJBoCRBpUGvQaA3MagxoCvBoBGhAAAQAiDSA1GUUZVRmFGQQdGS0ZAgYZAQYZJhmWGQN5GQEZDw4vDj8Ofw6PDq8OBk8Obw5/Do8Ovw7vDgYOF0AWEyBQFGAUcBQDABQQFKAUsBTAFAUHFC9eXXH9wNZdcTJdXXFxce0Q1l0yXV1dce0SOS/tORESOTkSOTkAPxczP8DA/cAREjkvXe3Exf3AhwUQK4d9xIcYK4d9xDEwAHEBXV1xXV1dcV1xXXFycXFyXXFyXXFxcXIhIzUQJicRIxEGBwYVFSM1EDchESMRMxEhASEBBBEBIQEH9cPi08LpZGjCkf6swsICxv4/BUD+JQIK/oD9awFIkQEBzg39kwJtE2Jo56nNAQeZ/ZMFuv1gAqD9Ujn96QRR/fsAAAIAiAAABnYEJgAeACEBWLkAHP/oQOkHCzQIEBgQKBADSBBYEGgQAwkQGRACEA8QHxACGwYaATt1HIUcAucgAUUhVSECBCEUISQhAyAXGBclISAUISAfGhkaJSEfFCEhHwUIHOYhAWUhAUshASEaECsXFxgHHyArGRQYBgcBEwMNCh8aGSAXGCEhBiUHBw0BJfkZATcZRxkCGT8ATwBvAANPAH8AnwDPAARfAN8AAiAAAUAA8AACAwAjDCUNQLQYAcQYAQ8YAQcFGA0NQA4RNI8Nrw2/DQM/DQEQDSANMA0DAA0BBw0WEiUAEwHgEwEAExAT8BMDCM8TAW8TjxMCEy9dcV5dcXL9wMZeXXJxcisBETNfXl1dchoYEE3tENZfXXFdcXIycXLtEjkv7TkREjk5Ejk5AD8XMz/AwP3AERI5L+3AxV1xcf3AhwUQK4d9xIcYK4d9xDEwAHFxAV1yXl1eXV5dXXIrISM1NCYjESMRIgYVFSM1NDcjESMRMxEhASEBFhcWFQEhEwZ2s4C1t7WAs0n8tLQCQv7PA87+zeBZVf6Y/k/WRsaL/mkBl4vGRkbkbf5pBCb+BQH7/gUQc231A07+igABAGb+UQSCBy4ASwEEQJ9mSwFHS1dLAkZIVkgChkYBdUUBeTQBRC9ULwJqLAFZHgFKHgFpCQFkAQGGQwFDOEI9PmdCd0KHQgNCOTiINQFpNQE1ODY3ODgzhUkBdEkBYUkBQElQSQJJRyUlMiomR0cAEA8PHyYgADAAAgBNMiYzBiYZGTM9Pj5ANjY7QDgzMkkjHiUyJTIlHS4eQzU4AxIeCwsCCB4VDw8VDx0eAgkAP+0/My8Q7RE5L+0/MzPtETk5Ly8Q7TkRMxDczTIvETMvMwEvMy/tEO0Q1l3tMy/NETMv7RE5LxI5XV1dXRE5GS/dGM0ROV1dGRDdGN1d3s0REjldMTBdXV1dXV1dXV1dXV0BECEiBwYVFDMyJDMyFxYVIzQjIgQjIicmNTQ3NjMgETQnJiMjNTI3NjY1NCcmIyIHBhUnEiUDMxM3NjMyFwcmIyIHBxYXFhUUBxYWBIL9olpHY68/AQ06YDo1mEEU/uhQm15wnHGxAZJwXpBdgDNZdVVNcudDHro6AUSfkZRzO2NYKlQOERgeYWdSkcJ5jgGj/kQYIkRyYEhDY0tjPUiTo0s2AQ6IRjqpChF8WG9CPcpbLioBiD8BW/6x5nVcLR88xBhAcbfNcSHDAAEAH/5RA4MFmQBMAMJAbItHAXQiATQpMy4vZzN3M4czAzMqKSYpJygpKSQnOkc6AgY6FjoCOjgaGiMeJDg4PAEAABIkPE4jJCREJAoKUCQBJAMcSUlGQCQjOhccGiMaIxohDhxACy4vLzEnJywxIRw0JikHRhwGAAAGDwA/My8Q7T8zM+3czTIvETMvMz/tETk5Ly8Q7TkRMxESOS/tAS9dMy/tEO0Q3u0zL80RMy/tETkvEjldXRE5GS/dGM0RORkQ3RjdXd7NERI5MTBdXQEjNCMiBiMiJyY1NDc2MzI3NjU0JicmIyIHNTY3NjU0JiMiByc2NwMzEzc2MzIXByYjIgcHFhcWFRQHFhUUBwYjIgcGFRQzMjYzMhcWA4OYQQvrSpFXY4Zqo2NGU0QzKHQJIGkUkmBOmD2rPcGhkZRzO2NYKlQOERkdYkE0bn6giHKvVTxQkjfjMGA6Nf5pS2M9RoyWSTopMV02Yg4LAY0BAxaDTVOzHOQ2AWD+seZ1XC0fPMgUKViTgk1WtaVVRxokSnpxSEMAAAEAOQAABeoFugAXAJRAXjUTRRMCpg0BRQ0BWQcBkwEBgwGTAaMBAwcBAREOHgIFBQQWDwoCBAgDECAETw8BDw8KFiAwFwEAFxAXAgcXGQYMZgymDLYMxgwFCAMADAEKBgwLIApACQoKQA4RNAovKwERMxoYEE3tMl9eXV9eXRDWXl1x7RI5L13A/cAAPz8zMxI5L8D9wDEwAV1dcV1dXQBdARAFESMRIicmJwMzExYzETMRNjc2NREzBer9iMKVa1sp88LzOIrC6WdlwwQc/bMK/jsBxVlMewLV/U+eA0/8sQ5zcOsBcwABAEj+aQUHBCYAGQCDQFoUGAwPNFcPdw8CaQoBKQoBCwoBCBgRDAYTEBwGCQsIDgYSJQgfEQFPEV8RbxGPEQQREQwYJfAZARkbdw4BBg42DlYOZg4EDg0ldwsBBgs2C1YLZgsEC5AMAQwvXTNdXe0yXV0Q1l3tEjkvXXHA/cAAPz/A/cA/MzMxMAFeXV1xXSsBFAcGBwYHESMRIgMDMxMWMxEzETY3NjURMwUHGyh/ds20/0TDs7kmdLT+OhqzAiC9VoBSTAf+gQF/ARgDJvz3ngOn/FkOqEuaAgwAAwBg/+cF2gXUABEAIAAvAK9AYogvARouSi5aLgMVKkUqVSoDhxkBFhgBBRgVGEUYVRgEGRQBChRKFFoUAwkLFAFJEAFoDAFIAgEGKgEjHh8cHg8mLyZfJo8mrya/JgYKAyYmBBYeDgMsHgQJJR4oIRImAEAAuP/AQBQHCjQAMRooJnAKASAKAQ8KHwoCCi9dXXHtMhDGKwEaGBBN7TIROTkAP+0/7RI5L19eXe3V7TEwXQFdXV1dXl1xXXFdXV1dARAHBiEiJyYnJjUQNzYhIBcWByYnJiMiBwYHNjMyBDMyFwYjIiQjIgcWFxYzMjc2Bdq4wv69z6euT0qxvgFPAUbAtswTdYzb15B2FYCPUAFJYXtdW31h/rdQkoAPd4jk2od+Atv+uNHbZ2q6r6kBVdPi3dHz24Ock3jvRoxmRYxG0IugkokAAAMARP/oBCcEPgAPAB4ALQD1QFYJLBksAi8rPysCICkwKQJnKHcoAgcoFygCDNQX9BcCVxYBABUQFQIPEx8TAtkR+RECAw8OHw4CAA0QDQKwBgEPBR8FfwWPBQQPAR8BvwEDDgYhHB1AHbj/wEAvCBE0HRocACQQJDAkQCRQJHAkgCSQJMAkCRQDJCQEFBwMByocBAscIyYQHyQAQAC4/8BAICQoNA8AHwACBwMALxgmJAhACEAkLDQfCD8ITwhfCAQIL10rARoYEE3tMhDOX15dKwEaGBBN7TIROTkAP+0/7RI5L19eXe3NKwAaGBBN7TEwAV9eXXFdcV1fXV1dXV1eXXFdXV0BEAcGIyInJjUQNzYzMhcWByYnJiMiBwYHNjMyFjMyFwYjIiYjIgcWFxYzMjc2BCfwdYz0hHqkicXrh3+/EUJZhodZQhFQSDPFNV9GQGU1xTNMUQhJU5STU0gCIv6MhUGflPgBJ452m5KYgEtlZUuAMmRiMWQzm2Bub2AAAQAJAAAGXQXUABIAnbkABv/wQFoTGjQHEBMXNCgHAakQ6RACAx4RAwgCawx7DIsMAwwHCAwGJh8HPwcCLwdvB58HAwcHCKYPAQ8mBH8EAd8EAQMEBBQEAgQEdAT0BAMHDwQBEgQECAAUCSYIQAi4//BACRAcNEcIVwgCCC9dKwEaGBBN7RDGETlfXl1eXXFfXXEQ7V0SOS9dce05AD/NcT8/7TEwAV1xKysBByYjIgcBIwEzARYXNjcBNjMyBl1Zaj1WLP4tx/3I0gF9Lx4gLwFJTKh5BVaESHD7VgW6+9eDbXJ+A3fMAAEAGgAABPwEPgAUAMu5AAb/8EAJFxw0BxgXHDQGuP/4QG8SFDSXBgHYBwFZB2kHmQepBwQDHhMHCAaHDJcMpwwDWQxpDAINDAEHDAcKDAYk3wcBnwcBOwdrB3sHiwcE2wfrBwIGB6YHAgcHCIYPlg8CDyQECgTaBAIIRgQBBAQUBAIQBAgPAAEkAwAWCSQIQAi4//BACxYcNAAIAQgIAQgIL15dcisBGhgQTe0Qxl9eXRE5Xl1dXl0Q7V0SOS9dXXFdce05AD8zXl1dXT8/7TEwAV1dXSsrKwEHJiMiBwEjATMTFhc2NxM2NzYzMgT8VHREQyz+1aj+bL7kJR8YK6UnMD1mbgPOh0N0/OoEJv2EaG5TdwHGbDA+//8ACQAABl0HKgImCN8AAAEHCE0CYwFoACi1AgGwFwEXu//AAAgANf/iQAkXFwgEQQECAhe5AiEAKQArASsrXTU1//8AGgAABPwFwgImCOAAAAEHCE0BwgAAAC9ACwIBMBkBIBmAGQIZu//AAAcANf/lQAkZGQgEQQECAhq5AiIAKQArASsrXXI1NQAAAwBj/lEIhgXUABIAIgAyAK9AaTUgAToeAToYATUWAYYBAWkBAVcBAUYBAWQRASMmExEQEg0QJQ8OFA8PDicOAQ4REgIAACUSDRQSDWsSARISCAcNEBMgEwJlDwETDw0NDxMDNCsmGyceHwMvHhcJEgAQDwYNCAocBwIFDwA/MzPtMjI/xNTEP+0/7QEv7REXOS8vL11dEMwyMy9dhyt9EMQQDsTEAV2HGBArCH0QxAEYEO0xMABdAV1dXV1dXV1dAQEGBwYjIicnFjMyNzY3ATMJAhAHBiEgJyYREDc2ISAXFgMQJyYjIgcGERAXFjMyNzYIhv5sQiNdpTRAFDssazARNv5twgEqAS38yX6K/uz+7Ip+fosBEwETi37IQ1HAwFFDQ1HAwFFDBCb7yLBBrBapEEwclgQo/KMDXf62/qHC09PCAV8BYMPV1cP+oAEbjKqqjP7l/uaLqKiLAAADAET+UQcaBD4AEgAiADIA2kCOajABWTABVS5lLgJkKAFVKAFaJmomAocgAXMgAYgeAX0eAYgYAX0YAYcWAXIWARcRAQcEAYYBAXcBAUYBVgFmAQMAGA4OQlUjJBMREA0SECUPDhQPDw4RDg0CAAAlEg0UEg0SCAcNMBNAEwIGDwETDw0NDxMDNCskGyccHwcvHBcLABIQDwYNCAocBwIFDwA/MzPtMjI/xNTEP+0/7QEv7REXOS8vL11dEMwy3IcrfRDEEA7ExIcFGBArCH0QxAEYEO0rMTBdXV1dXV1dXV1dXV1dXV1dXV1dAQEGBwYjIicnFjMyNzY3ATMJAhQHBiMiJyY1NDc2MzIXFgc0JyYjIgcGFRQXFjMyNzYHGv5sQiNdpTRAFDssazARNv5twgEqAS3802Fns7NmYWFms7NnYbkrM2RkMyoqM2RkMysEJvvIsEGsFqkQTByWBCj8owNd/e32l56elvf3lp6el/ambYODbaambYODbQAAAgAg/4cGiAYzABcALwDWQJOILgF5LgFKLVotAkUnAYYmAXcmAVYmAYciAVYidiICRSEBShtaGwJ4GogaAgcVFxUCCA8YDwIICRgJAgcDFwMCIBAQCBwUFCxABHAEgAQDMQQBEAQgBAIEKAgIDBgm3wABMAABADEkJo8Mnwy/DP8MBF4MAS8MPwxPDAMMICAeHB4SFBAQFAIqLCgoLB4ECAgGBAgAP80zLxDtMi8QzT8zLxDN/c0zLwEvXV1d7RDeXV3tETkvM81dXV0yMi8zETMvMzEwXV1dXV1dXV1dXV1dXV1dXQEQBwYFBiMiJyQnJhEQNzYlNjMyFwQXFgM0JyYnBiMiJwYHBhUUFxYXNjMyFzY3NgaIrLH+zzB3dTD+z7GsrLEBMTB1dzABMbGsyIaAyjNqaDPKf4eHf8ozaGozyoCGAt3+z8nQIGxsINDJATEBMcnQIGxsINDJ/s/6n5YSWVkSlp/6+p+WEllZEpafAAIAHP+NBMsEmgAXACsAcEBAHxAQJQgbFBQpBAgECAQMGCQ/AAEALSIkHwxPDF8MA38MjwzPDN8MBAwdHxsbHxwSFBAQFAYpKSclHAQICAYECgA/zTMvEP3NMy8/My8Qze0yLxDNAS9dce0Q3l3tETk5Ly8RMzMvMxEzMy8zMTABFAcGBwYjIicmJyY1NDc2NzYzMhcWFxYHNCYnBiMiJwYGFRQWFzYzMhc2NgTLdXnNKnJzKs15dXV5zSpzcirNeXW5kIEyW1wygZCQgTJcWzKBkAIT0JOaHmtrHpqT0NCUmh5rax6alNCayh1MTB3KmprJHUxMHckAAwBt/+cJGgfUABAAHABKAPpApGVJARhASEBYQAMJQAFaPQEbPQEKPQEVNwEXNEc0VzQDBjQBaisBaicBKSYBZR8BhAcBiAQBeScBZgt2CwJoBHgEAjAvFBUVGwkIGxEAABEZRDojATojGUUQLzAvUC8DH0U/RV9FAy8ZRUUZLwM2PiYdTDYmDykBKUIeRy0QAAAJDQAGEAZQBgMGGxkVFBQyHi0DOjgeJTweIVkjaSMCSyMBIyUJAD8zXV3U7RDtMj/tMy/N3N3eXc3MMi/NENTtAS9d7RDe7REXOS8vL11dERI5OV0zEM0yLxDd3s0RMy8zETMxMABdXV0BXV1dXV1dXV1dXV1dXV1dASInJicmIyIHIzY3NjMyBDMFFAYHJzY3NjUjNTMBEAcGISInBiMgJyYREDc2ITIXByYjIAcGERAhMjcWMyARECcmISIHJzYzIBcWB4mTgmVldHLJNYoeYm+mhgGelP2SPlAjMw4WTacD/6+4/qzqsrHq/qy4r7W+AVeokGVddf76hHkB6Ou7vOsB6HiF/vp1XWWQqAFXvrUGfDgzNDjXkl1p0WFVWSFDFQ4VLoz7zv6ox9BkZNDHAVgBXMvWVY49p5j+9P20jo4CTAEMmKc9jlXWywAAAwBQ/+gGgAaUABAAHAA+AQRAqkM9AXY8AWQ8AVU8ATo5ASg5ATQvAScvAXksAWssAVosAUwrAVomaiYCRCBUIAJGHwGFBwFkB3QHAokEAXgEAWkEATcxRzECWCMBWR8BSB8BFBUVGwkIGxwQEBwjNBk0GTQwHzoBOjgkHUCPLgEuMCQfKT8pAik6HDstEAAACQ0ABgEGGxkVFC4cLQd4NIg0Aik0ATQyHCU2HCGKIwF7IwEpIzkjSSMDIyULAD8zXV1d1O0Q7TJdXT/t3s3c3d5dzcwyL80Q1O0BL139zl0Q3v3OXRI5ORkvGC8SOc0yLxDd3s0RMy8zMTAAXV1dXQFdXV1dXV1dXV1dXV1dXV1dXV1dXQEiJyYnJiMiByM2NzYzMgQzBRQGByc2NzY1IzUzARQHBiMiJwYjIicmNTQ3NjMVIBEQITI3FjMgERAhNTIXFgYmk4JlZXRyyTWKHmJvpoYBnpT9kj5QIzMOFk2nAsh1f++qjIqq7391dH/x/tUBKKiOkKgBKP7O9YB2BTw4MzQ415JdadFhVVkhQxUOFS6M/Ef1kqBGRqCS9feVo5T+av5oYGABmAGWlKGVAAH+NwSTAckFVgALAFVAEAMPAAEABAgACwEHAwsHQAS4/8BAHRgdNN8EAV8EbwR/BM8E3wTvBAYEBwQIQAuAAgYKuAIiAD/AwBrdGt3AAS/NcXIrARoYEN1fXl3NEN1dzTEwAQcjJyMHIycjByMnAclaIi/eLyIv3i8iWgVWw2VlZWXD//8Abf/nCkcHEAImCMsAAAEHCOkFUAG6ABZACgEAQjcMAEEBAUG5AiEAKQArASs1//8AEAAABO4FVgImCMwAAAEHCOkCbAAAADGxASC4/8BAHAgNNFAgYCBwINAgBHAgoCCwIAMAICAREkEBASO5AiIAKQArAStdcSs1AAABAGb+aQVdBdMAHgBgQEEHCxcLAlcKAQYGFgZWBgM9Ak0CAmkUAXkVAS8BfwGPAQMBAx4cAw0eEgkRDg8gEhIYASZPAAEAIAkmIBgBDxgBGC9dXe0Q3nHtEjkv7QA/P+0/7cRdMTBxXQFdXV1dAQcCISIHBgcGFRAXFjMyNxEjESYnJicmNRAlNjMyBAVdv2L+2p5yeTEu4HOGNzbCp3WZUUYBUaHC2QEuBCgtATJKT5GJkf5vhkUM/dABhA9MZMSszAHauVjcAAEAUP5pA9wEPgAXAH5AXDYWAXsTixMCCRJ5EgI7DQEJBBkEAmcEAQkCATkCaQLpAvkCBI8BnwGvAQMBAxwUBwccDAoLDgwlDwkfCX8JAw8JHwl/Cb8JzwnfCQYHCQkQASQAGQUkHxA/EAIQL13tEN7tEjkvXl1x7QA/P+0/7cRdMTABcXJdcV1dXV0BByYjIBEQITI3ESMRJicmNTQ3NjMyFxYD3K8ywP7OASg2KbTDaWB2gO6qbXEC7hvX/mr+aA394AGGFJyP4fmVoVRYAAABABT/5wPzBdMAEwE9QCsQEQgPABMHEg8ADQ4BCBECBxIOAQkKBQgRDAsECBEDBxIECwYFCgcSDwAAuAMjQAkBDhQBAQ4LBAS4AyNACQUKFAUFChIHB7gDI0BvCBEUCAgRRQFVAcUBA6UBxQECegH6AQLWBQE1BQEVBVUFZQXFBQSpBQFKCloKigoD2grqCgIEChQKAgQKAQd4CrgKAmkOAZkOARoOAQoOGg5KDloO2g4FCQMPDgEUBgQFCgsAAQ4PCAgSEQEHCAsRuP/oQC4HCjS3EQGVEQEGDhYOAscIAaYItggCCwQFDg8BCAcREgoKAAAQACAAQAAEABUKLxDGXREXOV1dXV1dKwAYP8A/wBIXOV9eXV9eXXFdcV1eXXFdcV1dcXFdXXGHBRBNK30QxIcEGBArfRDEhxgQK30QxA8PDw8PDw8PMTABByUDBQclAyMTJTcFEyU3BRMzAwPzJf6fUgFkJf6bgZGL/qYlAVxR/qElAWF/kIkDjIpe/t1fimD+MwHxXYpeASNei18Bxf4XAAH+pgR/AVwF4QAXAD22FYADQA+ACbgCIkAPEkAOETQSDwABBwMADEAGuP/AtA4RNAYML80rARoYEN1fXl3NKwAYPxrdGt0azTEwARQGIyEWFRQGIyImNTQ2MyEmNTQ2MzIWAVxCLv6ZAUIuLkJCLgFnAUIuLkIFcS5CBwsuQkIuLkIHCy5CQgAB/rwEywFIBcEADwAyuQAP/+hAGA8UNDgDSAMCAQAJBQ8OHw4vDgMIDgoBCbgCIgA/wN3UXl3NAS/UzTEwcSsBIzQnJiMiBiMjNTMyNjMyAUhBICM4Iu5OcnI60TnWBMs5JyqKlGIAAAH/mARAAHYFwgAMACFAEAAJAQcJAAkBBgIJBgAHgQYv/cYSOQA/zTk5L15dMTATByYnJjU1MxUjFBcWdixqJSPRYBwTBJRULDk1aX+vOBsSAAAB/5gEQAB2BcIADAAhQBAACgEHCgoFBAsCCQwFDIELL+3GEjkAP8Q5OS9eXTEwExQHBgcnNjc2NSM1M3YjJWosPhMcYNEFQ2k1OSxUGhIbOK8ACPwr/rAD1QWxAAkAEwAdACcAMQA7AEUATwDgQFFCQRlHRig4NzMyKExLLi0pKBoZPD0VIyQGCgsPEAYeHwABBQAGEAYCDQMGFBUZPUE/REBEQAcLNERHHyNLR0lOISYPTi9OAgoDTjccF0AVGhq4/8BAIwcLNBowKwgDKy0BBSm/Lc8tAgAtUC0CBy06NRINNTcLEDM3AC/A0MAQ1tDNEN3eXl1dwNDAEN7QzRDdxisAEMAaGNzNEN5fXl3QzRDd3sDQwBDGKwAaGBDd3sABL97d1l9eXd3ezdDNENbd3s0Q0M0Q0M0Q3dbd3s3QzRDW3d7NENDNENDNMTABIzQjIhUjNDMyEyM0IyIVIzQzMgEjNCMiFSM0MzIBIzQjIhUjNDMyASM0IyIVIzQzMgMjNCMiFSM0MzIBIzQjIhUjNDMyJSM0IyIVIzQzMgNdW3h4W9PTeFt4eFvT0/z0W3h4W9PTApRbeHhb09P67Ft4eFvT03hbeHhb09MC+Ft4eFvT0/2AW3h4W9PTA8qVlfP9E5WV8wH7lZXz+fOVlfMDM5WV8/0TlZXz++2VlfMBlZXzAAAI/Ez+ZAO0BgQADAAXACEALgA7AEYAUQBeAQxAkkFCRDxSV1hTXlwDXVIzNTg2MDs6L1JPDQ4QEisqLCspIiQnJSkrBQcJAwgGAAEGCCtRAE4QTgJOTx4AIRAhAiEgGUxPNTY6LzEDOzAdHiEZMAYIBwULAAMBCQUHMEIARRBFAkVEPAAUEBQCBxQQDhI8VVdaWFJdU1xeS0xOUF4tKykDKiwkJSosXi88XzxvPAM8AC9d3tbd1s0REhc5EN7d3s0Q3TI5OdYyzTIQ1sTdzV5dEN3dXcbe1t0y1jLNMhESOTkQ3t3ezRDdFznWzQEvxtDd3V3GEN1d3d7Q3dbNERIXORDd1jLNMhESOTkQ3t3ezRDe0N05OdYyzTIQ3Rc51s0Q3t3ezTEwAQcmIyIHFwcnNzY3NhMjJiMVIzUzMhcWASM1NDY3FQYVMwEUByc2NTQnByc3FxYBBycmJyY3FwYVFBc3AyMiJyYnMxYzNTMBFAcGBzU2NSM1MyUHBgcGJzcWMzI3JzcDHj8XGSkuNmhsYjJIS9NZCmqTi0o7P/yZmVNFS0wCkho/ES42aGxiRvt4bWIzDg8lPxEuNjKLSjs/EVkKapMCkCgqRktMmf4KYzRFTD0/FxkpLjZoBLU/ES42aGxjMw4P/SVLTJkoKgJfi0l7EVkKavq5Mys/FxkpLjZobGJGA4VtYzRFTD0/FxkpLjb9iigqRktM/NtKOz8RWQpqk3FiMw4PJT8RLjZoAAIAof5pBdgHEQAJABcA2kBFBwZXBmcGdwYE5wb3BgIICFgIaAh4CAToCPgIAsgI2AgCGA0oDQIFFAEPFBUUIBAPFBAQDwk/BE8EAi8EPwRPBM8EBAQHugKfAAICIUAODxQQFRICFx4OEAgMDgm4Ap+00AABAAS4Ap9ANBAFAQAFEAUCDwVPBV8FAwUFFxEVDyAXCgwlCwoZaBABEBQgABEQESARQBHAEdAR4BEHBxEvXl39xV0Q1t3tEN39xRESOS9dcXL91F3tAD8/0O0/wBE5OT/t1F1xwIcQK4d9xDEwAF0BXV1xcnFyAQIhIAMzFjMyNwEDIxMjEQEjETMRATMRBAQf/vj+9x97HIuXGwJPvKyKivzzwrADDMMHEf79AQOHh/mc/bwBlwSG+3oFuvt3BIn68wACAIf+0wSgBbgACQAXAYZAXzcGRwZXBgPHBtcG5wYDOAhICFgIA8gI2AjoCAOoCLgIApkKAVYNAQYNFg0CWA0BdhABthABKRUBeRUBuRUB1RQBFRAPECsUFRQUFBUJHwQvBAIPBB8ELwSvBAQJAwQHvQKfAEAAAgIiABT/6EAODhE0FBAHCjQPGA4RNA+4//BAEAcKNA8UEBUSBhccDhAKDAm4Ap+2AAABFAMABLgCn7IFQAW4/8BAQhUYNAVABwo0EAUB4AXwBQJPBQEFBRcRFRAUDyUPFx8XvxcDBwAXEBcCEAMXCkAPDB8MAiYFDAsLIAcKNAsKQA0KCrj/wEAmGh000ArgCvAKAwoZFCUAEdAR4BEDABEBABEQETAR8BEECM8RAREvcV5dcXLtEMZxKwERMxoYEM0rAREzX15dGhgQ3V9eXV5dTe0ROTkREjkvcnFyKysBGhgQTf3UX15d7QAvP9DtP8AROTkrKysrABg/Gk3t1F9eXXHAhwUQK4d9xDEwAHIBXXFyXXFdcXJdXXFycXIBAiEgAzMWMzI3AQMjEyMRASMRMxEBMxEDYR/++P73H3sci5cbAbrQlJSU/g3CtAHzwgW4/v0BA4eH+tz+PwEtAyX82wQm/NYDKvxuAAIABAAABPYFugAUAB8AdkBNlwEBBxIXEgInFlcWAmoWehYCaR55HgIHCgSgDQENDQgOHhoaAwgCGx4DCBUmDwABCAAhDglPDI8MnwwDDBsgAwUHoAMBTwOPA58DAwMvXV3ALxD9xF0zMxDeXl3tAD/tPxI5L+0ROS9dwN3AMTABXV1xXV0BECEhESM1MxEzETMVIxUhMhcWFxYHNCcmIyERITI3NgT2/dz906GhwqCgAV65a51AMNGuT73+/AFjpFBnAar+VgQxhAEF/vuE6SExgmJovSgS/gQxPQACABQAAAPsBboAFAAbAMNAjwkCAQkCGQKZAgMFExUTlRMDCSgWOBZYFmgWeBYFJxsBJxs3G1cbZxt3G+cbBgYPCQwMChAcHxhfGI8YnxjPGN8YBg8YnxjfGAMPGE8YjxjPGAQOABgBIwMYCgAZHEAFCg5AJi40DkASHDQODBAZJQkQBQEgBUAFAv8FAQ8FAQUVJA8AHwACBwAdAAcgBwIHL10Q3l5d7S9dcV1ywP0yMswrKwAYPxpN7T8vX15dXl1xcu0ROS/A3cAxMF1xXV5dXXIBFAcGIyERIzUzNTMVMxUjETMyFxYHNCEjETMgA+yFcLH+PnBwtG1t5MB4mLr+29W9AT0BQqdVRgSPhKenhP34QlOxsf6iAAACAJ4AAAUWBboAEQAhATpAjQkeGR4CCRQZFCkUyRTZFAUNCAEBTWgBqAECtwIBBwIBDwYCATj2AgEHDBcMAggHHwFZ9x8BKB8BBh4WHgINESAfAB8CHR4BHkYeAQYeFh4CKjkeSR5ZHpkeBNcfAQcfASsgHR4fBBoSAQIAEQkCAUypArkCAgYCFgICDQMAEQFMDxEBGAYCEQYSJg9AD7j/wEA/Bws0DyMaBiAABzAHwAfQBwQIBwARAQIRAggFHSAeHwQZGh4gBQFABfAFAqAF0AUC7wUBbwUBBQUHGR4IAgcIAD8/7RI5L11xXXFy7REXORESOTkRMxEzAS9eXf3AEMYrARoYEE3tEjk5X15dXl1fXl1xXl0RMxEzERIXOV5dcV1eXXEQfYcOxMQQhw7ExDEwAV5dcXFeXV5dcl5dXl1yAHFeXV5dXQEHJwYjIREjESEyFxYXFhUUBwM0JyYnJiMhESEyNyc3FzYFFl11fe/+iMICKY5R1lUsWHAqLVIwhf6JAXuPUG1dbh0CiV51TP2sBboOJa1abqJ2ARJYQUUWDf30KW1ebjgAAAIAh/5pBCEEPgAVACgBjEDpCQEpATkBA0RJAVkBAqYCAVYCASgPOA8CVxUBLxk/GQIJGRkZAgwGHBYcAhYGIAEXCCQBRdkk6SQCRSQBA7AlATAlAQAlECVAJZAlBA7AJgFQJmAm4CYDyybbJgIAJwEbCwEBRI8CnwKvAgMPBR8FLwUDDyAfIC8gAwvwJAE7JgEPJh8mTyYDDg8nPycCRRUnJgAmAiQlASUAFQECFQINBCQnJSYEIgALEAsgCwMLBQsaHEANBwkGBhALETQLBhsGAhgDBiIcBAsIDk8BXwHPAQMBAgAVAhUHEQAlAUwFJCclJgQeFiQRQBG4/8BAJAkMNMAR0BECESoeMwszByUACAEACCAIAgAIEAgwCAMIzwgBCC9dXl1xcv3k5BDGcSsBGhgQTe0RFzlfXl0REjk5ETMRM10APz/tMl9eXSsAGD8/Gk3tMl9eXREXORESOTkRMxEzEH2HDsTEEIcOxMQxMABeXV5dcXFeXV1dXl0BXl1xcXJeXXFyX3JyXl1eXV5dXl1dcV1xcnJeXSUHJwYjIicRIxEzFTYzIBMWFRQHBgcDNCcmIyIHBhUUFxYzMjcnNxc2BCFddXWIrWq0pHTAAR5vNToXIkU8S5STUEE8SpZTQ2VdXzYjXXRShv37Bb2Kov71gJikgTMtAYagbYiQdZ+iaoUxZl1fYwAAAQCk/lEFAQW6AB8AmEBCBx4Bth0BKhB6EAJKEFoQmhCqEARoDngOAjkNAUMDgwMCAwACAQcGExEeGhwcFRkeFgIHBxUIDB4EDxgYFA8mAEAAuP/AQB4HCjQAIRoUIBUIIA8HAQcAFRAVQBXAFdAV4BUGBxUvXl3QXe0Q/cAQxisBGhgQTe0SOS8AP+0/OS8/7RI5LzPtMjEwAV9eXV9dXV1dcV1dARAHBiEiJCczFhcWMzISERAhIgcRIxEhFSERNjMgFxYFAamh/uu9/tITwhFIW4DG3/6anNfCA5T9Lti1ARWHcgFF/pLIvqt4LCQtAS8BDgHwW/03Bbqt/l5hx6gAAQCI/lEEGAQmACEAhEA6ByAXIHcghyAEBxkRAQkNAQkNGQ0CJgI2AgITHB4eFxsrGAYICBcKCxwEDw8aHxoCDAMaGhYPJABAALj/wEAXCQ00ACMJJQgXGxYlzxcBABcQFyAXAxcvXXH9wBDQ7RDGKwEaGBBN7RI5L19eXQA/7T85Lz/tEjkv7TEwAV1dcV1eXSUUBwYjIicmJzMWMzI3NjU0JyYjIgcRIxEhFSERNjMyFxYEGIGG3Kp3exG0LM2OT0dcWJlUfLQCY/5RcnfXjJBh4pSaT1GDj3Fkl6BYVBv+fgQmlf6JIoKGAAABAE7+VgSCBdMAPwE4uQAH//BANQ0RNFc+Zz53PgNWPGY8Aqk5AQY5ljkC+DIBeSyJLAInKwFIKAFaHGocehwDAwACEAICCAUOuP/AQEQZHDQOrAkPFlAVYBVwFeAV8BUFFRU3Ez09JB5gIwEjIzcTNA81XzVvNX81nzUFBzU1Ey4eNwMaHkAEEwkPCwEMAwsGBrj/wEAWGRw0BqxAABEwEbARwBEEBwMREQAVPbj/0EAYDRE0OT0BPTsjIzQqJg87AQ8DOx4mAEAAuP/AQBUHDDQAQRYmFTQmUDUBEDUgNTA1AzUvXXHt1u0QxisBGhgQTe3UX15d7RE5LxI5XSsBERI5GC9fXl0aTe0rARgQxF9eXQA/MxpN7T/tEjkvXl3FERI5L3HtORkvERI5GC9dxT/tKzEwAV9eXV9dXXFdXV1dXV0rARQHBgcWFRQGIyInNRYzMjY1NCckAzcWFxYzMjc2NTQnJiMjNTI3Njc2NTQnJiMiBwYHBhUnEiEyFxYVFAcWFgSCkm+mHndkZnVbTUFPFP5jfLkaYWWDhl1pcF6QXX80YDg2VU5xaU9SIB66RQG/voSRwnmOAaO9f2AYdEhkeT13LlZCNj0CAbUwhVxgQkuBiEY6qQoTQj9RbkM9MzZhWy4qAdNncLjNcSHDAAABADL+VgNiBD4AOgFbuQA1/+izCAs0B7j/8LMNETQCuP/oQDUHCzQLFAH7FAEfFD8UAjkUuRTJFNkUBAYXphcCpi8BUS9hLwIBLxEvAhACOQEdAzEQKzU0Fbj/+EALKjA0AxcTFwIQAw64/8BAOxkcNA6sCQ85JhyQIqAiAiIiEw8wAa8wvzACMC4cMwcQFtAWAgAWYBawFgMJFhkcQAQTCw8LAQwDCwYGuP/AQBgZHDQGrEAAERARIBFQEWARBQcDEREAFTm4//BAOgcLNIY5ATk3sCUBJSUwACskfzePN583AzcdJA8AAQcAPDDJADEQMQIfAzEWyRVAFUAPEzSAFaAVAhUvcSsBGhgQTe3WX15d7RDeXl3t1HHtERI5L10SOXErARESORgvX15dGk3tKwEYEMRfXl0APzMaTe3EXl1xP+3EcXISOS9d7Tk/7SsxMABfXl0rKwFfXl1eXXFxcV1xcXIrKysBFAcGBxYVFAYjIic1FjMyNjU0JyQDNxYWMzI3NjU0JicmIyIHNTY3Njc2NTQmIyIHJxIhMhcWFRQHFgNiaEt0HndkZnVbTUFPFf6lOakWiGFXPEFEMylzCSBqE0UoJWFNmD2rUAEymGVufqABKY9ZQBJzSWR5PXcuVkI1PwcBPCRgdi80VDZiDgsBjQEDCisoPExUsxwBK1BYk4JNVgAAAQAEAAAEogW7AC0A5EA8lSwBCSvZK+krAwdnKQGJBAEWGBglJigUJiYoAgEBIAAtFAAALS0CAQYYFh0TJigjBisrEwYMDwkSEg0TuAJdtAYGDQgjuAJIQEQdDQIAAQgIaS0BAS0CAwAFKAEFKBUoAlkmaSaZJgMpJukmAggmiCb4JgM3JgEmGCgWBAcgAC+gEQERDxIHIAxvCAEICi8vccD9MjLEXRDWxhEXOV1dXXFxchIXOXEAP8DAP9TtERI5L+0ROS/A3cAREjkZLxESOTkREjk5ERI5OYcFGBArfRDEhxgQK30QxDEwAF0BXV5dXSEjAyYnJiMRIxEjNTMRMxEzFSMVMjc2NzY3Njc2MzIXFSImIyIHBgcGBwYHFhcEovH1XCxad8KdncKkpJBGJUo3GjZOSFlwBg00DWc5IDM3IjlljooBjpYuXP1SBDGEAQX++4T5UiuugipYLCgCqAJHJ3+LMVMpJ98AAAEAAAAAA5AFugAqAQBAKRoYFB00WRkBFhgYSCMlFCMjJQIBASUAKhQAACoqAgYIGBYeEyMlHygTuAEMQE4/BgEGBggfSB4GEgkPDwwBBwMMQA0AAAEIChERHwcjGBceNKkjuSMCCSMB6CMBVSNlIwIDDyUfJS8lAw8lAQgFIyUoFhgFHwEqAgMHAB+4/8BAIhYZNB8gAAEALA8TByUM8AgBAAggCOAIA98IAQgACiAKAgovXS9xXXHA7TIyENVdxisBERIXOREXOV9eXXFfXV1dcSsBERI5GC8AP8DAPxrdX15dwN3AP03tEjkvce05Ejk5ERI5ORESOTmHBRArfRDEhxgQK30QxDEwAV0rISMDJicmIxEjESMnMzUzFSEVIREyNzY3Njc2NzYzMxUnJgcGBwYHBgcWFwOQxsAvIzVJtIUBhrQBV/6pZDAQOigULDorXyQySx8KJyUcJk11bwFJUSAx/hUEwXeCgnf9mkEVi2AgSRMOlQEBKA1kXiUyJB+5AAABACkAAAXoBbsAJwDjQDOVJgEJJdkl6SUDhyMBqQQBEBISJSAiFCAgIgIBASAAJxQAACcnAgEGEhAXDSAiHQYlJQ24Al20BgYLCB24AkhAURcKHgsCAAEICIknAQEnAgMAJSIBJSI1IgIJIHkgiSC5IARJIAEYIAEoIKggAlcgASASIhAEGQ0HIA8IjwgCAAhACIAIAwcICCkoGSAAAQApCi8Q1l3GERI5L15dce0yERc5XV1xXXFxchEXOXEAP8DAP+3U7RESOS/tORkvERI5ORESOTkREjk5hwUYECt9EMSHGBArfRDEMTAAXQFdXV0hIwMmJyYjESMRITUhETI3Njc2NzY3NjMyFxUiJiMiBwYHBgcGBxYXBejx9VwsWnfC/kICgJBGJUo3GjZOSFlwBg00DWc5IDM3IjlljooBjpYuXP1SBQ2t/X5SK66CKlgsKAKoAkcnf4sxUykn3wAAAQAoAAAEWQQmACQA+EAqFBgUHTQJEwEMEBISSB0fFB0dHwIBASUAJBQAACQkAgYIEhAYDR0fGSINuAEMQEcPBgEaAwYGCBlIGAorQAsYBgsGAAEICh0YFx40qR25HQIJHQHoHQFVHWUdAgMPHx8fLx8DDx8BCAUdHyIQEgUZASQCAwcAGbj/wEAmFhk0GQAMByWQCLAI8AgDAAgQCCAI0AjgCAXvCAEICCUgAAEAJgovEMVdEjkvcV1x7TIQxisBERIXOREXOV9eXXFfXV1dcSsAGD/AwD8/0BpN7RDtEjkvX15d7TkSOTkREjk5ERI5OYcFECt9EMSHGBArfRDEMTABXl0rISMDJicmIxEjESE1IREyNzY3Njc2NzYzMxUnJgcGBwYHBgcWFwRZxsAvIzVJtP7ZAdtkMBA6KBQsOitfJDJLHwonJRwmTXVvAUlRIDH+FQORlf41QRWLYCBJEw6VAQEoDWReJTIkH7kAAQCkAAAG4AW6AA0AV0A5Ch6gBdAFAgUFCAcBHgwIAgMHCAsDIBACIAJQAoACsAIFAgIOsAABAA8KBiBvBwEgB6AHsAfABwQHL11x/cAQxl0SOS9d/cAAP8A/0O0REjkvXe0xMAEhESMRIREjETMRIREhBuD+QsL9BsLCAvoCgAUN+vMCs/1NBbr9pgJaAAEAiAAABQoEJgANAFlAOworBQUIBwErDAgGAwcKCwMlXwIBEAIgAjACAwACYAJwArACwALQAgYCAg4ADwoGJc8HAQAHIAfgBwMHL11x/cAQxhI5L11xcf3AAD/AP9DtERI5L+0xMAEhESMRIREjETMRIREhBQr+2bT+DbS0AfMB2wOR/G8B1/4pBCb+RgG6AAEAoP5RCLwFugAhAKlAWgcgAbYfASoQehACShBaEJoQqhAEaA54DgI5DQFDA4MDkwMDBwIBExEeHB4eFRceGgIHBwwZFQgMHgQPHBQgFQggDwcBBz8VAX8VnxUCABUBBwMVFRkPJgBAALj/wEASBwo0ACMYIG8ZASAZsBnAGQMZL11x7RDGKwEaGBBN7RI5L19eXV1x0F3tEP3AAD/tP8ASOS8/7RI5LzPtMjEwAV1dXV1dcV1dARAHBiEiJCczFhcWMzISERAhIgcRIxEhESMRIRE2MyAXFgi8qaH+673+0RPDEUhbgMbf/pqc18P9BMIEgdi1ARWHcgFF/pLIvqt4LCQtAS8BDgHwW/03BQ368wW6/bFhx6gAAAEAiP5RBqoEJgAjAJ9ASgciFyKHIgMHGREpEQIJDQEJDRkNKQ0DDBYCARMcICAcGwgIFwscBA8ZKxwGFxsKCSUIFx4WJU8XAQ8XPxfPFwMOAxcXGw8kAEAAuP/AQBoICzRAAAEAJRolwBvQGwIAGyAb4BsDzxsBGy9xXXLtEMZdKwEaGBBN7RI5L19eXXL9wBDQ7QA/wD/tP+0ROS8REjkv7TEwAV1eXXFdXl0lFAcGIyInJiczFjMyNzY1NCcmIyIHESMRIREjESERNjMyFxYGqoGG3Kp3exG0LM2OT0dcWJlUfLT+IrQDRnJ314yQYeKUmk9Rg49xZJegWFQb/n4DkfxvBCb99CKChgACAD7/5wXlBdMAKgA0AQRAs3UwAVYwZjACey4Bai4BWS0BeCIBliEBKR+ZHwKFGQFjGQFmGHYYAlcYAWkMeQwCWAwBKgiaCAIpBwGUMwEGIgEWHwEFHwEIBRgBChQBiwQBeQQBEBAPIA8wD1APBA8PbRwBThxeHAIYHAFiJgFBJlEmAhcmASYzBBwEJDEkHh4WKyQkKgAAJDYWJH8KAW4KAR8KPwpPCl8KBAovHiAgEBIeDw0DMxwaHgYqJigeAAICBAYJAD8zMy8z7TIyEO0yMj8z7TIyL+0BL11dXe0QxjIvMxDtETkv7RIXOV1dXV1dXTMvXTMxMABdXV1dXl1dXV0BXV1dXV1dXV1dXV1dXV1dXSUGIyInBiMgJyYREAAzMhcHJiMiBwYVEBcWMzI3JhEQITIXFhUQBxYzMjcBNCcmIyIREBc2BeVrhqR/gKT+xqKTASDmhldQOlOPWlVdbd1COrMBaaVcUrc7QFNM/uclK02uoqkmPzo63MgBXQFKAaE4kSOypuz+/Z67DsMBfQJStKP7/oTEDjACHqp2if5g/qKUlwAAAgAj/+gEEgQ+AC0AOQC0QHKWNAGZMAEmJQEpIQFlGQFXGQGaDQGLDQF8DQEIDRgNApY4AREhEDEQAgAQEBACEBCQNgE2nh0BkCkBKQQ4HQQnHx8Xny4BLictPwABAAAPJy8nAggnOxckCjIcIyMRExwQDgc4HRscBi0pKxwAAgIEBgsAPzMzLzPtMjIQ7TIyPzPtMjIv7QEv7RDOXl0yL10zEM1dETkvEhc5XV3NXTIvXV0zMTAAXQFdXV1dXV1dXV1dJQYjIicGIyInJjU0NzYzMhcHJiMiBwYVFBcWMzI3JjU0NzYzMhcWFRQHFjMyNwM0JyYjIgcGFRQXNgQSSWZmVFNm5HpvXmayZkNNJi9VNjlLSIETEX5IUHt7UEh9ERMvPcwVGysrGhRaWiM7JSWgkvXzmaM2dhhob8THaWMCmPmbeYeHeZv5mAInAWxWUGJiTljgZmYAAAEAZv5WBXYF0wAtAV9ACkoDAQMPFAEPBge4//BAZQ0RNFcBZwECxQEBtALEAgIEAgEH2QLpAvkCA7oD6gP6AwMqFDoUShR6FIoUBZgYAcQdATQdAUYdARssASss6yz7LAMGKRYpVikDBiQWJFYkAwm9IAHtIP0gAjwgTCACDCABCwMOuP/AQFEZHDQOrAkPyAABBwABEgEAATrxAAGRAKEAAuYAATYAAUYAhgD2AAPJHtke6R4Dmh6qHgIlHjUeAgUeAQcAHhMhHhsDKx5ABBMJDwsBDAMLBga4/8C3GRw0BqwRQBG4/8BADwgNNBERABcfJh4tJgBAALj/wEAOBww0AC8nJiAXAQ8XARcvXV3tEMYrARoYEE3t1u0REjkvKwEaGBBN7SsBGBDEX15dAD8zGk3tP+0SOTleXXJdcl1xcl1yXl1eXXE/7SsxMAFfXl1xXXFeXV1dcV1dcV1dXV1eXXFdcisAX15dX10BBgcGBxYVFAYjIic1FjMyNjU0JyQDJjUQJTYzMgQXBwIhIgcGBwYVEBcWMyATBXY9nnqlHXdkZnVbTUFPFP5KnU4BUaHC2QEuPL9i/tqecnkxLuBzhgFcUQHR731hFnBLZHk9dy5WQjY9BgFyuNEB2rlY3M8tATJKT5GJkf5vhkUBdQABAFD+VgPtBD4AJwFPQCEzHUMdAgO2HcYd9h0DRhsBVhv2GwILFfsVAhANAwEfBAe4//BAXQ0RNDogAcQgAQgiGCICgyIBZiJ2IgKEJAF2JAErJgHDJgGCAgEJAhkCAqQCARcCJwI3AgOYFQEIFtgWAt0ZAXgZAdgZAYcaAQkaAQc0HQEEHSQdAhEAHRAdAiADDrj/wEAJGRw0DqxACQ8nuP/AQC4MEDTgJwFgJ3AnsCfAJwQnJxwvHz8fTx8DHx8UIRwcByUcQAQUCw8LAQwDCwYGuP/AQCcZHDQGrO8RAUARARERABcfJB4nJA8AHwACBwApIyTPGN8YAj8YARgvXXHtEN5eXe3W7RESOS9dce0rARgQxF9eXQA/MxpN7T/tEjkvXRE5L11xKwAYPxpN7SsxMAFfXl1eXXFeXV1dcXFdXV1dcXFdcl1dXV1xXXErAF9eXV5dXXFdX3EBBgcGBxYVFAYjIic1FjMyNjU0JyMiJyY1EDc2MyATByYjIBEQITITA+0dd05jH3dkZnVbTUFPFALtgHbndIkBZ0GvMsD+zgEo5iUBbrdnQxh1TWR5PXcuVkI4PKCU8wFvgED+sBvX/mr+aAEJAAEAMP5pBLoFugALAGRARwIeBQcIAQkeCgIGAwEgAAggCDAIQAgEBwgICQAAIABQAGAAcACgALAA0AAICwANAAmQCcAJ0AkEOgAJAUAJUAkCwAnQCQIJL11xcl5dEMZeXRE5L15d/d7NAD/9wD/O7TEwASERMxEjESMRITUhBLr+G4asnP4dBIoFDfug/bwBlwUNrQABACb+0wOFBCYACwBstQ8JvwkCCbgBV0AJAQAAsAACDgMAuAFXtwglAQYDAUABuP/AQCQLDjRAAVABAgABMAHgAQOAAeAB8AEDAQENDAUCKwcKAQkrCgYAP/3AP+3OARESOS9dcXIrARoYEN7NEE395F9eXRDkXTEwASERMxEjESMRITUhA4X+qnSUk/6qA18Dkf0D/j8BLQORlQABADH+aQciBboADwBaQCsJBR4MBgIBAw4KHgMKCSAABCAEMARABKAEBQgDBAQHBwULAR4PCyAOD0APuP/AtQsONA8RBS8QxisBGhgQ3U3tEO0REjkvOS9fXl3tAD/9wBDOP8D9wDEwASMRIREhNSEVIREhETMRMwcirPul/hYElf4XAvzDhv5pAZcFDa2t+6AFDfrzAAABACb+0wVKBCYADwBMQCsJBSsMBgYBAw4KKwMKCSVABAEEBAcHBQsBKw8LJQ8OAQcOnw8BIA8BDxEFLxDWXV3dXl3tEO0REjkvOS9d7QA//cAQzj/A/cAxMAEjESERITUhFSERIREzETMFSpT8xv6qA1/+qwHytHT+0wEtA5GVlf0DA5L8bgAAAQBX/mkFOgW6ABcAlUAYDwkfCQIHNBCEEJQQA7QQAQAQIBACDQQGuAJIQBQREQ0BFh4DCBQNAhQDIBYCHhdAF7j/wLMfJTQXuP/AsxMWNBe4/8BAHg4RNAAXAQsDFxkOIA1ADUAWIzQNQAcKNM8N3w0CDS9xKysBGhgQTe0Qxl9eXSsrKwEaGBBN7d39wAA/wD/tzhI5L+0xMAFfXl1dcV5dASMRIxEEIyInJicmNREzERAhMjcRMxEzBTqsnP77xIp0gCwowgEqzeLChv5pAZcCT2E+RnlvsQGv/mP+eVsCyfrzAAABAEX+0wQXBCYAGwCAQDQLBBsEAmYTdhMCNhJmEnYSA40JnQkCDQgtCI0InQgECAQGSBUVAxgNBhorAQMKFwMlGkAauP/AQAklLDQaASsbQBu4/8BADRYaNBsdDiUfDU8NAg0vXe0QxisBGhgQTe3NKwEaGBBN/cAAP87tP8ASOS/tMTABX15dXXFdAHEBIxEjEQYjIicmJyY1ETMVFBcWFxYzMjcRMxEzBBeUlKaQbV5kJCG0CRI/PFhmorR0/tMBLQGsNDc7YllrARbJdCtULyw2AeH8bgACAAr/6AaIBdQAJQAuAQC1EwgHDDQauP/4QJghJDQmAzYDRgN2AwR9Bo0GAlYKAbkRAQkfAQkfAUgjeCMCWSh5KIkoAzkoaSiZKKkoBHsoAU8pAUArAVYsdiyGLAM2LGYsliymLAR0LPQsAgAHgAeQB6AHBAcHBwEFFhcdLhIBHl8uAQ8uAQgwLkAuAi4uDCoeIQMFHgwJByafCK8IvwgDDwgfCG8IfwiPCAUNAwgmJgBAALj/wEAUBwo0ADABLiYSHRlvFH8UAo8UARQvXXHd1jLtMhDGKwEaGBBN7dZfXl1x7QA/7T/tEjkvXV5dcf3AENDWzRESOS9eXTEwAV1dcV1dXV1xXV1xXV1xXSsrASEWFxYzIBMXBgcGIyInJicmJyARNDcXBhUUFxY3Ejc2ISAXFhEnJicmIyIHBgcGiPuLDHV62gE9U744oJncyJ+jUjYP/sITmQ46HEUMkaoBWwFUsJ/JCnJ+4OB+cgoCcN19hAEzMtFva2Jks3WaAQtJRCk2H0sXDAEBGb7g38r+o0/ojp6ejugAAAIACv/oBP8EPgAiACsBB7kAKf/oQEkMDzQGJRYlJiUDeSWJJQLGHQEMHQE6DgEKDvoOAgcJDhkOKQ4DCFULZQsCVwtnC3cLA3cFhwWXBQMHBRcFJwUDCwMFEwUCDgMJuP/AQGsHCjRwCYAJ0AngCQQJCQcQfwOPA58DAwMcKxQVGw8rHytPK18rbysFDyv/KwIHAysrHwccDAsnHB8HCSQKIyQALSsDJBBAGxAQQDE1NBBAKi00EEAPEzTwEAEAEPAQAghvEAFPEN8QAhAXEi/dxF1xXl1xKysrAREzGhgQTe0yEN7t1O0AP+0/7RI5L19eXXLQ1sUQ/XHAEjkvXSsxMABfXl0BXl1xXXFeXV5dcV1dXXErARQHIRYXFjMyNxcCISInJicgNTQ3FwYVFBcWMzY3NjMyFxYHJicmIyIHBgcE/wH86AlMVpbKTrpd/orohoIJ/t0TmQ4zGj4Ya4rc6oJ3vgw4VomCVE8JAhUQIJxgbdoX/qmMiOnrP04iLShKFwy+c5SjloyGQ2hYVYQAAAIACv7NBogF1AAmAC8A70CjZS0BJi1WLQJqKQEpKVkpApgoAYYkliQCdSQBNiMBOSEBiSCZIAJ6IAE5EQGGCgFlCgFXCgFGCgF9BgElAwEXAwGZLQGZKQGJKAGYFAGZCgGHBgEMDg4emQcBiwcBByZfCG8IfwgDCCcmAAAQACAAAwgAMQEvJhMeGBomF48VARUYFy+JCAEIcAeABwIHEwEeHnAvgC8CLy8FKx4iAwUeDQwPCQA/M83tP+0ROS9dxP3Ezl0yXRDMMgEvXTP9Mt4y7TIQ1l5d7dZd7V1dETkvzTEwAF1dXV1dXQFdXV1dXV1dXV1dXV1dXV1dXV1dASEWFxYzIBMXBgcGBxEjESYnJAMgETQ3FwYVFBcWNxI3NiEgFxYRJyYnJiMiBwYHBoj7iwx1etoBPVO+M4yIxoSfhP7rJf7CE5kOOh1EDJGqAVsBVa+fyQpxf+Dgf3EKAnDdfYQBMzK+b20P/uMBHg5RqgF8AQtJRCk2H0oYDAEBGL/g38n+ok/ojp6ejugAAgAK/s0E/wQ+ACUALgCPQFiXLQFHLGcsAmooAZULAYYLAXcLATULAWsIAUcFVwUCDA4OEwkkCgomJAAwZi4BVy4BLgMkHl8TAQATAQgTGBokFxUYFy4KCRMDHB4uLgcqHCIHBxwNDA8LAD8zze0/7RE5L8T9xM4yEMwyAS8z/TLcXl1dMu0yXV0Q3u0zL+0ROS/NMTBdXV1dXV1dXV0BFAchFhcWMzI3FwIFESMRJicmJyA1NDcXBhUUFxYzNjc2MzIXFgcmJyYjIgcGBwT/AfzoCUxWlspOulX+v4TLc2wI/t0TmQ4zGj4Ya4rc64J2vgw4VomEUk8JAhUQIJxgbdoX/sYb/uMBHxSOhdLrP04iLShKFwy+c5SjlY2GQ2hYU4YA//8AvwAAAYEFugIGACwAAP//AAcAAAdbByICJgJAAAABBwkkAlgBagAWQAoBAEI+PQBBAQFAuQIhACkAKwErNf////sAAAVgBbgCJgJgAAABBwkkAWgAAAAWQAoBAD05OABBAQE7uQIiACkAKwErNQABAKH+UQT+BbsAMgDgQDkUAiQCAgkOWQ4CCvsRAXYRAQQxAQAxEDFQMWAxcDEFCwQeHBwlLiwULi4sLhweLAQpLxkZQBIXNBm4Al1ANBQUFxYpHiMXAgcHFgweBA8WCAksGSy5LAMNiS4BAwAuEC5QLgMQBiweLhwEJSUVDyYAQAC4/8BAHQcLNAA0CCAPBwEHBxYYFSAAFjAWsBbAFtAWBQgWL15d/cAQ0F5d7RDGKwEaGBBN7RI5Lxc5X15dX11eXQA/P+0ROS8/1O0REjkv7SsAEMARFzmHBRgQTSt9EMQxMAFfXl1xXV1eXV0lEAcGISIkJzMWFxYzMhI1NCcmIyERIxEzETI3Njc2NzY3NjMyFxUiJiMiBwYHBgcgFxYE/qmh/uu9/tITwhFIW4DG31Zqzv61wsKQRiVKNxo2TkhZcAYNNA1nOSAzSjcBJ5B1//61tq2reCwkLQEK7bN5lP1SBbr9flIrroIqWCwoAqgCRyd/ujS4lQABAIb+UQQWBCYALgEXQGgHAncChwIDqQ25DckNA0kNWQ1pDQP3DQHcEewR/BED9hEBaREBZykBBi0WLQIGLRYtdi2GLfYtBR0bG0gqKBQqKigdIiobKAMlKxgcABPQE+ATAwcDExMWFSUcIhYGCAgVCgscQAQPKLj/8LMXGjQquP/wQCQXGjQoKh0bBF8k3yTvJAMPJB8kvyTvJP8kBQkDJCQUDyQAQAC4/8BAKAkMNLAAwADQAAMAMAklDwgBBwgVGBQl0BUB8BUBABUgFQLPFd8VAhUvcV1xcv3AENBeXe0QxnErARoYEE3tEjkvX15dchc5KysAGD8aTe0/OS8/0O0REjkvX15d/cARFzkROYcFECt9EMQxMAFdcXJdXXFdXXFdJRQHBiMiJyYnMxYzMjc2NTQmIyMRIxEzETI3Njc2NzY3NjMzFScmBwYHBgcyFxYEFoGH26p3exG0LM2NUEevntC0tGQwEDooFCw6K18kMksfCicqNcqFi2vjmJ9PUYOPdmeZpbz+RAQm/jVBFYtgIEkTDpUBASgNZGo1g4oAAQAS/mkFVwW6ABkAU0A1Ag4ZHgQIEh4NCQYeFwIEIA8ZAf8ZAY8ZARkAAwACJY8BAQEAGwcgQBZQFmAWA8AW0BYCFg8v1F1x7RDW3V3tETkQ3V1xcu0AP+0/7T/tPzEwJQMjEyMRIREUBwYHBiMiJzcWMzI3NjURIREFV7ysipz97gkVUkZpQFohMCJdGwwDlq39vAGXBQ39DchDpkY8GKwUaC+EBAj68wABABj+0wTTBCYAGACOQDy5AAF2AwEmAzYDAngDAYcLAQYrFgYYHAQKERwNCwIEJQ8YAQcDGABADwIfAgImBQIBASAHCjQBAEADAAC4/8CzGh00ALj/wEASJCg0QAABABoHJQ8VAW8VARUQL9Zdce0Qxl0rKwERMxoYEM0rAREzX15dGhgQ3V9eXU3tAC8/7T/tP+0xMAFdXXFyXSUDIxMjESERFAcGBwYjIic1MzI3NjURIREE09CUlJP+IwINPzZmP1JPYQ8IA0SU/j8BLQOR/e+oEm00LAiWMBmKArz8bgAAAQCk/lEFIgW6ABoAZEBCJgMBCg4aDkoOWg4E2Q8BFx6gEtASAhISFBkVAggIFAgNHgQPGBAgrwC/AM8AAwAcFxMgFAkgCG8UAaAUsBTAFAMUL11x0O0Q/cAQ3l39wAA/7T85Lz/AEjkvXe0xMAFdXV0BEAcGISInJiczFhcWMzISEREhESMRMxEhETMFIq6l/urHmZ0YwhFXY4DI5/0GwsIC+sIBRf6Uyr5RU38uJikBLQENAYL9TQW6/aYCWgAAAQCI/lED4wQmABYAXkA7ZgN2AwITKw4OEBURBggIEAoKHAQPFAwlDwABDwAB/wABABgIJQcQEw8lABABABABABAQEDAQ8BAECBAvXl1xcv3AENDtEN5dcXL9wAA/7T85Lz/AEjkv7TEwAV0lFAcGIyImJzMWMyARESERIxEzESERMwPjcHnZqOARtCy5AQ7+DbS0AfO0YuePm56FjwF6AXj+KQQm/kYBugABAKT+aQXaBboADwBeQD0IAxgDAggLHqAG0AYCBgYIDQkCDx4EBwgCDgwEIA8AAiUBIAABIABQAGAAcAAEABELByAgCKAIsAjACAQIL139wBDWXXHd7RDd/cAAPz/Q7T/AEjkvXe0xMAFeXSUDIxMjESERIxEzESERMxEF2rysipz9BsLCAvrCrf28AZcCs/1NBbr9pgJa+vMAAQCI/tMEkwQmAA8ApkA/SQABBgMBtgPGAwIIAwEOCysGBgcNCQYPHAQHCgIMBCUvDwEADwEQAw8AQA8CHwICJgUCAQEgBwo0AQBAAwAAuP/AsxodNAC4/8BAICQoNMAAAQARCwclAAjQCOAIAwAIAQAIEAgwCPAIBAgIL15dcXL9wBDGcisrAREzGhgQzSsBETNfXl0aGBDdX15dXU39wAAvP9DtP8ASOS/tMTABXl1dcl0lAyMTIxEhESMRMxEhETMRBJPQlJSU/g20tAHztJT+PwEtAdf+KQQm/kYBuvxuAAEAV/5pBLQFugAXAHBAFBsLiwsCFhKWEuYS9hIEZBJ0EgIIuAJIQDAPEwEHExMPAwUeAQgWDwIBHgQVBSAAAAEfAwAZECAPQA9AFiM0D0AHCjTPD98PAg8vcSsrARoYEE3tENZfXl39wN3tAD/AP+3NEjkvXl3tMTABXXFdISMRIxEzEQQjIicmJyY1ETMRECEyNxEzBLScrIb++8SKdIAsKMIBKs3iwv5pAkQBomE+RnlvsQGv/mP+eVsCyQABAEX+0wOjBCYAGwCGQDmbBqsGuwYDBhUWFQIOthTmFPYUAw0LHQsCDQodCgIQBAhIF0AXQAcKNBcXARoPBgQrAwEKASsEQAS4/8BAGCUsNAQZBSUPAAEAAAEHAB0QJR8PTw8CDy9d7RDWXl1x/cDNKwEaGBBN7QA/ze0/wBI5LysAGhgQTe0xMAFfXl1dXV5dAF0hIxEjETMRBiMiJyYnJjURMxUUFxYXFjMyNxEzA6OUlHSmkG1eZCQhtAkSPzxYZqK0/tMBwQEYNDc7YllrARbJdCtULyw2AeEAAQCY/mkGxwW6ABQBdUAnCwMbAwIIVAYBWQcB2QcBHwwBZgx2DJYMAwkMAQwAEgEdDRIBIgQSuP/YswsPNAy4/9hADwsPNLkFyQUCBhgYGEJVB7j/6EBnGBhCVRAPYA9wD4APBGAPcA/gDwPwDwEhDzEPQQ8DTw8BEg8PMAYFFAYPDAYFDA8PMAcIFAcHCAoFGgXKBQMJWggBAwAIEAgCEAUIBQ8DBxIMAhQeBAYHCggCDgIlAQAUQAZANjs0B7j/wEBdNjs0DwYBQzIGQgYCBgYWBiYGAw0ABwFDnQetBwJpB3kHiQcDDAcGDxIFCAUgEBSAFJAUA0AUUBRwFIAUoBTAFAYUFgggnwoBjwoBYAoBAAogCjAKQArgCvAKBgcKL15dcV1x7RDUXXHtERc5XV1eXV5dXV5dKysBGhgQ3d1N7QA/P8DA0O0/wBIXOV9eXV9dXl2HBRArfRDEhwgYECsFfRDEAHFyXXFyASsrMTBxKysBX15dXl1eXV1xXXFxXl0lAyMTIxEBIwERIxEhARYXNjcBIREGx7ysipX+Vq/+WLsBJAFbKxscMgFfAQWt/bwBlwTL+zUE4PsgBbr78oFYW5AD/PrzAAABAIz+0wWkBCYAEADxuQAM//izDhE0DLj/8ECZExo0eQMBBgZmBgK0BgEJBykHaQepBwSZB6kHArsHAbMMAcgOAbwOAfQNAfQNAaANAQ4GBQYrDQ4UDQ4MBwgHKw0MFA0NDMEFAcAIARsNKw07DQMNDQEHAw0IBQMKDgwGAhAcQAQGBwoKDwIfAgImBQIBASAHCjQBAwAMBw0GDgUIBSWQEMAQ0BADEBIIJQAKEAowCkAKBAgKL15d7RDUXe0RFzndMs0rAREzX15dABg/wMDQGk3tLz/AEhc5X15dXV1dhwUQK4d9xIcYK4d9xABxcXIxMAFdXV1dXXFdcV0rKyUDIxMjEQEjAREjESEBASERBaTQlJSU/sah/tewARgBFwE2AQOU/j8BLQNX/KkDgPyABCb8rgNS/G4AAAEALgS1An0FuAAJAF9AIjcGRwZXBgPHBtcG5wYDOAhICFgIA8gI2AjoCAOoCLgIAgm4Ap+0sAABAAS4Ap9AEgUJHwQvBAIPBB8ELwSvBAQEB7oCnwACAiIAP+3UXXHAAS/91F3tMTBdcXJxcgECISADMxYzMjcCfR/++P73H3sci5cbBbj+/QEDh4f////9AAAFWQchAiYAJAAAAQcJJAFUAWkAFkAKAgATDwECQQIBEbkCIQApACsBKzX//wBK/+gEHAW4AiYARAAAAQcJJADIAAAAFkAKAgA8OBgiQQIBOrkCIgApACsBKzX////9AAAFWQctAiYAJAAAAQcAjgFUAWoAGUAMAwIAEhMBAkECAwISuQIhACkAKwErNTUA//8ASv/oBBwFwwImAEQAAAEHAI4AyAAAABlADAMCADs8GCJBAgMCO7kCIgApACsBKzU1AP//AAEAAAeQBboCBgCQAAD//wBE/+gGygQ+AgYAoAAA//8AogAABOgHIgImACgAAAEHCSQBaAFqABZACgEAEAwBAkEBAQ65AiEAKQArASs1//8AS//oBB4FuAImAEgAAAEHCSQA3AAAABZACgIAIh4KCkECASC5AiIAKQArASs1//8AY//nBbAHLQImBSQAAAEHAI4BpAFqABlADAMCACUmCQBBAgMCIrkCIQApACsBKzU1AP//AFX/6AQoBcMCJgUlAAABBwCOAMgAAAAZQAwDAgAkJQoAQQIDAiS5AiIAKQArASs1NQD//wAHAAAHWwctAiYCQAAAAQcAjgJYAWoAGUAMAgEAQUI9AEEBAgJBuQIhACkAKwErNTUA////+wAABWAFwwImAmAAAAEHAI4BVwAAABlADAIBADw9OABBAQICObkCIgApACsBKzU1AP//AE7/5wSCBy0CJgJBAAABBwCOASwBagAZQAwCAQAqKxgdQQECAiq5AiEAKQArASs1NQD//wAy/+gDYgXDAiYCYQAAAQcAjgCMAAAAGUAMAgEAKisLEEEBAgIquQIiACkAKwErNTUAAAEATv/nBJgFugAeARO1FhgNETQbuP/wQIcmKTTWAeYBAtUDAdkKAQYO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ACcA2ADmAAABBwCNAOUBKAA/QCsDkCXfJQIdJSUeIUECAB4hCgpBAx8iAR8iXyKQIqAisCIFIkAJDDQiAgEeuQIiACkAKy8rXXI1ASs1K101AP//AKL+aQToBboCJgAoAAABBwhqAskAAAALtgEAERIAC0EBKzUA//8AS/5pBB4EPgImAEgAAAEHCGoCSQAAAAu2AgAjJAQEQQErNQD//wCi/mkE6AW6AiYAKAAAAQcIbQK8AAAAC7YBABUMAAtBASs1AP//AEv+aQQeBD4CJgBIAAABBwhtAjAAAAALtgIAJx4HAUEBKzUA//8Aov5bBOgHIgImBxYAAAEHANkBXgFqABZACgEAJyEWF0EBASS5AiEAKQArASs1//8AS/5bBB4FuAImBxcAAAEHANkAyAAAABZACgIAOzUnJ0ECATi5AiIAKQArASs1//8AqAAABIUG9AImACkAAAEHANoBLAFqABZACgEACg0BAkEBAQq5AiEAKQArASs1//8AEwAAAoAG9AImAEkAAAEHANoAZAFqAB+xARi4/8BADA8RNB8YGwQMQQEBGLkCIQApACsBKys1AP//AG3/5wW5BskCJgAqAAABBwDYAcwBagAWQAoBGSYpChJBAQEmuQIhACkAKwErNf//AEL+UQPqBV8CJgBKAAABBwDYALQAAAAcQA8CPyvPKwINKy4PF0ECASu5AiIAKQArAStxNf//AKQAAAUiBvQCJgArAAABBwDaAY4BagAWQAoBAAwPAQZBAQEMuQIhACkAKwErNf//AIcAAAPoBvQCJgBLAAABBwDaAQYBagAYuQAB/8m3FRgCCUEBARW5AiEAKQArASs1//8ApP67BSIFugImACsAAAEHBH0DcAAAAAu2AQANDgAHQQErNQD//wCH/rsD6AW6AiYASwAAAQcEfQLPAAAAC7YBABUYAApBASs1AP//AKQAAAUiBy0CJgArAAABBwCOAY0BagAZQAwCAQAMEwIFQQECAgy5AiEAKQArASs1NQD//wCHAAAD6ActAiYASwAAAQcAjgDIAWoAHLECAbj/50AJFRwBCUECAQIYuQIhACkAKwErNTX//wCT/lsFIgW6AiYAKwAAAQYA3CgAABexAQ24/8CyB0Q0uP/OtA0NCwtBASsrNQD//wBo/lsD6AW6AiYASwAAAQYA3P0AABexARa4/8CyB0Q0uP/OtBYWFBRBASsrNQD//wCk/mkFIgW6AiYAKwAAAQcIawLiAAAAC7YBABAMAAdBASs1AP//AIf+aQPoBboCJgBLAAABBwhrAkQAAAALtgEAGRUACkEBKzUA////3/5pAn0FugImACwAAAEHCG0BLAAAAAu2AQANBAADQQErNQD///+S/mkCMAW6AiYATAAAAQcIbQDfAAAAE7ECEbj/wLcINQARCAQHQQErKzUA//8AIAAAAiQHNAImACwAAAEHBQ0BIgAAABlADQMCAQANCAECQQMCAQ0ALzU1NQErNTU1AP//AAYAAAI3BzQCJgDVAAAAJgCOyQABBwCN/9QBcgBluQAD//BADwwMBgZBAgEABAoBAkEDDLj/wEAMDxE0DEAKDDQMAgEEuP/AskU1BLj/wEAfDxE0AAQwBGAEAyAEQARQBJAEoATABOAEB0AEoAQCBAAuXXFyKys1NS8rKzUBKzU1KzUA//8AlgAABVIHLAImAC4AAAEHAI0BLAFqACqxAQy4/8BAFQc1YAwBTwxfDJAMA7IMDAICQQEBDLkCIQApACsBK11xKzX//wCIAAAD+AcsAiYATgAAAQcAjQDUAWoAH7EBDLj/wEAMBws0dgwMAgJBAQEMuQIhACkAKwErKzUA//8Alv67BVIFugImAC4AAAEHBH0DPgAAABqxAQ24/8C0BzXADQG4/9K0DQ4LCEEBK10rNf//AIj+uwP4BboCJgBOAAABBwR9Ap4AAAApsQENuP/AQBoHCzSgDbANAlANYA3wDQOQDaANAmQNDQsLQQErXXFyKzUA//8Alv7WBVIFugImAC4AAAEHCG4CtAAAAB9ADwFADgEgDjAOkA7ADtAOBbj/4LQODwsIQQErXXE1AP//AIj+1gP4BboCJgBOAAABBwhuAhwAAAAgsQEOuP/AQAoHCjQwDkAOYA4DuP/ytA4PCwhBAStdKzX//wCW/rsEKgW6AiYALwAAAQcEfQL4AAAAC7YBAAcIAAVBASs1AP//AH7+uwFLBboCJgBPAAABBwR9AXwAAAAQQAoBTwUBAAUGAANBAStxNf//AJb+uwQqBskCJgAvAAAAJwR9AvgAAAEHANgA9QFqACqxAgq7/8AACAA1/7pADwoKAgJBAQAHCAAFQQIBCrkCIQApACsBKzUrKzX///+5/rsCKQbJAiYATwAAACcEfQFxAAABBwDY/5wBagAfQBECAAgLAQJBAQAFBgADQQIBCLkCIQApACsBKzUrNQD//wCW/tYEKgW6AiYALwAAAQcIbgJfAAAAC7YBAAgJAAVBASs1AP///6X+1gIVBboCJgBPAAABBwhuANwAAAATsQEGuP/Atwg1AAYHAANBASsrNQD//wCW/mkEKgW6AiYALwAAAQcIagJkAAAAC7YBAAsMAAVBASs1AP///6P+aQIcBboCJgBPAAABBwhqAN8AAAALtgEACQoAA0EBKzUA//8AmAAABg8HLAImADAAAAEHAI0B+QFqACWxARS4/8BAERcZNJAUwBQCCRQUAghBAQERuQIhACkAKwErXSs1AP//AIcAAAYmBcICJgBQAAABBwCNAhQAAAAYuQAB//S3JCQbG0EBASS5AiIAKQArASs1//8AmAAABg8G9AImADAAAAEHANoCEQFqABZACgEAERQCCEEBARG5AiEAKQArASs1//8AhwAABiYFigImAFAAAAEHANoCAwAAABZACgEAJCcbGEEBASS5AiIAKQArASs1//8AmP67Bg8FugImADAAAAEHBH0D6AAAAAu2AQASEw4NQQErNQD//wCH/rsGJgQ+AiYAUAAAAQcEfQPwAAAAC7YBACUmGhlBASs1AP//AJwAAAUfBvQCJgAxAAABBwDaAYkBagAWQAoBAAoNAQVBAQEKuQIhACkAKwErNf//AIcAAAPmBYoCJgBRAAABBwDaAPAAAAAWQAoBDhcaAQtBAQEXuQIiACkAKwErNf//AJz+uwUfBboCJgAxAAABBwR9A2wAAAALtgEACg0BBUEBKzUA//8Ah/67A+YEPgImAFEAAAEHBH0CzgAAAAu2AQAYGQAMQQErNQD//wCc/tYFHwW6AiYAMQAAAQcIbgLdAAAAC7YBAAwNAQVBASs1AP//AIf+1gPmBD4CJgBRAAABBwhuAjUAAAALtgEAGRoADEEBKzUA//8AnP5pBR8FugImADEAAAEHCGoC4gAAAAu2AQAPEAAGQQErNQD//wCH/mkD5gQ+AiYAUQAAAQcIagI6AAAAC7YBABwdAAxBASs1AP//AGP/5wXdBzMCJgAyAAABBwl6A0MAAAANtwMCACggAwNBASs1NQD//wBE/+gEJwcWAiYAUgAAACcA1wD6AAABBwCNAPIBVABmQE4DADUB4DXwNQIV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GwKfG6AbArj/L7QbGwEBQQErXXErNf////0AAAVZBcICJgAkAAABBgr9nAAAJrECFrj/wEAPFho0UBYBIBYwFlAWnxYEuP8itBYWAQFBAStdcSs1//8AEwAABoUFwgAnACQBLAAAAQYK0gAAAC+yAwIPuP/AtQwRNLAPAbj/P0ARDw8BAUEBACAAoAACAEAINQABLitdNTUrXSs1NQD//wATAAAGhQXCACcAJAEsAAABBgrfAAAAL7IDAg+4/8C1DBE0sA8BuP8/QBEPDwEBQQEAIACgAAIAQAg1AAEuK101NStdKzU1AP//ABMAAAaFBcIAJwAkASwAAAEGCtMAAAArsgMCD7j/wLINETS4/z9AEQ8PAQFBAQAgAKAAAgBACDUAAS4rXTU1Kys1NQD//wATAAAGhQXCACcAJAEsAAABBgrgAAAAK7IDAg+4/8CyDRE0uP8/QBEPDwEBQQEAIACgAAIAQAg1AAEuK101NSsrNTUA//8AVgAABoUGuQAnACQBLAAAAQYK1FAAACi2AwI/D6APArj/mEARDw8BAUEBACAAoAACAEAINQABLitdNTUrXTU1//8AVgAABoUGuQAnACQBLAAAAQYK4VAAACi2AwI/D6APArj/mEARDw8BAUEBACAAoAACAEAINQABLitdNTUrXTU1//8AYv/oA2MGJgImATAAAAEHCsMAhgBkABZACgEAMDEjI0EBASm5AiIAKQArASs1//8AYv/oA2MGJgImATAAAAEHCv0AkwBkABZACgEAKywjI0EBASa5AiIAKQArASs1//8AYv/oA2MGJgImATAAAAEGCtJkZAAcsQIBuP/hQAk0JSMjQQECAi25AiIAKQArASs1Nf//AGL/6ANjBiYCJgEwAAABBgrfZGQAHLECAbj/2kAJLyUjI0EBAgIquQIiACkAKwErNTX//wBi/+gDYwYmAiYBMAAAAQcK0wCMAGQAH0ARAgE0QBogNAg0JSMjQQECAi25AiIAKQArASsrNTUA//8AYv/oA2MGJgImATAAAAEHCuAAjABkAB9AEQIBL0AaIDQILyUjI0EBAgIquQIiACkAKwErKzU1AP//AAAAAAWwBcIAJwAoAMgAAAEHCsP/GwAAAC9ACwEAGAEAGBAYIBgDuP90thgYAQFBAAG4/8BACQcINC8BXwECAQEuXSs1K11xNQD//wAA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QQIBF7kDLAApACsBKzX//wAAAAAEcQXhAiYNiQAAAQcA1wDkADcAFkAKAgAWIgYHQQIBFrkDLAApACsBKzX//wAAAAAEcQXGAiYNiQAAAQcAjgDQAAMAGUAMAwIAFh0GB0ECAwIWuQMsACkAKwErNTUA//8AAAAABHEFtgImDYkAAAEHANsA0//JABhACwMCABYcBgdBAwIluAMrAD81NQErNTX//wBc/mEEfQSDAiYNiwAAAQcA3AEKAAYAC7YBADc3BQVBASs1AP//AJgAAAQjBhECJg2NAAABBwBDAPgATwAWQAoBAA0MAgNBAQENuQMsACkAKwErNf//AJgAAAQjBhICJg2NAAABBwCNAQEAUAAWQAoBAAwPAgNBAQEMuQMsACkAKwErNf//AJgAAAQjBhECJg2NAAABBwDWAQMATwAWQAoBAA4RAgNBAQEOuQMsACkAKwErNf//AJgAAAQjBcYCJg2NAAABBwCOAQcAAwAZQAwCAQAMEwIDQQECAgy5AywAKQArASs1NQD////0AAABbAYRAiYNkQAAAQYAQ5tPABZACgEABQQCA0EBAQW5AywAKQArASs1//8AjgAAAf8GEgImDZEAAAEGAI2wUAAWQAoBAAQHAgNBAQEEuQMsACkAKwErNf///7YAAAIvBhICJg2RAAABBgDWnVAAFkAKAQAGCQIDQQEBBbkDLAApACsBKzX////aAAACCwXGAiYNkQAAAQYAjp0DABlADAIBAAQLAgNBAQICBLkDLAApACsBKzU1AP//AJgAAARUBeECJg2WAAABBwDXAUAANwAWQAoBAAwYBgtBAQEMuQMsACkAKwErNf//AFz/7gTVBhICJg2XAAABBwBDASYAUAAWQAoCACkoAABBAgEpuQMsACkAKwErNf//AFz/7gTVBhECJg2XAAABBwCNAU8ATwAWQAoCACgrAABBAgEouQMsACkAKwErNf//AFz/7gTVBhECJg2XAAABBwDWAT8ATwAWQAoCACotAABBAgEpuQMsACkAKwErNf//AFz/7gTVBeACJg2XAAABBwDXAUQANgAWQAoCACg0AABBAgEouQMsACkAKwErNf//AFz/7gTVBccCJg2XAAABBwCOAUIABAAZQAwDAgAoLwAAQQIDAii5AywAKQArASs1NQD//wCR/+4ETgYRAiYNnQAAAQcAQwEU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AAAAC7YBABYRBQBBASs1AP//AJgAAARUBhECJg2WAAABBwDfAQwATwAWQAoBABEOBgtBAQEQuQMsACkAKwErNQABAJj/7QR6BIQAKABdQDZJHgFIGgFmDwFXDwFmCQFXCQFIAwEMJAAdEB0CHR0oKhUUJgEBJiUoKAoVGBwUEQsfHAIHBwG4AyoAPzMvM+0/M+0yPwEv7TIvEMYyERI5L13tMTBdXV1dXV1dEzMVPgMzMh4CFRQOAiMiJic3FhYzMj4CNRAhIg4CBwYVESOYuitWWFwxaqd0PTloklo/cSpTH0ImLU05IP7LMllLNw8dugRxfSo3IQ5KkNaLmeOWSiMdixMZMWundgGpFyo7JEmZ/ZQA//8AXP/uBNUFrgImDZcAAAEHANgBQwBPABZACgIAKCsAAEECASi5AywAKQArASs1//8AXP/uBNUF/QImDZcAAAEHANkBQwBFABZACgIALykAAEECASy5AywAKQArASs1//8AXP/uBNUGEQImDZcAAAEHAN0BTgBPABlADAMCACgvAABBAgMCKLkDLAApACsBKzU1AP//AJgAAATJBhECJg2aAAABBwCNAP8ATwAWQAoCACEkCxxBAgEhuQMsACkAKwErNf//AJj+WwTJBHECJg2aAAABBwHuAUQAAAALtgIAISYJAUEBKzUA//8AmAAABMkGEQImDZoAAAEHAN8A9ABPABZACgIAJiMLHEECASW5AywAKQArASs1//8ASv/uBBkGEgImDZsAAAEHAI0A/wBQABZACgEAPD82NkEBATy5AywAKQArASs1//8ASv/uBBkGEQImDZsAAAEHANYA4ABPABZACgEAPkE2NkEBAT65AywAKQArASs1//8ASv5bBBkEgwImDZsAAAEHANwA9wAAAAu2AQBOThcXQQErNQD//wBK/+4EGQYSAiYNmwAAAQcA3wDQAFAAFkAKAQBBPjY2QQEBQLkDLAApACsBKzX//wBK/dkEGQSDAiYNmwAAAQcB7QDlAAAAC7YBAD0+FxdBASs1AP//ACn+WwPnBHECJg2cAAABBwDcALQAAAALtgEACQoDAkEBKzUA//8AKf3ZA+cEcQImDZwAAAEHAe0ArgAAAAu2AQAJCgMCQQErNQD//wApAAAD5wYRAiYNnAAAAQcA3wCjAE8AFkAKAQANCgQBQQEBDLkDLAApACsBKzUAAQApAAAD5wRxAA8AMkAUBQQAAiUNCwoICwIrBQgIBgEMKw64AyqxBgoAPz/9xBE5L8T9xAEvzcTM/c7NxDEwASERIRUhESMRITUhESE1IQPn/nsBBP78uP77AQX+fwO+A9H+jZT+NgHKlAFzoP//AJH/7gROBeACJg2dAAABBwDXARkANgAWQAoBACAsDx9BAQEguQMsACkAKwErNf//AJH/7gROBa4CJg2dAAABBwDYARkATwAWQAoBACAjDx9BAQEguQMsACkAKwErNf//AJH/7gROBfwCJg2dAAABBwDZARkARAAWQAoBACchDx9BAQEkuQMsACkAKwErNf//AJH/7gROBmcCJg2dAAABBwDbARsAegAZQAwCAQAgJg8fQQECAim5AywAKQArASs1NQD//wCR/+4ETgYSAiYNnQAAAQcA3QEkAFAAGUAMAgEAICcPH0EBAgIguQMsACkAKwErNTUA//8Akf5SBE4EcQImDZ0AAAEHAN4BuwAAAAu2AQA0NAcHQQErNQD//wAeAAAGOwYRAiYNnwAAAQcA1gHXAE8AFkAKAQAoKxkaQQEBKLkDLAApACsBKzX//wAeAAAGOwYRAiYNnwAAAQcAQwG6AE8AFkAKAQAnJhkaQQEBJ7kDLAApACsBKzX//wAeAAAGOwYRAiYNnwAAAQcAjQHzAE8AFkAKAQAmKRkaQQEBJrkDLAApACsBKzX//wAeAAAGOwXGAiYNnwAAAQcAjgHXAAMAGUAMAgEAJi0ZGkEBAgImuQMsACkAKwErNTUA//8ACAAABGQGEQImDaEAAAEHANYA3QBPABZACgEAERQFAEEBARG5AywAKQArASs1//8ACAAABGQFxgImDaEAAAEHAI4A2QADABlADAIBAA8WBQBBAQICD7kDLAApACsBKzU1AP//AAgAAARkBhECJg2hAAABBwBDAMAATwAWQAoBABAPBQBBAQEQuQMsACkAKwErNf//AB8AAAPhBhECJg2iAAABBwCNALQATwAWQAoBABIVCQpBAQESuQMsACkAKwErNf//AB8AAAPhBdoCJg2iAAABBwDaAL8AUAAWQAoBABIVCQpBAQESuQMsACkAKwErNf//AB8AAAPhBhICJg2iAAABBwDfANIAUAAWQAoBABcUCQpBAQEWuQMsACkAKwErNf//AAAAAARxBoYCJg2J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AQcNPwFb/4QAB7IAAAoAPzUA//8AKv/uAn8C7wEHDUABVP+EAAu0AgEAEAsAPzU1NQD//wAz/+4CfwLvAQcNQQFX/4QACbMBABULAD81NQD//wAuAswCjAXNAQcNPgFdAmIACbMBABMDAD81NQD//wAzAswCfwXNAQcNQQFXAmIACbMBABEDAD81NQD//wAiAswCiAXNAQcNOAFVAmIACbMBAAoDAD81NQD//wBq/90FbQcsAiYNdQAAAQcAQwGWAWoAFkAKAgBJSCYmQQIBSbkCIQApACsBKzX//wBq/90FbQcsAiYNdQAAAQcAjQG6AWoAFkAKAgBISyYmQQIBSLkCIQApACsBKzX//wBq/90FbQcsAiYNdQAAAQcA1gGWAWoAFkAKAgBKTSYmQQIBSrkCIQApACsBKzX//wBq/90FbQcUAiYNdQAAAQcA1wGWAWoAFkAKAgBIVCYmQQIBSLkCIQApACsBKzX//wBq/90FbQctAiYNdQAAAQcAjgGWAWoAGUAMAwIASE8mJkECAwJIuQIhACkAKwErNTUA//8Aav/dBW0HfwImDXUAAAEHANsBlgGSABlADAMCAEhOJiZBAgMCUbkCIQApACsBKzU1AP//AGr/3QVtBskCJg11AAABBwDYAZYBagAWQAoCAEhLJiZBAgFIuQIhACkAKwErNf//AGr/3QVtByICJg11AAABBwDZAZYBagAWQAoCAE9JJiZBAgFMuQIhACkAKwErNf//AGr+UgVtBdMCJg11AAABBwDeA7sAAAALtgIAXEgBAEEBKzUA//8Aav/dBW0HxQImDXUAAAAnANsBnQEJAQcAjQGxAgMAM0AhBABgYFRUQQMCAEhOJiZBBM9gAb9gAa9gAQ9gAWADAlcDAD81NS9dXV1dNQErNTUrNQD//wBq/90FbQXTAgYNdQAA//8AY//nBW8HLAImDXYAAAEHAEMBdQFqABZACgIAKSgPD0ECASm5AiEAKQArASs1//8AY//nBW8HLAImDXYAAAEHAI0BugFqABZACgIAKCsPD0ECASi5AiEAKQArASs1//8AY//nBW8HLAImDXYAAAEHANYBlgFqABZACgIAKi0PD0ECASq5AiEAKQArASs1//8AY//nBW8HLQImDXYAAAEHAI4BlgFqABlADAMCACgvDw9BAgMCKLkCIQApACsBKzU1AP//AGP/5wVvBskCJg12AAABBwDYAZYBagAWQAoCACgrDw9BAgEouQIhACkAKwErNf//AGP/5wVvByICJg12AAABBwDZAZYBagAWQAoCAC8pDw9BAgEsuQIhACkAKwErNf//AGP/5wVvBvQCJg12AAABBwDaAZYBagAWQAoCACgrDw9BAgEouQIhACkAKwErNf//AGP+UgVvBdMCJg12AAABBwDeAmEAAAALtgIAKysFBUEBKzUA//8AY//nBW8HLAImDXYAAAEHAN8BlgFqABZACgIALSoPD0ECASy5AiEAKQArASs1//8AY//nBW8F0wIGDXYAAP//AGP/5wVvBy0CJg12AAABBwCOAZYBagAZQAwDAgAoLw8PQQIDAii5AiEAKQArASs1NQD//wCmAAAFXAcUAiYNdwAAAQcA1wGnAWoAFkAKAQAdKQ4bQQEBHbkCIQApACsBKzX//wCmAAAFXAcsAiYNdwAAAQcAjQG9AWoAFkAKAQAdHw4bQQEBHbkCIQApACsBKzX//wCm/lsFXAXTAiYNdwAAAQcB7gG5AAAAC7YBACciDRxBASs1AP//AKYAAAVcBywCJg13AAABBwDfAaoBagAWQAoBACIfDhtBAQEhuQIhACkAKwErNf//AJz/5wVSBywCJg15AAABBwBDAZYBagAWQAoBAB4dHA1BAQEeuQIhACkAKwErNf//AJz/5wVSBywCJg15AAABBwCNAboBagAWQAoBAB0gHA1BAQEduQIhACkAKwErNf//AJz/5wVSBy0CJg15AAABBwCOAaABagAZQAwCAQAdJBwNQQECAh25AiEAKQArASs1NQD//wCc/+cFUgcUAiYNeQAAAQcA1wGnAWoAFkAKAQAdKRwNQQEBHbkCIQApACsBKzX//wCc/+cFUgbJAiYNeQAAAQcA2AGnAWoAFkAKAQAdIBwNQQEBHbkCIQApACsBKzX//wCc/+cFUgciAiYNeQAAAQcA2QGnAWoAFkAKAQAkHhwNQQEBIbkCIQApACsBKzX//wCc/+cFUgd/AiYNeQAAAQcA2wGmAZIAGUAMAgEAHSMcDUEBAgImuQIhACkAKwErNTUA//8AnP/nBVIHLgImDXkAAAEHAN0BoAFsABlADAIBAB0kHA1BAQICHbkCIQApACsBKzU1AP//AJz+UgVlBboCJg15AAABBwDeA8cAAAALtgEAMR0PDkEBKzUA//8AOwAAAscHLAImDYYAAAEHAEMAIQFqABZACgEADQwKA0EBAQ25AiEAKQArASs1//8AOwAAAscHLAImDYYAAAEHAI0AOQFqABZACgEADA8KA0EBAQy5AiEAKQArASs1//8AOwAAAscHLAImDYYAAAEHANYALAFqABZACgEADhEKA0EBAQ65AiEAKQArASs1//8AOwAAAscG4QImDYYAAAEHAI4ALAEeABlADAIBAAwTCgNBAQICDLkCIQApACsBKzU1AP//ADIAAALQBxQCJg2GAAABBwDXACwBagAWQAoBAAwYCgNBAQEMuQIhACkAKwErNf//ADsAAALHBwgCJg2GAAABBwDZACwBUAAWQAoBABMNCgNBAQEQuQIhACkAKwErNf//ADv+UgLHBboCJg2GAAABBwDeAI0AAAALtgEADw8JBEEBKzUA//8AOwAAAscG9AImDYYAAAEHANoALQFqABZACgEADA8KA0EBAQy5AiEAKQArASs1//8AOwAAAscFugIGDYYAAP///6wAAAPbBcIAJw2GARQAAAEHAI3+zgAAABS5AAH/zrcODgAAQQENAgA/NQErNf//ADsAAALHBuECJg2GAAABBwCOACwBHgAZQAwCAQAMEwoDQQECAgy5AiEAKQArASs1NQD//wA7AAACxwW6AgYNhgAA//8AOwAAAscG4QImDYYAAAEHAI4ALAEeABlADAIBAAwTCgNBAQICDLkCIQApACsBKzU1AP//AIn/8gIKBx0CJg2HAAABBwCN/6wBWwAWQAoBABQXEhNBAQEUuQIhACkAKwErNf//AE7+WwIKBboCJg2HAAABBgHu4wAAC7YBACMjAABBASs1AP//AIn/8gJpBboAJg2HAAABBwC2ASz/8QASQAoBaxUVExNBARUCAD81ASs1//8Aif/yAqAFugAmDYcAAAEHANoA3P1WAAu2AYQVFRMTQQErNQAAAQAH//ICCgW6ABsAXEAyFRgZFBkSGxoTFBMSGhkICRsYJRUAEiASAhIaHBlHFFcUAhQcExkTGRMMFgIIBRwJDAsAPzPtMj8SOTkvLxDtXRDtAS9dxP3EzDLdxBDdxH2HBMTEEIfExDEwARQeAjMyNjcXBgYjIi4CNREHNTcRMxE3FQcBPQUUKSMSKBYYKEMcX2UvB4KCtIaGAS0nOCMRBQOgCAgxVndHAQdunm4C3v26c51zAP//ADsAAALHBywCJg2GAAABBwBDACEBagAWQAoBAA0MCgNBAQENuQIhACkAKwErNf//ADsAAALHBywCJg2GAAABBwCNADkBagAWQAoBAAwPCgNBAQEMuQIhACkAKwErNf//ADsAAALHBywCJg2GAAABBwDWACwBagAWQAoBAA4RCgNBAQEOuQIhACkAKwErNf//ADsAAALHBuECJg2GAAABBwCOACwBHgAZQAwCAQAMEwoDQQECAgy5AiEAKQArASs1NQD//wAyAAAC0AcUAiYNhgAAAQcA1wAsAWoAFkAKAQAMGAoDQQEBDLkCIQApACsBKzX//wA7AAACxwcIAiYNhgAAAQcA2QAsAVAAFkAKAQATDQoDQQEBELkCIQApACsBKzX//wA7/lICxwW6AiYNhgAAAQcA3gCNAAAAC7YBAA8PCQRBASs1AP//ADsAAALHBvQCJg2GAAABBwDaAC0BagAWQAoBAAwPCgNBAQEMuQIhACkAKwErNf//AKT+WwVgBboCJg17AAABBwHuAXEAAAALtgEACxADAUEBKzUA//8ARv/nA98FwgImDX0AAAEHAEMAvAAAABZACgIAKysQEEECASu5AiIAKQArASs1//8ARv/nA98FwgImDX0AAAEHAI0A1gAAABZACgIAKi0QEEECASq5AiIAKQArASs1//8ARv/nA98FwgImDX0AAAEHANYAvAAAABZACgIALC8QEEECASy5AiIAKQArASs1//8ARv/nA98FqgImDX0AAAEHANcAxgAAABZACgIAKjYQEEECASq5AiIAKQArASs1//8ARv/nA98FwwImDX0AAAEHAI4AxgAAABlADAMCACoxEBBBAgMCKrkCIgApACsBKzU1AP//AEb/5wPfBe0CJg19AAABBwDbAMUAAAAZQAwDAgAqMBAQQQIDAjO5AiIAKQArASs1NQD//wBG/+cD3wVfAiYNfQAAAQcA2ADGAAAAFkAKAgAqLRAQQQIBKrkCIgApACsBKzX//wBG/+cD3wW4AiYNfQAAAQcA2QDGAAAAFkAKAgAxKxAQQQIBLrkCIgApACsBKzX//wBG/lIEAAQ9AiYNfQAAAQcA3gJiAAAAC7YCAD4qAQBBASs1AAAC/6f+aAIgBcIAAwAKADNAFggECQoEBwQGBQQEAiUAAxAHBAUKAQYAP97E3c0/AS/tORkv3RjNETkZEN0YzRE5MTATETMRAwcjEzMTI4m0V3HO2MDhzP5oBb36QwbsqgEY/uj//wCH/lsD+AW6AiYNfwAAAQcB7gDDAAAAC7YBAAsQAwFBASs1AP//AIn/8gIKBx0CJg2HAAABBwCN/6wBWwAWQAoBABQXEhNBAQEUuQIhACkAKwErNf//AE7+WwIKBboCJg2HAAABBgHu4wAAC7YBACMjAABBASs1AP//AIn/8gJpBboAJg2HAAABBwC2ASz/8QASQAoBaxUVExNBARUCAD81ASs1//8Aif/yAqAFugAmDYcAAAEHANoA3P1WAAu2AYQVFRMTQQErNQD//wAH//ICCgW6AgYOmwAA//8ADv5bAj8FLQImDYIAAAEGANzeAAALtgEADQ4BAEEBKzUA//8ADv5bAj8FLQImDYIAAAEGAe7iAAALtgEADBsBAEEBKzUA//8ADgAAAwAGGQAmDYIAAAEHALYBwwBQABJACgEAFBQJCUEBEwcAPzUBKzUAAQAOAAACPwUtABMANkAaExIODBAlCQcFBAIFEBMCAgAPBisKCQwGAAoAPz/Ezf3EEjkvxN3EAS/NxMzE/cTOzcQxMCEjESM1MxEjNTMRMxEzFSMRMxUjAYGymprBwbK+vpmZAgKEARSLAQj++Iv+7IT//wCF/lID5QXCAiYNgwAAAQcAjQDjAAAAFkAKAQAsLx0rQQEBLLkCIgApACsBKzX//wCF/lID5QXCAiYNgwAAAQcA1gDcAAAAFkAKAQAuMR0rQQEBLrkCIgApACsBKzX//wCF/lID5QXDAiYNgwAAAQcAjgDVAAAAGUAMAgEALDMdK0EBAgIsuQIiACkAKwErNTUA//8Ahf5SA+UFwgImDYMAAAEHAEMAwAAAABZACgEALSwdK0EBAS25AiIAKQArASs1AAMAV//dBJsEgwAtAD0ASwDAQG51PQGFCgEuHSE5JBAaJDMrKioAJUQiJCE+HkQhCz8zEDMhITMQA01EJAgJABkAAoYlAVUlZSV1JQMAJQMiZj52PgKDHgFUHmQedB4DiT8BPx4+A0l1CwFWC2YLAnQuhC4CZi4BLgsdAyEhSTYcFbgDK7dJHAMqKysDCwA/My8zEO0/7RE5Lxc5XV1dXRIXOV1dXV0zEjk5XV1dAS/tEhc5Ly8vEjk5ERI5ORDtETk5Mi8zEO0Q7RE5OTEwAF1dJQYGIyIuAjU0NjcuAzU0PgIzMh4CFRQGBxc2NjcXBgYHHgMXByYmAT4DNTQmIyIGFRQeAhMBDgMVFB4CMzI2A05Ns2lRkG1AkZIoMhsKKVB1TD1tUC9ufdoTHgu/FkQlEzQ4ORp1MGz+ly04HwpJNjdLCRkt5f7xOUkpECE5Ty1JhIFORTBXeUlsnkIuSDw1GzRdRSgjQVs4UZJA7yNjLSBMkDISKCglD4wdUQKEGy4sLBk2OTQ1Dh4sPf32ATEfODc3HSlEMBs6AP//ABcCzAKOBbsBBw08AVICUAAJswEABAIAPzU1AP//ACICzAKDBbsBBw09AVICYgAHsgAOAgA/NQD//wBJAt4CbgW7AQcNPwFbAmIAB7IABAIAPzUA//8AKgLMAn8FzQEHDUABVAJiAAu0AgEABAMAPzU1NQAAAgAVARkEyAQxAHMAgADeQChWbgFWbQGKXwF5XwFqXwFnVndWh1YDaUZ5RolGA5dFp0W3RQNVUwFTuAMDQAkOx0XXRQJFRUy4AwO3UXt7JXUvNDy4AwOzHHR0NLgDA7Y4UThROCViuAMDty9nP2cCZ2deuAMDtggAAIIlRT+4Au+3FmdnUVE4L3W4ApSye3R+uALvtiUcICAWXlu4Au+zDggIFrgC6wA/My8z7TIRMy8zM/0yMv7dzTIvMy8Q7TIBLxEzLzPtMy9d7RE5OS8vEO0yLzPtEjk5ETkvEO0yL10z7V0xMF1dXV1dXV1dARQHDgMHByYmJyYmJwYGBw4DIyImJyYmJwYHBiMiLgI1ND4CNz4DNy4DNTQ3NjcXFhYXFhYzMjY3NjY3AyYmJyYmNTQ3NjY3FxMWFhceAzMyNjcDJiY1NDc2NjcWFhceAxceAwUnBgYHBgYHFhYzMjYEyAkEDA4NBRAwVCggKhIWLhwMICQkECA9GxogCyk3ODU4WkAiGCk0HAsyQk8pAgUFAxcTIBsLFQsMOzkXKg4MIRQ7BAQCBAMXChkQFD4IHxMKIiktFA4QAk8CAxcKGQ4CEQ8JDQsIBAcJBQL8+RMtURgVIREWNzIcPAIiJh4OJSYjDCUCDw4LJx0gLREHDgwHDxQTQB47JyYJDxYNFTxCQhsLHiMmEwcWGBUIISsiJqQ+cTY3OQ8KCB8eAREQGgoUHAgiKxEjE2/+zCs+FwwWEgwMGwFwFBwIISwTIxENT0QpOi4mFSQyJRw6bxAgDg0zHAkKIQACAJ0A5gSUBm0AIAAqALRAaR4dGQUYGAsUFBMTDQ4INSJVIgIkIgF8I4wjAkkjASUjASIjIT4LAQ8LHwsvCwMLCyEkJSgpOCloKQOZKAGIKAE5KHkoAigoASkoKicnLCEqIyMkKCcdHRQUGRYICAUDIRYbGxMWDQ0kJwAvzTIvzDIyLxDMzTIyLxDMMi8yLxDNETkvAS/NEjkvEjk5XV1dXV3NzRE5L11dEjk5XV1dXV0z3c0zLzMZLxEzGC8z3d7NMTABFAYjIicGBgcWFhUUByMmJyYmJzcWMzI3MxYzMjczFBYlATMTIRUjASMBA80zMz4TEDMjExcSJQwZDjYqLzFGSA8kCDIzCyIC/TsBrgbQAQhd/sA2/dwGD1pPJRcTAjNiNjJsoEwqYzySWmRTUwkmVfusAbZK/WEFhwACAJ0A5gSUBm0ACQAoAK5AYrgHAZkHAYgHAXkHATgHAQcIBgkaGRkLCgoiJhYWDiYdHYMBAScBAQIBEgECjQIBewIBXAJsAgIBAg8mHyYCJiYAAwQGBioJAAICAwcGFhMZGg4LJigiHRoTEygAGigLCwMGAC/NMi/d3MwSORkvEjk5EjkSORgQzRE5EM0ROS8BL80SOS/NzRE5L105OV1dXV1dXTMvEM0yLxDMMi8zMi8zERI5OV1dXV1dMTABATMTIRUjASMBAQcmJjU0NzY2NycmNTQ2NwcGBhUUFhcWFRQHBhUUFwEIAa4G0AEIXf7ANv3cAso8e3AeCCIaSCtzexI8NR8lSUJBqwZt+6wBtkr9YQWH/gOHBiwmLDYQMiMhFhkwikxtFikNChANGREQQ0QYKA8AAgAaAPIFxwWGAEIAUADtQCeJHwGEGwGFBgFDIAE0IAEVICUgAgcfAXYbAVkGAXkFAWsFAV4FASm4Av2ySjMEuAMDQBMhe0OLQwJaQ2pDAkMjITo6OTkAuAMDQA82SiE2NiFKA1IODBcYGBq4AwO1EQw5OjouuALvQCZITnUzhTMCZjMBVTMBQzNOAAIjAyVmNoY2AjY2Tg4XERISGBcXTrwC7wAlABwC7wAJAC/93u0yLzMzL80ROREzL10SFzkSOTldXV0Q3u0yLzMBL87tMi8zEjkRFzkvLy8Q7TMvORkvETMzXV0YEO0yEO0xMABdXV1dXV1dXV0BXV1dAQYHFRUUBwYGIyImNTQ3BgYHNT4DNxcGFRQhMjY3NjU0JwYjIicmNTQ2NzYzMhcWFhc2NjcmJic3HgMXFhYVBSYmJyYjIhUUFxYzMjYFx3Bvt1LQcsLINlCRTiVeZGcvKGMBSVWmTrIQUUNTNkAbHT1WckALEwcoVy0HKDBDEhgQCgQODP6TDRQGHCZZHRwiEzIDm0UeELu+ZC0soaSOmRBILXQdNzAqEBHtge8hIk+DTyQmJy5dNmczb5odOiAOKBk6YzCLFSAZFw0mcjx3HS0IKE4fERAIAAAEAIUBCgRxByQADwATACMAMwBbvwAkAu0ALAAcAu0AFAATAwC3EBQQFBARNQC4Au2yCAgSuwMAABEABALutAwMEzAguALutRgoKBgYEQAvMy8zLxD9xC8zL+0BL+0yL+0REjk5Ly8Q7RDt3u0xMAEUBwYjIicmNTQ3NjMyFxYlASMBAxQHBiMiJyY1NDc2MzIXFgUUBwYjIicmNTQ3NjMyFxYB8CYmNzYnJiYlODglJgG//UNtArcpJyY3NiYlJSU3NicnAV4nJjc2JiUlJTc2JycGSzUpJycpNTYkJSUko/nmBhr6vTUnJiYlNzklJygnNjUnJiYlNzklJygnAAUAhQEKBacHJAAPABMAIwAzAEMAZb8ANALtADwAJALtACwAHALtshQsE7gDALcQLBAsEBFFALgC7bIICBK7AwAAEQAEAu61DAwTQCAwuALutDgYKCgRAC8zL8TE/cTELzMv7QEv7TIv7RESOTkvLxDtEN7tEP3e7TEwARQHBiMiJyY1NDc2MzIXFiUBIwEDFAcGIyInJjU0NzYzMhcWBRQHBiMiJyY1NDc2MzIXFgUUBwYjIicmNTQ3NjMyFxYB8CYmNzYnJiYlODglJgG//UNtArc9JyY3NiYlJSU3NicnAVQnJjc2JiUlJTc2JycBVCcmNzYmJSUlNzYnJwZLNSknJyk1NiQlJSSj+eYGGvq9NScmJiU3OSUnKCc2NScmJiU3OSUnKCc2NScmJiU3OSUnKCcAAQCZARkBjAJ9AAsAIUAMCQMJAwAGBgAGAAkDAC/NOTkZLy8BGC/NOTkZLy8xMAEGBgcmJic2NjcWFgGMERwMK1wzDSEVIVgB9jlrORg/KjdyOh5EAAABAIkA3QGcBEUAEQBCQCdGEFYQZhADjAsBegsBPgsBLQsBDQ1/DI8MAhgMAQwMAwAECgwNDQMALzMvMwEvM80yMy9dXTkZLzEwAF1dXV1dARQGByM0NjU2NjUQAzcWFhcWAZwPEC4BAQHJSDBCF0ICFiqccwoZEREbCAFUARGbN2o0mAABACwA3QH6BFUAIwBPQCxpFnkWiRYDdQaFBgJEBlQGZAYDBhgLGRkYGBEhICAQCxEgISEZBgQbGBkZEAAvMy8z3s0yETMvMwEvzTIyL80RMy8zGS8REjldXTEwXQEUBwYjIiceAxUUDgIHIy4DJyYnNxYzMjc2Njc3FhYB+icsTRgcDRYQCAMFBgQsAg8TFgk1fzBydFAhCAwGJgQDA9NVLjYGHUxQTh8pR0REJUmDbFMYlKmYqTgRNigCHUEAAQAeAN0CBwRVACcAXEAvmhQBeRSJFAJYE2gTAiIhGwYcHAkVDBYWFRUQDwwJCQYDHxgYHxYhIRYbGxUWFg8ALzMvMzMvETMvEMwyLxDNMjIvAS8zzTIvMxkvERI5MxgvM83ezTEwXV1dARQGIyImJwYGBxYWFRQGByMmJyYmJzcWMzI2NzMWFjMyNzMUFhcWFgIHOS0cMRETPyogFgoKKQweDzsuKjxRKzIJHwUgHTsMIAEBAQEECWFfFx8oKQNUqVgofFX6fUKgXrGFQkw/NnwHEg0MFAAAAQBjAOEBwgRKAB0ATEAjBxcMDAMcDw4OFxcBABwSEhwSFxwDAA8OAwEMDgcHAQ4OAAEAL80zLxI5GS8SORI5GBDNERc5AS8zLxDOMjIvMy8zEM0yLxE5MTABByQ1NDc2NyYmJyY1NCUHBgYVFBYXFhUUBgcGFRQBwiv+zzIcVho0Gj8BFxVRRiYzZC8qWgF5mBRpPUoqYAsWDRwjiOaPITkTEBwTKBcMPzFlJD0AAgAwAXYB9gO0ABAAHgAtQBmLEwF5EwFIE1gTaBMDjRIBABEIGRUMDBsEAC/NMy/NAS/N3s0xMABdXV1dARQHBiMiJyY1NDc2MzIXFhYHNCcmIyIHBhUUMzI3NgH2QkyJTi00P0hWTE4kKzxfVjAnGheZRjEtAq2BVWEhIkVrmLNaKll3PEVARDcycxwcAAEAGwDrAgsEPAAoAElAJ2QodCgCVScBRicBNycBdgABAQEAACAjBxoTGQwHGRoaDA8gHh4AAQAvMzMvM80yMy8zAS8z3DLNEM0yMi8zGS8xMF1dXV1dAQcmJicmJjU0PgI3BgYjIicmNTQ0NzY0NTcWFxYzMjcGBhUUFhcWFgILHCg9FBwWAQIFBDNEEFoaOgMCGhIRH1NHjg4NGRYLKwGXrBctKDZ/Vw87RUUZCAkKFUYNJhgaJA0CKwscH1FyIlWVNBdBAAEAHQDdAggEQgAPADlAG2gPAYkIAXgIAQoKCQUMDQUBBAUBAAAJCgoNBQAvMzMvMzMvMgEv3RnOEjk5GBDOMhkvMTBdXV0BFQYCByMmJyYnNxITMzYSAghOXxQtKTs7XhWzSgcXZgRC1m/+vd3mlI9s7f7//oHNAT4AAQAdAOECCQRFABQAR0AmhhQBdxQBdhGGEQJHEQFaAmoCAgMEDw4BAQAPCw4EDw8BCwoKAAEALzMzLzMRMy8zAS8ZzhjdzjIZLxESOTkxMF1dXV1dAQcmAyMGBgcGBgc1NhI3MxYWFxYWAgkWvkAFFCMSFEYwTl8bLhU6HhlDAdHs8gGSebM5RZZI1l4BROyBxks8cAAAAgApANYB/QRRABoAJQAuQBMLIQcBAQAAFRsHBwkbIx0PDwABAC8zMy/d3jLNMgEvM80yLzMZLxgQ3M0xMAEHJiYnJiY1BiMiNTQ3NjMyFxYWFxcWFhcWFgM0IyIHBhUUMzI2Af0tKzUNBgNUK7I1Rnk8HgwQBAsGFg0FGpZkLCsqfgk0AXWfG2xLHn5kHYRTZ4hCGU02vld3JA8nAZ6XIyMbQQYAAAEAHgDdAgcESwAkAE5AIyQAABkYFCAgBA0HDg4NDQsKBxgZACQeBAIgFCIeFhYNDg4KAC8zLzMzL93eMjLNMhDeMs4yAS8zzTIvMxkvERI5MxgvzcwyMi8zMTABBiMiJxYWFRQGByMCAzcWFhcWFhc2MzIXByYmJyYjIgcWMzI3Agcmmz8sFhsNDCYFqi4YIgoLHhITgUc6CQkRCBgYcCM7KF9EA5/hJT+CQzZ7UQGgARWzN0cTER8O1VgTAwcDCJsXYgACACYA8AH/BDgAFQAlAElAIRgSEhMGIRYUFB0AFhYnHQwhIyMfCBgSEhMTFBQIBgQECAAvMy8zETMvMxEzETMQzTIvMwEvzRI5L80SORkvEjk5MzMRMzEwARQHBiMiJwYjIicmNTQ2NzY2Nyc3AAM0JwYGBwYVFDMyNxYzMjYB/ykuRCMfNT09JSgUGRtVPy0oAQI3oxgwGEJQLjsgNhcfAgdYUFgbMicoSSpjNjaKVTWj/tL+y2f1GkQockpnMykmAAEAHQDdAgkERgAiADJAFgEAABYVDBwcCQcGAQkhGBUWABgTEwcALzMv3d7OMhDezTIBL80yMy/NzDIyLzMxMAEHBgYHBgcjEjcmJjU0PgI3NjMyFwcmIyIHBhUUHgIzMgIJIDloK2kVLw1mYWUOGykbXENIZhVNMlIuLxsoMRVpA22PFFc9lcQBIKUNNy0SJi03I3SGEh8ZFRkYIhcLAAABAAgA3QIeBEgALQBSQCyDFAFUFGQUdBQDBhQWFAIUFyYmHBcBAAkqDQ0bFwABAQMsLCgUCxEqJigoHAAvMy8zM93MMxEzL80yLzMBLzMzLzPdzDIQzTIvEjldXV0xMAEHJiMiBgcGBgcGIyInJicmIyIGBxYSFRQUBwcjLgMnJicmJic2MzIXNjMyAh4KJycwMggBAgIFCAYFBg4YOQsUDjYzAQIhBgwNCwQeLBQ4JmF6SxgQWzUD3BUkR08EJSMJClchMwgHYv7fwgsmGzg0X1A9EYRhLGQ7imRkAAABACgApQH9BEYAJwBGQCRUImQiAgYiFiICIg0dBwAGBhcdFgwNDRYiDSQJBQcHCRYWDAkALzMzLxEzLzMQzTIyAS8zLzMQzTIyLzPNERI5XV0xMAEUFAcGBhUHJiMiBgcnNjY3NjY3NjY3MxQUFxYWFRQGBwYHNjMyFxYB/QIBAR0ec0l6NykmOBQWJQ8IGwshAQEBDw4eMjZTUx07AUANJRoaJQ0DVQ8PmjphKjFwQCKVcwsgFhYiCz+LTaZpCQkYAAEARv9SDFAB0wAQAClADgkJBAoEAA8BAwoJDwIBuQLvAAQAL+0zxN3NAS8zL83NzhE5GS8xMAUhJTUhNTQ3NjcXBgYHBgczDFD09v8ACuYbE0dOJi4KGwHbrqMLRrJNM1ujKD4WPnYAAQBG/x4NxgDtAEoAjUAjQwAWHSEDIzk6NjQwKgMoOBQ2AgMDAAUNBTYFNgVMJiglIxK4Au9ACj4+NCYlJTg5NB24Au+yMDQhuALvsyoqNEm4Au+1BwMCAhQWuQLvADQAL+0yMi8z3O0RMy/tENztEMwyMi8zETMv7QEvM80yEjk5Ly8SORDNMy8zETMzEhc5EM0yERc5ETkxMCUUByc2NTQjIg4CDAMGBiMiJwYjIicmJicmIyIHBiMiNTQ3FwYVFDMyNzY3NjMyFxYzMjU0JzcXFhcWMzI2NiwDPgIzMg3GrRpdIAtsreP+/P7m/ub+8PDFQmBPSW1HPwguJzAiLzuNbrE3GAaaT0lbFD4rM1FRL3oPKhUYKiY2RMjzARMBHgEfAQnotHIPbEx7sxhvKBwLFBodHx0aFAtDQzkHNC85QZv1cFYHJxjQQ1QPL2ZmajFKPF5sLikLFBoeHx4aFAsAAf+6/1IDqQAAAAQAFbQABAEEALkC7wACAC/tMwEvzTIxMAUhNSEVAqr9EAPvrq4LAAACAEb/Ug6MAWsAGgAiAFJAGYcTAXYTARMgGxENEAMDAA0BDRsaGiQGCBi4Au+2HRARIAUDAbgC77MTCQcgAC8zxMT9MsQQzDLe7QEvMxEzL93MXTIZLzIYEM0ROTldXTEwBSEiJwYjISU1ITI3NjU0Jic3EjMyNzc2MzIVBzQjIgcHMzIOjP0mQk44bfbJ/wAKOToeLAYFHzeGWV6jYWaXo1MxRHXnVq4/P6IMDhdFGj4jPP7fXq9e/hxkQXQAAv9bAAAApgGyACQAMABLQCQAJRsXFRUYGw0IEA4OLQYBCB4bFQ4NGAQXEBAGHgIhKCgCLgEAL93EMy/NETk5Mi/MFzkBLzPdzDMzMy8zEjkSOTIvMxDczTEwMyE1MzI2NzY1NC4CJyc2NxYXFhYXBgcnFhYVFAYHNjYzMhYVIzQmIyIOAgczMjam/rULDyIZDQgLDAQVBg0GFgcTCwELEA0NBgQkQCYoJzUeHA0iJSUPfSgdOxIPIB0ROz4yCAowGxEJAgQBFi0ELUAeFCkXGiIrMBENCQ8UCwwAAAH/kQI8AEIDkQAeADpAGxscCRYWFRUPDgYJFQMcHAAWARYYBg8DAQMDDwAvMy9dM93OXTIvETkBLzMzzTIvMxkvGBDczTEwExQGIyImJxYWFRQGBwYHIyYmJyYmJzcWMzI2NzMWFkIeHwUKBRQHAQEBAREJDgoKIxgSLCwgEwMOAgEDXx4pAQEwTyYGEwkLDDhLHh09IDpBJB0LGQAAAf+3Aj0AcwOTACUAR0AgISEgIBoWBwYRAAEBGRMWIA4hIQcHAAQjIwQOExMODhoALzMvMy8QzTIvEMwyLzIvEjkBLzMzMy/NM97NEM0yLzMZLzEwEzMWFjMyNzMVFBYVFAYjIiYnBgcWFhUUBgcjJiYnJiYnNxYzMjYlDAIMCxgDDQEWEQsSBw4iDQgEBBACCAYGFhIQFiAREwOQGBQvDQUJAiYkCQweAyBAIw8wITFFGhw7JUQzGQAAAf+bAkQAaAOVACcAQkAeExYgIBgWAQAIJAwMFgABAQMmJiQgIhETEQoKEREXAC8zLzMvETMQzTI5Mi/NMi8zAS8zLzPdzDIQzTIvEjkxMBMHJiMiBgcGBwYjIicuAyMiBxYWFRUjJiYnLgMnNjMyFzYzMmgEDhASFAIBAgIDAwECAgYPDQkJFRMOBQcFCA0QFQ4kMB0JBiMVA2wJDhsfDw4DBAwYEgsFJm9LMyk7ERspJSYYNScn//8ANv5OBCADdQImA6EAAAEHDtsCgAAAAB5ACwIBAC4tGRNBAgEuuP/AswwQNC4ALys1NQErNTX//wA2/k4ENQNpAiYDogAAAQcO2wJE/9gAHkALAgEAZD8EBEECAUC4/8CzDBE0QAAvKzU1ASs1Nf///7r/QgQ9A2sCJgOjAAABBw7bAhz/QgAnQAsCAQAYFwEAQQIBGLj/wLMJGDQYuP/AswwlNBgALysrNTUBKzU1AP///7r/QgQ9A2sCJgOjAAABBw7bAhz/QgAnQAsCAQAYFwEAQQIBGLj/wLMJGDQYuP/AswwlNBgALysrNTUBKzU1AP//ADb+TgQgA3UCJgOhAAAAJw7bArwAZAEHBm0BuP/EAD5AGAQDAGReGRJBAgEALi0ZEkEEA2NAEhU0Y7j/wLYJETRjAgEuuP/AswsQNC4ALys1NS8rKzU1ASs1NSs1Nf//ADb+TgQ1A2kCJgOiAAAAJw7bAlgAPAEHBm0BuP+wAFBAGAQDAHJwBARBAgEAZD8EBEEEA3VAEhU0dbj/wLMMDTR1uP/AtgkONHUCAUC4/8CzERI0QLj/wLMMDjRAAC8rKzU1LysrKzU1ASs1NSs1Nf///7r+SAQ9A2sCJgOjAAAAJw7bAhz/QgEHBm0BLP7UAEpAEwQDAE5IAQBBAgEAGBcBAEEEA024/8CzHCw0Tbj/wLMVFzRNuP/AtgkRNE0CARi4/8CzEyU0GAAvKzU1LysrKzU1ASs1NSs1Nf///7r+SAQ9A2sCJgOjAAAAJw7bAhz/QgEHBm0BLP7UAEpAEwQDAE5IAQBBAgEAGBcBAEEEA024/8CzHCw0Tbj/wLMVFzRNuP/AtgkRNE0CARi4/8CzEyU0GAAvKzU1LysrKzU1ASs1NSs1Nf//AD7/bAaSBsYCJgOxAAAAJwUuA/wEUgEHDtsE2AUUACxAGwQDAFBPTUdBAgEATUc0NEEEA1ACAUxADBE0TAAvKzU1LzU1ASs1NSs1Nf//AD7/bAaSBsYCJgOxAAAAJwUuA/wEUgEHDtsE2AUUACxAGwQDAFBPTUdBAgEATUc0NEEEA1ACAUxADBE0TAAvKzU1LzU1ASs1NSs1Nf///7oBJQQ/BsYCJgOzAAAAJwUuAZAEUgEHDtsCgAUUAC9AFgQDAEVEQjxBAgEAQjwpKUEEA0UCAUG4/8CzCQs0QQAvKzU1LzU1ASs1NSs1NQD///+6ASUEPwbGAiYDswAAACcFLgGQBFIBBw7bAoAFFAAvQBYEAwBFREI8QQIBAEI8KSlBBANFAgFBuP/AswkLNEEALys1NS81NQErNTUrNTUA//8ASv9GA+kGxgImA60AAAAnBS4BpARSAQcO2wKUBRQALEAbBAMAKCclH0ECAQAhHxkaQQQDKAIBJEAMETQkAC8rNTUvNTUBKzU1KzU1//8ASv9GA+kGxgImA60AAAAnBS4BpARSAQcO2wKUBRQALEAbBAMAKCclH0ECAQAhHxkaQQQDKAIBJEAMETQkAC8rNTUvNTUBKzU1KzU1//8ANv5OBCAGoAImA6EAAAEHBTMBLAAAABVACwIBAC4tBxJBAgEuAC81NQErNTUA//8ANv5OBDUGoAImA6IAAAEHBTMBLAAAABVACwIBAEA/KTNBAgFAAC81NQErNTUA////ugElBD0GoAImA6MAAAEHBTMA8AAAABVACwIBABgXCwNBAgEYAC81NQErNTUA////ugElBD0GoAImA6MAAAEHBTMA8AAAABVACwIBABgXCwNBAgEYAC81NQErNTUA////wwEKAVIGTQImA40AAAEHDtwAMgK8ABO5AAH/4bYVFQ0NQQEkAC81ASs1AP///18BJQHWBk0CJgOOAAABBw7c/84CvAARQAkBABcXDAxBASYALzUBKzUA////6QEKAVIGTwImA40AAAEHDt0AMgK8ABFACQEAICANDUEBLwAvNQErNQD///+FASUB1gZPAiYDjgAAAQcO3f/OArwAE7kAAf/Iti0tDAxBATEALzUBKzUA//8AMv+nBNkDsgImAzUAAAEHDtwCJgAAABFACQEAUTwhM0EBSwAvNQErNQD//wAk/x8EtQORAiYDNgAAAQcO3AImAAAAEUAJAQBMVRovQQFGAC81ASs1AP///7r/cwH0BIsCJgUpAAAAJw7cAMgA+gAGBS4HJ////7r/cwH0BIsCJgUpAAAAJw7cAMgA+gAGBS4HJ///ADL/pwTZA7ICJgM1AAABBw7dAiYAAAARQAkBAFxHITNBAVYALzUBKzUA//8AJP8fBLUDkwImAzYAAAEHDt0CJgAAABFACQEAQkIvL0EBUQAvNQErNQD///+6/3MB9ASNAiYFKQAAACcO3QDIAPoABgUuByf///+6/3MB9ASNAiYFKQAAACcO3QDIAPoABgUuByf//wAy/kgE2QOyAiYDNQAAAQcO3gKK/AQAGkAJAQBSVBoSQQFUuP/AswlDNFQALys1ASs1//8AJP3kBLUCBQImAzYAAAEHDt4DUvugADVACQEAVzcvDUEBT7j/wLMaKjRPuP/AsxcYNE+4/8CzExU0T7j/wLMJETRPAC8rKysrNQErNQD///+6/o4B9AOmAiYFKQAAACYGbQB4AQcO3gEY/EoAREARAwA1FRMNQQIBABMNAQBBAy24/8CzCxk0Lbj/wEAMCQk0LQIBEkASFDQSuP/AswkONBIALysrNTUvKys1ASs1NSs1////uv6OAfQDpgImBSkAAAAmBm0AeAEHDt4BGPxKAERAEQMANRUTDUECAQATDQEAQQMtuP/AswsZNC24/8BADAkJNC0CARJAEhQ0Erj/wLMJDjQSAC8rKzU1LysrNQErNTUrNf//ADL/YwN1A/UCJgPtAAABBw7cAcIAZAATuQAC/+i2KysYGEECOgAvNQErNQD//wAy/2MDdQP1AiYD7QAAAQcO3AHCAGQAE7kAAv/otisrGBhBAjoALzUBKzUA//8AMv9jA3UD9wImA+0AAAEHDt0BwgBkABFACQIANjYYGEECRQAvNQErNQD//wAy/2MDdQP3AiYD7QAAAQcO3QHCAGQAEUAJAgA2NhgYQQJFAC81ASs1AP//AEX/zQZ/A8MCJgZAAAABBw7cAcIAMgARQAkBAD4pBhdBATgALzUBKzUA//8ARf5XBn8DkQImBkEAAAEHDtwE4gAAABO5AAH+pbYZGQ4OQQEoAC81ASs1AP//AEX/zQZ/A8UCJgZAAAABBw7dAcIAMgARQAkBAEM/BhdBAUMALzUBKzUA//8ARf5XBn8DkwImBkEAAAEHDt0E4gAAABO5AAH+1rYkJA4OQQEzAC81ASs1AP//ADb+TgQgA3UCJgOhAAABBw7eAoD9qAARQAkBAE0tGRNBAUUALzUBKzUA//8ANv5OBDUDaQImA6IAAAEHDt4CCP2oABFACQEAXz8OBEEBVwAvNQErNQD///+6/2AEPQNrAiYDowAAAQcO3gH0/RwAI0AJAQA3FwEAQQEvuP/AsxQXNC+4/8CzCRE0LwAvKys1ASs1AP///7r/YAQ9A2sCJgOjAAABBw7eAfT9HAAjQAkBADcXAQBBAS+4/8CzFBc0L7j/wLMJETQvAC8rKzUBKzUA//8APv9sBpIEmQImA7EAAAEHDt4E9gEEABdADgEAXkc0NEEBX0AJEzRfAC8rNQErNQD//wA+/2wGkgSZAiYDsQAAAQcO3gT2AQQAF0AOAQBeRzQ0QQFfQAkTNF8ALys1ASs1AP///7oBJQQ/BJkCJgOzAAABBw7eAp4BBAAXQA4BAFM8KSlBAVRACRM0VAAvKzUBKzUA////ugElBD8EmQImA7MAAAEHDt4CngEEABdADgEAUzwpKUEBVEAJEzRUAC8rNQErNQD//wA+/2wGkgSvAiYDsQAAAQcFNwPU/vIAF0AOAQBLRzQ0QQFLQAkONEsALys1ASs1AP//AD7/bAaSBK8CJgOxAAABBwU3A9T+8gAXQA4BAEtHNDRBAUtACQ40SwAvKzUBKzUA////ugElBD8ErwImA7MAAAEHBTcBcv7yABdADgEAPzwpKUEBQEAJDjRAAC8rNQErNQD///+6ASUEPwSvAiYDswAAAQcFNwFy/vIAF0AOAQA/PCkpQQFAQAkONEAALys1ASs1AP//AC0BJQTPBrgCJgPZAAABBwUuAWgGLAAbQBADAgBKSgAAQQMCT0ALETRPAC8rNTUBKzU1AP//AC0BJQTPBrgCJgPZAAABBwUuAWgGLAAbQBADAgBKSgAAQQMCT0ALETRPAC8rNTUBKzU1AP///7oBJQMnBrgCJgMvAAABBwUuADIGLAAhQBUCAQAkJAoKQQIBI0AUFTQjQAsRNCMALysrNTUBKzU1AP///7oBJQMnBrgCJgMvAAABBwUuADIGLAAhQBUCAQAkJAoKQQIBI0AUFTQjQAsRNCMALysrNTUBKzU1AP///+AAogRoBk8AJgP7WgABBw7cAE8CvgATuQAC/+S2T08qKkECXgAvNQErNQD////gAPIFAAZPACYD/DIAAQcO3ABPAr4AE7kAAv/wtj8/EBBBAk4ALzUBKzUA////6ACiBEoGUQAmA/s8AAEHDt0AMQK+ABFACQIAWloqKkECaQAvNQErNQD////oAPIE4gZRACYD/BQAAQcO3QAxAr4AEUAJAgBKShAQQQJZAC81ASs1AAABADL/UgdIBTwAbACbQCRRTVhOTltYWAA9a0RsbG5hRDAsKygiJR4oMDULMBQTEzAlJSi4Au+0Hw41HxS4Au9ACxMfWE5NA1FbW2MruALvsywsYWO4Au+1REJsPT1suALvsgEBHwAvMy/tMi8Q3DLtMjIv7REzL80XORDc7RI5ORDtMi8BLzMvMxI5ORDdMt7NEM4yEN7NEjkvEjk5MzMvMzkvEjk5MTABIyIOAgcOAxUUFhceAxcHLgMnLgMnISImNTQ3MxYzITQmJzcWFxYXHgMXPgM3NjYzLgMjIgc3NjY3PgM3JzY2Nx4FFRQGBwcOAwc2MzIeAhcWFhczBw7xP4WBdjE/WDcZBAIWPUNFHzMpWVVKGR0rIRgJ/nNLSRMXFFYBcG6AD65ILwgIDxoqIwMnWZFsVsNaKn2Rmkc/QQUaRCwyYWx7TJ0YOxomUk9HNSAoImhGi4R5NBITQYR/dTE4WhdgARcCBQcFBw4UHRYFDAcQIR4XB9EGHysxFxo6R1k5OzRKP0vC7CjCVrl7wkdpUj8bLVhJMwcFAiA5KhkNDkhrISY4LysYYEJ0IgcfKCwrJQwybi8JBhQgLB4DK0JQJSo3BQATADIAtAXGBjgBNgFgAXsBqgG3AcQB0QHeAfwCGgIeAigCMgI2Aj0CSQJaAmECZwAAARcWFjMyPgI1NCc3FhYXJyc0NjcXFBcXFAcnFzMyPgI3NjY3NjMyFhUUBwcGBiMhExUzJjU0PgIzMhcWFwcmIyIHBhUUFzY3BwYjIRcVMzI2NzY1NCc3FhYXFjMzMjU0JzcXFjMyNTQnNxYXFhUVIyInBiMjIicGBgcGIyEiJicGBgcjNT4DNzY2NzY2NxYVMychIicGIyImNTQ3NjcmNTQ3FhcXFjMhJyc0NjcGIiMiNTQ3JicmJicGBwYGIyImJyYmJwYHBiMiJjU0Njc2NjcmJjU0NzY3FxYWFxYWMzI2NzY3JyY1NDc2NjcXFhYXFhYzMjY3JyY0NTQ3NjY3FxYWFxYWFRQHBgYHByImJwYVFDMyNjc2NjU0JicnJicmNTQ2NzcDJzQ2NxcUFxcUBycTEzMDJiYnBgYjIicnBx4DFxYVFAYHBgcWFxcUBycXMzQnJic3FhcWFQEUBwYjIi4CJzcWFjMyNzY2NyY1NDc2MzIVASMiJwYjIyInBgcGIyMnNTMyNzY1NCc3FhcWMzMyNTQnNxcWMzI1NCc3FhYXFhUBFAcnNjU0Jic2NjcWBTMyNjU0JicmJiMiBxMUBgcHNDY3PgM3ARQGBwc0Njc+AzclFAcGIyInBiMiNTQ3NxYzMjc2Njc3FhcWMzI3NxYDFAcGIyInBiMiNTQ3NxYzMjc2Njc3FhcWMzI3NxYBByc3ARQGBwc0Njc2NwEUBgcHNDY3NjcFByc3BSYnBgcWFwMGBgcGBgcWFjMyNyUuAyc2NjMyFhcWFhUUBwEGBxYzMjcBJiMiFRQDZQkHDgYLDgcDBhAOEw8ZFAgLBhooCxMZCxMeHBwPJTINLDEvQQQVIDsl/uwkTxoVJTQfMSEOHwc2KjYhH0dsdRuNkf4oGYIRGQgaBhEIDggUIhs8BhEIES4YJBoSBQkfLx8jNhoiKQoQBxIk/m4lQh0bPSd8GkA9MwwVKBkPHg1Cvxn+rTQZGisuPS4tQQYeCggUDxQBTAQVBggNGQ6WFA0JDRAIEhQKHg0NGAsLCQUQFxcULTUjFwk5IQIECQcNCwUHBQUYFwkRBQsPGwMJBAoFIgQLCAgkEAYGAR8CCQQKBQ4HCAMFBAMEDQQJBwwFCYMjUy8rLQwKchMLBxMIfSIVCAsGGigKFCFJZiUMFwgFIhQTDg9kDR8fGwkWKy09XAUVKAsTAuILBx8fHAgLAdYyNkcJFiI2KAYlLglFPBAnGW8TFiM+/ngTGhUVIBAUGQsICxavSPcTCQ4DCQsIDhYQJAQLBAocDxYQBQYCBv6XJgcDExMIEwsqAeG4Kj4XDQsmECg5txckuAoIASYwLAj8GBckuAoIASYwLAgBiQoKEhEQDRwhBAwBFwgLBAUCCQQDBg8TBwoC1QoKEhEQDRwhBAwBFwgLBAUCCQQDBg8TBwoCAfwfQR4B0BYkUAkIAyD8AxYkUAkIAyACuR5BHf6+CR8fFiI44BIhCQkNBwkWFBkUAgEBCA0QBwQLBQsJAwgGA/35QRcSIBgWBIAOIRwEeQkIBQ0TFAgUHRgxMAn2ChoxGAQYCxAvHgfvCRAUCxohBxcrKhANSBMK/qUJKy4YKR0RGAwlBw8MDBQrLBAjSDTpCQICCRYTFRQWHwsfKhYbGCVNGBovKxsPGy5gGxsZBwoCBhodKj8VCgkeJSkVJDkUDA4DZTDykDANCSIrKh8ZCBgjQh5xUicKFioVAXY1NwQFBQ8MGQ0FCwYICB8MFxEPDQsRORYJHQ8GFQYNEQ0QQhksFhYXBgQGFoIPBw0SBw0IpxEZCgkQBAuUCAsDDRIIDQdAICEQHRoLDwwLJQkUAQEgGGEHDAsVBQcGAhwFCgYHESYDKwFSChoxGAUXDBAyGgb+zf5EAWcDDQwRGA4OHgIFBgYDBhUiQxUfBxEJEC8eBhYtGxAiQSQVIUX+sUBDSQIIEA0OCAgzDS4gAVErIiiA/u4QEA8IAwQgCgMGEA8PDiAOFxkPDw4WLg4OHhoIDAURGwO3LkMEHxAypHURJhbwmg8PChAGBQUbATASHw9LCh0FAREUEgP8pBIfD0sKHQUBERQSAzYeExYJIigHFwUiEggQCAMRAggrAgoDXh4TFgkiKAcXBSISCBAIAxECCCsCCvx2OiI6AaoTHQ8gCxsFAw3+wBIeDyAKHAUDDUo6ITrCLCgIJiUGAxYGDQUFFQsEBBmLCRsgIAwFFw4IEzQRDg/+VhcmCBn+jEIaKAAdADIAtAb6BjgAkgDkASUBSQFkAX8BrgG/AcwB3gHrAfgCBQISAjACRAJIAlICXAJmAmoCcQJ4AokCmgKhAqgCrgK0AAABFxYWMzI+AjU0JzceAxcnJzQ2NxcUFxcUBycXNjY3NjY3NjMyFhUUBwcGBiMjFzMVByMXFTMmNTQ+AjMyFxYXByYjIgcGFRQXNjcHBiMhIicGIyImNTQ3NjcmNTQ3FhcXFjMzNC4CJyYnNxYXFhUVMychIicmNTQ2NzY2NzY2NzcDJzQ2NxcUFxcUBycTAScnNDcXFhcXFAcnFxUhMjY3NjU0JzcWFhcWMzMyNTQnNxcWMzI1NCc3FhcWFRUjIicGIyMiJwYGBwYjISImJwYGByM1PgM3NjY3NjY3FhUTFAYHBy4DJwYjIicmJwYjIicmNTQ3NjcmNTQ3FhYXFjMyNjcnJiY1NDcWFhceAzMyNjUnJjU0NxceAwEjIicGIyImNTQ3NjcmNTQ3FhcXFjMzJyc0NjcXFBcXFAcnFwEUBwYjIi4CJzcWFjMyNzY2NyY1NDc2MzIVARQHBiMiLgInNxYWMzI3NjY3JjU0NzYzMhUBIyInBiMjIicGBwYjISc1ITI3NjU0JzcWFxYzMzI1NCc3FxYzMjU0JzcWFhcWFQMHBhUUMyEnIiYnBgYjIiYnJxQHJzY1NCYnNjY3FgEUByc2NTQuAic2NjceAwE0JicmJiMiBwczMjYBFAYHBzQ2Nz4DNwEUBgcHNDY3PgM3ARQGBwc0Njc+AzcBFAcGIyInBiMiNTQ3NxYzMjc2Njc3FhcWMzI3NxYTBiMiJyYjIgcnNjc2MzIXFjMyNwEHJzcBFAYHBzQ2NzY3ARQGBwc0Njc2NyUUBgcHNDY3NjcFByc3BSYnBgcWFwMGBxYzMjc3LgMnNjYzMhYXFhYVFAclLgMnNjYzMhYXFhYVFAcDBgcWMzI3JQYHFjMyNwUmIyIVFAEmIyIVFAR6CgcOBgsOBwMGEAkPERURGhQICwYaKAsTGB4tGyUyDSwxL0EEFSA7JfYKm2UvE08aFSU0HzEhDh8HNio2IR9HbHUbjZH+FjQZGisuPS4tQQYeCggUDxTHAQMEAwcfHxwIC4sU/sMuCgwEBQUNBwUXF0shFQgLBhooChQh/n4ZFRMGAhkoCxMYAUcRGQgaBhEIDggUIhs8BhEIES4YJBoSBQkfLx8jNhoiKQoQBxIk/dElQh0bPSd8GkA9MwwVKBkPHg1CtBIGCRsnHhgMK1MoJBsJJS0qHhouLUIGHgQOCwxMJCgPGAQDHgURDQQVHCEQDQkbBh0YBQcDAf6IbTQZGisuPS4tQQYeCggUDxRFGRQICwYaKAsTGAT8MjZHCRYiNigGJS4JRTwQJxlvExYjPvwlMjZHCRYiNigGJS4JRTwQJxlvExYjPgJTExoVFSAQFBkLCAsW/exIAlwTCQ4DCQsIDhYQJAQLBAocDxYQBQYCBrBtISUBNAkUKQ0FIhQJFAjRJgcDExMIEwsq/mQmBwMBBgsJCBMLCg0GAgSdFw0LJhAoOVq4Kj79ihckuAoIASYwLAgCoBckuAoIASYwLAj7aBckuAoIASYwLAgBRgoKEhEQDRwhBAwBFwgLBAUCCQQDBg8TBwoCaSApHh4dCwcSBQ0FChQJISEVGRsCNR9BHgHUFiRQCQgDIP1iFiRQCQgDIP2FFiRQCQgDIAQnHkEd/cEJHx8WIji+PxkSIBgWewEIDRAHBAsFCwkDCAYDAfcBCA0QBwQLBQsJAwgGA4BBFxIgGBb9UEEXEiAYFgHGDiEcBCYOIRwEegoIBQ0TFAgUHRgjKxkLAf8KGjEYBBgLEC8eB+4EHxQaIQcXKyoQDUgTCl4EQrcJKy4YKR0RGAwlBw8MDBQrLBAjSDSQMA0JIisqHxkIGCNCHnFSDA4KCgYQIkEkFSFFCMAGBg0NHxITGggFGRM7AUgKGjEYBRcMEDIaBv7N/Q3oCjQvBRgKEC8eBs4JAgIJFhMVFBYfCx8qFhsYJU0YGi8rGw8bLmAbGxkHCgIGGh0qPxUKCR4lKRUkORQMDgNlMAMAEzMOFAEGDBMOMQ8QGDcIBgoiKyggFgsYIxdPNykREW0QFgUaIR1VPhAZEgoJB38fDBkicBkgFQ7965AwDQkiKyofGQgYI0IecVL+ChoxGAQYCxAvHgfl/sRAQ0kCCBANDggIMw0uIAFRKyIogAFCQENJAggQDQ4ICDMNLiABUSsiKID9fhAQDwgDBCAKAwYQDw8OIA4XGQ8PDhYuDg4eGggMBREbA1xPGAcLXgwTERgFCF8uQwQfEDKkdREmFvD99i5DBB8QGTI/UzoRJhY8V0M1AYcKEAYFBRstD/29Eh8PSwodBQERFBIDA6kSHw9LCh0FAREUEgP8chIfD0sKHQUBERQSAwPVHhMWCSIoBxcFIhIIEAgDEQIIKwIK/jkkDAwIBxIFCQwMDP45OiI6AaoTHQ8gCxsFAw3+ihIeDyAKHAUDDU8SHg8gChwFAw0/OiE6wiwoCCYlBgMXGCYIGT4JGyAgDAUXDggTNBEOD0wJGyAgDAUXDggTNBEOD/5WFyYIGSwXJggZBEIaKP6QQhooAAoAOQFBBP8FdwC/AM4A8AEKAREBHAEjAScBKwE0AAIxMAEWMyEmJyYjIgc2MzIXFhYXFhczFSEiJw4DIyI1ND4CNxcGBhUUHgIzMj4CNTQuAicGBgcXFSMiLgInBiMiJyY1NDc2NyY1NDczEzY2NycmJiMiDgIjIicmNTQzMhcWFhcnJzQ3FxQXFxQHJxcXFhUUByMmJicXNjY3LgMnJzQ3MxYXFxQGByceAxc2NTQuAic3MxYWFxYWFxYzISYnJiMiBzYzMhcWFhcWFzMVISInJwYHARQGBwU0Njc+BTcnFA4CIyInBiMiNTQ2NzcWMzI3NjY3NxYWFxYzMjc3FhYBJicGIyInNTY2NyY1ND4CMzIWFRQHFhcWFgYHFjMzJwEUBgcHNDY3NjY3BQYHFjMyNwEHJzc3Byc3ATQmIyIVFBc2ApQNIQGiRis3NxgWIFAuPg4yJTQWG/3FHRIFMkZRJboFDBUQDxISGys2HBJHRjUFCAsGFCgWCZsVHhUQBxwxNiAjNDJKBhoHNyZAGiQXJwsDBwgIBBUrOg8WShg2GRgYFgcdLQwVHQ5KAwYMIBQYEiMcCBAQEAYVGQgDETUFBxkBCw8QCEUIDA4GGgcLDwcJEQkMIgFFRis3NxgWIFAuPg4yJTQWG/4iUwUDKCMCJBko/r8LCQEjNkA8LwpqAwoSDxYSECEoAgIPAhsLCwUHAwoDAwIJERYKDAEB/QUYHTYiCgkOLR4XCQ4TCw0VDw4GAuVAKw0RbgkDKRgoWAoJAhMR/GRKGREnGxkCIx9BHkIfQR79xg0KBhkEAmZhNxUcA1MtCishMAVOGSMyIA+IFywuNCAJKD4hHisbDAkXJBsJMEVYMQ4MCTdYHzZHKTUHCAomMC8iHAobIP7cDBcL7xcdBwkHIi1AHC8QKBWdCzo1BRsMEjcfB7oPU0kOChg0G5sJFBM4c2xjJws7Mh4IGBMrGAgOTmh0NEhfEUlWVB1CM143RpFJYjcVHANTLQorITAFTr8jcC4BmRQhEYMLHwYBDxYbGRMEbgodGxMLKjAEEg4HKhYKEwoECgsCCjQDBQr+rQEILQMHBhYQFw8JFRALEg0OGQcJBvgGAi45AWMUIBEkCx8GAggHpRorCBz+QjoiOvY6IjoBQwkSChINCQAGAAD/GwuFBSAAVgB5AH0AhACPAJoA/EBuLi0MLWNkZG9wWWlpN0BFPz89ODcHN09WTk5GAkU9lZV8epCQenpWRgFGLTc9RkY9Ny0EJpyKhYUmfhcZGR6CFH6KjIeFhX2Vl5KQkHt9CiSAM0VGRjNXdW9pbGRjLk5PTz9AQDc4OC0uhII7JzO4Au9ADAoZFxcKAgAAFBAFCgAvMzMzMy8yETMvMxD9MjIyMs4yMi8zMi8zMi8zEN7d3jIyzTIRMy8zENzNEN7NMi/N3c0RMy/N3c0BL9wyzTIvMxDNMy/NERIXOS8vLy8RMxDNMy8zLxDNMi8QzTIROS8SOREzEM0ROS8SOREzL83MMjIvMxEzEM0xMAEjJxUHIyInBiMjIicGBwYjISImJwYGByEnPgM3NjY3NjY3FhUhMjc2NTQnNxYXFjMzMjU0JzcXFjMyNTQnNxYXFhYXFzQuAicmJic3FhceAxUBFhUUDgIHDgMHJz4DNyYmIyIGByc+AzMyHgIBByc3ASYnBgcWFwMUBwYHBzQ3NjY3BRQHBgcHNDc2NjcLhUv6CkNzT1WJQVNpMCMtWv1CXqFLQ5hj/swCQ6CYfSA1ZD4mSyGlAlZNJzoOKSklO1lDlw8qFStzPFpBKw0KCwH8BgkNBwovJU5KEAcMCQb9mRwdKCgMCy44ORUFEjc+PRgiYS4PGhARBRolLBcRNzkvAgpOokr5OhZPSzpXilYaGVrJKAUsJgjwGhlaySgFLCYBIVZEEkNDPyULD0FIZ6A0GRdLXWgzWo0yHyMI+3sOGEQySTyGPF9qN0Q8XsA7QnVtQCsfTzNWHmRmVhAWPCqjXDMUY3l8LAL9AxwOPEI4CQgSEAwCFAkZJDQkBQcUDgwTMCodBAYE+2yRVJIBE2ppFGBcEP7SLhcWJFEyHAQUEGYuFxYkUTIcBBQQAAL+LAQmARQHFgAgADgAZkAxMzMwMComJycqCAghKiAeHBwfHxUgFBkYGBYWFRUUBQ4UMDMzHBYVHwQeGBQAJgkHAAAv3s3OEN3dzBc5My8zAS/czREzLzMvMxEzEM0ROREzLzMQ3s0yLxEzETMRMy85GS8xMAMjIgcGFRQzIRUhIicmNTQ2NzYzMwMnNDcXFBcXFAcnExcUBwYGByc2NjU0JyYmJyc2NjcXFhYXFmZjXENFLQKU/Wk5Cw0SFGmNHy8ZFwcfMA0XL8APBA8NCQEDCQQJBhAKGgsUBwkECQUcMTIzDVMHCA4lRCCjASYMPDkFHA0TPCAI/u4/KSUKHxYFDiYHNF0vZi59FjMXnDJZKGMAAAL//AQiAZUGswADACIAPUAbHh4dIhkdHREQGQMBAgAAGQIAAwEdHhAREQoUAC/NMxEz3jLezTk5AS8zL805ORDMMjMvEM0RORkvMTABByc3ExQHBgcGIyInJicmJzcWFjMyNzY2NTQnJic3FhcWFQFTI0ciiiolNTMhHyMaJiAfCB1AGTg8OU4VEB0ZJBEUBo9BJUD+QTA0LiEfCQUPDAwSBgwjImQpIyYeIUYhIiYvAAABAGsFcAF6BhwACwAXtgCABgADCQa4ASiFAC/N3M0BLxrNMTABFAYHBgYHNDY3NjYBehIVJHNRDxEidgYcEysSDi4gESkQDjEAAAIAcwUCAZIGXgAjAC4AOEAZIQQKAwAAHC0PCiQqChMqFyciIS0LCQ8DBAAvMzPNMt0yMt7NAS/dzBDeETk5zTIvMxE5OTEwARQGBycGBgcGIyM1Njc2NyYnJjU0NzYzMh4CFRQHBgYHFxYnNCYjIgYVFBcXNgGSBQJCFBsIOik8JzU0GRYPEB4fJAoXEwwFAgoIGglFHg8ICBQjBgWHDR0PKBYdBzoDEysqHg4SFBo0KSgMFBwQDhIIHhYWCUsVJQsGERQbEAAAAQBr/+UBegCRAAsAF7YAgAYAAwkGuAEohQAvzdzNAS8azTEwJRQGBwYGBzQ2NzY2AXoSFSRzUQ8RInaREysSDi4gESkQDjH//wAy/kYE2QOyAiYDNQAAAAcC+AHG+W8AAwAk/ggEtQIFADYAQgBPAGu0N0M9SQS7AwwALwANAwxAECZJLyYmL0kDFQAAURkaGh64AwxACxU6TUZAQBEsBgAiuALvtBEaGRk1ugLvAAAC6wA/7TIvMy/tETk5ETMv3d7NAS/tMi8zETMvEhc5Ly8vEO0Q7RDN3s0xMAEjIgYVFDMyFhcWFxYVFAcGISInJjU0NzY3FwYHBhUUFxYzMjc2NTQmIyYmIyImNTQ3Njc2MzMBFAYjIiY1NDYzMhYHNCYjIgYVFBcWMzI2BLWvmptdKTBRMBIde4b+y9d/h0AXYigmJTmAetWPbYYeIxtzEj82STxlTFSv/lNcQzY2UDs2SjxOGxokIRoxGSIBJRAYIQQJBgkPJbtVXUlOkHSCL5oUQUBuRntAPRYbLxERAwchIXxPQB8X/LUxTzArPl9IRRY2JBMcCwkLAP///7r/oAH0A6YCJgUpAAAABwL4AFn6yf///7r/oAH0A6YCJgUpAAAABwL4AFn6yf//ABQBJQZ/BrgCJgMtAAABBwUuAx0GLAAhQBUCAQAtLQcMQQIBMkAQEDQyQAwNNDIALysrNTUBKzU1AP//ABQBJQd2BrgCJgMuAAABBwUuAx0GLAAhQBUCAQBGRh0iQQIBS0AQEDRLQAwNNEsALysrNTUBKzU1AP///7oBJQMnBrgCJgMvAAABBwUuADIGLAAhQBUCAQAeHgoPQQIBI0AQEDQjQAwNNCMALysrNTUBKzU1AP///7oBJQQeBrgCJgMwAAABBwUuADIGLAAhQBUCAQA3NyInQQIBPEAQEDQ8QAwNNDwALysrNTUBKzU1AP//ABT+mQZ/Bd8CJgMtAAABBwUwAtAAAAAoQBIDAgEANy0gG0EDAgEwQAwVNDC4/8CzCQo0MAAvKys1NTUBKzU1Nf//ABT+mQd2Bd8CJgMuAAABBwUwAtAAAAAoQBIDAgEARkYVFUEDAgFJQAwVNEm4/8CzCQo0SQAvKys1NTUBKzU1Nf///7r+mQMnBd8CJgMvAAABBwUwANwAAAAoQBIDAgEAKB4KAEEDAgEhQAwVNCG4/8CzCQo0IQAvKys1NTUBKzU1Nf///7r+mQQeBd8CJgMwAAABBgUweAAAKEASAwIBADk3GQ9BAwIBOkAMFTQ6uP/AswkKNDoALysrNTU1ASs1NTX//wAy/6cE2QTpAiYDNQAAAQcFNwDx/ywAEUAJAQA9PDMzQQFAAC81ASs1AP//ACT/HwS1A5gCJgM2AAABBwU3APH92wARQAkBADg4Ly9BATsALzUBKzUA////uv9zAhcE6gImBSkAAAAnBTcAK/8tAAYFLgcn////uv9zAhcE6gImBSkAAAAnBTcAK/8tAAYFLgcn//8AMv+nBNkEoQImAzUAAAEHBS4BWAQVABtAEAIBAD48MzNBAgFBQAwONEEALys1NQErNTUA//8AJP8fBLUDnQImAzYAAAEHBS4BRQMRABtAEAIBADk3Ly9BAgE8QAwONDwALys1NQErNTUA////uv9zAfQFVAImBSkAAAAnBS4ABgTIAAYFLgcn////uv9zAfQFVAImBSkAAAAnBS4ABgTIAAYFLgcn//8AMv+nBNkFVAImAzUAAAEHBS8BTwTIABlADQMCAQBCQDMzQQMCAUUALzU1NQErNTU1AP//ACT/HwS1BFACJgM2AAABBwUvAT4DxAAZQA0DAgEAPj4vL0EDAgFAAC81NTUBKzU1NQD///+6/3MB9AYKAiYFKQAAACcFLwAABX4ABgUuByf///+6/3MB9AYKAiYFKQAAACcFLwAABX4ABgUuByf////1/2cBbgCNAgcFNQAA+W8AAQCkAAAEYAW6AAcAIEAPAAkGASADBh4AAAIFAgIIAD8/Ejkv7QEv/cQQzjEwASERIxEzESEEYP0GwsIC+gKz/U0Fuv2mAAEACgAAA5UEPgATAC9AFwAAFQoLAxIBJQMBHBMTAgoIHAsNBwIKAD8/M+0yEjkv7QEv/cQQzjISOS8xMAEhESMRNCcmIyIHJzYzMhcWFRUhA5X+DbQKFk0fNiJESZZCMwHzAdf+KQLDayRODpkTZE7DXQAAAQAwAAAEugW6AAsALEAWBCACBiAICiAACAQECwsJCAgGCR4BAgA//cQ/EjkvMy8BL97tEP3d7TEwExEhESMRIREjESERMASKwv7dwv7fA10CXf2jAbD68wUN/lAAAAEAJgAAA4UFugAdADhAHgAFJR2fGAEYEQsljw0BDQ8lEREKAAAMDxISDysLAAA/7TIvEMwyLz8BL/3eXe0Q3F0y7TIxMBMmJyYmNTQ+AjMhESMRIxEjESMiDgIVFBYXFhdJCggHCixMZTkCSbSis0ASKyYZCQYHCQQlGSAaSCk7UDEV/msBAPrbBSUHFikiGjYWGhgA//8AoQAABSAFugIGAkIAAAABAIf/5wSsBCYAEgBgQDsSDCV5CwEGCwoLJQUGFAUGBQUUCiUHdQqFCgJGClYKZgoDiwUBegUBWQVpBQIKBQYJCwYSEBwAAgIGCgA/My8z7TI/MxI5OV1dXV1dAS/tEjkvhyuHfcQBXRj9zjEwBQYjIBERASMRMxEBMxEUFjMyNwSsMDz+/P4NwrQB88IzPykhCg8BSAH2/NsEJvzWAyr9CWRKCAAAAQCW/lkFNwW6AA4AlEBLCAkJIAoDFAoDCQoLCgMBAgEgDAsUDAEADAsCCwoDCQoKDAABASANDhQNDgENDgIAAAMNDAwFEAgIAyAFAwQKBwcKAg4OBAwNDQQIAD8zETMRMy8/My8REjkBL+0yLxESOS8zEjkvOTMQwYcEK30QxBEBMxgvM32HDsQExIcIGBArhwh9xBAAwYcFGCsEfRDEMTAJAgcRIxEzEQEhAQEVAQJ2AZj+OvDCwgLYAQf9mQI//dz+9AFqAojq/gQFuv0pAtf9rvznE/4dAAADAFoAAAQMBdMAGAAnACsAaEA/NwNHAwJYA2gDAg5efx4BHiMjJRheAAZecAWABQIFAQEAACo8KAZ6EooSAkQlVCUCEiUFBSMAKjwoCgIjKQkBAD/tMj/9zhE5Lzk5XV0zAS/tMy8zL95d7RDtMjIv3l3tMTAAXQFdAQM1BgYHJzY2MzIeAhUUBwYHBgcGBwYHEzY2NzY1NC4CJxUDNjYDNTMVAeIpQFURuRn2zF2qg00tLYNYGxoODgE4MDwOHB0yRScTDBzgzQFpAwyvHoZqFs7ZNmaVX2BRUXROJSUwMGwB3ypBGTE6K01BMA65/qAMGfzGzc0AAAEARP9SChsCvQBbAH5AIxEFFFQAAFQ5OTg/Mzg4M0MnKiszVDNUM10LDTg5ORsqKytPuALvshswIrgC77JIBQC4Au+0W1sRDAq4Au+0Dg5DQEgALzMzMy/tMzMzL+0yEP0y3O0zLzMRMy8zAS8zEjk5Ly8Q3s0yMhI5LxDNETkZLxEzGC8QzTIyMTAFLgMnDgMjISU1ITI2NyYmNTQ+BDMyHgQzMj4CNTQmJzceAzMyNjU0LgInNx4DFRUjIiYnDgMjIi4EIyIOAhUUHgQXBzMWPEE9FxAyP0sq++7/AAUUMTsUDQ4YLT9OWzIjOTIuLzUgGy4jFAgHKhAgKTUlGyEOGCETQRkeEQZNQFwmHi4rLBo3VUM1MC8aKUc2Hx8zQEI8FpoEFRwhEBEqJhmjCyAVFjMdLWtrZE0uK0BMQCsNGigbHzoiPD5pTCshGhstKisabSc9QEkz8CMgFhoOBS1DTkMtLkJKHRwzLScfFgUAAQB+//ID7AXTACIASUAlAAEYFxolCRQKDg0QJRMKERISFRYWGg0JKxcQEwYMCgAgHAEDCwA/M+0yPz8zM+0yMjMvMzMvMwEvM/0yzRDdMv0yzcwyMTAlFwYjIi4CNREjESMRIzUzETcRMxE3ETMVIxEUHgIzMjYD0hpKPlNjNBC1s4SEs7WztbUEEykmDyehnxApUnpQAmP8ZgOajAFBbP5TAUFs/lOM/ZMhNicVAwAEAB3/tATrBdMAYQBsAHgAhAErQLtmUwFmUgF4QohCAjpBAUY8VjxmPANmNgFZMgFKMgE5MUkxWTEDVSQBaQuJCwJKC1oLAnkKAWwdv2EBYW0CbSMAWhBaAlpkXWQQZAFtZG1kdCZOSVUmJj4mPz8tJiY0hi8NAQ0vgQGBFwiEBSB0AXR0SSY0Pj8/TkR2ToZOAmdOAU45bGggIBp+EhJvHRd6LYotAjktAS1EGhpEhHh1ZGUjASYjRiMCI2xcBgFdeVqJWgJaCAUCYQhEHjkDAD/tPzMzMzNdM80yMs0yXV0yMjIyETkvEjldXTMzzTMvzREzL80REjldXRESOS8zAS/tMi9dM90yOd5dzV0REjkvOTMv7RDtETkREjk5Ly9dETMQzV0yETMQzXEyMjEwAF1dXV1dXV1dXV1dXV0FIzUmJicVIzUuAzU0PgIzMhYXFhc2NjMyFhc2NjMyFRU2NjU0LgQnLgU1ND4CMzIeAhUHLgMjIg4CFRQeAhceBRUUDgIHFSM1BgYjIzcyNzU0JiMiBhUVJzQjIg4CFRUWFhcBJicmJiMiBhUUFhcCV1Q1ZjBVLEg1HRgnMhoiLA4QCRpUMjdHDx1DMJtiWSQ+VGBoMzx4bV5FJ1uTuV1rx5lcugcyWIBUP3peOkZtgz1Ji3tmSyk6ZIlPVS1bLxIJa1UnMj0zVFknLRgGMGc0/uACBgYXFhklQzZMTwQPDW+NEzNDUjMoPCgUGg8SFikoLSosK6i0KoZLKEE1KiMdDhAlLzxRZ0NomGQwOm+jag49aEoqFTNVPzZOOSkRFSkyP1RtR058X0IUa1oIBmMUtDw/SUqw0nEeMUEjbw4OAwEGEA0LEy4jQFYbAAEAEv/nB6EFugAdAIJATRwCGxgdGRoVGB0WGhUAFwECGwAXFx0YHSAAFxQAABcVGwIbIBoVFBoaFQACAAIDGBgaGh8NDAMgExcYGAIeFQIbGhoADQ8eDAoKHQAIAD8yMi8z7TIRMy8zP+0zLzMBL+3MMhEzLzMvEjk5Ly+HECuHfcSHGBArh33EDw8PDzEwIQEBIREUBwYHBiMiJzcWMzI3NjURIQEBMwEBIwEBAmECN/6H/qwJFVJHaEBaITEhXRsMAoIBgAGb0/39Aivw/k/+SgL8AhH9DchDpkY8GKwUaC6FBAj91AIs/U38+QJt/ZMAAQAY//kGBgQmAB4Af0BLHRwCHhkaFhseGRcAGBYbARwCABgYHhkeJQAYFAAAGBkZGxwWGxYlAhwUAhwCAgAAGxsgAyUPFBgZGQIcFgYeABwbGwAQHA4LCwAKAD8yLzPtETMvMxEzP+0zLzMBL87tETMvOS8zL4crh33EEQEzGC+HECuHfcQPDw8PMTAhAQMhERQGBwYHBiMiJic1MzI3NjURIRMBMwEBIwEBAiQBhP7+6QEBDT83ZSBHKk9hDwgCQ+0BBNf+kQGL3f7s/ukCKAFp/e9VXAltNCwEBJYwG4gCvP6QAXD+DP3OAaP+XQAAAgCeAAAGSgW6ABQAIQBnQDcPDg4gDQwUDQwNDQwKCQogCwwUCwsMGyYJCQsLIxMVIAAJCwwVHg8SEgAhHgEKCwsBAg4NDQAIAD8yLzM/My8zEO0ROS8z7TIROQEv7TIRMy85L+2HECuHfcQBMxgvhyt9EMQxMDMRITIeBBcBMwEBIwEGBiMjEREzMj4CNTQuAiMjngFDRIV3Z1AzCAEf/f3LAlD2/iNHxHqSlU6AWjI5YH9GkQW6Cx4zUHBLAWf9fPzKArExLP2sAwEaPWdNUWU3FAACAIf+aQW2BD4AGgAuAGtAOxEQECUPDhQPDg8PDQsMDCUNDhQNDQ4lJA4ODQ0wGwMZJQAaDhEOCwMqIBwZFgsQDwoqHAMGBwwNDQIGAD8zLzM/M+0/Mz8z7REXOT8BL+0yMhEzLzkv7YcQK30QxBEBMxgvhyt9EMQxMBMRMxU2NjMyHgIXEzMBASMDDgMjIiYnEQMUHgIzMj4CNTQuAiMiDgKHpDqSaE+BZkoYzNf+lAGI3dQVTG2OV1uOLhEeRGxOUG9FHx9DbE1Obkch/mkFvYpRUS5Rb0EBF/4h/bkBVEuFYzlMOv37A6ROkW9DRnSWUEySckVKeJYAAgAJAAAHOwW6ACUAMgB1QD0iHyABCAoKIAsNFAsLDQ0RCzIBASQhISQdHSQkNCwmFgsLFg0ICzEeEQEBIB4iIgAeHiYeGwIKCwsjHgAIAD/tMy8zP+3tETkv7TMvM+0SOTkBLzMvEO0RMy8zLxEzLxE5LzMSOTmHECt9EMQBGBDtMjEwIREjIg4EBwMjAT4DNy4DNTQ+AjMhFSERIRUhESEVASEiDgIVFB4CMzMDlSMyRzgvMz4r+fQBACM9P0guW5htPVOPvWsEjv0+Aov9dQLk/Fr+7kJyVTE+ZoFE4wKLBBAgOFU8/nIBjjBOQTYYCz1jilp2m1skrf4/rP4NrQUYGjlaQUtfOBUAAAMAH//oBoUEPgAzAD4ASwB/QEQsID4kSxAODiUSERQSEhESFBEJS0sZNCQrACQBASsrTRERRSQZDhIRSxwUCQkBADQcLCwEORwgIwc/HB8GEBEKMRwECwA/7T8zP+0/M+0ROS/tzjIzLzPtEjk5AS/tMy8RMy8zL+0Q7RE5LzMSOTmHECt9EMQBGBDtMjIxMAEXBgYjIi4CJyMiDgIHByMTNjcuAzU0PgIzIRU2NjMyHgIVFBQHIR4DMzI2Ey4DIyIOAgcDIyIOAhUUHgIzMwXFui3sum2oeEcMHD9GMzIrnd/CWVhFb1ArO2eLTwGXOZRfdrV6PgH88gMpTnJLY4wrAytLakBAbVAvArOrO15CIzJVcT9yAVYXpLM+cqJkDihHOegBHoQQBzRUbkFQdUwlWjU9VZTLdQgYEEyEYThoAZVDcFEtLlJwQQEYDSVBND9JJgoAAAEAlgAABVIFugATAKRAWQMSBwUGBSAEAxQEBAMEEhMPABIHEA8AEQwPDg0OAREMBgMSBxICDgESBwEABg4ADgAHEgwRESASBxQSBxEREhIVDAcgCRISCw4PAAcBDwEPAQkLAgUEBAkIAD8zLzM/Ejk5Ly8ROTMRMxEzLwEv7TIRMy8zAMGHBSsEfRDEERIBOTkYLy85ETMPEH2HDsQExA8RATMPDxEzhxgQK4cIfcQxMAEHJwcBIQEHESMRMxEBJzcXNyEBBH9apq8Cgv8A/fbwwsIBtJJajNABB/6dA51Nwan8mALm6v4EBbr9KQG0q02kz/6pAAEAhgAAA/8EJgATAKZAWg0IEQ8QDyUODRQODQ4OCAkKBQgRBgoFBwIFBBANCBEIDAQLCBEDBAsHAgsKEAQKBAoRCAIHByUIERQIEQcHCAgVAhElEw8ODhIEBQoRCxIFCwULARIKCAgBBgA/My8/Ejk5Ly8REjkyETMRMy8zAS/tMhEzLzMAwYcFKwR9EMQREgE5ORgvLzkRMw8PEH2HDsQExBEBMw8PETMYL4crhwh9xDEwEzMRNyc3FzczBRcHJwcBIwEHESOGs9JjWl+H7v7yeVp2dgIE5v5iQrMEJv5fzHNNboP7i02Ibv2TAfQ9/kkAAQAN/lEINQW6ADUAU0AsLhYgGAgHNSAOGA4YDjclJBsgKxYUHi4wMBgZHi0CJSceJCIJGAgICh4HBQ8APzPtMj8/M+0yP+0ROS8z7TIBL+3MMhI5OS8vEO3MMhDtMjEwBRQOAiMiJzcWMzI3NjURNC4CIyIHESMRIREUDgQjIic3FjMyNzY1ESERJDMyHgIVCDUYPm5VS0IiOB1MFwodRXNVzuHC/e4DECNAYkdAWiExIUIhIQOWAQTFf7JvMjpTimI2E5kOTiFsAdNekmM0W/03BQ39DT6DfXBUMRisFDExuQQI/bFhTI3IfAABABj+UQbOBCYANwBNQCkvFiUYBwY3JQ0YDRgNOSUaJSwWFBwvMTEYGRwuBiYcIQsYCgcJHAYEDwA/M+0yPz/tP+0ROS8z7TIBL+3OEjk5Ly8Q7cwyEO0yMTAFFAcGIyInNxYzMjc2NTU0JyYnJiMiBxEjESERFAcGBwYjIiYnNTMyNzY3NjURIRE2MzIXFhcWFQbOM0KWS0IiOB1MFwoQDzs7WWaitP4jDAw2N2UgRypPNxkZBwgDRaWReVxdISE6w05kE5kOTiFs/4M5OiwsNv4fA5H977o6PCssBASWCwwZG4gCvP5UND4+WFlrAAABAKT+UQi3BboAKgBZQC4lByAoBCgXFg4gHSgdKB0sAykgAAMeKAcJHiMlIygjKCMCJyoIFxkeFhQPBQICAD/EPzPtMj/EEjk5Ly8RMxDtMhDtAS/tMhI5OS8vEO3MMhEzEO0yMTAzETMRIREzESQzMh4CFREUDgIjIic3FjMyNzY1ETQuAiMiBxEjESERpMIC9MIBBMV/sm8yGD5uVUtCIjgdTBcKHUVzVc7hwv0MBbr9pgJa/bFhTI3IfP4XU4piNhOZDk4hbAHTXpJjNFv9NwKz/U0AAQCI/lEGiQQmACsAWUAuBiUlJwMnFhUOJRwnHCccLQIpJSsCHCgGCBwjJSMoIygjASYqChYYHBUTDwUBBgA/Mz8z7TI/MxI5OS8vETMQ7TIQ7QEv7TISOTkvLxDtzDIRMxDtMjEwEzMRIREzETYzMhcWFxYVERQHBiMiJzcWMzI3NjU1NCcmJyYjIgcRIxEhESOItAHvtKWReVxdISEzQpZLQiI4HUwXChAPOztZZqK0/hG0BCb+RgG6/lQ0Pj5YWWv+sMNOZBOZDk4hbP+DOTosLDb+HwHX/ikAAAEApP5pBagFugALACpAFgEgAwAgBQUNByAJBh4KAggBHgUIAw4APz/txD/tAS/tEjkv7d7tMTAlMxEjESMRIREjESEFIoasnP0GwgR+rf28AZcFDfrzBboAAAEAiP7TBEIEJgALACpAFgElAwAlBQUNByUJBxwKBggBHAUKAw4APz/txD/tAS/tEjkv7d7tMTAlMxEjESMRIREjESEDznSUlP4itANGlP4/AS0DkfxvBCYAAAEAov5pBYUFugAZADRAGwEgAxkgBQUbEg0gDw0LHhIUFBECDgAeBQgDDgA/P+3EPzkvM+0yAS/tMhI5L+3e7TEwJTMRIxEjETQuAiMiBxEjETMRJDMyHgIVBP+GrJwdRXNVzuHCwgEExYCxbzKt/bwBlwGdXpJjNFv9NwW6/bFhUpHGdAAAAQCH/tMEXAW6AB0AMUAaASUDHSUFBR8VECUSFQkcFwcUABEAHAUKAw4APz/txD8/7TMBL+0yEjkv7d7tMTAlMxEjESMRNCYjIgcOAxURIxEzETYzMhcWFxYVA+h0lJR1a1FGIzEgDrS0fsB1WFclJpT+PwEtAqGHeyoVNkpgP/27Bbr98pIvLlJUmgABABMAAAKABdMAHwBUQCsTEhIdHhslBAYGAggBBBMWHBIQAQQbHAMcAgEeAh0cHAIcAhwABhwIBgAKAD8/7RI5OS8vEO0ROTkQ7RE5OT8z7TIBLzMzzTIvEP0yzTIvMzEwMxEHNTc1IzUzNTQ3PgMzMhcHJiYjIgcGFRE3FQcRsoODn58TDS1DWztMXBscNRlRIyKGhgI/b55vvYxxbDMjOikXEp0FBSMiYf7tcp1y/SgAAQATAAACgAXTAB0AOkAdCgcFFRQUAB0CJQwIBQUcBwIJHAwdFRgcFBIBBAoAPz8z/TLeMv0y3u0BLzIy/TLNMi8zEM0yMTABFSMRIxEjNTM1IzUzNTQ+AjMyFwcmJiMiDgIVAjnUs5+fn58ZQnJZTFwbHDUZLDoiDgSuhPvWA0CMXoQRKmFTNhKdBQUYJSwXAAACAEj/6AQsBdMAMgBGAKpAc3ZFhkUCdUSFRAJHNgFYJwFrJgFaJgFmIgFUIgFXIQGGGAGGFwF1FwFnFwE7LksuAikuAS5CAD0kGjQaRBoDGhULCgofJDE9QT0CAD0QPSA9Az09KUgVJAAAMyQfKT8pTykDKS5CHBoaEDgcJAsLEBwKBQEAPzPtMj/tETkv7TIBL13tMy/tERI5L11d7TIvMxE5XRESOTldXTEwXV1dXV1dXV1dXV1dXRM0PgIzMhYXFhcHJicmJiMiDgIVFB4CFx4DFRQOAiMiLgI1ND4CNy4DExQeAjMyPgI1NC4CJw4DlEV0l1JEciowKCwkKSReNiRTRi87WWUqYaF1QUWCu3V4uH1AMFRxQS1VQSdsKVB3Tkx0TicrUG9DRXhXMgTCTGlAHBEKDA+lDwsKEAMUKSYmNykfDyFkh6tnesOHSE+LvnBQjXZcHhMwP1D9X0qGZjw0YYlVSXlhShsJSm2FAAIAvwAABdkFugADAAkAI0ARCAgLByAEAiAABx4ABAgFAgIAP8Q/xO0BL/3e7REzLzEwMxEzETMRMxEhFb/CxMIC0gW6+kYFuvrzrQABAA4AAAMeBboAEwAzQBkCARMlEAUGDyUMCwkJAgYcEwwQEg4ABAcKAD/EP8TWMjLtMjIBL80z/TLdMv3NMzEwARUjESMRIxEjESM1MzUzFTM1MxUDHnq0tLR6erS0tAUKhPt6BIb7egSGhLCwsLAAAQBc/+cEXgW6AC8AiEBcWS6JLgJZLQE4LUgtAjgsSCwCOCUBNyEBZhoBSA5YDgJWCgFFCgFGCQGHBAF2BAFnAQGCAAF0AAEALy8oHokWAUsWWxZ7FgMWERcXByYoKDEeJhEWAiMeDAkvAAcAPzI/7T8BL+0SOS/tMy8SOV1dERI5LzNdXTEwXV1dXV1dXV1dXV1dXV0BFhceAxUUDgIjIi4CNTQ+AjczBgcOAxUUHgIzMj4CNTQuAicmJwNBUD4bMygZR4W+d3W9hkktb7mN95V0Ml9LLSpQdUxLdlEqFCAqFTJABD9BVCRYZnVBgM2QTleWy3Ri4fH5enKPPZOpvmdQkG5BNWSPWTJbT0QbQDEAAAEASf/nBCEFugAvAKBAcVkuiS4CWS1pLQI4LUgtAjgsSCwCOCUBNyEBZhoBZxkBSQ5ZDmkOA1YKZgoCRQoBRgkBhwQBdgQBZwEBggABdAABAC8vKB6JFgFLFlsWexYDFhEXFwckICgwKAIoKDEeJB8RPxFPEQMRFgIjHAwLLwAHAD8yP+0/AS9d7RI5L13tMy8SOV1dERI5LzNdXTEwXV1dXV1dXV1dXV1dXV1dARYXHgMVFA4CIyIuAjU0PgI3Mw4FFRQeAjMyPgI1NC4CJyYnAyBIOBguJRZAfbd3dbd+Qy1vuY3ZGmBxd2A+I0t0UVBzSyQQGyISKTUEKDpPIlRjc0GAzZBOVJPHdGLl9Px6FVF3nsLnhVCTcEQ7apVZNlxPQRo8KQAAAgAU/+wFSQW6ABcAKwBcQC4nAQwdHQEWAAEAIBcWFBcWFxcBBAIBAiADBBQDBAMDAQIDAxYBABcCBBEYIgcJAD/d3s0yPzM5OTMvMwEZLzMYL4crh33EEQEzGC+HK4d9xBEBMxgvzRI5MTAJAjMBBgYjIi4CNTQ+AjMyPgI3ARMiDgIVFB4CMzI+AjcOAwFTAawBicH9ZE/EfTdgSCo4WGw1Y3ZFJhP97qkoNiAOEyErGCpHPzgaIkM9NgW6/S8C0ftMj4scOFY5PFc3GhYpOCIDbvt2EBkiEhkkFwsjPVIvDA8IAgACAAr+UQSJBCYAGwAtAGhAMysUBSEhFBcVFBUlFhcUFhcWFhQQEhMUEBQTJRIQFBIQEhIRFBUWFhEUExIGCisXHCYADwA/3d4yMs0/Mzk5My8zARkvMzMYL4crEADBhwV9EMQRATMYL4crh33EEQEzGC/NEjkxMAEiLgI1ND4CMzI+Azc3ATMBATMBDgMDIg4CFRQeAjMyPgI3BgYBGTdiSiw4WGw1QF9ELhMFA/5BwgFWARW0/k8pWGmBRCg2IA4VIywYJ01FORNGg/5RHDlWOTxXNxoLFBsXDQcDqP0jAt37o1GJZTkBRRAZIhIZJBgLJj9TLhsOAAEAmP5RBg8FugAZAGRANQgHDxgQDxAgFxgUFxcYGSAPDxQbERYXFiASERQSEhEXEiAUDxgYEhYCFxARERMICAoeBwUPAD8z7TI/My8zMz8zMy8zAS/tL4cQK4d9xBESATkYL+2HECuHfcQBGBDOMjEwBRQOAiMiJzcWMzI3NjURASMBESMRIQEBIQYPFjxrVUtCIjgdTBcK/lav/li7ASQBmwGzAQU6U4piNhOZDk4hbAT3+z8Ewfs/Bbr7LwTRAAL//QAABVkFugAHAA4Ab0A5CQUECgoEBCADAhQDAgMDAgwIBgcODgcHIAABFAABAQwAAAwFBh4ICQkCAwcAAAQDAg4MCgIBAQIIAD8zLxEzMzM/MzMvMhESOS8z7TIBGS8zGC8RM4crfRDEh8TEEQEzMxgvhyt9EMSHxMQxMAEBIwEzEyETAyETFhc2NwVZ/c3R/ajdqwJlodn+D5lGIhwzBbr6RgW6/kQBvP2m/mq5d42LAAIApf/mBXkF0wAQAB0AbUBGeRqJGgKKFwF5FwEECwFFClUKAgYKAWcGAUQGVAYCFgYBBQYBBQUBCCYAGAEYGB8OAhEgDwASFB4MEBAODAkRHB4CBAMAAgA/PzPtMj8zMy8Q7TIBLzPtMjISOS9d7TEwXV1dXV1dXV1dXV0TMxU2MyAXFhEQBwYhIicHIxMRFjMgNzYRNCcmIyKlwparAVLBvsDI/qyiy2sgwp6XAQmMgIiQ8LcFuhw1ysb+rf6o1d04OAT++900tKMBD/SfpwACAEv/6AWGBD4ALwA4AJVAXzU3ATkzAWkuAWotAVstASYqNioCRSJVImUiA1kfAWkeAUoeAUoaWhoCahkBJw43DgKJBwEvJBUAACckMQsKMQoxCjowKCQcCwoKAC8xHCgoLDUcIAcsHBgFHBAQFRgLAD8zMy/tEO0/7RE5L+3OMjIvMwEv7TISOTkvLxDNEO0yLzPtMTBdXV1dXV1dXV1dXV1dXQEeAzMyPgI3Fw4DIyIuAicGBiMiJyYREDc2MzIXFhEUFAchFhcWMzI2NwEhJicmIyIHBgQYBBAbJhodKBoQBooNJzxVOytFOCkPOqt86YmIiorc1YeHAfzoCllYhmOMKf2xAlEMOFaJe1ZUAT8sSDMcJjtFHx1CcVQvGis5H1RPj48BBAELlZSRkv76CBgQr11daHIBI4VEaFNTAAH/5f/oAiYF1QAbAC5AFw4PAQAYFSUHAQMcGAAaCxYKDgwcDxEBAD8z7TI/PzMz7TIBL+0zzDLMMjEwJzcWMzI3NjURNCcmIyIHJzYzMhcWFREjNQYjIhs+QkKDKh4KFk0fNiJESaM8LKJmgFsipyeGX3MCYmokTQ6ZE3JTs/ujobkAAAMARP/oBCcEPgANACUAMQB8QE9GHgFKHAGXEgE2EgE5EAFpDAFmCQFmBQEyBQFqAwE7AgEkDw4fDgIOJhYULCYsJiwgByQQGiAaQBoDGhozICRPAAEAES8kFikcCwsdHAQHAD/tP/0yMt7NAS9d7RI5L13tEjk5Ly8QzTIQzXIyMTBdXV1dXV1dXV1dXRMQNzYzMgAVFAYGIyIABTQ2MzIWFRQHNjc2NTQmIyIGFRQXFhcmNxQWMzI2NTQmIyIGRKSJxdsBFnvri9/+7QE8a0lKaggcGVmzhYeyWRcaB0w/Kys/PiwrPwITASeOdv7h/c3rggEeGklqa0wdGhUcZtHFy8rLzWYaFBoeL0BALS1APwABAEwAAANkBCYACwA0QBoJASUGBgQNCwsEBwcECRwHBwoFHAIKChwBBgA/7T/tEjkv7QEvMy8RMy8REjkv7TMxMBMhESE1IREhNSERIUwDGP0BAkv93AIk/ZwEJvvamwEbmgE7AAAC/87+WADiA1sAAwATACBADQATCwoBEQIAEgsNCggALzPNMi/ezQEvM8wyzTIxMBMjNTMRFAcGIyInNxYzMjc2NREz4np6Iy1lMC8XJxM0Dgd6As+M+/mDNUQNaAo1F0gC8wAAAQAAAuwCkgW6AAYAK0APBAMFBgACAQUFAgQGBgQCuAEUhQA/My8QzTIBGS8zM90YzRkQ3RjNMTABASMBMxMTApL+8HH+74DIzQW6/TICzv3BAj8AAQBc/lEE6wXTAFcAd0A9Tk0AP0ABR0hIMy44Jg0lJiYmExkNDVkuJhkBAAAZR0UeSEoPAAEBEwgTPSklJiYzKTMeCB5TPz0JKR4eAwA/7T8zM+0RORESOS8zERI5ERI5LzM/M+0yAS8zL80Q7RI5LxI5My/tEO0ROTIvMxI5ORI5OTEwEzcWFx4DMzI+AjU0JicmJicmJicmJjU0PgIzMhceAxcHJiYjIg4CFRQXFhYXFhcWFhUUDgIjIicXHgMzMjcXBiMiJicnLgMnLgNctw4uHFNjbTZShmA0T10dgmZmjClqZliRumGhfj9gQiQDug+tqT96Xjo5HJVz7FmBeV+Zw2MuKpkPISEgDkA6YGdwT5JApxMfGxgNOVxBIwHXEG9GKjsmEihDWzNFZyMLJBgZLRY3omZomGQwNRpOY3ZADouOFTNVP08zGjUaNCk8tHZspW44A6oRHRYNWHGFXk7LFiIZEwkfWWt8AAEAKf5RBSYFugAcAEVAJRINDA0gERIUERESHAAAEREMHg4ODBENHhACDBIeCggcGR4AAw8APzPtMj/tMj/tMgEvMy8REjkvMy8zhxArh33EMTABBgYjIi4EIyM1ASE1IRUBMh4EMzI2NwUmNHhJXp6Ng4aOUpYDiPzOBBr8bUuPiYWCfz8oUx3+1kNCQGBvYEC0BFmtrfuePVxqXD0rLf//AGn+UgG8BCYCJgDVAAABBgDeHgAAC7YBABgEAANBASs1AAAIAKr/2wc1BtUADQAgAD4ASQBQAMUA0gDfAQ5AcceLgoeHj8Zvxjw7Nd7V09vW2dk0LS4nNDU1pJ+fpZhfmFlRsA5KThUaHU5ODAkJBgIDAwAGxpiwBgawmMYEzeE/RER4zdve1dU8PC4uNTkwMDklKSknJaQfTB1OGBMJDAykubmkpIuCx83G0NCtrZiSuALvQBJnb3NzZ19ZWWdERkE/ZwMCAmcALzMvMxDezd3NETMvMxEzLzMQ7TIyLzIvMzPe3c0yLzMvETMvM94y3TLezRDOMjIvEM0yLxDOMi8yLzMvzTIBL80yL80REhc5Ly8vLxDNMxEzETMvzTIv3d3NEN7NEM0yETMQzTMvzTIv3TLezREzLzMzzTIyEN7NETMQzTMvM80zMTABFAcnNjY1NAIDNjY3EhMUBwYjIyIVFBYVJjU0MzM2MzIBFAcGIyInBiMiNTQ3NxYzMjc2NzcWFxYzMjc3FhYBFAcGBwc0NzY2NwE0IyIHMzIBFAcOAwcHJiYnJiYnBgYHDgMjIiYnLgMnBgcGIyIuAjU0PgI3PgM3LgM1NDc2NxcWFhcWFjMyNjc2NjcDJiYnJiY1NDc2NjcTFhYXHgMzMjY3AyYmNTQ3NjY3FhYXHgMXHgMFJwYGBwYGBxYWMzI2ARQHJzY2NTQnNjY3FgaaXhIEBC8wEy8caZs1O0+5IwM2VRqEgFv9BBobKSgrIkRUCh4FOBUZFgYXCggNJi0VGQID/g0aGVrJKAUsJgViJD1eW2T+jAkEDQ8PBRYwUCcgKxIWLhwMICQkECA9Gw4SDgsGKTc4NThaQCIYKTQcDDFCTykCBQUDFxMgGwoUDQ06ORcqDgwhFDsEBAIEAxcKGRBMDSATCSIqLRQOEAJPAgMXChkOAhEPCQ0LCAQHCQUC/PkTLVEYFSERFjcyHDwBeSIWAgIiChcOJwJGdKYKKDsTfQGbASQqXzb9qAMWOTI2MQYcBjY5SrH+SkU3NxhVYxM4DFMrJiwGJwgTagYLFPuDLhcWJFEyHAQUEAYWKm37/iYeDicpJgwyAhQQDSYdICwRBw8MBw8UCR8jJA87JyYJDxYNFTxCQhsMHiImEwcWGBYHICwiJqQ8czY3OQ8KCB8eAREQGgoTHAkhLBEjE/5cKj4XCxcSDAwbAXAUHAghLBMjEQ1ORSk6LiYVJDIlHDpvECAODTMcCQohA+o3SgQTGwhFRBMrGXcADP/C/0ILjQbVACkAUABeAHEAfwCcAKcArgC4AM0A2gDhAXlArD4+PStBO6+vmpmVeNdyzs6dtLSMjYaUlZU9PTs1NDQ7GCgfADtf227f311ma2taTkxMT0NIR0dERENDKkJdWlpXU1RUUVcwOwEwQgE7QldXQjsDrOMfF6isnaKix7+/uszMCxEDrFRTUwA0NTUvNwCorq4YfNLZr7G2tJWamo2NlYSXl4iSktl2IXDdbt9pZGRaXV1MSEdPRENOTiE9Pj4hnZ+kor/EuqoVFSG4Au+3HxysUEEoDxi4Au+zKgYDAAAvMjIy/TIyMjIy3jLtMi/N3twy3s3dzREzLzMRMy8zMzPMMjIzLzMzLzPdMt7NEN7NMi/NMy/NzjIvMi8Q3s3dzRDezREzETMQ3s0zETMRMy8zAS8z3cwzL80yL80zL80Q3t3OERIXOS8vL11dEM0zETMRMy/NEM0zLzMvMxEzEM0yLzMSOS/NEjkvzd7NEM4ROTkRMy8zETMvMy/dMt7NMi8SOS/N3s0Q3s0yLxDNMhE5GS8xMAEhIicGBiMjIi4CNjYzMzI3Njc2NxYVISYnJiMiBgc2MzIXFhYXFhczBSEUBwYjIi4CJzcWMzI3NjU0JzcWFRUhAyc0NjcXFhYXFxQHJxMlFAcnNjY1NAIDNjY3EhMUBwYjIyIVFBYVJjU0MzM2MzIBFAcGIyI1NDc2MzIXFgUUBwYjIicGIyI1NDc3FAYVFDMyNzcWMzI3NxYWJRQHBgcFNDc2NjcBJicGBxYXARQHBgcHNDc2NwEHLgMnPgMzMhYXHgMVFAE0JyYjIg4CFRQzMgE0IyIHMzIGwvuOq5c6ejUlExoPAgwaFSVjZTxbUEKlAraZY351GjMaSLBmix9wUnctPAL3/oi+r3w6cW1rMxHLQMHBuZY5pQETdzQWGg8BIh9kGzB2ATleEgQELzATLxxpmzU7T7kjAzZVGoSAW/k8Li5DbCgoOzYlJQL0Gx0yISIwOlQbFQQkPSYVECVIBhUFBvo4Ghla/ocoBSwmAdcXTko7V4oFchoZWskoCk352xMCEhogEAQKCwsGFhQGCAsHAwPVJyUdDRcQCmw7BpwkPV5bZAEhfkg2GiYuJhqTWEI5EPt7dzI+AwS4ZBZeS2wJrqKmlxUjKxYoKKmkkY+nnZjARQNQGUB7PAsdLA4oekYQ/PBhdKYKKDsTfQGbASQqXzb9qAMWOTI2MQYcBjY5SrH97j4xMXJOOjwuKxpLMTUZVWooRQcIIww5nAZbhwcgK/UuFxYkmTIcBBQQ/KJsZxNhXBAEAS8XFiNPMRwIIP3JAhI7QkIaBhMUDh4QFDEzLxIeAT8bIyINFBgMPAHgKm0ACf8S/rQIkwbVAA0AIAA9AEgAUwBaAF4AhACrAUVAiIWrnamnp6qeo6Kin5+enp0OVFgVGh1YWAwJCQZbXV1/AgADBm5vb3RrTklJhHuAf397nWt7e2udA62Gm5Y+Pjs6NkNDLS4nNTY2mZiYlpCPj5Y+QEVDQzs7Li42ODMzOCUpKSclmaqfnqmnoqKnpwwfVh1YGBMTCQwMmJmdXlxcf4CAb25uq524Au9ADYaPipCSkoZOUEtJSWe4Au+2d3eGAwIChgAvMy8zETMv7TIvzd3NETMvM80yEO0yMi8zMi8zMy/NEMwyMi8zMy8z3TLezREzLzMvEM0yMjIQzjIyLxDNMi8QzjIvMi8yL83dzQEvMy8zETMvMzMv3TLezTIvEN7NMi8QzTIRFzkvLy8RMy8zEM0yL80QzTIvM94yzTIROS/NETMvzTIv3d3NEN7NETMvMy8zETMQzTIvMxDNMjEwARQHJzY2NTQCAzY2NxITFAcGIyMiFRQWFSY1NDMzNjMyARQHBiMiJwYjIjU0NzcUBhUUMzI3NxYzMjc3FhYnFAcGBwc0NzY2NwEUBwYHBzQ3NjY3ATQjIgczMgEHJzcBFAYHDgMjIicmNTQ2NxcGBgcGFRQWMzI3NjU0JyYnNxYXFhUFIRQHBiMiLgInNxYzMjc2NTQnNxYVFSEDJzQ2NxcWFhcXFAcnEwVkXhIEBC8wEy8caZs1O0+5IwM2VRqEgFv8ZxsdMiEiMDpUGxUEJD0mFRAlSAYVBQYPGhpZySgFLCYHExoZWskoBSwm/d8kPV5bZAF3S5xIAdlFQiNgdIRIyGp0LCUqBwsEFrClv5C1HhkxUzYTFPuh/sS+r3w6cW1rMxHLQMHBuZY5pQETdzQWGg8BIh9kGzB2AkZ0pgooOxN9AZsBJCpfNv2oAxY5MjYxBhwGNjlKsf4RSzE1GVVqKEUHCCMMOZwGW4cHICvpLxcXIk8xHAQUEPoDLhcWJFEyHAQUEAc9Km39o49Wi/zDcJU1HC8hE0ZNn1euWgwTIQ9RR32AQ1KWZVlMPM1TUlaJaaKmlxUjKxYoKKmkkY+nnZjARQNQGUB7PAsdLA4oekYQ/PAAAAYAMv+YDDgDogA2ADoAPgBFAFAAWwC+QEs+PDs9Ojg5Nzc9PV1LJTUARkYALCMfHx4eGQAjI11WUVE/CAcJCRBDBBg/VlhTUQFLTUhGAT07PD45Nzo4ODw+Ojo+ARZBGR4fHy64Au+1KUVDNSQZuALvtQEJBwcEAQAvMzMvMxD9MjIyMtztMi8zENzNEM4yLxDNMi8SOTkREjk5EN7N3c0Q3s3dzQEvzdwyzTIvMzMRMy/NETMvzM0yLzMZLxgQzhE5LxI5Oc0RMy8zL805ORDNOTkxMAEhIiYnBgYHISc+BTc2Njc2NjcWFSE0JyYmJzcWFxYVFSEmJyYjIgYHNjMyFxYWFxYXMwEHJzcFByc3ASYnBgcWFwEUBwYHBzQ3NjY3JRQHBgcHNDc2NjcMOPe4XaJLQ5hj/swCLGdpZ1lHFTVkPiZLIaUDYBwKLyVOSREbAuOZY351GjMaSLBmix9wUnctPPqYTqJLAaRMokr8uhdOSjtXigZlGhlaySgFLCb5/RoZWskoBSwmASFBSGegNBkPLDY+Q0YiWo0yHyMI+3t5OxY8KqNbNE6wRncyPgMEuGQWXktsCf5ZkFaPQpFUkQFXbGcTYVwQ/twuFxYkUTIcBBQQUC4XFiRRMhwEFBAAAQBE/1IOjAK9AFsAfkAjEQUUVAAAVDk5OD8zODgzQycqKzNUM1QzXQsNODk5GyorK0+4Au+yGzAiuALvskgFALgC77RbWxEMCrgC77QODkNASAAvMzMzL+0zMzMv7TIQ/TLc7TMvMxEzLzMBLzMSOTkvLxDezTIyEjkvEM0RORkvETMYLxDNMjIxMAUuAycOAyMhJTUhMjY3JiY1ND4EMzIeBDMyPgI1NCYnNx4DMzI2NTQuAic3HgMVFSMiJicOAyMiLgQjIg4CFRQeBBcLpBY8QT0XEDI/Syr3ff8ACYUxOxQNDhgtP05bMiM5Mi4vNSAbLiMUCAcqECApNSUbIQ4YIRNBGR4RBk1AXCYeLissGjdVQzUwLxopRzYfHzNAQjwWmgQVHCEQESomGaMLIBUWMx0ta2tkTS4rQExAKw0aKBsfOiI8PmlMKyEaGy0qKxptJz1ASTPwIyAWGg4FLUNOQy0uQkodHDMtJx8WBf///7oBJQGxBZACJgLwAAAABwNJAAD+1////7oBJQGxBYsCJgLwAAAABwNKAAD+Xf///7oBJQGxBZECJgLwAAAABwNLAAD+vv//AAIBJQHWB1ACJgOOAAAABwLx/7wBE///ADIBCgGIByoCJgONAAAABwLx/+wA7f//AEYDyQGcBS8ABwLxAAD+8v///7oBJQGoBS8CJgLwAAAABwLxAAD+8v//ABoDvwG5BUIABwLy/9T+6AABADoBJQJRA7IAEwAiQAsAABUKCwsOBQsKErkC7wAAAC/9zDIBL80yLzMRMy8xMAEjIicmNTQ3NjY3FwcGFRQXFjMzAlFWwXGPKggjHR4rHXxuqzoBJUNUs1xiEUMxE1xIN3dAOv//ACn+9gF/AFsABgLz4wD//wBGBF4BnAUtAAcC9AAA/vz///+6ASUBqAUtAiYC8AAAAAcC9AAA/vz//wBIA6sBrQVeAAcC9QAA/tT///+6ASUBrQVeAiYC8AAAAAcC9QAA/tT//wAp/9UBfwCkAAYC9uMA////uv/VAagB0wImAvAAAAAGAvbjAP//AEYD3QGxBR8ABwL3AAD/Bv///7oBJQGxBR8CJgLwAAAABwL3AAD/Bv//AG4D3QF5BRMABwL4ACj/Bv///7oBJQGoBRMCJgLwAAAABwL4ACj/Bv//AJ4DlQGOBHsCBwUtAAAD9P//ABADlgHkBNYCBwUuAAAESv//ABsDlgHvBYkCBwUvAAAE/f//ABADlgHkBYkCBwUwAAAE/f////kDUQH7BYwCBwUyAAAFAAACAI3/LgGmAMcAAwAHABW3BgQDAQIHBAMALzPMMgEvzd7NMTA3ESMRMzMRI+xful9fx/5nAZn+ZwD//wBrA5UBhwV1AgcFMQAABOn//wBGAEoBUQGAAAcC+AAA+3P//wAyA8MCiwY9AAYFM2Sd//8AMv6lAosBHwAHBTMAZPp/AAEAD//xBGQFugAfANOwhStYQElkHAFFHFUcAgoVGhUqFQM7FAEMDQ0REBAZJhgYIRILDiAEAgMDBwYIAQQTHgAeCQESAhkREAQPEAIDEAUOBg0MCAsMBgcMDAkCAD8zL9zNEjk5EN0ROTne3M0SOTkQ3c4SOTk/M+0BLzMzzjIyLzMQ7TIyEjkv7TMvMzMvMzEwXV1dXRuxHhO4AzRAH2wAHgkBEgIZERAEDxACAxAFDgYNDAgLDAYHQAwMCQIAGD8zLxrczRI5ORDdETk53tzNEjk5EN3OEjk5PzMrMDFZBREFNSU1BTUlETMVJRUFFSUVBRE+AzUzFAIGBiMiAVL+vQFD/r0BQ8IBT/6xAU/+sWCSYzPIZrj+lzEJAuVNnk2fTZ5NAQPUUp5Sn1KeUv2VEmSXwG6q/u3DagACABMBJQLqBewAJABJAFpAJzolJTdBLCoqMEEgHx8kG0EbQRtLEBUFDw8FDxA6NDwsKSVFKh8gGrkC7wAAAC/93jLe3TLNM97NMy8zAS8zLxDNMhI5OS8vEM0zLzMQzTIvMhDMMi8yMTABISInJgMmJicmJicmJyYnNxYXFhYXFhYXFjMhNCcmJzcWFxYVAxQHBgcHNDcmJyY1NDc2MzIWFRQGByYjIg4CFRQXFjMyMjc2Aur+YEUoSQkCCAQDCQULERcmeyYRBQkGAyARHCEBVxwUSk5IEhtsHxMsumQeERU1Oy0UHQwLHyQLFxMMLi8hCw8FCAElN2EBGC5+PDxZH0AlMSPCdqk09cNcbxkqeDwsUKNcMk2yApwaEwwQQC8iEA8TFR84PhsWDh0SHAUICwYQGRoBAf//ABMBJQLqBewCBg+UAAAAA//3ASUEJwVZACsAUABbAHBAMkEsLD5IMzExN0gnJiYrIkgiSCIUXQxWW1EZEAUUBQhbWVEZEFFRJ0E7QzMwLEwxJichuQLvAAAAL/3eMt7dMs0z3s0zETMv3c0Q3jLNMgEvMzPNMzPczRESOTkvLxDNMy8zEM0yLzIQzDIvMjEwASEiJyYnBgYjIicmNTQ3NjcnJiY1NDc2NjcWFhcXFhcWMyE0JyYnNxYXFhUDFAcGBwc0NyYnJjU0NzYzMhYVFAYHJiMiDgIVFBcWMzIyNzYBBgYHBgcWFjMyNwQn/kpINykZHlwzdExMcHGnCQIEFwoYEAoYCx4ZFCAgAW0cFEpOSBIbbB8TLLpkHhEVNTstFB0MCx8kCxcTDC4vIQsPBQj99SxEGTIiFTgxPDYBJXtbkjk9DxAYV2dpTioMGgQhKxEjEj9yP6yPQ2h4PCxQo1wyTbICnBoTDBBALyIQDxMVHzg+GxYOHRIcBQgLBhAZGgEB/qkQIBEhNwkKPwD////3ASUEJwVZAgYPlgAAAAMAMv9jBRsFWQAuAFMAXQB3QC1ELy9BSzY0NDpLKikpLiVLJUslVF8MCwscWwEkGFREPkY2My9PNCkqKiBYVCS4Au9ACQALDAwFEREYAAAvMjIvzTMRMxD9MtzNMi8z3t0yzTPezTMBLzPNMt7NMi8zERI5OS8vEM0zLzMQzTIvMhDMMi8yMTABIQYHBiMiJyYmJyc3HgMzMjc2NzY2NyInJjU0NzYzMhcWFSE0JyYnNxYXFhUDFAcGBwc0NyYnJjU0NzYzMhYVFAYHJiMiDgIVFBcWMzIyNzYBJicmIyIGFRQWBRv+VRJjibFCRhpBKoIRHDw7ORh5blRWFjwoh0NMMDdXVyYeAV0cFEpOSBIbbB8TLLpkHhEVNTstFB0MCx8kCxcTDC4vIQsPBQj+pxceGyccKVgBJYaGtg8FEw4tIwYPDQg+MV0XTDYrMXBmWWZlUIx4PCxQo1wyTbICnBoTDBBALyIQDxMVHzg+GxYOHRIcBQgLBhAZGgEB/SZhJCAlHDEz//8AMv9jBRsFWQIGD5gAAP//ADL/YwUbBVkCJg+YAAAABwL1AUz+yv//ADL/YwUbBVkCJg+YAAAABwL1AUz+yv//ADL/YwUbBVkCJg+YAAAABwU2AUz+/P//ADL/YwUbBVkCJg+YAAAABwU2AUz+/P//ADL/YwUbBe8CJg+YAAAABwU7AsL/dv//ADL/YwUbBe8CJg+YAAAABwU7AsL/dgAEACT+TgSABVkAQwBoAGwAcACbQDRtb29pawQzECpZRERWYEtJSU9gYD8+PkM6azMqOjoqM2sEGHIdHh4iGGpsbG5wcBQwBgAmuALvQBAUWVNbS0hEZEk+Pz8eHR05uwLvAAAC6wEghQA/7TIvMzIvM97dMs0z3s0zL+0ROTkRMy/NMi/NAS/NMi8zERIXOS8vLy8QzTMvMzMvzTIvMhDMMi8yEM0QzRDNMy/NMTABIyIGFRQzMhYXFhYXFhcWFRQHBiEiJyY1NDc2NjcXBwYGFRQXFjMyNzY1NCYnJiYnJiY1NDc2NzYzMzQnJic3FhcWFQMUBwYHBzQ3JicmNTQ3NjMyFhUUBgcmIyIOAhUUFxYzMjI3NgEHJzc3Byc3BIB6m5pdFCEMDDQpMBIde4b+y9d/h0ALPTEoSxsegHnWkWuGISAmTC4/Nkk6Z05SMRwUSk5IEhtsHxMsumQeERU1Oy0UHQwLHyQLFxMMLi8hCw8FCP6XIl4kQiJeJAElEBghAQEBBQUGCQ8lu1VdSU6QdYEXZE4UgS9iI3pBPRYbLxEPAgMGAQEgIXxPPyAXeDwsUKNcMk2yApwaEwwQQC8iEA8TFR84PhsWDh0SHAUICwYQGRoBAfnsRhhGVEYYRv//ACT+TgSABVkCBg+gAAD///+6/qwD5QVZAiYPpQAAAAYFMQAAAAIAJP8fBIAFWQBDAGgAfUAmBDMQKllERFZgS0lJT2BgPz4+QzozKjo6KjMDGGodHh4iGDAGACa4Au9AEBRZU1tLSERkST4/Px4dHTm6Au8AAALrAD/tMi8zMi8z3t0yzTPezTMv7RE5OQEvzTIvMxESFzkvLy8QzTMvMzMvzTIvMhDMMi8yEM0QzTEwASMiBhUUMzIWFxYWFxYXFhUUBwYhIicmNTQ3NjY3FwcGBhUUFxYzMjc2NTQmJyYmJyYmNTQ3Njc2MzM0JyYnNxYXFhUDFAcGBwc0NyYnJjU0NzYzMhYVFAYHJiMiDgIVFBcWMzIyNzYEgHqbml0UIQwMNCkwEh17hv7L13+HQAs9MShLGx6AedaRa4YhICZMLj82STpnTlIxHBRKTkgSG2wfEyy6ZB4RFTU7LRQdDAsfJAsXEwwuLyELDwUIASUQGCEBAQEFBQYJDyW7VV1JTpB1gRdkThSBL2IjekE9FhsvEQ8CAwYBASAhfE8/IBd4PCxQo1wyTbICnBoTDBBALyIQDxMVHzg+GxYOHRIcBQgLBhAZGgEB//8AJP8fBIAFWQIGD6MAAAAC/7oBJQPlBVkAFwA8AGRAKy0YGCo0Hx0dIzQTEhIXDjQONA4DPggHBwwDAi0nLx8cGDgdEwcICBITAw26Au8AAALrAD/9Ms4yMi8zEN7dMs0z3s0zAS8vzTMvMxESOTkvLxDNMy8zEM0yLzIQzDIvMjEwASE1ITQnJic3FhcWFRUhNCcmJzcWFxYVAxQHBgcHNDcmJyY1NDc2MzIWFRQGByYjIg4CFRQXFjMyMjc2A+X71QHxHBRKTkgSGwGoHBRKTkgSG2wfEyy6ZB4RFTU7LRQdDAsfJAsXEwwuLyELDwUIASWueDwsUKNcMk2yRng8LFCjXDJNsgKcGhMMEEAvIhAPExUfOD4bFg4dEhwFCAsGEBkaAQH//wA6/5gFtQPAAiYFKAAAAAcFNgHf+sH//wA6/5gFtQPAAiYFKAAAAAcFNgHf+sH///+6/5gB9AOmAiYFKQAAAAcFNv+j+sH///+6/5gB9AOmAiYFKQAAAAcFNv+j+sH//wA2/k4EIAVkAiYDoQAAACcFLgFUBNgABwUtAXYA0v//ADb+TgQ1BWQCJgOiAAAAJwUuAVQE2AAHBS0BMgCG////uv+8BD0FZAImA6MAAAAnBS4BIwTYAAcFLQC0ABv///+6/7wEPQVkAiYDowAAACcFLgEjBNgABwUtALQAG////7oBJQSnBlkCJgPBAAAABwUuAmQEkP///7oBJQSnBlkCJgPBAAAABwUuAmQEkP///7oBJQSnBlkCJgPBAAAABwUuAmQEkP///7oBJQSnBlkCJgPBAAAABwUuAmQEkP//ACf/oQZPBiwCJgW6AAAAJwUvBEwFoAAHBS0D8wAA//8AJ/+hBk8GLAImBboAAAAnBS8ETAWgAAcFLQPzAAD///+6/6ECJAaQAiYFKgAAACcFL//ZBgQABgUtAAD///+6/6ECGgaQAiYFKwAAACcFL//tBgQABgUtAAD//wBG/kUEpwV3AiYFLAAAACcFLQGI/qQABwUuAk0E6///AEb+LASnBRMCJg//AAAAJwUtAYj+iwAHBS4CSgSH////uv+hAiQF6gImBSoAAAAmBS0AAAAHBS4AHQVe////uv+hAhoF0AImA9gAAAAGBS0AAAABAEcADgQNBjMANwCIQDkVFRkZGhcWEwQSHTMRDxIHCwoKCAcAAAQEBgMCNwQzBwczMyM5KCkpLSMpKCg3GgITBgMWFwICES+4Au+2IQ8KEggHEbgBKIUALzMzM8wyL+0ROS8z3TLNMhDNMjMvMwEvzTIvMxESOS8zLxIXOTMvMy8QzTIvMxDdzTIQzREXOTIvMy8xMAE1ISchNTMnJzQ3MxYXFhcUBycXMxUjFzMVIxcWFRAFBiMgETQ3NjY3FwYHBhUUITI3NjU0JicnAnIBCwr+//UnLjcRCCYpSxk5G0g9CjMoEBj+8G6p/mFZECoaIFQbEwFSqo+eDxAUA2RKSkrlGIdtRBAQJmBgErlKSkqF0W3+1kseATCcxCNRMBOaXUJC+TpBWDGkdI0A//8ARwAOBA0GMwIGD7oAAAAB/7oBJQGoBjMAJAB5QDEZGR0dHhsaFwQWICMVDxYHDAsLCAcAAAQEJAIDBgQjBwcjIyYiHiQCGwYXGgMDFR8iugLvACAC67YPDAsWCAcVAC8zMzPMMjI/7TIROS8zzTLdMs0yAS8SOS8zLxIXOTMvMy8QzTIvMxDdzTIQzREXOTIvMy8xMBM1MycjNTMnJzQ2NxcUFxcUBgcGBgcnFzMVIxczFSMTFSE1IQMN9Ar37CA0GBgPQWUEBAQKBTAbST0LRDk5/hIBiTgDZEpKSuEZRXk5Cz0aKBk1HR0qDhC3SkpK/oXErgGRAP///7oBJQGoBjMCBg+8AAD//wAj/k4CtAVLAiYD4QAAAAcFLwAqBL///wAj/k4CtAVLAiYD4QAAAAcFLwAqBL////+6ASUDJwXKAiYD4wAAAAcFLwEPBT7///+6ASUDJwXKAiYD4wAAAAcFLwEPBT7//wAy/lcE2QTwAiYDNQAAACcFOQIn/eYABwUuAXn/C///ACT+TgS1A2cCJgPyAAAABwU5Aif8Xf///7r/cwH0BVsCJgUpAAAAJwU5ABr+UQAGBS4HJ////7r/cwH0BVsCJgUpAAAAJwU5ABr+UQAGBS4HJ///ADL+VwTZBOkCJgM1AAAAJwUtAicEYgAHBS4Bef8L//8AJP5OBLUDWgImA/IAAAAHBS0B/ALT////uv9zAfQFFwImBSkAAAAnBS0AGASQAAYFLgcn////uv9zAfQFFwImBSkAAAAnBS0AGASQAAYFLgcnAAIASv8cA7cDcAAyAEQASkAiMyEcABg7GxwLCgoPBRwFHAVGOyswNjMAQCYbHBwhGCYKCwAvMy8zMzMvMxDdMjLezQEvzRI5OS8vEM0zLzMQzRE5ORI5OTEwJTY2NzY1NCcmJic3FhcWFRUUBgcOAwcWFhcHLgMnDgMjIi4CNTQ+AjMyFhcmJiMiDgIVFB4CMzI+AgKUJEAdWi4TMyI5UyYsMi8MISUkDwkUBTMCBwoMBhg3OTobNoFxTBszSC15whI/oWMWLSUXMEhUJRg3NzVLHkAmclxQViNIJZ1NS1Zq8zdwQREjIh8MGkksEQofIyIOER4WDSRHaEUrRjIbbY1VYQ0bKRwqPCUSEBke//8ASv8cA7cDcAIGD8oAAP//ADL/YwN1AxQCJgPtAAAABwUtAMYAsv//ADL/YwN1AxQCJgPtAAAABwUtAMYAsgAEAEb/+wNrA/QALwA/AEMARwB5QCs9OjBAQkJGHAMfLEREHykwMB9JAABJOh8PDg4LFBQfDg8PRUVBQ0dHQwAkuALvtDU9LBcvuALvsxwIAwC4AusAPzIyMv0yMjLc7RDOMi8QzTIvMi8zAS8zL80yLzMQzREzLxESOS/NETkvORI5Oc0zL80REjkxMAEiJicHDgUVFBYXBy4DNTQ2Nz4DNyYmNTQ+AjMyHgIVFAYHFhYzJy4DIyIOAgcWFhc2NhMHJzcHByc3A2tzrUAQH0lIQzMfKTE9JjYiD0MzGjk6NhcXIC5NZTciNiYVNSomZjW+AhEbIhETLSofBQ1GJjA+X0OURUNDlUcBJT0wCRITDg0YKCAhX0MrMlRMSSdAQw8HCQkMDBo8HEWJb0UtT20/OWMqFR7nCSosIhIbHg0pSR4gNv3jgkuDTIFMggD//wBG//sDawP0AgYPzgAAAAH/Hv/AANgA5QAmABG1BwAbEwUYAC/MAS/N3M0xMDc0Jic1MxYVFAYHBgYHBgYHBgYVFBYXFSMmJjU0Njc2Njc2Njc2NrQCAyAJGBgWUTA7VhoUEAICIAIGGxYXSzZFSxkRE74GEwgGFxogNw4MFAYHBwcIFRAGEwgGCx0WGi8ODg8FBg0HBRgAAAL/SP/xAPABdAArADYAP0AeCQYGCgMANSEsMRcSGCUxNQMhCgQJKS8YFx4JCQ8eAC/NMy8QzDLczRIXOQEv3d7NMhDeMjLNMjIyLzMxMBMUBgcWFhUUBgcnBgcGBiMiJjU0PgI3FxQWFxYWMzI2NycmJjU0NzYzMhYHNCYjIhUUFxYXNvAWFg4SAwRWLzkjQywgJQMFBgMTAgMEIh8wWCUhDgwnKzUbJkcYFBYSAyANATQlQSIKFw0XLRRDNx0SEkQ/DR8dGQgHFCgXHSosGyEOHxAvLzQmVRcmHBMTBRwTAP///x7/NQDYAFoCBw/QAAD/dQAC/uf/wADYAZUAJgBNAChAEUI6OhMuJycHABsTP0AsgBgFAC/MGtwazAEvzdzNMy/NETMvzTEwNzQmJzUzFhUUBgcGBgcGBgcGBhUUFhcVIyYmNTQ2NzY2NzY2NzY2JzQmJzUzFhUUBgcGBgcGBgcGBhUUFhcVIyYmNTQ2NzY2NzY2NzY2tAIDIAkYGBZRMDtWGhQQAgIgAgYbFhdLNkVLGRETNwIDIAkYGBZRMDtWGhQQAgIgAgYbFhdLNkVLGRETvgYTCAYXGiA3DgwUBgcHBwgVEAYTCAYLHRYaLw4ODwUGDQcFGMAGEwgGFxogNw4MFAYHBwcIFRAGEwgGCx0WGi8ODg8FBg0HBRgABP9P//IA5gJCACkANQBhAG0AakA1Pzw8NhYVEhI2YmdbTk1ISAkGBgAqLyMjW2s5V0AEZT8/RVRNJzQDHwoECS0tZV8JCQ8cFV8AL87ezTMvEM0yLxIXOd3O3s0zLxIXOQEvMy/d3s0yLzMyLzPNEN3ezTIvM80RMy8zMTATFAYHFhYVFAYHJwYHBgYjIiY1NDY3FxQWFxYWMzI2NycmJjU0NzYzMhYHNCYjIhUUFxYWFzYlNDY3JiY1NDY3FzY3NjYzMhYVFA4CByc0JicmJiMiBgcXFhYVFAcGIyImNxQWMzI1NCcmJwYG5hUVDhEDBFItNyJAKiAjDAUSAgMEIR0tViMgDgsmKTMaJEQWFBURAhIODP6tFhUOEQMEUi42IkAqHyMDBQUDEgIDBCEdLlUjHw4LJSoyGiVFFhQVEQQeBwUBKCNAIAkXDBcqFEE1HBEROjUXNQ4HEB4TFyEqGh8OHg8sLjIkUhckGxEUAw8NEi8jPyAKFg0WKhRANBwREjo1CxoZFgcHEB4TFyIqGiAOHQ8vLDIkUhYkGxETBRsKEQD///75/oUA6gBaAgcP0wAS/sUAAf+1//QASgCJAAMADbMAAgMBAC/NAS/NMTA3Byc3SkFUQUhUQVQAAAL/Uv/0AKwAiQADAAcAHEALBAYCAAMDBwUBAQUALzMvEM0yLwEvzd7NMTAnByc3BQcnNxlBVEIBGEFUQUhUQVRBVEFUAAAC/0f//AC6AOoAFwAhACxAEw8NDQkLgAAbCgsLAxgeDg0NFR4AL80zL80Q3s0zL80BL80azDIyLzMxMCc0NjMyHgIXNzMVBxcVIycGBgcGIyImNyIGFRQWMzI3Jrk7MBMnJiIPcwRKSgRkDSYUMyYwO2wUGRkUJ0dGbTA9DhUYC1ZLNz0vTgoaCx5AYhYVFRcsKwD///+1/3IASgAHAgcP1gAA/37///9S/3IArAAHAgcP1wAA/37///9H/yMAugARAgcP2AAA/yf///8A/84BCAFzAicC9P66+mwABwL0/2z7Qv///qYAAQD9AbQCJwL1/1D7KgAHAvX+Xvsq////AP6VAQgAOgInAvT+uvkzAAcC9P9s+gn///8jAE8AsAIQAAcGVP8j/CkAA/8k//MA2AEVACMAKwA1AEpAJSMiBQglLiQWEhEZMSQiJSQWBBUjBS4xEQQSAiMjHSg0FRISDDQAL80zL80Q3M0zL80RFzkREhc5AS8z3TLMMxDdMt0yMswxMDYGBwYGBxQWFRQHBiMiJyYmJwc2Njc3JiY1NDc2MzIXFhYXNwU3JiYjIgYVFzY1BgYHFhYzMtYgEgUKBQErKjw8KgUHBGYBGBMhAQEsKD08KgUKBF/+zKMNJRUmNp0dI08tDSISJ9orEAIEAgUJBT4oKysECQUpGikRDQcNCDwqKysFCwYmfUIOETQmQBskDh0TDg7///9X/80ArQEXAicC9P8R+msABw/W//UAjv///1f++wCtADcCJwL0/xH6BgAHD9YAH/8HAAH/kv/2AG4BaQAIACRADQgIBgMHAAgHBQYDAgcAGS8zM90YzRkQ3RjNAS/NzTIvMTAXIyc1NzMVBxduCdPTCZ6eCotdiz53eAAAAf+S//YAbgFpAAgAJEANBgYIAgcACAcFBgMCBwAZLzMz3RjNGRDdGM0BL83NMi8xMAMzFxUHIzU3J24J09MJnp4BaYtdiz53eP///5L+kgBuAAUCBw/jAAD+nP///5L+kgBuAAUCBw/kAAD+nP///y//9gDdAWkCJg/knQAABg/kbwD///7X//YA/gFpAiYP5L4AACcP5ACQAAAABw/W/yIAZ////zT/9gCIAWkCJg/kGgAABw/W/38AZ////zEABQCpAbgCJwL1/vz7LgAHD9b/fACBAAIAUwCiBBYFywBPAFgArkA6OVBBQS8yTAAJBAAEAAktLyFSE1QoJVAdHRgYEhEfHBoXEwkNDAwKTwYDAgkJUDk9PUNMITJSBB8vVLgC77IqKii4AutAEk8fHAIDGgZDQxENDBMKCRIXBrgBFYUALzPcMjIyzTIyMi8Q3TLdMs0yPzMv7TIRFzkROS8zAS8zLzMzMzPNMi8zEN0yMjIyzTIyLzMvEM0y3hE5Oc0yETk5Ly8REjk5ETMvEjkxMAE1MzcjNTM2NjUnNDcXFhcWFwcnFhYVFTMVIwYHMxUjBgcWFxYVFAYHBiM0NDc2NzY2NyYmJyYnJiMiBwYjIicmNTQzMhMWFhcXFhYXNjY3AzQnBgcyNjc2AqejCdPZAgI5LBcELDdAMDsBAXF0AwZ9jSVWKA0XBgXh7AEEFFWPOyMzEDBHRyQNHhIJLW4+MU7DJkokZhQuGhonDjAuR4g8UxlVA2RKSkojRyUhfF0GLBkhGbQdJy8ID0omJEqUkUgmP0EjPRwzBhAKSUQudUlDXRtRamgPCIxQRpb++jNtOqQhVDM1azb+FSZVXVQDBAwAAAIASgDyBM4F3gA0AEsAikAzPkQFBQAANzUJDA0QBAgTHQ4OCgg0AgMGBB0HByIdHS0aGk1ERC0tLCwaQEBGIjQ3NzQYugLvABoC60ANEDQNRkYHCAYJDAMCDQAvM90y3TLNMjIvEM0yP+0ROS8SORI5LxEzLzMBLzMvETMvEjkvMzMvEhc53c4yLxDNERc5zDIyLzMvETkxMAE1MycjNTMnNxczFSMXMxUjFhYXFhYXFjMzFSMiETQnJiYnBgYHBgYHBgcGITUkNyQRNDQnBxQHJiYnJiMiBwYjIicmNTQzMhcWFxYDJnkLuq0TRimNgwl6cAgUCQkhEhgYPT3EAwEBAhckDhkwGVmii/61AQiJAcgBcgwcUzd6Rg0RERIaO7ApR5qqdY8EBUpJSlWn/EpJSlCVVFFqGiSuAagRGgsQBz9eIDlYIHUlIBxPPcoBbg4ZDNUmHz+BQpMaGiNroT9bZYenAP///6z/JgBU/84CBgv2AAD//wAZAAAC6ATiAiYCogAAAAcCmwGQAAD//wAtAAAD5ATiAiYCowAAAAcCmwH0AAD//wCWAAAEQATiAiYCpAAAAAcCmwJYAAD//wAo//gEkwTiAiYCugAAAAcCmwJYAAD///+sBHQAVAUcAgYClgAA////KgR0ANcFHAInApb/fgAAAAcClgCDAAAAAQCrARgB7QOMABUAGkAKCQgIBAAOCAkSAgAvzcwyAS/NzTIvMzEwARQHBhUUFxYXByYmJyY1NDc2MzIXFgHtbWw3HjwhK0AWWDMzTT4pKAMDcxgYNjdGJzc3HzkccJVrSEgqKQAAAgCgARYB4gTgABUAJgAmQBAWHx8OCQgIBAAOIxsSCAkCAC/MMt3ezQEvzc0yLzMRMy/NMTABFAcGFRQXFhcHJiYnJjU0NzYzMhcWAxQOAiMiJyY1NDc2MzIXFgHibWw3HjwhK0AWWDMzTT4pKBsSHyoYMiIjIyMxMCEiAwFzGBg2N0YnNzcfORxwlWtISCopATUZKx8RIiMvLyMiIiIAAAIAPABzBEQDSQAdACsAREASCQgKChEFEiYeAB0dLRgjJh0ruALvtwAKCAgSEQUAuQLrAR2FAD8yMjIyL80Q/TIy3s0RATMvM93ezTIyMi8zMzEwAS4DJwYGByEnPgU3JzY2NzY2Nx4DFycuAycGBgceAxcD9CRZWVIePZxj/swCLGlubGBNFyAjXjMjSx0pQi4bAnoGGCAnExo2GhIzOj0dASUBER4qHGeNNBkPLTY9QEIfJFGIKx0gCDt1alsgNhs3NjYaCjssFyceFAQAAgA8AHMEPQNJABwAKgBAQBAKCQsLEgYTJR0AACwZIiUquALvtwALCQkTEgYAuQLrAR2FAD8yMjIyL80Q/TLezREBMy/d3s0yMjIvMzMxMAEjIi4CJwYGByEnPgU3JzY2NzY2NxYWFScuAycGBgceAxcEPUgqWldPHT2cY/7MAixpbmxgTRcgI14zI0sdU1xzBhggJxMaNhoSMzo9HQElEB4sHGeNNBkPLTY9QEIfJFGIKx0gCH65PxcbNzY2Ggo7LBcnHhQEAP//ADwAcwREBL8CJg/2AAAABwUtAf4EOP//ADwAcwQ9BL8CJg/3AAAABwUtAf4EOP//ADz/oQREA0kCJg/2AAAABwUtAfwAAP//ADz/oQQ9A0kCJg/3AAAABwUtAfwAAAAEADz+2AREA0kAAwAHACUAMwBYQBgREBISGQ0aLgQGAgAALiYIJSU1ICsuJTO4Au9ADQgSEBAIBgEABxoZDQi4AusAPzMzM94yzjIRMy/NEP0yMt7NEQEzLzPdzjIvzd7NEM0yMjIvMzMxMCURIxEhESMRNy4DJwYGByEnPgU3JzY2NzY2Nx4DFycuAycGBgceAxcCs18BGV/mJFlZUh49nGP+zAIsaW5sYE0XICNeMyNLHSlCLhsCegYYICcTGjYaEjM6PR1x/mcBmf5nAZm0AREeKhxnjTQZDy02PUBCHyRRiCsdIAg7dWpbIDYbNzY2Ggo7LBcnHhQEAP//ADwAcwREBcoCJg/2AAAABwUvAhwFPv//ADwAcwQ9BcoCJg/3AAAABwUvAhwFPgACAEb/PgSnAyoAKAA8AFO5ACAC/bI0KSi4AwNACRsYGAk+CwwMDrgDA7QJDAsLJEEKAu8ALwApAu8AHAAHAu8AEAAcATKFAC/e7RD93u0zLzMBL+0yLzMREjkvM+0z3O0xMCUUDgIHBiEgETQTFwYVFCEyNjc+AzU0JicjIicmNTQ3NjMyFxYVJyYmJyYmIyIOAhUUFxYXHgMEpxgvRzCr/uX+I4oqZwGbbLlQLkUvFwMGoVg3QzpAWnZDOpQJGw4PMBQUHRMKHxomCh8hH78tWE9CF1QBUucBARLzivkdHhEuNDUZDxkRKDFgcmdzoIa1hyNAEhQcEhoeDB8TEAYCAwEBAAEAqwAvAe0CowAVAB5ACg0ODgAIEg4NBBS4ASKFAC/NzDIBL83MMi8zMTATNDc2MzIXFhUUBwYGByc2NzY1NCcmqygoP00zM1gWQCshPB43bG0CGjYpKkhIa5VwHDkfNzcnRjc2GBgAAQAiANAC5gYQAA8AGkAKDwAAEQcIAA8IBwAvMy/NAS/NEjkvMzEwAQ4DAgIHJzYSEj4CNwLmJUlSXnSNWE1ajXNfWVgyBbMGPHvA/u7+lelO7AFwARTBfD4HAAABABQAdQIhBA4AAwAVtwADAwECAAABAC8zLwEvzTMvzTEwAQEjAQIh/mZzAZoEDvxnA5kAAQAuBCcBPAY3ABYAHkAKDQ4OAAgSDg0EFbgBIoUAL83MMgEvzcwyLzMxMBM0NzYzMhcWFRQHBgYHJzY3NjU0JicmLiEiNUErKkoSNiQmMRsuIy5bBcQsIyQ9PFp+XRcxGi4uITsuFyALEwAAAf92A/gAigUMABMADbMACg8FAC/NAS/NMTATFA4CIyIuAjU0PgIzMh4CihYlMxwdMiUWFiUyHRwzJRYEgh0yJRYWJTIdHDMlFhYlMwD//wAVAQoGAgXsACYOwgAAAAcDjQSwAAAAAQCl/98FxAW6ACUAd0BHORABHxsiAB4eFQAJCAgFDBIBIAAAJxUgEnQihCICZSIBRiIBNyIBGx4iAx8fGHYFhgUCOAx4DAIMCAUDDwATAhgeDwkJDwkAPzMvEO0/MxIXOV1dEjkvFzldXV1dAS/tEjkv7RE5OTIvMxESOS8SOTkzMTBdATMRFAYHFhYXByYmJwYGIyAAEREzERQWMzI2NyYmJzcWFhc2NjUEecImIidkRkJOdDJR13b+5f7Qwr/KYYctLGhCOUR8OgwLBbr8f2mkQBsyFasZSihHPAEvASMDgfx108shIx4zELEVQC8qZjwAAAEApQAABTcF0wAVADJAGQgIEyAAABcGCyAMFRUQBx4KCgwDHhADDAgAPz/tEjkv7RE5LwEv7TISOS/tMi8xMAE0JiMiBhURIRUhESMREAAhIAARFSMEZbfIyLcD0PwwwgEoARkBFwEqwgOL1cnJ1f6Crf6gA4EBJAEu/tP+23kAAgBGAAAFugXTABAAGwAwQBgAAQ4gAxISHRgmCA8RHgEEBAMVHgsDAwgAPz/tEjkvxP3EAS/tEjkvM/0yzDEwASMRIxEhIAAREAAhIAARETMhETQmIyIGFRQWMwW67sL+gf7p/tIBMwESARQBLe7+UL3Cv8DAvwFg/qABYAEuARABAQE0/tX+9v5vAY7IxsLJz8IAAAEARgAABb4F0wAVADBAGAsJDSAODhcAIAEJHgwBDAEMBQ4IEh4FAwA/7T8SOTkvLxDtAS/tEjkv/TLOMTABIzUQACEgABERMxUjESMRNCYjIgYVAQjCASgBGQEXASr29sK3yMi3Awh5ASQBLv7T/tv+jK3+oAOL1cnJ1QABAKX/5wU3BboAFQAtQBcMASAAABcLDyAIAAAFDh4LBgkCEh4FCQA/7T8/7RE5LwEv7TISOS/tMjEwATMVEAAhIAARETMRIRUhERQWMzI2NQRlwv7W/un+5/7YwgPQ/DC6xcS7ArJ5/tv+0wEuASQDgf5srf622cXE2gAAAQCRAAAFGwXTAB8APUAfEhcTEw8mHBwhFyAVAiAJFRYYGBIeFQYGDBUIHx4MAwA/7T8SOS8Q7TIvzQEv1O0Q7RI5L+0yLxE5MTAABhUXFBcHJiY1EAAhIAARFAAHIRUhETMVNiQSNTQmIwIWvwEBwQQDATABFQEUATH+/s8Bw/uLwtUBX8fBvgUpxNUZDQguGjAXAQkBNf7P/v/s/lNbrQEviQXMAVnNy8EAAAEApQAABMgFugAJACZAEwUFCAgLAgcgAAYeAwYBAgceAAgAP+0/P+0BL+0yEjkvMy8xMDMRMxEhFSERIRWlwgNh/J8C4wW6/myt/TStAAEApAAABTYF0wATACpAFQkJEiATExUHIAoTEwoDHg4DBx4KCAA/7T/tEjkvAS/tEjkv7TIvMTABNCYjIgYVESEVIREQACEgABEVIwRkt8jItwPQ+24BKAEZARcBKsIDi9XJydX9Iq0DgQEkAS7+0/7beQAAAgCk/+UGdAXTAB4AKQBBQCIjIBoaHwcREBMgHh8fKwcgCCYeFwkQHh4THx8IAx4MAwgIAD8/7RI5L8T9xD/tAS/tEjkvM/0yzRESOS/tMTABNCYjIgYVESMREAAhIAARFTMVIxEUBiMiJjU0NjMzByMiBhUUFjMyNjUE3OfU1ebCAVkBJAEkAVnW1uvCxOfow+sB6nGBgHJzdwOLydXVyfx1A4EBHgE0/sz+4jWt/vbH6evFx/Cth4OCgYCDAAIARv/nBboFugAQABsAMUAaAA8BIAwgGwEbGx0UJggNAgERHg8LBhceBQkAP+0/xP3EPwEv7RI5L13E/cTNMTABIxEUACEgADU0ACEhETMRMwUiBhUUFjMyNjURBbru/sv+9P7z/sgBPAEJAX/C7vzRu8TEu7zDA3n+ivP+1wEr8f0BJgGU/mytv7e3u7u6AXMAAQClAAAE/wW6ABMAMEAZCiAgCwELCxUAAhMgAAsLAA8eAwYHAQIACAA/Pz8z7RI5LwEv/cQREjkvXe0xMDMRMxE2NjMgABEVIzU0JiMiBgcRpcJBtnQBDgEfwqy/trEEBbr+DT9B/tP+23mD2cW50P3sAP//AKUAAAQ5BboABgAvDwAAAQCl/+cGygW6ABcANUAcECAJCQsCIBcXGQwPCyAMCh4ADwYNAgwIFB4FCQA/7T8/P8TtAS/9xBESOS/tEjkv7TEwATMREAAjIgARESERIxEzESERFBYzMjY1BgjC/vn+//76/qfCwgIblq2tlgQm/hP+1v7YASgBKgFA/IcFuv5s/gnhvb3hAAIAm//mBYcF0AAdACoARUAkEQwJAB4hGAMmJycsISYJECANCR4MHgARGBseFxQDDgIkHgYJAD/tPz8z/TLcxf3EAS/U7RDtEjkv/cQROTkROTkxMAEEABEQACEgABE0NjcjETMVMzYkMzIWFxUmJiMiBgcGBhUUFjMyNjU0JCECuQFjAWv+sv7Z/tn+sEhEhsJLegE/r1msbIaWVV26+U5V39DO3/7d/tsEzgr+n/7h/vz+pgFSAQyG8moBlOt4iQ8ZwygULM9i9orT5OXS8vAAAAEAmwAABPUFugATAChAFBIAIAEBFQogCQ4eBQUBEgYJAgEIAD8/PxI5L+0BL+0SOS/txDEwISMRBgYjIAARETMRFBYzMjY1NTME9cJBt3P+8v7hwqy/u7DCAd8/QQEtASUCCf3t2cXByJQAAAEAPAAABFIFugAaACxAFhQgCwAgAQEcEAcXBx4GBgEPHhACAQgAPz/tEjkv7TkBL8YSOS/t1O0xMCEjETQmIyE1ITI2NTQmIyE1ITIWFRQGBxYWFQRSwqWu/f8CAYmEi4L+ZAGc2fdmUHqBAYmTg61zdWdyrc6varYhIrKJAAIAiv/YBRwF0QArADcAX0A0izEBJTEoN4sWARYVEhkfDyYoKDk3IB8CIAkfMS4lIh5ANIAuHhIZDBwJhBUBFRYJKx4MAwA/7T8zXT8SOTntGtwa7TkSOQEv1O0Q7RI5L/0ROTnEMl0REjk5XTEwAAYVFxQXByYmNRAAISAAERQCBxYWFwcmJicGBiMiJjU0NjMyFhc2EjU0JiMAFjMyNjcmJiMiBhUCF78BAcEEAwEwARUBFAExdnIyZzh4OWw1Z/CAlb2+mWzbeVRhwb7+bVZEWqNHWaJIQlkFJ8TVGQ0ILhowFwEJATX+z/7/ov62jildNZI5ZCxYZKOBg6dQUXABFYTLwfuqQkM7PD8/OwAAAQBGAAAFvgXTABMAKkAVCSAMDAEKFQAgAQEBBQkeDAgQHgUDAD/tP+0SOS8BL+0QxBI5L+0xMAEjNRAAISAAEREzFSERNCYjIgYVAQjCASgBGQEXASr2/ki3yMi3Awh5ASQBLv7T/tv9LK0Di9XJydUAAgCbAAAE/wW6ABcAIABBQCM2DQElDQENHRgEFhIIECAaGiIYIBcSGB4SCB0XHg0ACh4HAgA//dwy7TI/7QEvxu0SOS/9xBE5ORE5OV1dMTATMzIWFzYkMzMVIyIGBwQAEREhETQSNyMTITU0ACcGAhWb4Bs1GnMBIqva2mS1SwENATD7nmBjxMMC3v7u+2VsBNMDAm5+rTczT/5j/ub+YwGdswFKjPyH8PIBVDF9/rq0AAEApf/nBh0FugATACRAEggKIAcHFRMgEgoeBxICAx4OCQA/7T/U7QEv7RI5L/3NMTABFBYzMjY1ESEVIxEQACEgABERMwFnusXEuwG49v7W/un+5/7YwgIv2cXE2gOLrf0s/tv+0wEuASQDgQAAAQCR/+cFKgXTACgASUAmIh8mEiUmCQkqAhggGQ0DIAIiDRkZFQ4eDQMNAw0cBh4oCRUeHAMAP+0/7RI5OS8vEO0ROS8ROQEv7cbU7RESOS/t1O0zMTAEACc3FhYzMjY1NCYjITUhMjY1NCYjIgYVJzQkMzIEFRQGBxYWFRQAIQHK/s8IwAe/z7bFtMf9uwJFj5Wigo2hwwEU3dgBD19XgJP+yv7yGQEB7xCqrZR/fICtem5nj5h6Drvy6K5uqCUctoHI/wAAAf/s/+cFZAW6ABMALEAXASAgAAEAABULDCAJAAAFCh4LAhAeBQkAP+0/7RI5LwEv7c0SOS9d7TEwATMVEAAhIAARESM1IREUFjMyNjUEosL+1v7p/uf+2PYBuLrFxLsCsnn+2/7TAS4BJALUrfx12cXE2gABAIf/5wUSBboAJwBFQCYPJyQLHiYYGCkSJgQkGxsFFR4hCYoPAQkPGQ8CJw8ECx4KBB4FAgA/7d3tETk5XV0/7RI5LwEvxO0SOS/9xBE5OTEwASYmIyM1MzIWFwUVJSYmIyICFRQWMzI2NTUnNxYWFRAAISAAERASNwH4LVwxeJBWh0ICN/7wI0Im1+3Bv77BAsEEA/7Q/uv+5v7U7dAE6RQQrRwd+M93Dw/+8tv+18HYGRUuGjAX/vf+ywE8ASYBBwFLLQABAKUAAAUnBdMAEQAfQA8QIBEREwcgCAMeDAMRCAgAP8Q/7QEv7RI5L+0xMAE0JiMiBhURIxEQACEgABERIwRlt8jIt8IBKAEZARcBKsIDi9XJydX8dQOBASQBLv7T/tv8fwAAAQCH/8gFEQXTACAARkAlIAcDAB0mCgoiFwMDECYXFBQBDR4aA3ggASAHAAMeCgIBAgAeAQAv7d1d7RE5OV0/7RI5LwEv7TMvERI5L+3EETk5MTAlFQE1FxYWMzISNTQmIyIGFRcUFwcmJjUQACEgABEQAgcEJv0ZviNCJtvowr3AvwEBwQQDATABFQEYAS3q0pfPAUXPUw8PASn23MPE1RkNCC4aMBcBCQE1/sz+7/7z/qY1AAABADwAAAWyBdMAGAA2QBsDIAQJIAoECgQKGg4gFQgLHhgSChIKBBgDBAgAPz8SOTkvLxD9xAEv7RI5OS8vEO0Q7TEwAAAVESMRNCYnESMRBgYVFxQXByYmNTQAIQQzAX/E3LjCutsBAcMDAwF+AT8F0/7g7fw6A6+rygb8owNdCciqFw0ILhczF/UBKAAAAgCbAAAFQwXTABoAKwBJQCYMJSAVFSgRDQkgKCgtAxEgEB0gAyUMIh4YGAYMEBIMHg8IKx4GAwA/7T/91M0REjkv7RE5AS/t1O0REjkv/cQREjkv7TkxMBMmJjUQACEgABUUAAchFSERMxUyJDU0JiMiBgAGFRQWFzYzMgQXNjY1NCYj2hwjAT4BGwEZATb+48QB0/ttwtABBNe3L2wBHcsFBSst0gExDk5bxsMCdDimQwEFATn+yvz1/lpZrQEviY1faJoRAqbLzhA1FAXQrGH2hsLKAAEApQAABh0F0wAVACxAFgsJDSAODhcAIAEJHgwMARIeBQMOAQgAP8Q/7RI5L+0BL+0SOS/9xM4xMCEjERAAISAAEREzFSMRIxE0JiMiBhUBZ8IBKAEZARcBKvb2wrfIyLcDgQEkAS7+0/7b/oyt/qADi9XJydUAAAEApf/nBScFugARAB9ADwIgERETCyAIAAkCDh4FCQA/7T/EAS/tEjkv7TEwATMREAAhIAARETMRFBYzMjY1BGXC/tb+6f7n/tjCusXEuwW6/H/+2/7TAS4BJAOB/HXZxcTaAAABAEYAAAWWBboAFQAvQBgUIBEBAQkVFwogCRICDh4FBQEJBhQeAQgAP+0/Ejkv7T8BL+0QxBE5L8TtMTAhIREGBiMgABE1MxUUFjMyNjURMxEzBZb+SEG3c/7y/uHCrL+7sML2Ad8/QQEtASV1f9nFwcgCKPrzAP//AFz/5wTrBdMABgA2AAAAAQClAAAFJwXTABEAJ0AUDyAgAAEAABMGIAkREQgDHgwDCAgAPz/tEjkvAS/tEjkvXe0xMAE0JiMiBhURIxEQACEgABEVIwRlt8jIt8IBKAEZARcBKsIDi9XJydX8dQOBASQBLv7T/tt5AAIAaf/nBQIF0wAhAC0AU0AvDicmCwsRJgAeEB4gHgMeHi8XLSYCBRgmAA8XARcOACQBHgAYABgIGx4UCSoeCAMAP+0/7RI5OS8v/cQSOQEvXcbt1DLtERI5L13tOS/tMjEwEzUzJiY1NCQzMgQVFAYHFhYVFAAhIAAnNxYWMzI2NTQmIwAWMzI2NTQmIyIGFXnJLD4BEdXbAQxjU4OQ/sr+8v7k/s8IwAe/z7bFtMf+3JeNjZehg4OhAp+tH4pRqOXqsGypIh6zgsj/AAEB7xCqrZR/fIABK35+b2aLi2YAAQClAAAEIAW6AAcAHUAOBQkDByAABh4DBgECAAgAPz8/7QEv/cQQxDEwMxEzESEVIRGlwgK5/UcFuv5srfyHAAMAUAAABcgFugARABgAHwBBQCIcJg4KFSYFEgIJIB8RIAoBCgohIBIfHggLCggYGR4CEQACAD/dxP3FP93E/cUREgE5L13ExP3ExNTtENTtMTABMxUEABUUAAUVIzUkADU0ACUTNjY1NCYnBwYGFRQWFwKswgETAUf+u/7rwv71/q8BUgEKwrra1r7Cu9rZvAW6sBD+z+Xn/s8Pvb0KATLr7QEvCvxaCMquqswKAQjOqarNCAAAAgA4AAAE+AXSABYAIgBEQCMWFiQOJh8fJAMZJgcDFQIgBQMcHhQREQYiHgsDFQYeAQUDCAA/3sT9xD/tEjkvM+0BL8b9xBDU7RESOS/tETkvMTAlIRUjNSM1MxE0ADMyABUUACMiJicRIQAGFRQWMzI2NTQmIwT4/IPCgYEBM+HhASv+2eVmsTsDff04tbWdnrS2nH5+fq0CtdYBHP7m2Nn+8UFA/rID/rWUj7GslJW0AAIAZP/nBd4F1AALABcALEAaAiYADhAOAg4OGRQmDwgfCAIIER4LAxceBQkAP+0/7QEvXe0SOS9d7TEwAAAREAAhIAAREAAhEgAREAAjIgAREAAzBFQBiv55/sj+wv6DAYcBNeIBFP7t4ub+8QEP4wXU/l7+r/6x/lUBowFXAVMBoPq5AUwBCAEHAUX+vv72/vH+uwADAEb/5gW+BboAGwAiACkASEAmEh0gKQkJGxUmICArGyYgDQYgGxwKHhIpBh0JHhgDAxAYCSMeEAIAP+0/EjkvEP3EP8T9xQEv7dTtERI5L+0ROS/E/cQxMBM0NjcXBhUUFhcRIiY1NDYzMxEEABUUACEgACcBETY2NTQmASIGFRQWM0YEAsMC4rPl29/hwgEPAUv+h/6//sD+iAYDHrvZ1P5+hYODhQITEiwTLhQYrsgFAvCLjpKQ/mwP/tvo/P7YASH8AX39DwjLqKnDAao5R0czAAEAtgPzAYcF0wAJABpACwAJBSAHBAkABgQDAD/dxDIBL839xjIxMAEmJjU1MxUjFhcBW0lcwV4GaAPzIX+bpdGeKgAAAQBsA+kBPQXJAAoAIEAPBgcBCgIgIAEBAQcGAAEDAD/dxDIBL139zRDGMjEwEzUzFRQGByc2Njd8wVxJLDY1AwT40aWbfyFHFl9TAAH/eQRqAR0F7QADABG1AAECAwADAC/NAS/NzTkxMBMzASMs8f7FaQXt/n0AAf+hBGoBHAXyABYAEbUMEhYFDgIAL8QBL83dzTEwAhcjJyY1NDY3NzY2NTQnMxcWFRQGBhUKA1EEAzhVODEwA1EFAnG1BHYMGg8USk0gFBEwKAsMGRAUaVMvSQABAB8ECwIZBgIAAwAZQAsDAgElIAABAAICAQAvzQEv3V3tEjkxMAEjATMCGbf+ve8ECwH3AAAB/7QEagF2BgoAGQAiQA4BAQoEFwoRAQAADgcUDgAv1M0SOS/NAS/N1M0ROS8xMBM1MjY1NCYjIgYVFBYXIyYmNTQ2MzIWFRQGwiMjLyw6TRIVdxMPi25famQEsWEpHSEoYUEtRCQjTCZ4k2VNTVoAAQBCBjIECgdfAAUAIkAQAAAH0AMBAwIEQAKA8AEBAQAvXRrNGs0BL81dEjkvMTABIREzFSEECvw4jQM7BjIBLacAAQCC/+gGIgQmACEANUAbAwMAJSEXESUOGiUJFyEYDwYdCQMUHAYLCwIKAD8/xP0yMsQ/xMQBLzPt1O0Q1O05LzEwAREjNQYGIyImJwYjIiY1ETMRFBYzMjY1ETMRFBYzMjY1EQYioTOlanaXH37Knqu0Xl95i7RYZIaBBCb72pVOX2JYuq+2Atn9Y5lsopcCaf1OeXe6wQInAAEAh/5pBBkEPgAWADxAIBMJJQoKGAMDABEWJSAAAQAKCgESHBUKAw4cBQcBBgAOAD8/P+0yP+0SOS8BL139xBI5LxE5L/3GMTATETMVNjMyFhURIxE0JiMiBhURIRUhEYeidd2uvbRub4aUAt79Iv5pBb2Xr8Cm/q8BIHuAqJv+PJv+aQAAAgBI/mkEowQ+ABMAHwA+QCEWDQ0ADxMlAAAHECEcJAcPHBIKDQYMGRwKBwEfHAQLAA4APz/tMj/tMj8/7QEv7RDEETkv/cQSOS/EMTABEQYGIyIANTQSMzIXNTMRMxUjEQA2NTQmIyIGFRQWMwMsLJpQxf73+MjGcKLDw/7Bnad+gpahg/5pAgg9TAE7+vYBK6aO/HWb/mkCE8+7xeXZwbzeAAABAIf+aQSpBD4AFgA6QCAJDSUODgAKGAMDFiUAACAAAgAODgMSHAUHAQYJHAwACgA/1O0/P+0yPwEvXe05LxDEETkv/cQxMDMRMxU2MzIWFREzFSMRIxE0JiMiBhURh6J13a69w8O0bm+GlAQml6/Apv3Dm/5pBD57gKib/aEAAAEAh//oBBQFugAWAD5AIQICFg0AJRYWGAkOCiUgCQEJFhYCDhwLBgkAAxIcBQsCCgA/P+0yPz/tETkvAS9d/cQREjkv/cYSOS8xMAERIzUGIyImNREzESEVIREUFjMyNjU1A+aidd2xurQC2f0nbm+GlAKf/WGXr8CmBGz+bJv99HuAqJvYAAACAEj+aQSjBD4AEQAdAEFAJRQNDQAQDyUAAAEAAB8aJT8HTwcCBw0GDBccCgcBHRwECw8cAA4AP+0/7TI/7TI/AS9d7RI5L139zRI5L8QxMAERBgYjIgA1NBIzMhc1MxEzFQA2NTQmIyIGFRQWMwMsLJpQxf73+MjGcKLD/f6dp36ClqGD/mkCCD1MATv69gErpo763psCE8+7xeXZwbzeAAABAIcAAAPvBboACQAqQBYICAEECwcCJSABAQEGHAMGAQAHHAAKAD/tPz/tAS9d/cQQxBE5LzEwMxEzESEVIREhFYe0ArT9TAI+Bbr+bJv9EJsAAQCH/mkEGQQ+ABQANkAeEwklCgoWAAICEiUAACAAAgAKCgMOHAUHAQYSHAAOAD/tPz/tMj8BL13tOS8REjkv/cYxMBMRMxU2MzIWFREjETQmIyIGFREhFYeidd2uvbRub4aUAt7+aQW9l6/Apv0oAqd7gKib/KWbAAACAIf+aQVDBD4AHgAoAE5AKiIkFRUBDA8kGSgoAg4qBAQBJSACAQIMGBwPHx8DJRwSCwUcHAkHAwYCDgA/Pz/tMj/tEjkvxO0yAS9d7TkvEMYROS8z7TISOS/tMTABESMRMxU3NjYzMgQXMxUjAgYjIiY1NDYzMyYmIyIGASIGFRQWMzI2NwE5sqABSM6f0QEDGnhyBcfAkc7CpcUSspCl4AIcWF5fTGlgBAJf/AoFva0WV1j2z5T++ve7jJO3kZ+w/uxbW1BjrL0AAgBI/+gEowW6ABAAGwAvQBgPAiUNGxsIAB0VJQgNAAESHA8LBhgcBQsAP+0/xP3EPwEv7RDEETkvxP3EMTABIxEQAiMiABEQEjMhETMRMwUhIgYVFBYzMjY1BKPD89PR/v/82QEPtMP+if70lIqYhIGNA4v+fP78/uUBHwEAAQEBHgGU/mybwcO51cnFAAEAh/5pA+YFugASAC1AGAklCgoUAAMSJSAAAQAKCgMOHAUHAQAADgA/Pz/tMj8BL139xBESOS/tMTATETMRNjMyFhURIxE0JiMiBgcRh7Rzza69tG5vgpQE/mkHUf3ulsCm/SgCp3uAnpX7+gAAAQCH/mkCEwQmAAUAHEAOBYAEJSABAQECBgQcAQ4AP+0/AS9d7RrNMTABIREzETMCE/50tNj+aQW9+t4AAQCH/mkGJgW6ACMARkAmFBQSJREJJRwKJRsRGxEbJQACIyUAFQ0cGAsUChEGHxwGBwEAAA4APz8/7T8/P+0yAS/9xBESOTkvLxDt1e0Q7TkvMTATETMRNjYzMhYVAxQWMzI2NREzESM1BgYjIiY1EzQmIyIGFRGHtDObYaOkBFpkhoG0oTOlaqOnBFhjg4T+aQdR/fJDT7LE/qx5d7rBAif72pVOX7LEAVR6drO4/DIAAAIASP/oBA4FuwATACAAQkAkCQgKDQQGDBAkBwUZAwYWFiIGHSQCIBwTCxkNHAkGBwUKBgcAAD8/MxI5Of3EP+0BL+3EEjkvEhc5/cYSFzkxMAQCETQSNycTMwcFIRUjFhYVEAIjNjY1NCYnIyIGFRQWMwFA+LGa/7PSmAEYAXWpSEr434uTaXU9gKKTjBgBJQEGuQEWL6gBAte+m0y9bv73/t2U0cdquVTOqsLVAAEAh/5pA+YFugASACtAFxIBJQICFAolIAkBCRIGCQADDhwFCwIOAD8/7TI/PwEvXe0SOS/txDEwAREjEQYjIiY1ETMRFBYzMjY1EQPmtHTMsbq0bm+ElgQm+kMCEpbApgRv+8J7gKGSAnIAAAEAhwAAA+YFugASACxAFwklCgoUARICJSABAQEDDhwFBwEACgAKAD/EPz/tMgEvXf3EERI5L+0xMDMRMxE2MzIWFREjETQmIyIGBxGHtHPNrr20bm+ClAQFuv3ulsCm/SgCp3uAnpX9kQACAEb/6AO3BboAIQAtAENAIgADBh4kJxEkFRUOCAgGJSQkLyokDhkACS0cCwsnAwgRAAYAPzIvOTk/7TI/AS/tEjkv7TkvETkvEjk57RE5OTEwAQYGBxYWFQMjNQYjIiY1NBI3JyYmNTQ2NzczBwYGFRQWFxI2NTQmJwYGFRQWMwLVJUMeq70BonXds8m+yCA8RRwgHtJKERUtNCaUf6tzZHluBCYbNBpL/Jf+IZevxKLLAWChFCZePCRQLStqGicUGzcj+/6rnoisTnfee3x/AAABAIf+aQSpBD4AFAA2QB0KgAklDAwWAAICFCUgAAEACRwMDgMQHAUHAQYACgA/Pz/tMj/tAS9d7TkvERI5L+0azTEwMxEzFTYzMhYVETMVIRE0JiMiBhURh6J13a69w/6Jbm+GlAQml6/ApvwsmwQ+e4Com/2hAAACAI7/6AP/BboAGQAlAE1AKQ8PDRwKHyIBGBUGDg0kHBwnIiQZIBUBFRAlHBILDwoGHAUAHxkcCgAGAD8y7TI/7T8/7TIBL13E7RI5L/3FxBE5ORE5ORESOS8xMBMzNiQzMxUjIgYHFgAVAyM1BiMiJjU0EjcjADY1NCYnBgIVFBYzlrluASGhT0ppwU7rAQgBonXds8k8Om4CIJTDyjY+eW4EJsTQm4h8J/7T6P4hl6/EooQBKo/8+aibx+UUev7vfXx/AAABAIL/6ASkBboAFAA2QB0DAwElQBSAEhIWCyUgCgEKARwTAAoGBA8cBgsDCgA/P+0yPz/tAS9d7RI5LxrMGu05LzEwASMRIzUGIyImNREzERQWMzI2NREhBKTDonXdsbq0bm+GlAF3BR/64ZevwKYC2P1Ze4ComwPzAAH/o/5RATsEJgANACBAEA0IJSAFAQUFDw4CHAsPBgYAPz/tERIBOS9d7cwxMAMWMzI2NREzERQGIyInOzgdTCG0golLQv79DnJpBFz7oNeeEwAB/8T/6APmBboAFAAuQBgCAgAlFBQWDCUKCRQGChwLAAMQHAULAgoAPz/tMj/tPwEvze0SOS/tOS8xMAERIzUGIyImNREjNSERFBYzMjY1EQPmonXdsbrDAXdub4aUBCb72pevwKYD0Zv7xXuAqJsCXwABAAb+aQNcBD4AHgAyQBoBGCQgCwELCyASHCQGEhoJAQ4cERUHARwDDgA/7T/M7RE5OQEv1u0REjkvXf3EMTAFIRUhIiY1NDYkNjU0JiMiBgcnNjYzMhYVFAIAFRQWAQQCSv2DVmvLARqvimtejBapKtmmwezn/lYi/JtlV1jN7f+DbntuYBqlq9Ktqv67/qpHFhkAAQCHAAAD5gQ+ABIALkAYCCULCxQBAgISJSABAQEDDhwFBwEGCgAKAD/EPz/tMgEvXe05LxESOS/tMTAzETMVNjMyFhURIxE0JiMiBhURh6J13a69tG5vhpQEJpevwKb9KAKne4Com/2hAAEAEP5pAsYEJgAjADFAFwwFABwlICQFFyQQHgwAHBwCEwYAHAIOAD/tPxI5GS8SOTkBGC/t1O0Q1MYSOTEwBRUhIiY1NDY3NzY2Ny4CNTQ3NzMGBhUUHgIXBgYAFRQWMwKi/jVXcGNeZzJVF9t1PwUQtggPKn63bC2x/uIlFfybY1k5lF5mMlwmYXB8eTEykzR+MVtWZlAqX8r+6T8XGAABAIL+aQYiBCYAIQA5QB0AAyUBGiUZESUQChkZIyIZABAGHgoEFRwHDAsDDgA/P8T9MjLEP8TEERIBOS8z1O0Q/dT9xDEwATMRIxEGBiMiJicGIyImNREzERQWMzI2NREzERQWMzI2NQVutLQ0mmF2lx9+yp6rtF5feYu0WGSGgQQm+kMCEUNPYli6r7YC2f1jmWyilwJp/U55d7rBAAIAX/5pA9gEPgAZACgAO0AgAxQkIiIqDh0LDhkkCCgkIA4BDhcfCwMDJRwRBwMcBQ4AP+0/7RIXOQEvXe3U7RDUzRESOS/9xDEwBBYzIRUhIiY1NDY1NCY1NDYzMhYVFAYGBBUCFhYVFAc2NjU0JiMiBhUBIiQVAkr9g1Jv09v2vtjthOv+uQ9wUUL/j5B8dI3hG5tkWFvKcIXok6be48V06932MQNAjIhMYkzd3298ln5gAAEAh///BDoEPgAZAEVAJAMDGwIGGSQJBgYQCQkbERMTECUgEQERFAwcFgcSBgYCHAURCgA/1u0yPz/tMgEvXe05LxESOS8SOS8Q7RE5ETkvMTAABgchFSE1NhI1NCYjIgYVESMRMxU2MzIWFQQMbYABG/4YdIiFdIaUtKJ13bbbAhb8gJtzWgEdrXuRqJv9oQQml6/frAAAAQCC/+gD4QQmABIALEAXAgIAJRISFAolIAkBCRIJBgMOHAULAgoAPz/tMj/EAS9d7RI5L+05LzEwAREjNQYjIiY1ETMRFBYzMjY1EQPhonXdsbq0bm+GlAQm+9qXr8CmAtj9WXuAqJsCXwAAAQCC/mkEpAW6ABQAMkAbFIATJREBARYJJSAIAQgRAAgGAg0cBAsTHAEOAD/tP+0yPz8BL13tEjkvxO0azTEwASERBiMiJjURMxEUFjMyNjURMxEzBKT+iXTMsbq0bm+ElrTD/mkCFZbApgLY/Vl7gKGSBAP5SgAAAQCC/+gGJAQ+ACMAQUAiHCUZIxIAEgAjJREJJQgRESUkEx8cFgcRCAYBDRwECxsACgA/xD/tMj/EP+0yERIBOS/U7RDtOTkvLxDU7TEwITUGBiMiJjURMxEUFjMyNjURMxU2NjMyFhURIxE0JiMiBhURAwwzpWqjpbRYZIaBoTOlaqOltFhkhoGVTl+yxALI/U55d7rBAieVTl+yxP04ArJ5d7rB/dkAAQCH/mkD5gQ+ABIAL0AZCSUKChQBAgISJSABAQEKCgMOHAUHAQYADgA/Pz/tMj8BL13tOS8REjkv7TEwExEzFTYzMhYVESMRNCYjIgYVEYeidd2uvbRub4aU/mkFvZevwKb9KAKne4Com/wKAP//AEL+UQPqBD4ABgBKAAAAAQCHAAADJwQmAAUAHEAOBAcCJSABAQEBBgMcAAoAP+0/AS9d7RDEMTAzETMRIRWHtAHsBCb8dZsAAAEAgv5pBiQFugAjAD1AIRslGiMSJREJJQgAERElJBsKEx8cFgcRAAgGAQ0cBAsADgA/P+0yPz8/7TI/ERIBOS/E1u0Q/cTU7TEwAREGBiMiJjURMxEUFjMyNjURMxE2NjMyFhURIxE0JiMiBhURAvk0mmGjpbRYZIaBtDObYaOltFhkhoH+aQIRQ0+yxALI/U55d7rBA7v98kNPssT9OAKyeXe6wfxCAAL/+P5pBCEEPAAYACQATkArFQ0kGxsmBSEGBgUUGCUDACAFAQUTJBwvED8QAhAHHhwKBwUGFAQcFwEADgA/3cT9xD8/7TIvXe0yAS9dxM79xBI5L8QREjkv/cQxMBM1IzUzETMVNjYzMhIVFAIjIiYnESEVIRUANjU0JiMiBhUUFjOHj4+kLKdux+72y1qWNQKp/VcBlZmZgnisqXP+aXibBKqKS1X+9+bm/uU+SP6qm3gCd72xrLXHqaW6AAACAEb/6AQqBD4ACwAXAExANjcWRxYCNxJHEgI4EEgQAjgMSAwCAiQADiAOMA5ADqAOsA4GDg4ZFCQ/CE8IAggRHAsHFxwFCwA/7T/tAS9d7RI5L13tMTBdXV1dAAAREAAjIgAREAAzEjY1NCYjIgYVFBYzAxsBD/7y5OT+8gEO5JCpqo+QqaiRBD7+1f8A/v/+1gEqAQEBAQEq/D7Yv73Z2L682wAAAwA8/mkFmQW6AB4AJQAsAFdALycZASUlEAIiJRQCFAIUBhwkICoBKiouDSQGCQkDJhEcGSUGHxwXACcQHAADCwIOAD8/xP3EP+0/xP3EEjkvAS/tEjkvXe0ROTkvLxDtEMTE/cTEMTAFESMRIAA1NDY3FwYGFRQWMxEiJjU0NjMzESAAFRQAASIGFRQWMxcRMjY1NCYDRLT+6/7BAwO0AgLYxsXX2sK0ARMBQv63/kB/Z2SCtMTa0Rf+gAGAAS77EzIUFg0hDr/WAweRhIeT/mz+4vL2/skFNjlGQjib/PnUu7m/AAABAIf/6AW0BboAFAAwQBkFBQAlExMLAhYMJQsUBgsABRAcBwsBHAQKAD/tP+0yPz8BL+0QxBE5L+05LzEwAREhFSE1BiMiJjURMxEUFjMyNjURA+YBzv2Qdd2xurRub4aUBCb8dZuXr8CmBGz7xXuAqJsCXwD//wC5AAABhgQmAgYAHQAAAAEAIgFzAsQCmQANABpACwAPBgYDB4AKAQoDAC/dXc4ROQEvEMYxMAEGBiMiJic3FhYzMjY3AsQ7oFlhv05iRK1WNmQqAb4kJzI2vjs3FRQACQBs/nwHlgWlACMAMgBBAE8AXQBrAHkAiACXAAS4AROFAQYGIyImJyYAJyYmNTQ2NzYANzY2MzIWFxYAFxYWFRQGBwYAADY3JgI1NDY3BgYVFBYzJAYHFhIVFAYHNjY1NCYjBxYWFRQCBxYzMjY1NCYnNjYzMgQXNjU0JiMiBgMGBiMiJCcGFRQWMzI2AyYmNTQSNyYjIgYVFBYAJicGBCMiJicWFjMyNjUCFhc2JDMyFhcmJiMiBhUFSUKnXmCoQrz+9gw5QUE5DQEOt0OnYF6oQrcBDg05QUE5Df7x/QhWKaPVJSF2luylAiFXKaXTJSF4lO2koiQi0KdOX6Trkdc8gkOpAQwtKO2kftB8PIJCp/7xLSjtpIDPMiQiz6hOXaXsjwFqExQp/vGsRoE4J9CCpezSExQpAQ6tRoE5LNJ7pe3+9jlBQTkPAQ22QqdeYKhCtwERCjlBQTkN/vO4QqdfX6hCuP7wAqcTFCgBDLBGgjcn0YCk7tITFCn+8atHgTco0IGk7JA8gkOp/vQtKO2kgM/YJCLQp05epuqR/nskIs+oTl+l6pEBJzyCQqcBDy0o7KV90f60Vimm0yUhdZbtpAIfVimm0yUhe5DuowAJAGz+fAeWBaUAIwAyAEEATwBdAGsAeQCIAJcABLgBE4U3JiY1NDY3NgA3NjYzMhYXFgAXFhYVFAYHBgAHBgYjIiYnJgAAJicWFhUUAgcWFjMyNjUAFhcmJjU0EjcmJiMiBhUANyYCNTQ2NwYGFRQWMwAXNiQzMhYXJiYjIgYVJCcGBCMiJicWFjMyNjUABxYSFRQGBzY2NTQmIwA2NwYGIyIkJwYGFRQWMwAGBzY2MzIEFzY2NTQmI+Y5QUE5DQEOt0KoXmCnQ7cBDg05QUE5DP72vEKoYF6nQrf+8QXGlHghJdWjKVYupez6kJR4ISXTpSlXLaTtAxZOp9AiJHqR6qX8zigtAQypQ4I8LNB+pO0GZigt/vGnQoI8K8+ApO38b06ozyIkfI/spQGq0Sc4gUat/vIpFBPspv0z0iw5gUasAQ8pFBPvoshCqF9fp0K4AQ0NOUFBOQr+77dCqGBep0K2/vMPOUFBOQoBEAOm0yg3gkaw/vQoFBPupP0v0Cg3gUerAQ8pFBPspP31KC0BDKlDgjwrz4Ck7QLVTqfQIiR6keqmXU6ozyIkepHqpQM0KC3+8adCgjwt0Xyl7PoWlXYhJdOmKVYupO0Fb5B7ISXTpilWLqXsAAABAEYAAAWeBdMAIQBRQCgaFh4gBQEfAAMfAx8DDhwYIw0gDh0gARYFGQIaAQ4BDgESHwgJHhIDAD/tPxI5OS8vEMTexN3EEN3EAS/tENbEEjk5Ly8QxBDExP3ExDEwASE1ITUhETQmIyIGFRUjNRAAISAAEREzFSMVMxUjFSM1IQJ+AYj+eAGIt8jIt8IBKAEZARcBKtbW1tbC/ngBaW2KASvVycnVg3kBJAEu/tP+2/7fim2K398AAQCC/+gITgW6ACUAV0AxAgIAJSUeJQgMDAslGyUIGxsIJQMnFCUgEwETChwcACUTBgMNDRgcDwsMCiEcBQsCCgA/P+0/P+0yETM/Mz/tAS9d7RIXOS8vLxDtOS8Q7RDtOS8xMAERIzUGIyImNREhESM1BiMiJjURMxEUFjMyNjURIREUFjMyNjURCE6idd2xuv7yonXdsbq0bm+GlAJ2bm+GlAQm+9qXr8CmA9H64ZevwKYC2P1Ze4ComwPz+8V7gKibAl8AAgCC/+gIfAW6ABQAKwBqQDsXFysiFSUrICQlAB0DAwElEysdExMdKwMtCyUgCgEKJxwaCysrIxcKHgEcEwAjHCAKBhgEBA8cBgsDCgA/P+0yETM/1O0/7cQ/EjkvP+0BL13tEhc5Ly8vEO05LxDG/cQQ/cYSOS8xMAEjESM1BiMiJjURMxEUFjMyNjURIQERIzUGIyImNREzESEVIREUFjMyNjU1BKTDonXdsbq0bm+GlAF3A6qidd2xurQC2f0nbm+GlAUf+uGXr8CmAtj9WXuAqJsD8/yz/ZOXr8CmBGz+bJv99HuAqJumAAACAIL+aQhOBboAFAAnAFhAMh4lIBcnJQAVAwMBJRMgFRMTFSADKQslIAoBCh8KGCMcGgcVDhYBHBMACgYEDxwGCwMKAD8/7TI/P+3EPz/tMj8BL13tEhc5Ly8vEO05LxDG/cQQ7TEwASMRIzUGIyImNREzERQWMzI2NREhExEzETYzMhYVESMRNCYjIgYVEQSkw6J13bG6tG5vhpQBd0u0c82uvbRub4SWBR/64ZevwKYC2P1Ze4ComwPz+K8HUf3ulsCm/SgCp3uAoZL7+gAAAgCC/mkITgW6ABQAKQBjQDgXFxUlKCElHUAgFIASJQIRKB0RER0oAysJJSAIAQgpBiUcGgsXCh8cIBEACAYYAgINHAQLExwBDgA/7T/tMhEzPz/U7T8/7T8BL13tEhc5Ly8vEMT9Gs7GGhDtEO05LzEwASERBiMiJjURMxEUFjMyNjURMxEzAREjNQYjIiY1ESM1IREUFjMyNjURBKT+iXTMsbq0bm+ElrTDA6qidd2xusMBd25vhpT+aQIVlsCmAtj9WXuAoZIEA/lKBSL72pevwKYD0Zv7xXuAqJsCXwACAIL+aQqOBboAFAA4AHJAQikpJyUmHiUxGDglABUDAwElEyYxFRMTFTEmBDoLJSAKAQoiHC0LKQomBhg0HBsHFgAVDgEcEwAKBioEBA8cBgsDCgA/P+0yETM/P+0/Pz/tMj8/P+0BL13tEhc5Ly8vLxDtOS8Qxv3EEO0Q7TkvMTABIxEjNQYjIiY1ETMRFBYzMjY1ESETETMRNjYzMhYVAxQWMzI2NREzESM1BgYjIiY1EzQmIyIGFREEpMOidd2xurRub4aUAXdLtDObYaOkBFpkhoG0oTOlaqOnBFhjg4QFH/rhl6/ApgLY/Vl7gKibA/P4rwdR/fJDT7LE/qx5d7rBAif72pVOX7LEAVR6drO4/DIAAAIAHAAABFUFugAbACgAQkAhFiYhAgIhISoMCCgEACAOBwooDh4ABAoLAAAGJx4PAgYIAD8/7RE5LzPdzRDtMgEvMzPtMjLNMhI5LzMvEO0xMAEVIRUhESMRIzUzNSM1MxEhMhcWFxYVFA4CIzUyPgI1NC4CIyERAUICS/21wmRkZGQBy8VlZj09WpXBZ0N6XDYxVXJC/u8Ci5CK/o8BcYqQqAKHKCdkZHl6oF8mqBU4X0tBWjka/hsAAA4AAAAACAAFwQAFAAkADQARABcAHQAhACUAKQAvADcAOgBAAE0BAUCJMjg5OjMFMTQ1GCoPKDEwDiY8PgcgQ0tESkUFSUw/QgYeAxRJRzUlNjcoKigwJj4gQh4UR0cUHkIgPiYwKCoKDC0aJSwbIxYBDBcACgEbRUM3PQwlMzgLI01KSD5ANDBAFi1JTCU4RCNAGz0lOCNALS1AIzglPRsHDi8gFCkqHhInGAYDDhwIBRAALzMzM80yMjIvMzMzzTIyMhEXOS8vLy8vLy8REjkREjk5ETMRMzMQzTMzMxEzEM0RMxEzMzMRMwEvMzPNMjIvMzPNMjIRFzkvLy8vLy8vLy8vEjk5EjkQzREzETMQzs0RFzkRMxDNETMQzREzETMQzREXOTEwASM1IzUhBSE1IQEjETMBITUhASE1MzUzASMVIxEhASE1IQEjETMBITUhBSERMxUzASMnIwcjEzMTJwcFETMRMxUzETMTEzMRIxEDIwMRCABk3wFD/cH+vAFEAj9kZPuD/rwBRAR9/r3fZPlD32QBQwR+/rwBRPqjZGQDH/68AUT9wP69ZN8BuXg01y911nQTTU8BmWjwTq9naa9sdHFxBH3gZGRk/H4BRAHaZPo/ZN8EGuABRPo/ZAHbAUT8fWRkAUPfASyUlAJo/oP+/usCYf37XAJo/kIBvv2YAeT+HAHk/hwAAQAABhUEXwbKABgAF0AJFBMTCQAOBwUJAC/NMtzNETMvMzAxEzIeAjMhFQchIi4CIyIOAgcnPgO3N21vcDsB6qX+fUZpXFg2EScmIAoWDy0zMwbKEBMQDGsQExAOFBUHEh86LhwAAf9NBiAEXwaXAAQACrIDAQQAL80yMDEDNSEVB7MFEqUGIHcMa///ADr/oQW1BMECJgUoAAAAJwU5AfD9twAHBS0B6QAA//8AOv+hBbUEwQImBSgAAAAnBTkB8P23AAcFLQHpAAD///+6/6EB9AVaAiYFKQAAACYFLQAAAAcFOQAa/lD///+6/6EB9AVaAiYFKQAAACYFLQAAAAcFOQAa/lAAAQCT/0oBCAGYABIADLMLEQMCAC8zLzMwMQUUByc2NjU0LgInPgM3MxIBCC8SAgIIDxUMBBAREgcEMzU1TAQTGwgfTWSAUQodICAM/rb//wBf/rgCswRqAiYDqQAAAAcFMACyAB///wBf/rgCswRqAiYDqQAAAAcFMACyAB///wA+/pkIyQNXAiYDuQAAAAcFMAV4AAD//wA+/pkIyQNXAiYDuQAAAAcFMAV4AAD///+6/pkGxQM+AiYDuwAAAAcFMAPoAAD///+6/pkGxQM+AiYDuwAAAAcFMAPoAAAAAgAUASUGfwXfADIAOgAvtyopKQUGDh4yugLvAB8C67Q2Mzc6D7oC7wAOAwsAP/3eMs0yP+0yETk5Mi8zMDEBJicmJicHJyY1NDc2NyUVBwYGBwYVFBcXFhYXFhYXFSEiJyY1NDc2NjcXBgcGFRQXFjMBBgYHNTY2NwYLRloteU0hdj5UTr8BGtE/ZSZiQFFMhDk9YiX7VfBkbC8HGxUiIwoKc1WnBEpcultUvGEB02pOKFQuH1o1HKxiWkhurUYUJhEsFhcwPDp4P0SLSa45PZNWchA5KhROKigobishApsULRtGJkAcAAIAFAElB3YF3wBGAE4AM7RKR0tOJbgC77RCHBsDJLgDC7QKCQk5E7sC7wA6AAAC6wA/Mu0yMi8zPxc5/d4yzTIwMQEiJyY1NDc2NjcXBgcGFRQXFjMhMjc2NTQnJicHJyY1NDc2NyUVBwYHBhUUFxcWFxYWFxYXFhcWMzMVIyInJicnJicUBwYjAQYGBzU2NjcB1PBkbC8HGxUiIwoKc1WnAaqebYExG0Yhdj5UTr8BGtGpSDtAUVhHHzkaIEovLT0tg3tSWixRPBkzb3frAqVcultUvGEBJTk9k1ZyEDkqFE4qKChuKyEpMVlDLhokH1o1HKxiWkhurUY6Ix4SFzA8REAcOh4kWzkmM65UKWlMHjGyZGsDSRQtG0YmQBwAAAL/ugElAycF3wAhACkAKLQlIiYpErgC77IICRG9AwsAIQADAu8AAALrAD/tMj85Of3eMs0yMDEBITUhJicmJicHJyY1NDc2NyUVBwYGBwYVFBcXFhYXFhYXAwYGBzU2NjcDJ/yTAvlGWi15TSF2PlROvwEa0T9lJmJAUUyEOT1iJWJcultVvl4BJa5qTihULh9aNRysYlpIbq1GFCYRLBYXMDw6eD9Ei0kCmxQtG0YmQBwAAAL/ugElBB4F3wA2AD4ALbQ6Nzs+J7gC77QOHh0DJr4DCwAFABUC7wAGABMC6wA/M+0yPxc5/d4yzTIwMQEWFxYzMxUjIicmJycmJxQHBiMjNTMyNzY1NCcmJwcnJjU0NzY3JRUHBgYHBhUUFxcWFxYWFxYTBgYHNTY2NwLVLy09LYN7UlosUTwZM29362dsnm2BMRtGIXY+VE6/ARrRP2UmYkBRWEcfORogOly6W1W+XgJlOSYzrlQpaUweMbJka64pMVlDLhokH1o1HKxiWkhurUYUJhEsFhcwPERAHDoeJAGuFC0bRiZAHAAAAgA6/38CQgMUACQALgAlsREhuALvtSkGBQUAJbgC77IZBwy4AusAPzMz/TIyETPe7S8wMQEyPgI3FxUOAyMOAwcjPgU3IicmNTQ3NjMyFxYHJicmIyIGFRQWAZMNJy0xFwYUMTErDgIPGB8RKAILDg4MCAGHQ0wwN1dXJh4/Fx4bJxwpWAHTAQYLCQSiDA8HAjNxb2gqBzFGVVlVIysxcGZZZmVQkWEkICUcMTMAAgA6/38BkwMUABkAIwAZvwAVAu8AHgAaAu8ADQLrAAUALz/93u0wMQEOAwcjPgU3IicmNTQ3NjMyFxYVByYnJiMiBhUUFgGTAg8YHxEoAgsODgwIAYdDTDA3V1cmHj8XHhsnHClYASQzcW9oKgcxRlVZVSMrMXBmWWZlUIwFYSQgJRwxM///AEr/RgPpBfUCJgOtAAAAJwUtAaQEUgAHBTcBTwA4//8ASv9GA+kF9QImA60AAAAnBS0BpARSAAcFNwFPADgAAf/OAE0BAgHqABUADrQKCwsAFQAvzTMvzTAxEx4DFRQOAiM1PgM1NC4CJzEqTDkiM1VwPDtWORwhMjwcAeoLKTtJKjNHLRQSCSApLxgbMSccCAD//wA3/+cDYQW6AgYALQAAAAH/wP5RBSIFugAXABxADhMeDg8DHgkJAQcIBAECAD8zPxI5L+0/7TAxEzMRIREzESMRIREUBwYjIic3FjMyNzY1pMIC+sLC/QYzRKJLQiI4HUwXCgW6/aYCWvpGArP9E61XcROZDk0ibAAB/6P+UQPjBCYAFwAcQA4THA4PAxwJCQEHCgUBBgA/Mz8SOS/tP+0wMRMzESERMxEjESERFAcGIyInNxYzMjc2NYi0AfO0tP4NNEKWS0IiOB02HRsEJv5GAbr72gHX/e/CT2QTmQ4mJZMAAgAA/qoKnwW6AB0AJAA0QBsSHhwjGBsVAwICIx4eFhMPAgwDIx4dGgcICQUALzM/MzPtMjI/MzPtETkvFzkSOe0wMSERIREzESMRIREjETMSETUhESERMxEBIQEBIQEHEQEhFRQCByEF4/68hK38N61ysQN8AUTCAtgBB/2ZAoL/AP328P04/gFDYgKkArP9+v39AVb+qgIDAQsDLNb9pgJa/SkC1/2u/JgC5ur+BAUNS7v9d9EAAAIAAP7TCIYEJgAcACEANEAbERwbHxcUGgMCAh8dHBYTDwYMBB8cHBkHCgkFAC8zPzMz7TIyPzMz7RE5Lxc5EjntMDEhESERMxEjESERIxEzEgMhESERMxEBMwEBIwEHEQECByERBRb+43OU/LyUX74IAuQBHbQBqun+agG/3v6hf/vhFIwCOwHX/r3+PwEt/tMBwQECApD+RgG6/lABsP52/WQCH3r+WwOR/fv4Av0AAwAU/qoFOgW6ABgAHQAhACtAFR8RHhQgHhsIHR0WEQIYBhkeAggEAAAvMj/tMjI/MzkvMzPtMjIROTAxASMRIREjETMTJiYnJicmNREzERAXATMRMyEhEQYHAREBNgU6rPwzrXLuEyURgSsowsICF8KG/CQClPi/Abf+wpv+qgFW/qoCAwFfBw8KR3husgGv/mP+xD0DFvrzAaJcBQEDAXn+MhIAAAMAAP7TBHEEJgAXAB8AIwArQBUgEyIcHxoIHBwhDhQGFgcYHAIKBAAALzI/7TIyPzMzOS8zMzPtMjIwMQEjESERIxEzEyYnJjURMxUUFxYXATMRMyEhEQYjIiYnJTUDNgRxlPy3lF/nYiQhtAkSRgGVtHT8owI1pZERHhABdfti/tMBLf7TAcEBHDpiWGwBFsl0K1UzAfD8bgEYNAICyfn+0QMAAQAS/mkFJQW6ABYAGkANBx4VAhEeDAwBHgUIAgAvP+0zL+0/7TAxJTMRIxEjESERFAYGIyInNxYzMjY1ESEEn4asnP3uK4pqQFohMCJCQgOWrf28AZcFDf0N5tZ3GKwUY7gECAAAAQAY/tMElwQmABYAGkANBxwVBhAcDAwBHAUKAgAvP+0zL+0/7TAxJTMRIxEjESERFAYGIyInNTMyNjY1ESEEI3SUk/4jGGxmP1JPODAQA0SU/j8BLQOR/e+5dlgIlhcyigK8AAMAAP/oBncF0wA6AEoAVAA9QCJKMRMSOzUyNEkVRwgzSDNIMwBGFh5LJk4eIQAFBQAeBg0JAD8z7TIvP/3cMu0yETk5Ly8SFzkyMjMwMSUyNjc2NxcGBw4DIyIuAjUHISURIyIuAjU0PgIzMh4CFyEyHgIVFA4CBycFJwcVFB4CAT4DNTQuAiMhBzcXJQEmJiMiBhUUFjMEDE58LTQocSxCHEdXZztlu5JXVP7vAWXARHRVMCxWf1NShV41AgIkV5RrPTtni097/uF3KipUfAGFISwZCxUwTTf92gFkeAEe/T8KYUk7Pzg3jTIfIy6dMCUQHxgOQYfOkS7GARElRGI+PmVIJzRgh1IpUHhOUXxZOAy6qLoWZ1GMZzsB4QopNDgaHzYmFqo3u6kBM2djMzwkNwAAAQBMAAAF/gTXACMAGEALCgccHBsZBxEACQoAPzMzP80z7TIwMSE0LgQnESMRDgUVIzQ+BDc1MxUeBRUFRBcwSWSBT7ZPgWRJMBe6HD9jjbx3tne8jWM/HEq2vrmdcxj8YQOfGHOdub62Smfm49SsdROfnxN1rNTj5mcAAAEAEwAABI0F0wApACJAESgFARwlCBYGIBEcGwwBAwAKAD8yPzPtMj8zM+0yMjAxIREhESMRIzUzNTQ2MzIXByYjIgcGFRUhNTQ2MzIXByYjIgcGFRUzFSMRArv+rLSgoIiTYVYcNSxdIiIBVIiTYVYcNSxdIiLOzgOb/GUDm4tnnqgXmAklJXhFZ56oF5gJJSV4RYv8ZQAAAwATAAAFewXTACkALQAxAC9AGCoqFiwAKAUBHC8lCBYGIBEcGwwBLgMACgA/MjI/M+0yPzMzM+0yMj8SOS8wMSERIREjESM1MzU0NjMyFwcmIyIHBhUVITU0NjMyFwcmIyIHBhUVMxUjEQE1MxUDETMRArv+rLSgoIiTYVYcNSxdIiIBVIiTYVYcNSxdIiLOzgFYtLS0A5v8ZQObi2eeqBeYCSUleEVnnqgXmAklJXhFi/xlBOvPz/sVBCb72gAAAgATAAAFewXTACkALQAnQBQsACgFARwlCBYGIBEcGwwBKgMACgA/MjI/M+0yPzMz7TIyPzAxIREhESMRIzUzNTQ2MzIXByYjIgcGFRUhNTQ2MzIXByYjIgcGFRUzFSMRIREzEQK7/qy0oKCIk2FWHDUsXSIiAVSIk2FWHDUsXSIizs4BWLQDm/xlA5uLZ56oF5gJJSV4RWeeqBeYCSUleEWL/GUFuvpGAAABABP/8gQ8BdMAKgAoQBUkDAgcIQ8dBh8gIBgcEwEKCikcAwsAP+0/P+0zLzM/MzPtMjIwMSUXBiMiJiY1ESURIxEjNTM1NDYzMhcHJiMiBwYVFSERNxEzFSMRFBYWMzIEIhpMPGJsLP6ttKCgiJNhVhw1LF0iIgFTs7W1EysoHqGfED5logJjAfxlA5uLZ56oF5gJJSV4RQEHbP6NjP2TTSwaAAEAP//oBeMF0wBpAE5AKTAxMTZBQWRSTk9PWlJaSzYcZ2QHUhxLFBwaGksLIQ4cCyMGJSgcCgUBAD8z7TI/M+0yPzMv7RDtPzPtETkREjkvMxESORESOS8zMDEBND4CMzIWFxYXETMVIxEUFxYWMzI2NxcGIyInJicmNREjNTMRJiYjIgYVFB4CFwcuAyMiDgIVFBYXFhYXFhcWFhUUBwYGIyImJzcWFjMyNzY1NCcmJyYnJiY1ND4CMzIWFyYmArMuVXhKOWcnLie1tQkKKygPJxkaSj5jNTUXFoSEDjkjW1wMExYKrgkhNU00KlNBKDQnDk9CwEpMVjU0xX7P2R6yD4h8ez08NSWTxU5MT0FsjU08czMJCgSZT3ZOJxILDRD+jYz9k00WFhoDBJ8QHx8yMqMCY4wBHQMKZm0vVU5GICYeMiYVDB81KSo0EQUXEjMhIHtdWlBPV6ypHGxxMjNEPSMXJjElJYFOTnRLJRQWHkIAAAEAhwAABdQFuwA3ADFAGCskMjIFMzAsKS4eHhsVEhgdFAIKBR4ICAA/7TI/M94yMjIy7TIyMjIROS8zMzAxARQeAjMhFSE1MyYCNTQ+Ajc1MxU2NjMyFhc1MxUeAxUjNC4CJxEjESYjIgcRIxEOAwFARIO/ewKE+tredYE4aplitBYsFxUqFLRhmWo4vB04VDe0KSovKrQ5VTkdArBuvYpOra1ZAQmha8KieySdcwIDAgJynCR9pMZvTIp2YCH+MwILBgb99QHNIV9zhgD//wAq/k4EIARGAiYDyQAAAAcGbwFoAMz//wA2/k4D4wNzAiYDygAAAAcGbwEBAID///+6/tYDwwPHAiYDywAAAAcFMAEWAD3///+6/tEDJwNYAiYDzAAAAAcFMACJADj//wAt/4YEzwYzAiYD2QAAAAcFLQFy/+X//wAt/4YEzwYzAiYD2QAAAAcFLQFy/+X///+6/34DJwXfAiYDLwAAAAYFLXDd////uv9+AycF3wImAy8AAAAGBS1w3QAC/1P+VwC4AAoAHQAoABtACxQhHA0JCQQDJxocAC8zM80yMi8yENzNMDEHNDY3FzY3NjMzBgcGBxYXFhUUBiMiJjU0NjcmJyYXFBYzMjY1NCcnBq0GA1MyEkoySTVHQCEfEBRNLRoqCxQQEQtLJhIKCxksCJwRJBIyNxJIGTgzJxMVGh9CZTgoEyk3Dg0LXRsuDgcWGCIUAAIAbf/oAcwFsgANABsAH0AQFRwUDRwAAAYbHA4CBxwGCwA/7T/tETkv7d7tMDETMhYVFAYjNTY2NTQmJxEyFhUUBiM1NjY1NCYnbZHOzpFSZWVSkc7OkVJlZVICps6Rkc6YBm5TU24GA6TOkZHOmAZuU1NuBgACAFoBgAFSBbIADQAbABhAChsOAhUUAAYHDQAAL93ezRDezT/NMDETFhYVFAYHNTY2NTQmJxEWFhUUBgc1NjY1NCYnWmiQkGg2Ojo2aJCQaDY6OjYDcAKRZWWRAoIFOzY2OwUCxAKRZWWRAoIFOzY2OwUAAAEAWwKsAd4FsgANABG3BhwHBwAcDQIAP+0zL+0wMQEGBhUUFhcVIiY1NDYzAd5ge3tgp9zcpwUaBoVgYIUGmNynp9wAAQBOA5ABXgWyAA0ADbQHBgANAgA/3d7NMDEBBgYVFBYXFSYmNTQ2NwFeP0lJP3eZlXsFMAVLPz9LBYICmHd1mAQAAQCk/lsFIgW6ABoAHEAOAx4YDw8eCQkLEQ4CCwgAPz8zEjkv7T/tMDEFFhYzMjY3NjURIREjETMRIREzERQHBgYjIicC/hpFKEppFBT9BsLCAvrCLS3Agkk/3gkRQzk8fAJ3/U0Fuv2mAlr6jblkZWoRAAABAIf+UQPoBboAJQAZQA0lChQcDw8dHAMFBwIAAD8/M+0/7T8wMTMRMxE2MzIWFxYVERQHBiMiJzcWMzI+AjURNCYjIgcOAxURh7R+wHatJiYzQpZLQiI4HRopHA51a1FGIzEgDgW6/fKSXVJUmv0lxUxkE5kODCxXTALXh3sqFTZKYD/9uwAAAQAw/lEGUwW6ACwANUAcHw8cDg4DEiwpAAADHCkPHhASHBwGGxYeGAIUCAA/P+0yP+0yMj/tMi8SORESOS/tMjAxBRYWMzI+AjU0LgIjIzUBBiMhESMRITUhFSEVIRUBHgMVFA4CIyImJwN3JnRNRHJSLjBYgE9dAVCVNv5wwv4dBIr+GwND/o9hn289Soa4bX7HP5c/RTtigEVHdlYvnwFyBvxsBQ2tred3/nUNT3mdW3C+ik5gWQAAAQAk/lEEwwWZADwAOkAeIB0hISQcHQ8TMBwuLjoxEgo0HA0ODw8QDQY6HAMLAD/tPzMzLzMQ7TIyMhE5L+0yP+0yLxI5MDElFwYjIicmJyY1ESM1MxE3ESEVAR4DFRQOAiMiJic3FhYzMj4CNTQuAiMjNQEGIyERFBcWFjMyNgIQGko+YzU1FxaEhLMDLf6PYZ9vPUqGuG1+xz+dJnRNRHJSLjBYgE9dAVCVNv6GCQorKA8noZ8QHx8yMqMCY4wBB2z+jXf+dQ1PeZ1bcL6KTmBZXz9FO2KARUd2Vi+fAXIG/ZlNFhYaAwAAAQBa/+kECwXLACwAMEAZISwgAysfAB4eAQYGDigrHiciAxAOHhEUCQA/M+0yPzPtMhE5LzPtMjIRFzkwMQEVLgMjIgYVFB4CMzI3FQYGIyIuAjU0PgI3NQE1ATIeAhcVJiYjBwM8BhIfLyPSyjhmjVW3vVyzZYHTllNMjMZ5/j8BwUtrVUkqVL5Y+ANPpQEEAgKKmz9jRCRcqykjOGuaYmOfcDwBBAEjLgE/DBUdEqowKKv//wBa/lkECwQ7AgcQngAA/nAAAgA8/+cDgQW6ABQAFwAXQAsAFx4UDh4ICRYCAgA/Mz/93u0yMDETATMRFA4CIyInNRYWMzI+AjchJREBPAKkoSRXlG9JPxpFKDxJKA4B/X4Cg/41AgQDtvulVItjNhG2CREdNEsvpQKL/XX//wA8/lcDgQQqAgcQoAAA/nAAAwA8/+cEmAW6AAMAGwAeACNAEQcEHh4KAxsVHg8BAQ8JHQYCAD8zPzMvEP3ezDPtMjIwMQEDIxMBATMRMxUjDgMjIic1FhYzMj4CNyElEQEEmKZ7dfxQAqSh6u0FJFSPb0k/GkUoPEkoDgH9fgKD/jUBA/78AQQBAQO2/EqlVItjNhG2CREdNEsvpQKL/XX//wA8/lcEmAQqAgcQogAA/nD//wCYAAADwwRxAgYNjgAA//8ASv/uBBkEgwIGDZsAAAAD//0AAAlBBboADwAXAB8AKEATGBAeCQMKDA0NAg8HDAgdFQQCAgA/MzMzPzMzEjkvEjkzM+0yMDEjATMBATMBIwMhBxcjAyEDEyEDJiYnBgcBIQMmJicGBwMCM9EBmAF/0QJY3av9m1RZ3av9m6HZAfGZIzQRHTIDRwHxmSM0ER0yBbr8GgPm+kYBvOXXAbz+RAJaAZZdlzyPif5SAZZdlzyPiQAABABK/+gG9QQ+AEQAWQBvAIgAQ0AiQwpdWkVIHHh2cR0bKyobKhsqaIAlHDQxLgdSaBwPCgAFCwA/MzMz7TI/MzPtMhE5OS8vETMRMzMzM+0yMjI/MDElDgMjIi4CJw4DIyIuAjU0PgI3Njc2NzY0NTQuAiMiDgIHJzY2MzIWFzY2MzIeAhcWFRUUFhcWFhcjJgEGBgcGBwYGFRQeAjMyPgI3NjUlBgYHBgcGBgcUFBcWFjMyPgI3NjUlFTY2NzY3Njc2NDU0LgIjIg4CBxUWFAYVMl9eYjYnYF1QFjJhYmQ2WIdcMClGXjU0bNdqASRDXzo/W0ErD7Aj5deNqCs8uYRmjl80CwkFBgUYEbwc/RAxkmNxLC4yGzZQNTRdTz0THQLZMZJjcSwqMAUBCWtgNF1PPRMd/d0QIRE0bNdqASRDXzo/XUUxEwGDKzslEAwjPzQrPScTLVFwQjxkTjYNDQ4ZJRMXBT9UMRQUL045GKSjQjg9PSI+VzQvd/B+niIhPx83Ad4UIg4RExRNLyQ+LRkYLD8nP3VCFCIOERMSQyoMFQs+TxgsPyc/ddp7CAoFDQ4ZJRMXBT9UMRQVLko0BwwaAAAD//3/5wklBdQAGQAsADQAJkAULR4XFwIZCAMpHx4SCSkeCAMxAgIAPzM/7T/tETk/Ejkv7TAxIwEzEz4DMzIEFhIVFAIGBCMiLgInIQMBFB4CMzI+AjU0LgIjIgcGASEDJicGBgcDAjPRyB9/sNl5mAEBumlluf7+nXbQqn4j/ZWhA6hMhrdrbbiGS0WBuXTPlJT9MQHxmUchDyYaBbr+F3vAg0VtyP7orKX+6slwQ3utav5EAseF05NPT5fcjYLZnliOjf5IAZa7dUeLRgAAAwBK/+gHDQQ+ADoATwBkADRAGlBTHCIgMC8gLyAvQEoqHDgAMwddQBwUDwwLAD8zM+0yPzMz7TIROTkvLxEzETPtMjAxATIeAhUUDgIHBiMiJicOAyMiLgI1ND4CNzY3Njc2NDU0LgIjIg4CByc2NjMyHgIXNjYDHgMzMj4CNTQuAiMiDgIVJwYGBwYHBgYVFB4CMzI+Ajc2NQUcbLaFSh89Wjt2iozUPzd2dnIzWIdcMClGXjU0bNdqASRDXzo/W0ErD7Aj5ddNeFk9FEK1ywIxVHBCQnJUMDBUckJDclQwtjGSY3EsLjIbNlA1NF1PPRMdBD5Ki8h/ZqB6WSBBcG1BVjIULVFwQjxkTjYNDQ4ZJRMXBT9UMRQUL045GKSjFCY1IUhI/cFikWAwMmebaWOVZTMyZZhnAhQiDhETFE0vJD4tGRgsPyc/dQAC//3/5weEBboAHAAkAB5ADx0eGhoCHAgDHhQJIQoCAgA/MzM/7T8SOS/tMDEjATMBMzI+AjURMxEUDgIHBgYjIi4CJwMhAxMhAyYnBgYHAwIz0QIaG2qXXyzCFjZZQkKqagwrNj8fq/2bodkB8ZlHIQ8mGgW6+twqa7WMA078sW+sh2cqKicCBQgFAcH+RAJaAZa7dUeLRgAAAgBK/+gGjAQ+AEQAWQA2QBxCBkVIHBsZKSgZKBkoUiMcLAc6UhwIAwENCwAKAD8/MzMz7TI/7RE5OS8vETMRM+0yPzAxITUGIyIuAicOAyMiLgI1ND4CNzY3Njc2NDU0LgIjIg4CByc2NjMyHgIXFhUVFBYXFhYzMj4CNzY1ETMRAQYGBwYHBgYVFB4CMzI+Ajc2NQXrfdRBaFE6EjJmaGo1WIdcMClGXjU0bNdqASRDXzo/W0ErD7Aj5ddmjl80CwkFBhFuUShPQzQOHrT8oTGSY3EsLjIbNlA1M15PPRMdnLQbMEInM0UqEi1RcEI8ZE42DQ0OGSUTFwU/VDEUFC9OORikoyI+VzQvd9RHXxhIUBYoOSNIiAI5+9oCFRQiDhETFE0vJD4tGRgsPyc/dQAAAv/9AAAHowW6AA0AFQAcQA0PHgwMAg0DCggSBwICAD8zMz8zMxI5L+0wMSMBMwE2NjcBMwEjAyEDEyEDJicGBgcDAjPRAgkQIxQBjMb9wumr/Zuh2QHxmUchDyYaBbr7BTVoNQQp+kYBvP5EAloBlrt1R4tGAAIASv/oBcgEPgA2AEsANEAbLjQKMgYhIDc6HBETESARIBFEGxwkB0QcAAULAD8z7T/tETk5Ly8RMxDtMhEzPz8zMDElDgMjIi4CNTQ+Ajc2NzY3NjQ1NC4CIyIOAgcnNjYzMh4CFxYVERQXNjY3EzMBIyYDBgYHBgcGBhUUHgIzMj4CNzY1AzwyX15iNliHXDApRl41NGzXagEkQ186P1tBKw+wI+XXZo5fNAsJAwseFOy5/m7WHBcxkmNxLC4yGzZQNTRdTz0THYMrOyUQLVFwQjxkTjYNDQ4ZJRMXBT9UMRQUL045GKSjIj5XNC93/vyDUSZaNQKc+9o3Ad4UIg4RExRNLyQ+LRkYLD8nP3UAA//9AAAHowW6AA8AFwAdACRAERcOCh4dAQQEAxIMCQIYBgMIAD8zMz8zMxI5LzMz7TIyMDEBIQMjAyEDIwEzASEBMwEhJSYnBgYHAyEBNjY3NyEHof6w7Onn/hPdzgIz0QEfAbcBBsb+7AES+1tHIQ8mGmMBdwGxECMUS/7FAlz9pAJc/aQFuv1AAsD9QPa7dUeLRv7y/cU1aDXLAAADAEr/6AXIBD4ANgBLAFMAQ0AkTDQKLgYhIFAzHC0wLTc6HBETESAtEREtIANEGxwkB0QcAAULAD8z7T/tERc5Ly8vETMQ7TIRMxDtMhEzPz8zMDElDgMjIi4CNTQ+Ajc2NzY3NjQ1NC4CIyIOAgcnNjYzMh4CFxYVFTMTMwMzFSMDIyYDBgYHBgcGBhUUHgIzMj4CNzY1FzY2NzcjFRQDPDJfXmI2WIdcMClGXjU0bNdqASRDXzo/W0ErD7Aj5ddmjl80CwmkiLmSaJ7K1hwXMZJjcSwuMhs2UDU0XU89Ex25Cx8TMnKDKzslEC1RcEI8ZE42DQ0OGSUTFwU/VDEUFC9OORikoyI+VzQvdwkBgv5+jf3pNwHeFCIOERMUTS8kPi0ZGCw/Jz91/iZaNY1ugwAC//3+WwejBboAHAAkACJAER0eGhoCGQMcCBQeDg8hBwICAD8zMz/tPzMzEjkv7TAxIwEzATY2NwEzAQ4DIyInNRYWMzI+AjcDIQMTIQMmJwYGBwMCM9ECCRAjFAGMxv3eJ1FrkGVJPxpFKC9GNikSvf2bodkB8ZlHIQ8mGgW6+wU1aDUEKfqNY7OHTxG2CRElQFQvAcz+RAJaAZa7dUeLRgACAEr+UQXIBD4ARgBbADVAHD4cOQ8yBkdKHBETESARIBFUGxwkB1QcRC4ABQsAPzMzM+0/7RE5OS8vETMQ7TI/P+0wMSUOAyMiLgI1ND4CNzY3Njc2NDU0LgIjIg4CByc2NjMyHgIXFhURFBc2NjcTMwEOAyMiJycWMzI+Ajc3JiYDBgYHBgcGBhUUHgIzMj4CNzY1AzwyX15iNliHXDApRl41NGzXagEkQ186P1tBKw+wI+XXZo5fNAsJAwsfE+y5/kwYPlRwSjU/FDkuNUIqGg4TFxUSMZJjcSwuMhs2UDU0XU89Ex2DKzslEC1RcEI8ZE42DQ0OGSUTFwU/VDEUFC9OORikoyI+VzQvd/78g1EmWjUCnPuBP3thOxapEBowQyk6IU8BtRQiDhETFE0vJD4tGRgsPyc/dQAAAgBR/+cFYQXTACkALQArQBUTEhIPLCopAAAFKioPBR4kCQ8eGAMAP+0/7RI5LxI5LzMQzRE5LzMwMQEeAzMyPgI1NC4CIyIGByc+AzMyFhYSFRQHDgMjIi4CJyU1MxUBExROboxRdLF3PTd3uYGTwjO/HWqUum6b/7ZkTiZvl8B3c8Obbx8CFM0CAl2LXi9Wnt+JdtKfXZKgLWWfbTpqw/7sqtK3W4xgMT98t3iszc0AAAIAHf/oA7oEPgAjACcAK0AVERAQDSYkIwAAAyQkDQMcHgsNHBQHAD/tP+0SOS8SOS8zEM0ROS8zMDETFhYzMj4CNTQuAiMiBgcnNjYzMh4CFRQOAiMiLgInJTUzFc4TjmpBbU4sLlFwQ1t+Ga8f2651tHtARX+ybVeVc00OAVjNAYWHgi5jm2xqmmMva2wboq5Qk85+hc2MSTVkkVxCzc0AAAEAEgAABVIFugATAB9AEBILEQ4EEBMIAQoeBwQMBgIAPzPdMu0yPzMXOTAxMxEjNTM1MxUhFSERASEBASEBBxGWhITCARb+6gLYAQf9mQKC/wD99vAEk46ZmY7+UALX/a78mALm6v4EAAABAAYAAAP4BboAEwAiQBISEQsOBA0QEwoNBgEKHgcEBgAAP90y7TI/PzMSFzkwMTMRIzUzNTMVIRUhEQEzAQEjAQcRiIKCtAFu/pIBqun+agG/3v6hfwSvhoWFhv3HAbD+dv1kAh96/lsAAQCWAAAFUgW6ABMAK0AYEQMJBwoSEA0PCQ4GCA4IDggCDBMIBAICAD8zPzMSOTkvLxE5Ehc5MDEzETMRASEBFzcXBwEhAQcnNycHEZbCAtgBB/2ZoLJ1wgF9/wD+/Jx1r6TwBbr9KQLX/a7bw3fV/fwBcKx5v+rq/gQAAAEAiAAAA/gFugATACxAGQMJEQcSChANDwkOBggOCA4IBAwTCgQGAgAAPz8/MxI5OS8vETkSFzkwMTMRMxEBMwEXNxcHASMDByc3JwcRiLQBqun+amSOaqMBBt6obWN+ZX8Fuvy8AbD+dpeVa6j+eQEDcWuFnXr+WwAAAQASAAAFUgW6ABsANEAdCRcBGwIKCAUHCQYaAAYABgALDRYeExAYEgIECwgAPzM/M90y7TIROTkvLxE5Ehc5MDEBFwcBIQEHJzcnBxEjESM1MzUzFSEVIREBIQEXBCJ1wgF9/wD+/Jx1r6TwwoSEwgEW/uoC2AEH/ZmgA1B31f38AXCseb/q6v4EBJOOmZmO/lAC1/2u2wABAAYAAAP4BboAGwA1QB4LERkPGhIYFRcJFg4QFhAWEA0UGwoNBgEKHgcEBgAAP90y7TI/PzMSOTkvLxE5Ehc5MDEzESM1MzUzFSEVIREBMwEXNxcHASMDByc3JwcRiIKCtAFu/pIBqun+amSOaqMBBt6obWN+ZX8Er4aFhYb9xwGw/naXlWuo/nkBA3FrhZ16/lsAAQCWAAAE7AW6AAkAFUALAAkFBgQIAgEeBAgAP+0/FzkwMQERIRUhEQcRMxECGgLS/GzCwgMj/YqtAsk/AzD9KgAAAQCDAAAB6wW6AAcAFEAKAAcDBAQCBgACCgA/PxIXOTAxAREjEQcRMxEB67S0tAMX/OkCxzwDL/0hAAEAEgAABCoFugANABdACwEKHgcEBgILHgAIAD/tP90y7TIwMTMRIzUzNTMVIRUhESEVloSEwgEW/uoC0gSJjqOjjvwkrQABAAYAAAHBBboACwAUQAkBChwHBAYAAAoAPz/dMu0yMDEzESM1MzUzFTMVIxGDfX20iooEh4atrYb7eQADAAD/5wZrBdQAGQAkAC8AIkARDAIaHhkPJiYfKx4UCR8eBwMAP+0/7RI5LzMz7TIyMDERNTM+AzMyHgIXMxUjDgMjIi4CJyUuAyMiDgIHBSEeAzMyPgJ9Dm+19JSS9bZvDHx7DHC39pGT9bZvDQSrC1ODq2Nfq4VXDAPh/BwIToKwammugVACh6ya+bBeYLD5mKyX+LBhZbT2kax5vIFEO3u/haxvuoZLR4S7AAADAAD/6ATjBD4AGQAkAC8AIkARGA4lHAsBGxsGKhwTByAcBgsAP+0/7RE5LzMz7TIyMDEBIw4DIyIuAicjNTM+AzMyHgIXMwUhHgMzMj4CNS4DIyIOAgcE44YISn+wbnGygEgGfYINVIGoYmerf08Mif7C/ZEELlBwRkRvUC8KN1FnOTpnUTcKAeV4vYNFRoS9dpRuqXM7QHanaJRShV8zM16F50txTScnTXFLAAADAGP/5wboBdQAIQA0AEIAI0ARFT4+OCceHQk7OAgLCzEcBQMAP+0zLzPNMj/tETkvzTAxEzQSNiQzMhYXNjYzMh4CFRQOAgcWFhUUAgYEIyIkJgI3FB4CMzI+AjU0LgIjIgcGJTQmIyIGBxYWFz4DY2i6AQKajO9bJnxVOVxCIydHZD4CA2W5/v6dm/7+uWfITIa3a224hktFgbl0z5SUBSk5NzBOGSg7EiE1JxUCyrcBIMlqXFVRXClMakJHfGFBCxkxGqX+6slwcscBDpmF05NPT5fcjYLZnliOjZJPVkhBN4BJCys8SQADAET/6AUYBD4AIAA0AEAAI0ARFT4+OCYcHAs7OAgLCzAcBQcAP+0zLzPNMj/tETkvzTAxEzQ+AjMyFhc2NjMyHgIVFA4CBw4DBwYjIi4CNxQeAjMyPgI1NC4CIyIOAiU0JiMiBgcWFhc2NkRKhLdtXqM/ImA8NVQ7ICRAWTUEIj1WN3aKb7eDSbkvVHNDQnJUMDBUckJDclQwA5Y0MSMyFCYwCDU7AhOHz41IODYvOCVEYTw7alY9DFqNbVIeQUiNz4dmmWYyMmebaWOVZTMyZZiwQFUoHjeIURplAAADAGP/5wqPBdQAJwA6AE0AHUAOQC0eIx4ZCUo3HgoFDwMAPzMz7TI/MzPtMjAxEzQSNiQzMh4CFz4DMzIEFhIVFAIGBCMiLgInDgMjIiQmAiUUHgIzMj4CNTQuAiMiBwYBFB4CMzI+AjU0LgIjIgcGY2i6AQKaY7KZfS0tfJm0ZJgBAbppZbn+/p1ls5l7LSx7mbRlm/7+uWcFekyGt2ttuIZLRYG5dM+UlPtOTIa3a224hktFgbl0z5SUAsq3ASDJai9YgFFSgVcubcj+6Kyl/urJcDFZf05Qf1gwcscBDpmF05NPT5fcjYLZnliOjf61hdOTT0+X3I2C2Z5Yjo0AAwBE/+gHUQQ+ACIANgBKAB1ADjwoHB4aFwtGMhwIBQsHAD8zM+0yPzMz7TIwMRM0PgIzMhYXNjYzMh4CFRQOAgcGIyImJwYHBiMiLgIlFB4CMzI+AjU0LgIjIg4CBRQeAjMyPgI1NC4CIyIOAkRKhLdtgtBCQtGDbLaFSh89Wjt2ioTOQjhedopvt4NJA+MvVHNDQnJUMDBUckJDclQw/NYvVHNDQnJUMDBUckJDclQwAhOHz41IaWJkZ0qLyH9moHpZIEFkYlMyQUiNz4dmmWYyMmebaWOVZTMyZZhnZplmMjJnm2ljlWUzMmWYAAIAEgAABP0FugAaACkAJkATARkeBBYEGx4UBBQEFBoIKR4FAgA/7T85OS8vEO0RMxDtMjAxMzUjNTMRITIeAhceAxUUBwYhIRUhFSEVESEyPgI1NC4CJyYjIZ6MjAIpVnpcRiIkPCoYd3f+yf6IAQ7+8gF7XoRTJRgtPiYwhf6J8Y4EOwkTIBcZSFllNrqDgdWO8QMBJEVjPy5QPywLDQACABH+aQQhBD4AHAAwAChAFQEbHAQYGAAiHBcUCywcBwoHBQYADgA/Pz8z7T8z7RI5LzPtMjAxEzUjNTMRMxU2NjMyHgIVFA4CIyImJxEhFSEVAxQeAjMyPgI1NC4CIyIOAod2dqQ6kmhnpnVAQnmraVuOLgFS/q4RLU5nOjtqTy8uTWc5OGpRMf5pf4YEuIpRUVCRyXl3zpdXTDr/AIZ/A6Rol2IwMmada2aYZTI2aZ4AAgAUAAAGSAW6ACMAMgAhQBARJR4iASIKIgoiIwgyHhICAD/tPzk5Ly8RMxDtMjAxIREiDgIVFBYXIyY1ND4CNxEhMh4CFx4DFRQHBiEhEREhMj4CNTQuAicmIyEB6TtsUTARCbYRRn2sZgIpVnpcRiIkPCoYd3f+yf6IAXtehFMlGC0+JjCF/okCVA8sUkQoRRo/SWqQWSgCArkJEyAXGUhZZTa6g4H9rAMBJEVjPy5QPywLDQACABT+aQVJBD4AJAA1ACFAESQkGg4IJxwcGQoxHAsOBwkGAD8/M+0/M+0yPzMvMDETJiY1ND4CNxEzFTY2MzIeAhUUDgIjIREjEQ4DFRQWFwERITI+AjU0LgIjIg4CGwMEPW2XWqQ6kmhnpnVAQHWjY/7VtDNbQycHBQGgARc5ZkwsLk1nOThkSyz+6xUtF2J/SiADA5SKUVFQkcl5c8WRUv5pAZcBDShKPRgsFAMi/ocsX5VoZphlMjZpngAAAgAKAAAHHwXTADEAQAAjQBIfMx4BMDAxCEAeIAIPDB4QEgMAPzPtMj/tPzkvM+0yMDEhESIuAjU1NC4CIyIGBzU2MzIeBBUVFB4CMxEhMh4CFx4DFRQHBiEhEREhMj4CNTQuAicmIyECwHCSVyMIIkQ7KE8aP0lPc1ExHAoMKU5BAilWelxGIiQ8Khh3d/7J/ogBe16EUyUYLT4mMIX+iQJUI1OIZpEcUEgzEQmsESE4TVhfLnZFUiwOArkJEyAXGUhZZTa6g4H9rAMBJEVjPy5QPywLDQAAAgAK/mkGKASWAC0APgAoQBUtBhAOLDAcEg8KHx0cICIiOhwBBAcAPzPtMy8z7TI/M+0yPz8wMQEVNjYzMh4CFRQOAiMhESMRIi4CNRE0LgIjIgcnNjMyFxYVERQeAjMRExEhMj4CNTQuAiMiDgIDMjqSaGemdUBCdqJh/tW0WZhwPw4cKRodOCJCS5ZCMyQ/VjO0ARc5ZkwsLk1nOThkSywEJopRUVCRyXlxxZJT/mkBlxRIi3cBv0xXLAwOmRNkTcT+MEVMJAgDkv3n/ocsX5VoZphlMjZpngACAFj/AAZCBdQAJAA8ADtAIC4eGwMBJAIMBQkGBgAABiUePDonOB4RCwoKBgYiDxEJAD8zMzMvMy8zEP0yMt7tETkvEhc5P+0wMQEXBxYWFwcmJicHJzcmJicGIyImJgI1NBI2JDMyBBYSFRAHFhcBFhc2ETQuAiMiDgIVFB4CMzI3JicFy25/KkcXOSReM6t8mBUlEaPFlf+7a2O3AQOhlwEBu2ndGB7+H6Zvq0WBuXRruIdNTIa4bWhcXGQBJG6LFB0Ihw4pGrxrog4aDVtsxgEYrKMBFstzbMb+6Kz+ldYSEgEcLl6cATmB2Z1YSpTelJDdlk0nOhoAAgBI/mkEVgQ+AB0AMQAoQBUYBi0cFhQHARwcGQQEACMcBQoLAA4APz8z7RI5LzPtMj8z7T8wMQE1ITUhEQ4DIyIuAjU0PgIzMhc1MxEzFSMVARQeAjMyPgI1NC4CIyIOAgMs/q4BUhU8SVIqXqh+SkZ5pF3GcKJ2dv0hL09qPDlmTS0wUWo6OWZMLf5pf4YBAx0yJRVOktGEhMuKSKaO+0iGfwOtZ5pmMzBhlGVqoGo2L2SbAAACAFj+UgezBdQANABMAD9AIiIdIyNIPh4PAxksAS8zBTA1HkxKN0geBQA0NAUwMBYDBQkAPzMzMy8RMy8zEP0yMt7tERc5P+0ROS/tMDEBASYnBiMiJiYCNTQSNiQzMgQWEhUQBxYWFxM2NjU0LgIjNTIWFRQHBgYHARYWFwcmJicBARYXNhE0LgIjIg4CFRQeAjMyNyYnA+cBBUExo8WV/7trY7cBA6GXAQG7ad0RKRbzZGwUMlZCx8ItFltF/vwkPRU5H04r/vP+5qZvq0WBuXRruIdNTIa4bWhcXGT+owFTJiZbbMYBGKyjARbLc2zG/uis/pXWDRoNATuCtTMmOSYTkZSPPVothFn+sBEZB4cLIxX+pANDLl6cATmB2Z1YSpTelJDdlk0nOhoAAAIASP5SBd0EPgAtAEEALUAXFwYiPRwjFhQHGTMcASwFBAoLAwICAA4APzIvMz8zMzM57TI/MzPtMj8wMQE1BycBNQ4DIyIuAjU0PgIzMhc1MxE3NjY1NC4CIzUyFhUUDgIHAREBFB4CMzI+AjU0LgIjIg4CAyyefQEbFTxJUipeqH5KPnWlaMZwooJkbBQyVkLHwhMyWEb+5v0hL09qPDlmTS0wUWo6OWZMLf5ptcxRAW9fHTIlFU6S0YR4yJBRpo781amCtTMmOSYTkZSPIUZfgVr+k/5jA61nmmYzMGGUZWqgajYvZJsAAAEAKAAABJIF1AAnAB1ADhIVHhcnFycXFAghHggDAD/tPzk5Ly8Q7TIwMRM0JjU0PgIzMh4CFRQOAgcBIwE1MzI+AjU0LgIjIg4CFRUpAUB/vn57u4BBMWacagIV9P33VFGGXjQeRXFTXHtKHwQTBgsGXJxyQEBynFxNm4NcDv2rAkWUKFKAVzJfSi0yTl0rFwAAAQAeAAADNAQ8ACIAHEANEg8TIhMiExEKHRwFBwA/7T85OS8vETMzMDETND4CMzIeAhUUDgIHASMBNT4DNTQuAiMiDgIVHj9tk1NJgF82LVR6TgFv3f6eN39tSBszRysqTjsjAvtWek0kLlV3SDtwX0QO/mIBrEIJJUBdQSdBLhkNJUU3AAABADwAAARrBdMALAApQBQHBB4qCQEqACoAKgYZFB4aHwMGCAA/PzPtMhE5OS8vETMzEO0yMDEBETMVIxUjNSE1AT4DNTQuAiMiDgIHNT4DMzIeAhUUDgIHASERA7O4uML9SwFWBiEjGhMpQCwUMjEqDQ8tMzQYY4BLHRghJAz+twH9A939m6XT06UCUAs5R0gZFy0jFQUHCgSsBAYFAjRPWycnVE5DFf3LAmX//wA8/nAEawRDAgcQ0AAA/nAAAQAJAAAFRgW6ABQAGkANBwoEAQQSBggCDgIACAA/MjI/MzMXOTAxIQMDIxMBMxMBMwEXFhYXNjY3ATMBAkGEhJ3T/prS9AELnf6jPhcmEBEnFwGMxv3CAVP+rQIcA579VgKq/IStQHc5PHg8BCn6RgAAAf/k/zcD6ATxABIAG0AOBwoEAQ0FABAJBgYCAAoAP84/zDMSFzkwMSEDAyMBAzMTEzMBFxYXNjcTMwEBrmTJnQEc5r6J/Z3+rRQlHxgr7Ln+bgEH/jACkQJe/oECSvzwN2dvVHYCiPvaAAEAGf5bB3YFugAsAB1ADiQOBiwIHx4ZDygSAgoCAD8zMzM/7T8zMzMwMSEBMxMWFhc2NwEzExYSFzY2NxMzAQ4DIyInNRYWMzI+AjcBJiYnBgYHAQGe/nvH3xEgDTcLARfq0ic6EQ4lFubD/oEdSmmRZUk/GkUoLkc5Lxf+0BQWBAsWCv7JBbr8P0yVS+kmA979Gov+/npGnlsDrvqLarSCShG2CREkRGI/BExGVhAzViP7owAAAQAG/lEFtwQmABsAHUAOGQYDGwoTHA4PGgcCBQYAPzMzMz/tPzMzMzAxIQEzExMzExMzAQ4DIyInJxYzMj4CNzcDAwFL/ru66OC51POv/o8VPFZzSjU/FDkuNUYuHQ0a0NcEJvy3A0n8zQMz+4FBe2A6FqkQGi9DKlEDKvzPAAABADz+UQQoBdQAQwA7QB40NTU6AyAcHyECJRwBHwEfARQ6HC8BEA0RERQcDQ8AP+0yLxI5P+0ROTkvLxDtMjIQ7TIRMy8zMDEBIRUBHgMVFA4CIyImJzcWFjMyPgI1NC4CIyM1AQYGByMiLgI1ND4CMzIeAhcHLgMjIg4CFRQeAgIWAdf+j2Gfbz1KgK1jks4/gSaZZzdjTC0wWIBPXQFXS2UbKG+xe0JFcI1JSXVYOxGcChwsPiwtTjohJkhpA6R3/nUNUXOMSGKebz1gWVk/PylHYDg8aEsrnwFoAwECJ1WIYU+FXjUiOk0rMwwlIxggN0wsO0wtEgAAAQAy/lEDwQUWAEUALkAXHhwDICAnERQcEA0PNjEcNzw8IQInHAEAL+0yMjMvM+0yPzPtMhE5LzPtMDEBIRUBHgMVFA4CIyImJzcWFjMyPgI1NC4CIyM1AQ4DIyMiLgI1ND4CMzIeAhcHLgMjIg4CFRQeAgH/AZH+eF+hdkNGfapjks4/fiaZZzdkTS4wWIBPXQFXJR4LBg1Mb613PTRcfUk6alhEE5wTIiUrHDVJLRQnSmsDRXL+ZwIuV4FUVpFqPGBZVD8/KUNUKz5WNhiVAXICAgEBI0t0UUNyUi4YL0YuLhUeFAoaLTofKjskEAAAAgASAAAE/QW6ABwAKwAgQBArHhgYGggpHgkIHB4CBQMCAD/dMv0y3e0/OS/tMDETNTM1MxUhFSEVITIeAhceAxUUBwYhIREjEQEyPgI1NC4CJyYjIRESjMIBDv7yAWdWelxGIiQ8Khh3d/7J/ojCAj1ehFMlGC0+JjCF/okE2Y5TU45pCRMgFxlIWWU2uoOB/vYE2fzeJEVjPy5QPywLDf30AAACAAb+aQQhBboAHAAwACRAEyIcGxgLBAccCgEsHAsOBwYAAA4APz8/M+3cMu0yPzPtMDETESM1MzUzFSEVIRU2NjMyHgIVFA4CIyImJxEDFB4CMzI+AjU0LgIjIg4Ch4GBtAFv/pE4imJnpnVAQnmraVuOLhEtTmc6O2pPLy5NZzk4alEx/mkGRoaFhYb+R0ZQkcl5d86XV0w6/fsDpGiXYjAyZp1rZphlMjZpngACABIAAAT9BboAHAArACJAESoeBgYEKx4UAhYeGRwaCAQCAD8/3TL9Mt7tETkv7TAxNzUzETMVITIeAhceAxUUBwYhIRUhFSEVIzUBMj4CNTQuAicmIyEREozCAWdWelxGIiQ8Khh3d/7J/ogBDv7ywgI9XoRTJRgtPiYwhf6JZY4Ex/oJEyAXGUhZZTa6g4FnjmVlAaIkRWM/LlA/LAsN/fQAAAIAEf5pBCEFugAcADAAKEAVARscGAQEFBwOIhwXFAssHAcKBwYAAD8/M+0/M+0/EjkvM+0yMDETNSM1MxEzETY2MzIeAhUUDgIjIiYnESEVIRUDFB4CMzI+AjU0LgIjIg4Ch3Z2tDiKYmemdUBCeatpW44uAVL+rhEtTmc6O2pPLy5NZzk4alEx/ml/hgZM/fdHRlCRyXl3zpdXTDr/AIZ/A6Rol2IwMmada2aYZTI2aZ4AAAEAv/5pA/wFugAHABK3AwYCBw4EAgIAPzM/Ejk5MDETETMRATMBEb/CAbXG/YX+aQdR+9cEKfpa/lUAAAEAh/5pAywEJgAHABK3AwYCBw4EAgYAPzM/Ejk5MDETETMRATMBEYe0ATi5/g/+aQW9/TcCyfvk/l8AAAEAUP/mAywFwAA0ABxADikQHg4OGgMeMQkaHiEDAD/tP+0SOS/tOTAxNxYWMzI+AjU0LgIjIzUzMj4CNTQuAiMiBgc1NjYzMh4CFRQGBxYWFRQOAiMiJidQP38xP29RLy1SdkhPLzhmTi8bOltAL3Y7OXAzaqFsNmZkg49KhLVrO3c8mRMLMFJwQD5jRSSbHTxdPzFUPiILEJgMCzpni1Fgmy4evI9gp3xICwwA//8AUP5WAywEMAMHEN4AAP5wAAi0AAEhBikAKwACABT/6wPbBdQAJwAyABtADiIeGwkuHgkBABQeMgMGAD8z7TI/7T/tMDEBITUhNTQ+AjMyHgIVFA4CIyMRFAYHBgYjIiYnNRYWMzI+AjUBMjY1NCYjIgYVFQF2/tsBJS5TckVJcE0nLVV5TFwpNjaaYStNHBxHLDpRMhYBFUtHMzdDOAOQln9IcU0pKkxoPUZuTSj+f4DFS0tJCQ25FA8rW41jAhlPRDdMUkV/AAACABT+UQPbBdQAJwAyABtADiIcGw8uHAkBABQcMgMGAD8z7TI/7T/tMDEBITUhNTQ+AjMyHgIVFA4CIyMRFAYHBgYjIiYnNRYWMzI+AjUBMjY1NCYjIgYVFQF2/tsBJS5TckVJcE0nLVV5TFwpNjaaYStNHBxHLDpRMhYBFUtHMzdDOAOGoH9IcU0pKkxoPUZyUCv874DFS0tJCQ25FA8rW41jA7NPRDdMUkV/AAABAFX/5wQjBcAAPgAiQBEdGx4eISERAAMePjkJER4rAwA/7T8z7TISOS8z7TIwMTcWFjMyPgQ1NC4EIyIOAhUUHgIzMjcVBgYjIi4CNTQ+AjMyHgQVFA4EIyIuAifIO41QUHpZOyMPCBkuTG1MMWFMMC1Paz5ZRC1lN1qedkRGfKliYZdyTzIWFTRXhLV3FT1HTSWtHBYzWXmMmEwmcn9/ZUArV4RaRnFPKyuaFxlCeq5scLaCRzZgg5ytWV7AsZtyQgMIDgoA//8AVf5XBCMEMAMHEOIAAP5wAAi0AAErBikAKwABADwCsQJhBdIAKgAWQAkCJychFBshCgEAP80vzRI5L80wMQEGIyImNTQ3NjYzMh4CFRQHBgYjIiYnNRYWMzI2NTQmIyIGFRQWMzI2NwGAISR4h0ckZjlCaEonVSqCTipKJihLKGBhSUU6Rzg/ESEPA9sJgnNzTCYmMV2HV8Z3PDwPDn0UEZ2ihnJQQj9MBQYAAAIARv9DBVYFugAdADEAJkAUEQAtHBANByMcAQMLFxUTHBwaAAoAPzLO/c4zPzPtPzPtPzAxITUGIyIuAjU0PgIzMhYXETMRMzczBzMVIwcjNwEUHgIzMj4CNTQuAiMiDgIDOGXEZah5Qzxyp2xhlDCzZleiV2+xWaJZ/PwvUGk5OmhMLS5Pajw7Zkwshp5TlMt4dsuWVVBCAg762rq6lL29AhJnmGUyMGGTY26faDEvY5oAAAEAg/9DAq4FugANABZACgIABwUDHAwKAAoAPzLO/c4zPzAxMxEzETM3MwczFSMHIzeDtGZXoldvsVmiWQW6+tq6upS9vQABAIf/QwedBD4AMgAoQBQTEQ8cMicYFhoKISwcCwkDBgcCBgA/PzMzM+0yPzPOMzP9zjMwMTMRMxU2NjMyFhc2MzIWFREzNzMHMxUjByM3IxE0JicmJiMiDgIVESMRNCYjIgYHBhURh6EzpWp2lx9+yp+pZleiV2+xWaJZ1woIElo/N19GKLRYZE2AHR0EJpVOX2JYuq63/bu6upS9vQKdNk0YMDokTHZT/ZcCsnl3UE1OkP3ZAAEAh/9DBV0EPgAkACBAEBIQDhwkFxUZCh8cAwUHAQYAPz8z7T8zzjP9zjMwMTMRMxU2MzIeAhcWFhURMzczBzMVIwcjNyMRNCcmJiMiBwYVEYeidd1Re1Y0CwUFZleiV2+xWaJZ2BUVa0h0U1MEJpevKEZeNhlXP/4HurqUvb0Chm42N0FJSsv9vAAAAQCFAAACxgTDABoAHkAOGgoSEQ4UDQoJAwcHAQYAPz8zzTMz3TIyzT8wMTMRMxU2NzY3NzMHFhYXByYmJwcjNwYGBwYVEYWiPjQwOSSEKhEjEj4OHA4shC0pPg8eBCahcSQhA4WcBxELpwgNBaKmDUAwYHL91AAAAgCY/0MF7ARxACEAKgAsQAojKxQTBgYAKisKuAMqQAkbGRcrIB4IAAoAPzIyzv3OMz/tETkvMzPtMDEhAy4DIyMRIxEhMh4CFRQGBxUWFxczNzMHMxUjByM3ASEyNjU0JiMhA+XVJT0/SjGiugIcZKBwPKyqfWlteleiV2+xWaJZ/LkBO4qPe4n+sAE3NkcrEf4QBHEgSXdYg6AWBDKZnbq6lL29An9WZE9TAAIAJP/yBTkF1AAtADgAKEAVIwoNDg40HBYBIQkkHDgMDwYrHAMLAD/tPzMz7TIyP+0zLzM/MDElFwYjIiYnJjURIzUzETcRITU0PgIzMh4CFRQOAiMjESMRIREUHgIzMjYBMjY1NCYjIgYVFQIQGko+YmwWFoSEswF5LlNyRUlwTSctVXlMXML+hwgWKCAPJwHyS0czN0M4oZ8QPjIyowJjjAEHbP6Nf0hxTSkqTGg9RmtJJfxmA5r9ky05IQwDA4lPRDdMUkV/AAACAAoAAAOYBdUALQA7AB5AEC4VAyoENgAtIRwfCjYcDQEAP+0//c4yERc5MDETNhI3JiYnJjU0PgIzMh4CFRQGBx4DFRQOAiMhNSEyPgI1NCYnBgYHEz4DNTQmIyIGFRQWrVCPPlhjEycpSWc+QmRDIjIjRF46GkB1pGT+LwHcNltCJUNKP4lO1AsRDAYtKioySgFChAEIhE5sJk5RNl9GKShIZT1NqFtEeXJwO1+XajmbJUNcN1ehUILxfgMHHDQyMx03PD0qO2sAAgAa/+cF3QW6ABYAKgATQAkcHhIJBSYeCAIAP+0yP+0wMRM0PgI3ITUhMgQWEhUUAgYEIyIkJgI3FB4CMzI+AjU0LgIjIg4CYyRCWzf+vwMHmAEBumlluf7+nZv+/rlnyEyGt2ttuIZLRYG5dIK+ezwCwGKtk3swrWjC/u2spf7txW1vwwELmYXQkEtMk9mNgtSYU1Wc3QACAEn/5wQhBboAIAA0ABZACyYcHBcGMBwNCwEAAD8/7T8z7TAxATMeBRUUDgIjIi4CNTQ+AjMyHgIXLgMBNC4CIyIOAhUUHgIzMj4CATTZTYx2X0IkSoO1a2azhU1FeqVgHzAvNCIkX297AfIxVXJBQG1RLi9Tb0E/cFQwBbowhp6usq9OfsuNTEKGzIqCy4xIBQ4WEkiCdGX8g2CUZDMyZptpYpNhMDRnmAAAAQC//mkDHwXSABcAH0AQFB4WCBILDR4KAwgDAQIADgA/Pz8zM+0yMj/tMDETETMVPgMzMhcHJiMiDgIHESEVIRG/whUuNkIqW14+QkImQzksDgFL/rX+aQdRoCVDMh46pycmP1Aq/FuU/mkAAQCF/mkCxgQ+ABYAHUAPFg4THBUKCgwcCQMHBwEGAD8/MzPtMj/tPzAxExEzFTY3NjMyFwcmIyIGBwYVESEVIRGFoj40NEBbXj5CQjxdFB4BTf6z/mkFvaFxJCQ6pydHP2By/l6K/mkAAAIAVv/oBGAFugAlADsAGUAMLR8lNx4VCQMlHgECAD/tMj/tETk5MDETNSEVDgMVFBceAxUVDgMjIi4CNTQ+AjcmJjU0NjcBNC4EJw4DFRQeAjMyPgKuA1VGiWxDmE94UioDTorBdXC6hUouY5xtFhZWUAE0IzlISEMYX3xIHSxTdEhLe1cvBQ2tnAwuP00rTGg2Z2x0QgdqqndAQHWkZFCLe20yIlMhQ3Aq/KwoSkQ9ODAVLVZaYzpFa0kmKE1uAAIAVgAABGAF0gAlADsAGUAMHy0lNx4VAwMlHgIIAD/tMj/tETk5MDElFSE1PgM1NCcuAzU1PgMzMh4CFRQOAgcWFhUUBgcBFB4EFz4DNTQuAiMiDgIECPyrRolsQ5hPeFIqA06KwXVwuoVKLmOcbRYWVlD+zCM5SEhDGF98SB0sU3RIS3tXL62tnAwuP00rTGg2Z2x0QgdqqndAQHWkZFCLe24xIlMhQ3AqA1QoSkQ9ODAVLVZaYzpFa0kmKUxu//8AVv5wBGAEQgAHEPIAAP5wAAEASQAAA90FugAFAA21AggDHgACAD/tPzAxAREjESE1A93C/S4FuvpGBQ2tAAABAIMAAAE3BboAAwAKswECAAgAPz8wMTMRMxGDtAW6+kYAAQCl/mkGUgXTADAAGUANLw4UHhoJJx4CBwMAAgA/PzPtP+0/MDETMxU+AzMyHgQVERQeAjMyNjcVBiMiLgQ1ETQuAiMiDgIHBhURI6XEOnFzdT9rn3FIKQ8IHzszKEUaP0lPcEwtFwc+Z4VHQndhRxMmxAW6tkJSLA84XXd+ejL+BT5jRiYRCbYRITtSYW05AgJwmV4qITtSMGHQ+0gAAAEAh/5pBLYEPgAoABlADR8WHCEHHQYbDgYcCwsAP+0/Pz/tMzAxAREUHgIzMjcXBiMiLgI1ETQnJiYjIgcGFREjETMVNjMyHgIXFhYD5g4YIBMdOCJCS1ZjMQ0VFWtIdFNTtKJ13VF7VjQLBQUCjf7UTFcsDA6ZEzZiiVQBKW42N0FJSsv8JQW9l68oRl42GVcAAQC//mkDHwXSABMAFUAKEw4SDR4DCAMBAgA/PzPtMj8wMRMRMxU+AzMyFwcmIyIOAgcRv8IVLjZCKltePkJCJkM5LA7+aQdRoCVDMh46pycmP1Aq+jAAAAEAhf5pAsYEPgASABNACRIODBwDBwcBBgA/PzPtPzAxExEzFTY3NjMyFwcmIyIGBwYVEYWiPjQ0QFtePkJCPF0UHv5pBb2hcSQkOqcnRz9gcvw9AAEAZv/nBMIFugAhABdACx4BHiACEAseERQJAD8z7TI/7TIwMQEhDgMVFB4CMzI+AjcXBgYjIiQmJjU0PgI3ITUhBML+PG+tdz09d7F0LGFjYS0BWLxbp/7/r1otU3NH/soEWAUNDmyr4IF4vIJEDx0rHc8mJWWy8YxyxaWEMq0AAQBQ/+gDnwQmACMAF0ALIAEcIgYQCxwRFgsAPzPtMj/tMjAxASEOAxUUHgIzMj4CNxUOAyMiLgI1ND4CNyM1IQOf/nc6YkgpLFN2SjRTSEEiJ1RRSRt1u4RGGjFILcADTwOUDEtwkFFgi1orCBEYEJ8QFQwFQ4K/ez94bmEnkgABAKQAAAUiBboACQAWQAoDHgkJAQcIBAECAD8zPxI5L+0wMRMzESERMxEjESGkwgL6wsL8RAW6/aYCWvpGArMAAgAU/lEDjgW6AC8APAAoQBMeGwEHMxoXMBQRNTUVJBwrDxUAAD8/7RE5L80y3jIyMs0yMjIwMSURIgYjBgYjIi4CNTQ+AjMyFhcRMxE2NjcVBgYHERQeAjMyNjcVBgYjIi4CAzI2NyYjIgYVFB4CAZwCBQINHSBHc1ArJEFZNiFPJLQ5bjo5bDwZLkEnLEccHE0reYxGEz8RHg8GgiY0ESc+EQK3AQECIUBdPDRUPCEUGgFF/dwaQDKyKDoX/RhjbjUMDxS5DQlDeKQDpwICtCsmGycZDAAAAQCc/n8GAAW6AA0AGUAMDQYeAwsICQ4MBAICAD8zMz8/M+0zMDEzETMBETMRMxEjESMBEZzHAwK64ar+/P4FuvuBBH/66P3dAYEEgPuAAAABAIf+fwSsBD4AHgAbQA4eDhwTChEOGRwDBQcBBgA/PzPtPz/tMzAxMxEzFTYzMh4CFxYWFREzESMRIxE0JyYmIyIHBhURh6J13VF7VjQLBQXGqtAVFWtIdFNTBCaXryhGXjYZVz/+Ff3dAYEChm42N0FJSsv9vAAB//r/5wV2BdMALwAwQBgaGxseECMeDQEAACsmDQ0GHh4VAyseBgkAP+0/7RE5LzMSOS8zEO0yETkvMzAxARcOAyMiLgInJicjNTM2EjY2MzIeAhcHJiYjIg4CByEVIR4DMzI+AgS0wh9vmsRzd8CXbyc6D3BtB2q1+JVuupRqHb8zwpN6s3c+BQFP/rQKR3alaVGMbk4CAjF3tn1AMV+MXIigjqIBBLZiOm2fZS2gklORxHCOdbuDRy9eiwAAAf///+gD7QQ+ACkAMEAYFhcXGg4fHAsBAAAnIgsLBhocEwcnHAYLAD/tP+0ROS8zEjkvMxDtMhE5LzMwMQEXDgMjIi4CJyM1Mz4DMzIWFwcmJiMiDgIHIRUhHgMzMjYDPLEOTXOVV2erfksHUlUKSXqpaq7bH68Zfls8aE8zCAFG/rcGL05nPWqOAYUXW5BlNkF/u3qGba98Q66iG2xrJlB8VYZdhlYoggABAFD+UQPtBD4ANQAvQBglJhUEGAEAJgAmADMpHCIHMxwYCw8cCg8AP+0/7T/tETk5Ly8RMxI5OREzMDEBFwYGBxEUDgIjIic3FjMyPgI1NQYGIyIuAjU0PgIzMhYXByYmIyIOAhUUHgIzMjYDPLEFDgkiQ2RCS0IiOB0fKRoLM3VCbLJ/RkB8tHSu2x+vGX5bQ3BRLixObUFqjgGFFx01Gv7EbpBVIhOZDhIxVUNaHR9Ii86Gf86SUK6iG2xrL2OaamybYy6CAAEAh/5RBE0FugAqAB5AECoLHB4KFxwSDyIcAwUHAgAAPz8z7T/tP+0zMDEzETMRNjMyFhcWFREzFRQOAiMiJzcWMzI+AjU1IxE0JiMiBw4DFRGHtH7Adq0mJmUiQ2RCS0IiOB0fKRoLZXVrUUYjMSAOBbr98pJdUlSa/frVbpBVIhOZDhIxVUM2AqGHeyoVNkpgP/27AAMAFAAABfsFugAtAD0ASQAoQBQgET8ePQE9Cj0KPQBIHhICLx4ACAA/7T/tETk5Ly8RMxDtMjkwMSERDgMVFBYXIyY1ND4CNxEhMh4CFxYWFRQOAgceAxUUDgIHBgYjJSEyPgI3NjY1NCYnJiMhNSEyNzY1NCYnJiMhAagwVT4kEQm2ETxrlFkCJlWFaE0dHR0aM00zQmdHJBgoOB9AwI3+kwFtO0s0JRUtOlVKSI7+rQE9gDmVRkFBnv7bAqIDFi5NOihFGj9JYYpZLgcCbBYtRS4vXzMvWlBFGRRDXHBAM2JVRhgwMa0FCxINHGtGU3cZGa0RLJ1IcBQVAAIAHv7dBSYFugAvAEAAKUAVIwo5HCEfCzMkMBwSDxUHEAAvLAAFAC8zzTI/PzMz7TIyPzPtPzAxBQ4DIyIuAjU0PgI3ETMRNjYzMh4CFRQOAiMiJxUjEQYCFRQeAjMyNjcTIgYHERQWFxYzMj4CNTQmAuwQPExUJ32paC0tW4pdtDNwPnm/hUdKfaddvWqnYmUgRGtMP3cnSzdkLQsaVZE7aVAus8USIhoQWpS+ZWnUwqY7Aez+ZQ8QUI/GdonVkkudhQMZXv7ksVOWcUIdGQQiERD+kmCJK4s0Zpll0cUAAQAA/lEE3QW6ABoAHkAPAQYeCRkZBRQeDw8FHgICAD/tP+0ROS8z7TIwMREhESEVIREhFSERFA4CIyInNxYzMjc2NREhAQAD3fzlAaT+XCFFaklLQiI4HUwXCv8AA0cCc63+Oq39LGONWisTmQ5NImwC0AABABMAAAKABdMAJAAlQBMTFhwSEAEBIxwgBAUfHBwIBgAKAD8/M/0y3TLtMj8z7TIwMTMRIzUzNSM1MzU0Nz4DMzIXByYmIyIOAhUVMxUjFTMVIxGyn5+fnxMNLUNbO0xcGxw1GSk5JBDPz8/PAoyMgoxxbDMjOikXEp0FBRAmQDBijIKM/XQAAgBc/+gEtQXUACMAQQAsQBcjCCICEBE3Hjg4BiovHiAbAykkHgEGCQA/M+0yPzPtMhE5L+05OT8/MDEhNQ4DIyIuAjU0PgI3NS4DNTQ+AjMyHgIXNTMRJTI+AjcRLgMjIg4CFRQWMxUiDgIVFB4CA/MoWml7SWOxhk4vVnpLRWlGI0qCsWY+bWBTI8L9pUd4ZVMiIVBebD1Ia0YjsqFjk2IwM1Vtfxw2KxpBdKJiRnpdOwgEEzlRbEZWjmU3EiAsGV36Ro0bLj4jAy4lRzkjJEBaN4F3jx1AZEdAaEspAAACAEb/6AOxBD4AHwA9ACxAFx8KHgYQETIcMzMGJCccHBkHIyAcAQYLAD8z7TI/M+0yETkv7Tk5Pz8wMSE1DgMjIi4CNTQ+Ajc1JiY1ND4CMzIWFzUzESUyNjcRJiYjIg4CFRQeAjMzFSMiDgIVFB4CAv0aQk5ZM06MaT4lQ145ZXA8Z41RWoAytP48W4cuJ3laM1M7Hxg3WkIGDEtnQRwlQVk+EB8YDyxSdUk1WkQpBQUWcF1HcU8qLSI3+9p7Qi4CTzE+GCs7JCo9KROKFixCLC1BLBUAAgBc/+gFWwXUAB4AOwAeQA8KCyceKCgAHx4VAzIeAAkAP+0/7RE5L+05OTAxBSIuAjU0PgI3NS4DNTQ+AjMyBBYSFRQCBgQDIg4CFRQWMxUiDgIVFB4CMzI+AjU0LgICjH7Pk1AvVnpLRWlGI0yKw3eXAQG7aWu+/veVUXVLJLKhY5NiMDVdgEt4wolJSIW9GEF0omJGel07CAQTOVFsRlaOZTdrw/7wpK7+4s1xBUUkQFo3gXePHUBkR0BoSylOltuOk9+VTAACAEb/6AQeBD4AHAA5AB5ADxwAORwdHTAmHBILMBwIBwA/7T/tEjkv7Tk5MDEBJiY1ND4CMzIeAhUUDgIjIi4CNTQ+AjcXIyIOAhUUFjMyPgI1NC4CIyIGFRQeAjMzAUVlcD1vm19wv4tOTo/HeWSjdEAlQ145zwxLZ0EckXtVhFouJFGEX3B7GDdaQgYCKhZwXUdxTypIjtGKdcmTVCxSdUk1WkQpBUsWLEIsWVY8a5VZVZVvQFpIKj0pEwAAAQBc/+gEtQW6ADEAJEASMQgQER4eHx8GLxgCLikeAQYJAD8z7TI/MxI5L+05OT8wMSE1DgMjIi4CNTQ+Ajc1LgM1ETMRFB4CMxUiDgIVFB4CMzI+AjcRMxED8yhaaXtJY7GGTi9WektFaUYjwjJcg1Bjk2IwM1VtO0d4ZVMiwn8cNisaQXSiYkZ6XTsIBBM5UWxGAWb+fkFdPR2PHUBkR0BoSykbLj4jBIP6RgAAAQBG/+gDsQQmAC8AJEASLwoQER0cHh4GLRYGLCkcAQYLAD8z7TI/MxI5L+05OT8wMSE1DgMjIi4CNTQ+Ajc1JiY1ETMRFB4CMzMVIyIOAhUUHgIzMjY3ETMRAv0aQk5ZM06MaT4lQ145ZXC0FzdaQgYMS2dBHCVBWTVbhy60PhAfGA8sUnVJNVpEKQUFFnBdARn+4So9KROKFixCLC1BLBVCLgM7+9oAAgAe/+cF7AXTADEAPQBAQCI9MwEzNAoEAAseDB8eDTAMMR4ADAAMADcmHhYDPDceAwUJAD8z7TI/7RE5OS8vEP0ROTnOMhDtERc5ETMwMQEFIREEISIuAicHNTcmNTQ3PgMzMhYXHgMXByYnLgMjIg4EFRQWFwEBNQUWFjMyPgI3EQXs/rkBFP7g/sF41bKIKotjFFktg6TDblCOQUBkTDYTryExGEhYZzdsondPLxQFBgSs/WD+Fzz9sz5/c14eA1pv/eHlOG2eZi+NIl5o1bpdilotGhoaRl53SjBwQCA0JRQzWHWCiUAnSCIBm/5TNqabnhwrNhsBEQAAAwAB/lEEfgQ+ADEAPgBHAExAKwEAAA4GHCwPIgYjNTQWBCQVHBQmREUTBBQlHCQUJBQkPzocIB4HPxwMDgoAPzPtPzPtETk5Ly8Q7REXORDtERc5Pz/tETkvMzAxFxceAzMyNjc2NTUGIyIuAicHNTcmJjU0PgIzMhc1MxE3FQcRFAcGBiMiLgI1ExQXJS4DIyIOAgEyPgI3BRYWZq8GKT9UMn2JFw12sEyAZ04acUwGBUJ4qmi8eqaUlDMz2aFcmm8/lQMCOQ42S1syO2lOLgEjPGlOLwL92SSJWBovQCcSY1swmh2LKUtnPiaNGh8/IXvKkU+YgP6wM5Iy/kv4Z2l3KVJ8UwKLKyXDQ2ZFIjFhkf4PLFyOYbpiWwACABUAAAVSBboAEwAXADxAIg4REgEEDQIcAw0cDBcHCxYUFQQHAwoMAwwDDAYQEwgIBgIAPzM/MxI5OS8vETkSFzkQ7RDtERc5MDEzEQc1NxEzEQEhARclFQcBIQEFEREVJSeWgYHCAtgBB/2ZkgEw2wGb/wD+pf5hAU5eAR4rjSwEDv0pAtf9rsdokkr90wHsjP6gAfwOcoYAAgAVAAAD+wW6ABMAFwA+QCMOERIBBAINHAwCHAMKBwgEFRQWCxcGAwwDDAMIEBMKCAYGAAA/Pz8zEjk5Ly8SFzkSOTkQ7RDtERc5MDEzNQc1NxEzEQEzARclFQUTIwMFFREVNyeIc3O0Aarp/mpzAU/+//7ezv7wxEWiJ40oBIr8vAGw/natdpJZ/oYBPl7gAaU2RGwAAwAaAAAFuAW6ABMAFgAZAD1AIwsIBxUUBAYMAxwCDhgZERIBBgINHAwCDAIMBhcTEAgWCQYCAD8zMz8zMxI5OS8vEO0RFzkQ7REXOTAxMxEHNTcRMwElETMRNxUHESMBBRERJQEBEQecgoLHAb0BRbqZmcf+YP6eARX+6wMP9wG1LI0sA3j9ZnACKv4WNZI0/MECbXj+CwKCYAGe/LsBxFQAAgAVAAAEkgQ+ABgAIwA5QCAQIiEEBBEDHAITFhcBBAISHBECEQIRFRgKHBwHCQcFBgA/PzPtPzM5OS8vEO0RFzkQ7REXOTAxMxEHNTcRMxU2MzIeAhcWFzcVBxEjEQURASYmIyIHBhUVJSaHcnKidd1Re1Y0CwcCray0/gkB4hVrSHRTUwH3AgEZJo0nAn+XryhGXjYkSjuSOv3DAgCq/qoDKjdBSUrLYKxnAAMAKgAABa0FugAmACwANgA9QCIVJB4uCyopBAQMAxwONTYBBA0CAi4uKBwmCA0cDAwoHgUCAD/tMi/tPzMSOS8zLxIXOe0RFzkQ7TIwMTMRBzU3ESEyHgIXNxUHFhUUDgIHHgMXEyMDLgMnJiMjEQEhESUmJgEhMjc2NjU0JwWhd3cCimCPak4fh08MMWacajRNPzge//TCQFxJPyMfTeEB0P4wAsMmeP3bAaGFS0tOBPz6AyIljSYCChEoQDAskhkyNk2GZ0cOGjdBTC7+cQExZH1IIQkH/XUFGP7W4iIm/hsbHHhIGBP1AAEAFQAAAsYEPgAaADVAGwEZGAIcAxgcFwQWFwMXAxcaCg4QHA0HCwcFBgA/PzMz7TI/OTkvLxI5ORDtEO0ROTkwMTMRBzU3ETMVNjc2MzIXByYjIgYHBhUVJRUFEYVwcKI+NDRAW14+QkI8XRQeAUL+vgEaJ40oAn6hcSQkOqcnRz9gckR0knH+pwAAAQBc/+cE6wXTAEkAOUAdGjg5GRwAARgXOxg6HCsqORg5GDkuCR5FCS4eJQMAP+0/7RE5OS8vEM4y7RE5ORDOMu0ROTkwMRM3HgMXFhYzMj4CNTQmJyYmJyYmJwU1JSYmJyYmNTQ+AjMyHgIXByYmIyIOAhUUFxYXFyUVBRYXFhYVFA4CIyIuAly3BxwySDM1ckJRhF0yTGAdgmYFCwX99QEvDBUJamZHhr94gcmMTQS6D62pWH9TJzk56yECD/7dIhaBeUuMyX6Q5KFYAdcQOFlIOBYXFCZCWDFIaiULIxkBAgKxjWcFCgU3omZVlG0+QHShYQ6LjiM8UC1PMzU0CLWSYgwKPLR2V595SEJ/uQABADj/6AOxBD4APgA5QB0TMDESHAEAERAzETIcISAxETERMSQEHDwLJBwbBwA/7T/tETk5Ly8QzjLtETk5EM4y7RE5OTAxEzcWFjMyPgI1NCcmJyYmJwU1NyYmNTQ+AjMyHgIXByYmIyIOAhUUFhcWFhcXJRUHFxYWFRQOAiMiJj+yD4h8P1w8HTUlkxQmEf54tEZJMmOSYGOUZjwMsAxyaj9YNhksLw5PQg4BjKsbTFZAcp1dz9kBPRxscRwvPSE9IxcmBQkFgY08Jn5LQG9TMCdLcEgYUlwXJjEbIzkTBRcSBIWSOAshel1Ke1kyrAABABQAAAXPBboAFwAfQA8QHhYWAAgJAR4RDgIUAAgAPzI/M/3MMhI5L+0wMSERIg4CFRQXByY1ECEzESERMxEjESERAVEhOSwZDpkTAT3CAvrCwv0GBQ0GFyslHTgpQksBC/2mAlr6RgKz/U0A//8ATv/nBIIF0wIGAkEAAAACAGP+WwU3BdQAKQA4ACVAEystHigAJgMqNx4WHAkMER4LBg8APzPtMj8z7TI/MzPtMjAxAREUDgIjIi4CJzUeAzMyPgI1NQ4DIyIkJgI1NBI2JDMyFzcDESYjIg4CFRQeAjMyBTdYntiBM4CFfC4vgIZ/LlWTbT4jUFZWKKf+9btkaL8BDqehzGuinJl+x4hIS4m/dbcF1PqAhr96OggSHRWrFyIXDCNJc1AGEhoQCGfAARGrrgEfzXA4OPsCBCM0Vp/kjX3RmFQAAgAUAAAFMAW6ACEALgAmQBMeGwEHHiUaFyIRHicnFgIfHgAIAD/tPzkv7d4yMjLtMjIyMDEhESIGIwYGIyIuAjU0PgIzMhYXETMRNjY3FQYGBxEhFQEyNjcmIyIGFRQeAgGcAgUCDR0gR3NQKyRBWTYhTyTCOW46OWw8AtL8LREeDwaCJjQRJz4CIQEBAiFAXTw0VDwhFBoB7P00GkQysyg8F/5drQKwAgK0KyYbJxkMAAEABAAABMAFugALABhADAoDCQYEBAsIAgIECAA/Mz8zEhc5MDEBESMRASEBASEBNxEEwML9KP75Amf9fgEAAgrwBbr6RgLX/SkCUgNo/RrqAfwAAAEAMAAABLoFugAHAA+2AQYeBAgAAgA/P+0yMDEBESEVITUhEQLVAeX7dgHjBbr6862tBQ0AAAIAP/+oA74FugAeAC4AKUAVFwIsKR8SGwIDBQ8eHykeBR4AAAUJAD8zLzIQ/d7tERc5ERI5PzAxBSYnBgYjIi4CNTQ+AjMyFhc2NDURMxEUBgcWFhcBIg4CFRQeAjMyNjcmJgMqKicwh11ekmMzN1lxOkuURQHCDhEmPhj9pxsrHA8cMkcqRVkaSYFYVEIqLSpLZDtKbEYhQjkLFQsD8vwZQnY0NXQ+AXYTICgVFSkgFCcjVkIAAQBM/mkFlgW6ACEADrUQCgIaAA4APzI/MzAxASMBNjY3JiYnATMBFhYXNwEzAQYGBxYWFwEjASYmJwYGBwE88AHmFCgUGTER/iXnAYUMHg85AYXn/iURMRkUKBQB5vD+lRElFBQlEf5pAysgPR8mSBwDIP1wFTAZXgKQ/OAcSCYfPSD81QJrHEMiIkMcAAMAlv5pBOkFugAeAC4AOgAfQBAdDg4wHi4uOSAeHAg5HgACAD/tP+0SOS/tOT8wMRMhMh4CFxYWFRQOAgceAxUUDgIHBgYjIREjEyEyPgI3NjY1NCYnJiMhNSEyNzY1NCYnJiMhlgImVYVoTR0dHRozTTNCZ0ckGCg4H0DAjf6TwsIBbTtLNCUVLTpVSkiO/q0BPYA5lUZBQZ7+2wW6Fi1FLi9fMy9aUEUZFENccEAzYlVGGDAx/mkCRAULEg0ca0ZTdxkZrREsnUhwFBX//wCM/mkEPQXTAgYCFQAAAAEAYv/oB6QFugA4ABpADCkpOBkCMSAeDAcRCQA/MzPtMj8zOS8wMQESERQCBgYjIi4CJw4DIyImJgI1EBMzAhEUHgIzMj4ENREzERQeBDMyPgI1EAMGy9lHhsN7S3liTyEhT2J5S3vDhkfZv8w5XXU8PV1DLBoKwgoaLENcPjx1XTnMBbr+f/6Vq/7uwWgYOmRMTGQ6GGjBARKrAWsBgf48/smU1YhBKkdeZWguAZv+ZS5oZV5HKkGI1ZQBNwHE//8AV//oBegEJgIGAiYAAAABADcCfAXxAz4AAwAJsgMeAQAv7TAxASE1IQXx+kYFugJ8wgACAA8ClgOHBboAEwAXAB5ADRANDxQSCxYIBAEGAwIAPzPdMjLdMjLe3c4yMDETMzUzFSE1MxUzFSMRIxEhESMRIwU1IRUPZ5kBeZlmZpn+h5lnAnn+hwVKcHBwcHn9xQFU/qwCO2hoaAAAAwAyAcoE6wS4ACYAOABDACVAEAkIOQEBNj4sIR4bBjYOCxEALzMzzTIvMzPNMhE5L83OMjAxASEeAzMyNxcGIyImJwYGIyIuAjU0PgIzMhYXNjYzMh4CFSU0LgIjIg4CFRQeAjMyNiUuAyMiDgIHBOv96AMhOE0wiTV9P/xgjSwriltQflYtMll8SluLLCuKW0t5VC79ax02TzEyTzYdHDZPM2FvAhgFIjVEJSxJNR8DAyI4Wj8jkw/oRkJCRjRii1ZbjF8xSUJCSTRiilYDPWNHJyZIZT8/ZUgnkcc3TjIXHzZMLQABAIf/6AYmBCYAKgAdQA4qEB0GFyIcCwkDBgsBCgA/PzMzM+0yPzMzMDEBESM1BgYjIiYnBiMiJjURMxEUFhcWFjMyPgI1ETMRFBYzMj4CNzY1EQYmoTOlanaXH37Kn6mzCAkRXD84X0YntFhkJUg+MQ4dBCb72pVOX2JYuq63Atn9YzZOGDA5JEx2UwJp/U55dxUoOiZOkAInAAABAF4AAAQ7BboACQAXQAsEHgICAAUeCAIACAA/P+0ROS/tMDEhESE1IREhNSERA3n9UAKw/OUD3QKarQHGrfpGAAACAFkAAAS4BboAEgAhABdACwEeICAAEx4RAgAIAD8/7RE5L+0wMSERISAnJjU0PgI3PgMzIREDISIHDgMVFB4CMyED9v6I/sh2dxgqPCQiRlx6VgIpwv6JhTAmPi0YJVODXwF7AlSBg7o2ZlhIGRcgEwn6RgUNDQssP1AuP2NFJAAAAQCYAAAGDwW6ABIAF0AKCAQBEAgMBQACAgA/MzMzPzMzMzAxAREBMwERMxEhASYmJwYGBwEhEQFTAaivAaq7/vv+oRonDQsjGP6l/twFuvsgBOD7NQTL+kYD/E51KCRsSfvyBboAAQC//mkBgQW6AAMACrMDDgECAD8/MDETETMRv8L+aQdR+K8AAQAXAAAJZAW6ACgAG0AMIBkRCigIJB0NBBQCAD8zMzMzPzMzMzMwMSEBJiYnDgMHASMBMxMWFhc2NwEzExYSFzY2NxMzASMBJiYnBgYHAQOM/tsLEw8DBgoPDP7JvgG5+eQSHw03CwEX6tInOhEOJBfmw/5uu/7LFBYECxYK/skEUCxVKgocKjsp+7kFuvw/TJVL6SYD3v0ai/7+ekaeWwOu+kYEXUZWEDNWI/ujAAAD/+//6AR2BD4AIgAtADYALEAXFgMyHBMGKSkOLhwgGwcjHAwOCwgKAQYAPz8/M+0/M+0ROS8zM+0yMjAxATMGAzMVIxIXIyYmJwYhIi4CJyM1Mz4DMzIeAhc2NgEyPgI3IR4DEyIGByEuAwObuD0zk5tBN7MWIAtT/vhfnXRFBlpcCkh0mlw+ZFRHIgQa/pc5Y00xBv3UBShEX0ZzkBACJwguSF8EJrz+/ob+pYczXzDaRoS7dYZxr3g+GTNMNBFa/J8vWoZXU4VdMQMtpJ1PeVApAAMARP/oBt8EPgBFAFkAZAA8QB9JZBwkCEUANTQIADQ0AAgDXy8DHD86QgdTXxwXFBELAD8zM+0yPzMz7TIRFzkvLy8RMxEzETPtMjAxASYmIyIOAgchFhQVFA4CIyImJwYGIyIuAjU0PgI3NjY3NjY3NjQ1NC4CIyIOAgcnPgMzMh4CFzY2MzIWFwUGBgcOAxUUHgIzMj4CNzY3HgMzMj4CNwYfKYxjQnFVNAUDGAFIgLFqg8Y8auZ4VoddMRowRSwtjWFLfjMBGThaQUdgQSYNrxRHb5poP25eSxs/s3a67C38QCigej5SMBQaNE4zOWZSOwwPtwQyUGo+N2NOMwgC0HJoL1yGWBAYCIPOjkppZGxhL1NvPytTSDsTFB8NChkODRQIP1c2FxUwTjkVU3xTKg8jOClIS7Ok0hElEwogKzghIz0uGh81SSo0PEZxTysiSXRSAAIAaf/WA2oERgAhACsAI0ARIiUSAxUVGiYNByAfGiEAAQoAPzMzzTIyP80ROS8XOTAxBTcuAzURND4CNyUzExYWFRQHARQeAjMyPgI3FwEDJTY1Jw4DFQHBCmeJUSEHEh0VAY8z5AgIHP4eMUlUIyI0LzEgL/6emQEYEq8aLSETDhwgTl9xRAEmJS8hGA32/scOEQYQEP7hMkgvFggUIhov/sMCI6IKCf0RGyU4LgAAA//5/+gEWAQ+AB4AKQAwACRAEh4YLQIWIBwSEiUqHBsLJRwJBwA/7T/tETkv7d4yzTIyMDEDNTMmNTQ+AjMyHgIVFBQHIRYWFyEVIwYGIyImJxMhLgMjIg4CATI2NyEWFgdbCUmDtm5qsYBIAfzoAgQFA0hSNeKqqOs5lgJRCDNOYzc+alAyATNQeSr+DCuEAQeGOkOG0pBMSo7OgwgYEBgsFIaKlZOMAXJSdEkiK1Bw/b1DSEVGAAIACv/oBQEEPgArADYAJkATFi0cEBEBAAkkJCkyHBsHKRwECwA/7T/tETkvM84yzDLtMjAxARcGBiMiLgInDgMVFBcHJjU0NjM+AzMyHgIVFBQHIR4DMzI2ASEuAyMiDgIEQbot7LpxtoJLBSY0IA0OmROUlw5Tf6diarGASAH86AU0VXFCY4z92gJRCDNOYzc+alAyAVYXpLNEg715AQwaKR0mLyJMQXZ1aql1PUqOzoMIGBBYh1svaAGVUnRJIitQcP//ABMAAAKABdMCBgBJAAAAAwBC/hwEOAQ+AC0AQQBMADZAHCMGPRwhHwdIRUozHBMVACcPAwMNSkUDKisrAw8APzMvMxDd3t0RFzneMu0REjk/M+0/MDEBBgYjIi4CNTQ+AjMyFzY2NTUGIyIuAjU0PgIzMhc1MxEUBgcWFhcHJiYBFB4CMzI+AjU0LgIjIg4CExQWMzI2NyYjIgYDSDacbD5uUjAtVHdKgnYQDXawb6t1PEJ4qmi8eqYcJzNKFIsSM/2TLU5qPj1rTy0vUWs8O2lOLoFFTD9cIVJdTVH+tiw5EylCLzFJMRg0Lmg3RYtRi71se8qRT5iA/KF9zU8tdEUsK04DkWmSWigoWo9mYZRiMjFhkfyDGhwkHSgWAAABAAoAAALoBboAKAAhQA8eHRgkAwkIDwMDEygKEwAAPz8SOS/N3s0Q3N3ezTAxIREmIyIGFRQXByYmNTQ2MzIWFxEzERYWMzI2NTQnNxYWFRQGIyImJxEBHxwTNyxXJ1hbcmgLIg60DBgLNyxXJ1hbcmgLIg4C+wotLlsZXBdtTF9wAwICRv1wBQUtLlsZXBdtTF9wAgL9UAD//wAUAAACsgW6ACcATwCGAAAAJwDXAA7+cAEHANcADv06ACNAGAIrARNAHh40E0ASFTQTQA0NNBNACQo0EwAvKysrKzUvNQAAA//2AAAB+gXsABUAGwAiAB1ADQIVGCANCh8ZGQwAAAoAPz85LzPNMt0yzTIwMSEjES4DNTQ2NxEzERYWFRQOAgcnFBc1BgYFNCYnFTY2AUqkJ0EuGmBQpFBgGi9BJuRAHSMBHiAaGiACHAoqOkosW3oXAgD+ARZ6VSpKPC0M5l8e9RM/JiM8E+MTOwACAIf/6AaxBD4AOwBIACxAFjsxCg8jSBISNUIYCyo1HAsJAwYHAgYAPz8zMzPtMj/NETkvM80yPzMwMTMRMxU2NjMyFhc2MzIWFRUzFSMVFA4CIyIuAjU0PgIzMzU0JicmJiMiDgIVESMRNCYjIgYHBhURASIGFRQWMzI+AjU1h6EzpWp2lx9+yp+pi4spSWQ8QGJDIidKakJJCggSWj83X0YotFhkTYAdHQP3Qj0sMB0nFwkEJpVOX2JYuq6394NvP2JDJCVCWjY9YEMjuzZNGDA6JEx2U/2XArJ5d1BNTpD92QFfRTswQhMiMB5vAAACAIf/6ARwBD4ALQA6ACRAEi0KDiI6EREoNBcLKBwDBQcBBgA/PzPtP80ROS8zzTI/MDEzETMVNjMyHgIXFhYVFTMVIxUUDgIjIi4CNTQ+AjMzNTQnJiYjIgcGFREBIgYVFBYzMj4CNTWHonXdUXtVNAsFBYuLKUlkPEBiQyInSmpCSRUVa0h0U1MBtkI9LDAdJxcJBCaXryhGXjYZVz+rg28/YkMkJUJaNj1gQyOkbjY3QUlKy/28AV9FOzBCEyIwHm8AAgCH/hwENwQ+ADcAQgAyQBohGBwjBx8GHgo+O0APMQADAw1AOwM0NTUDDwA/My8zEN3ezREXORESOT8/P+0zMDEBBgYjIi4CNTQ+AjMyFzY2NRE0JyYmIyIHBhURIxEzFTYzMh4CFxYWFREUDgIHFhYXByYmJRQWMzI2NyYjIgYDRzacbD5uUjAtVHdKgnYQDRUVa0h0U1O0onXdUXtWNAsFBQYPGRIzShSLEjP+FEVMP1whUl1NUf62LDkTKUIvMUkxGDQuaDcCLG42N0FJSsv9vAQml68oRl42GVc//eMjUlRUJS10RSwrTnQaHCQdKBYAAAIAaf/WA/kERgAeADAAGkALMB8BAB0eByUUExAALzMzzT8zzTIyMjAxAQceAxcWFhUUDgIHByMmJic1PgM1ETQmJyUFER4DMzI+AjU0JicmJicDKCEDJThEIRcWGjtgRsZGBce9EBULBAUFAnL+lC9XRS8HDygjGSsqMlsUBAoOBj1abTQkRSwqUV1uRscVUzBBBhIhNCcBaTVYI+rf/ZsVIRULLUteMj1yQk17LAAAAwBY/7AD+QR2ACIAMQA3AC9AGCEBNCwzLQYAADcyHyAHIw4WFRQOEhIRDgAvMzMvETMzMxDNPzMzMzMvFzkwMQEHFhYXFhYVFA4CBwcjJiYnByM3JzU+AzURNCYnJRc3AzI+AjU0JicnAR4DAxETJiYnA8yJHUkjFxYaO2BGxkYEZGBUfmdWEBULBAUFAnIVM7MPKCMZKyoG/vItVEIs+tYdLwwEdt0vczkkRSwqUV1uRscPMyCIpxdBBhIhNCcBaTVYI+okVPw2LUteMj1yQgr+ThUeFAoCu/5QAVgqRBwAAAIAk/+aBGMEaQApADQAOUAcMwMpDCkMByocISYlJSckIQsWFRUyBAccFxQSBwA/MzPtMjIzLzM/MzMzLzMQ7RE5OS8vOTkwMQEWFhcBJiYjIg4CByM+AzMyFzcXBxYWFRQOAgcGIyImJwcnNyYnBTI+AjU0JicBFgFgBg8IAZ8kVjAxWkw6Eb0VWn6bV5NxSGxXREwfPVo7dopFfjZZZ2FWJgHUQnJUMCAc/mRHATIPGw0CeBsbHTlVOFuNXzFDbjSDRsmBZqB6WSBBHRyHOJNRfLYyZ5tpT4Aw/ZAsAAMAUv/oB0gEPgAsAEAASwAqQBUsAEscCAhGPAMcJiEpBzJGHBcUEQsAPzMz7TI/MzPtMhE5L+3OMjAxASYmIyIOAgchFhQVFA4CIyImJwYGIyIuAjU0PgIzMh4CFzY2MzIWFwUUHgIzMj4CNTQuAiMiDgIFHgMzMj4CNwaIKYxjQnFVNAUDGAFIgLFqfs5DTM52b7iESUF/u3tDeWVOGULViLrsLfnJMlRxP0BxVjIxVXJBSHNQKwMuBDJQaj43Y04zCALQcmgvXIZYEBgIg86OSmNlXWtJi8mBftGWUx42SitlZLOk0muaZDA2aJlkY5dmMz5slL9GcU8rIkl0UgAEAFT/mgdDBGkAMAA8AEcAUgBKQCUlJEkcHBxDQDohMRwtAQAAMCsoAi0HTkE5QxwKDw4OFhMQDQoLAD8zMzMzMy8zEO0yMjI/MzMzMzMvMxDtMjIyETkv7c4yMDEBFwcWFhUUDgIjIiYnByc3JiYnBgYjIi4CNSEuAyMiBgcnNjYzMhYXNjMyFhcFIg4CFRQWFwEmJgE0JicBFjMyPgIFIR4DMzI+AgadbFZFS0F/u3tGezNaZ2MRHAtAyH1utIFHAxACMVVyQmSOILQr6rSH0j+Y9EuDOP7/QHJVMiQgAZ0lVQEIIBz+ZUdaSHNQK/zT/bUGMExkOzxoTzIEaTSBRsuDftGWUyAbiTiXESUUXm1LluKYU4VdMm5wGqayaV7HIiBSNmiZZFaGMgJ0Gxr+Z1WDMf2RLz5slAtMc00nK1BxAAAEAFT/6AdDBD4AKAAzAD4ASQAxQBkvHDk5IyJAHBoaNEUpHBQRDAsfNBwmAAIHAD8zM+0yPzMz7TIROS/tzjIzL+0wMQE2MzIeAhUUDgIjIi4CJwYGIyIuAjUhLgMjIgYHJzY2MzIWATI+AjchHgMTIg4CByEuAwEhHgMzMj4CA8OY9HC4hEhBf7t7RXlkTxlAyH1utIFHAxACMVVyQmSOILQr6rSH0gHQQmtPMAf9lgc1Umw9OWhSOAoCZwk3Umf90P21BjBMZDs8aE8yA3fHSovKf37RllMeNkssXm1LluKYU4VdMm5wGqayafynNF1/TFaDVywDLitUfFFWfVIn/gVMc00nK1BxAAIARP/oB1EEPgATAEkAG0ANQAUcJyMgCzYPHDEUBwA/M+0yPzMz7TIwMQEUHgIzMj4CNTQuAiMiDgIBMh4CFRQOAgcGIyImJwYHBiMiLgI1ND4CMzIXByYjIg4CFRQeAjMyPgI1ND4CBCcvVHNDQnJUMDBUckJDclQwATlstoVKHz1aO3aKhM5COF52im+3g0lKhLdtS0IuLTJDclQwL1RzQ0JyVDA9fLsCE2aZZjIyZ5tpY5VlMzJlmAHESovIf2agelkgQWRiUzJBSI3Ph4fPjUgSkg8yZZhnZplmMjJnm2lxyJVXAAADAET/mgdRBGkAPgBJAFQAO0AdU0I1ShwQFRQUHBgWExALUkMrRRwABQQEJgYDAAcAPzIyMjIvMxDtMjIyPzMzMzMzLzMQ7TIyMjAxATIWFzcXBxYWFRQOAgcGIyImJwcnNyYnBgcGIyIuAjU0PgIzMhcHJiMiDgIVFB4CMzI+AjU0PgIDFBYXASYjIg4CATI+AjU0JicBFgVgSYI4SGxWREwfPVo7dopHfTZZZ2EiGThedopvt4NJSoS3bUtCLi0yQ3JUMC9Uc0NCclQwPXy7uyQgAZ9KYENyVDABOUJyVDAgHf5kRQQ+IiBtNINGyYFmoHpZIEEdHIc4lCEnUzJBSI3Ph4fPjUgSkg8yZZhnZplmMjJnm2lxyJVX/dVZiTMCdjUyZZj+AjJnm2lQfzH9jywAAAEAWgAABAsEJgAUABhACxAEHA0NCA8GAAgKAD8zPxI5L+0zMDEhNTQmIyIGFRUjNTQ2NxEzERYWFRUDWJKQlpOzwL+0vsBvpaOmrmNb3/cVAeD+Hxf531YAAAIAmP5RBSEEcQAuADcAJEAKLysuAB8fITYrI7gDKrUhCgsrEg8AP+0/P+0ROS8zM+0wMQEeAxUVFB4CMzI2NxUGBiMiLgQ1NTQuAiMjESMRITIeAhUUDgIHJSEyNjU0JiMhA2MePTIfCBwzLCxHHBxNK05rRygUBD1ebzHAugIcZKBwPChFXjb97wE7io97if6wAhAMJDhON+xjekUYDxS5DQkhPFdtf0joQlEtD/4QBHEgSXdYQWNILgtrVmRPUwAAAQCFAAACGgQ+ABIAE0AJDQMcEgcLBgkKAD8/P+0zMDEBJiIjIgYHBhURIxEzFTY3NjMzAhkFCwU8XRQetKI+NDRADQODAUc/YHL91AQmoXEkJAAAAQCFAAAEEAQ+ACIAH0APIgoXEhAcHA8NCgMIBwEGAD8/MzMzM+0yMjI/MDEzETMVPgMzMhc2NjMyFwcmIyIOAgcuAyMiDgIVEYWiHzg3OCBbXiFGKltePkJCFSsoIgwjNCojEDlOLxUEJqE5SSgPOiAaOqcnCxIYDRQZDwY4X31E/dQAAgAe/+gDxQQ+ACYAMwAhQBAAExYzLRwLCgwcCQMHBwEGAD8/MzPtMj/d3jLNMjAxAREzFTY3NjMyFwcmIyIGBwYGFRUzFSMVFA4CIyIuAjU0PgIzFyIGFRQWMzI+AjU1AYSiPjQ0QFtePkJCPF0UDxCLiylJZDxAYkMiJ0pqQghCPSwwHScXCQHiAkShcSQkOqcnRz8waTlKg28/YkMkJUJaNj1gQyODRTswQhMiMB5vAAIAHv/oBQ8EPgA1AEIAKUAUACIlQjwrCxcSEBwcDw0KAwgHAQYAPz8zMzMz7TIyMj/d3jLNMjAxAREzFT4DMzIXNjYzMhcHJiMiDgIHLgMjIg4CFRUzFSMVFA4CIyIuAjU0PgIzFyIGFRQWMzI+AjU1AYSiHzg3OCBbXiFGKltePkJCFSsoIgwjNCojEDlOMBWLiylJZDxAYkMiJ0pqQghCPSwwHScXCQHiAkShOUkoDzogGjqnJwsSGA0UGQ8GOF99REqDbz9iQyQlQlo2PWBDI4NFOzBCEyIwHm8AAAEAMgAAAzoEKAAXABhACwkIAgUcEQwXBgEKAD8/M9z9MjLOMDEhIxEGBiMiJicVIxEzHgMzMj4CNzMDOrQudUlMcy18khQuNTsiJ01BMAm0A3ocICEd3QGJHSUVCBAbIhIAAgAy/+kFXQQoACIALgAkQBEUEw0QHBwiIwACAhciBikHCwA/zT8zOS8zzRDc/TIyzjAxATYzIBEUBiMiLgI1EQYGIyImJxUjETMeAzMyPgI3MxMiBhUUFjMyNjU0JgM6UXUBXcS0T4JcMi51SUxzLXySFC41OyInTUEwCbS9ZVhWY2JVUwJ+JP6nrbMnTXJLAmAcICEd3QGJHSUVCBAbIhL+E3uEenJ0foF4////ov5RAlUF0wIGB1UAAAABAIP/6APgBCYAHQAXQAscHAwGExwBAwsACgA/PzPtPzkvMDEhNQYjIi4CJyY1ETMRFBYXFhYzMj4CNzY1NTMRAz991FB6VzUKC7QFBhFuUShPQzQOHrSctClHXjY3cQKS/bNHXxhIUBYoOSNIiPn9GgACABn/6ARSBCYAGAAlACNAEQ0BGRcVEBMTEgYfHAQGCwIKAD8/M+0/OS8zzjPNMjIwMQEjESM1BiMiJicmJjU1IzUzETMRITUzFTMFIRUUFxYzMj4CNzYEUnKhfdSSsxsFBmpqtAH1tHL+2v4LCyOtKU9DNA4cAeX+G5y0gYMbVDlRhAG9/kN9fYQMjTGYFyg5I0UAAgCH/+gGJgQmACoALgAhQBAdLioQLAYXIhwLCQMGCwEKAD8/MzMz7TI/MzPdzjAxAREjNQYGIyImJwYjIiY1ETMRFBYXFhYzMj4CNTUzERQWMzI+Ajc2NREFNTMVBiahM6VqdpcffsqfqbMICRFcPzhfRie0WGQlSD4xDh39ibQEJvvalU5fYli6rrcC2f1jNk8XMDkkTHZT4P7XeXcVKDomTpACJ8/PzwACAIcAAAYmBD4AKgAuACFAEB4rKhAtChciHAsJAwYHAQYAPz8zMzPtMj8zM93OMDEzETMVNjYzMhYXNjMyFhURIxE0JicmJiMiDgIVFSMRNCYjIg4CBwYVESUVIzWHoTOlanaXH37Kn6mzCAkRXD84X0YntFhkJkc+MQ4dAne0BCaVTl9iWLqut/0nAp02TxcwOSRMd1LgASl5dxUoOiZOkP3Zz8/PAAABABT/6ARUBFgAMQAZQA0xCjAGExwaByYcAQMLAD8z7T/tPz8wMSE1BiMiLgInLgM1ETQuAiMiBgc1NjYzMh4CFREUFhcWFjMyNjc+AzURMxEDs33ULllPPxQSGRAHBxkzLB8rGhY8KEtsRSEGBRFuUShNIyQyHg60nLQTIi4bGTFCXUUBTTpRMxgODqoJCjBagFD+20deGUhQFBUVN0xlRAI5+9r//wAR/mkEIAQmAgYCJAAAAAL/9v5bBRoESwAqAD4AHEAOHAYNHBQHBQ4eITowAA8AP93ezTI/P+0/MDEBIiYnAQEjAQMuAyMiBgc1NjYzMh4CFxMBMwETNjYzMh4CFRQOAicUHgIzMj4CNTQuAiMiDgIEQV52JP72/sLJAZnhEiIkKRkcKhoWPCg8V0g+I5MBLsb+etcgXDowUjwiIDlQqhIgKRgYKSASEiApGBgpIBL+W0ZCAev9mwLjAb0jOysYDg6qCQotUnZI/swCTP0s/nkdICA4Ti4vTzoh2xgpIBISICkYGCkgEhIgKQAB//b+WwSiBEsAKQAXQAwjHBwPFg4PHAgHAQYAPz/tPz/tMDETMwETPgMzMhYXFSYmIyIOAgcDASMBAwYGIyImJzUWFjMyPgI3E2XGAS6TIj9IVzwoPBYaKhwZKSQiEuEBmcn+wvosblUoPBYaKhwZKyclFPEEJv20ATRIdlItCgmqDg4YKzsj/kP9HQJl/jVRVwoJqg4OGCs7IwG1AAIAD//hBK0EJgAhADUAGEALIBkGFQoBBDEnDgsAP93ezTI/PzMwMQEXNjYzMh4CFRQOAiMiLgInAwEjAQEzFxYWFzY3NzMDFB4CMzI+AjU0LgIjIg4CAmaoIGA/MFI8IiA5UDArQDk4Itb+6doBhP6Z4aMXJQ4rJrPXexIgKRgYKSASEiApGBgpIBICMusiJSA4Ti4vTzohDyU+LwEh/l0CKAH++SM8GEIz+/yWGCkgEhIgKRgYKSASEiApAAAB/xb+aQPxBCYAEQAPthEODwoLAwYAPzM/PzAxAwEBMxcWFhc2Njc3MwEBIwEB6gJ9/pnhoxclDhUpE7PX/pEBi93+7P3w/mkDvwH++SM8GCE6Gvv+DP3OAaP8xgAAAv8W/mkErQQmACEANQAYQAsgGQYVDgEEMScOCwA/3d7NMj8/MzAxARc2NjMyHgIVFA4CIyIuAicDASMBATMXFhYXNjc3MwMUHgIzMj4CNTQuAiMiDgICZqggYD8wUjwiIDlQMCtAOTgi1v3w2gJ9/pnhoxclDisms9d7EiApGBgpIBISICkYGCkgEgIy6yIlIDhOLi9POiEPJT4vASH8xgO/Af75IzwYQjP7/JYYKSASEiApGBgpIBISICkAAAH+6P5bA/EEJgAhABNACSAKHBQGDBwFDwA/7T8zPzAxFw4DIyImJzUWFjMyPgI3AQEzFxYWFzY2NzczAQEjAVofNztEKig1FhoqHBQlKTAgAZn+meGjFyUOFSkTs9f+kQGL3f7s5i9HMBkKCaoODhIqRDECewH++SM8GCE6Gvv+DP3OAaMAAQAh/lEDXAQmABwAFkAKEhgAABQGDBwHDwA/7T85Lzk5MDEBAQYGBwYGIyInJxYzMjY3NjY3ATMTFhYXNjY3NwNc/v4hMhIxelc1PxQ5LjxIFwsgHP5twt0VJxEQJBZUAp/9T1h4IVpSFqkQKCQRV0oEKP2ZO3pBP3c85AAAAgAuAyUCfQW4AAwAGQAWQAkNEhAWBAoACAIAPzPe3d7dzjIwMQEzBgYjIiYnMxYzMjYTJiYjIgcjNjYzMhYXAgJ7D5iAgZgPexyLUVMODlNRixx7D5iBgJgPBbh+hYR/h0H9s0ZBh3+EhX4AAQBkATECrQW6ACIAGkALHBMeHhgbAgULCxgALzMvzT8SOS/NMzAxARQOAiMiJic3FjMyPgI1ETQjIgcGFREjETMRNjMyFxYVAq0UKkEuFykUFCIQEBgQCZd+LBR6elWCqTYZAg8sUD0lBgVvCAcaNC0BfK9oMFX+dwPg/pxjdzZrAAEAHgHaAhIFugAoACBADh0cFggHAg4jFhYRJwIRAC8/Ejkvzdzd3s0Q3s0wMQEWMzI2NTQnNxYWFRQGIyInESMRJiYjIgYVFBYXByYmNTQ2MzIWFxEzAVgSEyQbPx5CNVBLEg16CxYMIRshHh45P01MChMKegREBicgPRFDEUg4RVIE/egCUAQEKR8jIwpBC0g+RVIEAgE/AAABAB4B2gHdBboAMwAoQBInJSscFhgQMzEDDAoQEAYgAgYALz8SOS/dztzdzhDe3s3c3c4wMQEGBiMiJxEjESYjIgcjNjYzMhYXNSYjIgcjNjYzMhYXNTMRFhYzMjczBgYjIicVFhYzMjcB3QJAOBQQehgSQQI6AkA7ChULGBJBAjoCQDsKFQt6CBEIPgI9AkA4FBAIEQg+AgQpR1kE/k0B6ApQSVcEA3UKUElXBAPd/uoDAlJHWQR5AwJSAAEAHgHLAu4EuwAtABdACSMBAwMtExoaKwAvMy/NLzMvM80wMQE1BiMiLgInLgM1NTQuAiMiBgc1NjYzMhYVFRQXFhYzMjc+AzURMxEChFKNHjw0Kg0MEAsFBBEiHRQdEQ8oGmNaBwtJNjQwGCAVCXcB22d3DRYeEhAhLD4t3Cc2Ig8JCnEGB3tqwl8fMDUcDiQyQy0Bef1BAAADAIgAAAWIBCYADgAVABkAGUAMERwJCQgYBhQcGQYKAD8z7T8zOS/tMDEBFA4CIyERMxEzMh4CBzQhIxEzIAURMxEFiDttnWH+PrTkbax4P7r+29W9AT37urQBQk13UysEJv5hK1J5ULH+opQEJvvaAAACAIj/6AXCBD4AJQAwACtAFw8cCQkBACccHh4jLBwVBw4GCwojHAQLAD/tPz8/7RE5L+3OMjMv7TAxARcGBiMiLgInIxEjETMRMz4DMzIeAhUUFAchHgMzMjYBIS4DIyIOAgUCui3sum+0gk0HtLS0uA1SgKljarGASAH86AU0VXFCY4z92gJRCDNOYzc+alAyAVYXpLNCf7h1/ioEJv5EcK54PkqOzoMIGBBYh1svaAGVUnRJIitQcAACAGj/6AdBBD4APABHADRAGzEwPhwoFCgAACgUA0MFLRw5NzQLD0McHxoiBwA/MzPtMj8zM+0yERc5Ly8vEO3OMjAxAR4DMzI+AjU0LgIjIg4CByM+AzMyHgIXNjYzMh4CFSEeAzMyNjcXBgYjIiYnBiMiJicBIS4DIyIOAgEyFDlGUStAcVYyMVVyQTRYSDYRvhVSeZ5iRHplThlAyH1ttYFH/PABMlRyQ2SOILQr6rSH0j+Y9K73MgPJAksGMExlOjxoTzIBNDBGLRU2aJlkY5dmMyA8VDNWi2E1HzZLK15tS5fil1OFXTJucBqmsmlex6qiAUNLc04nK09yAAIAg//oBw0EPgAvAEMAHkAPEDUcKwAoCz8cGhwHCRgGAD8zPzPtPzMz7TIwMQUiLgInJjURMxEUFhcWFjMyPgI3NjURMxU2MzIeAhUUDgIHBiMiJicOAwEUHgIzMj4CNTQuAiMiDgIB+1WAWTUKC7QFBhFuUShPQzQOHrR+vmy2hUofPVo7doqFzkAtW2BqAawvVHNDQnJUMDBUckJDclQwGClHXjY3cQKS/bNHXxhIUBYoOSNIiAI5UWlKi8h/ZqB6WSBBZWQ+Ti0QAitmmWYyMmebaWOVZTMyZZgAAAIAVf/oA+0EPgASACYAG0AOGBwMDgsKCgkGIhwHBQcAPzPtPz8/M+0wMRM0PgIzMhc1MxEjNQYjIi4CNxQeAjMyPgI1NC4CIyIOAlVCeqpotGK0onDGZKV2QbklSGhDRGxMKSdJaEFEbUsoAgl4z5hWiXH72o6mSYvLiV+Xazk/cpxdWJFoOTxslwD//wBSAAAE3wSEAgYOIQAAAAMAlv84BOkGggAhAC4AOgAsQBYNMB4uLh46HgMABQEfAhgcIh4aFh4IAD8zM+3OMj8zM8wy7RE5L+05MDEBFTM1MxUWFxYWFRQGBxYWFRQGBgcGBxUjNSMVIzUjETM1ESEyNz4CNTQmJiMhNSEyNzY2NTQmJiMhAfXHnUAwZnNmZ4WPV4BhKDCdx53CwgFtXiZDWjpUlYz+rQE9gThKS0aCnv7bBoLIyNQLFiy5ZV6mMye8gGexYBkKBtDIyMgFusj6KwcMOGtGUnkxrREWZk1JbykAAQAwAAAEugW6AAsAFUAKAgkeCwIDCB4GCAA/7TI/7TIwMQEVIREhFSE1IREhNQS6/hsB5ft2AeP+HQW6rfugra0EYK0A//8AOv+hBbUFSwImBSgAAAAnBS0B6QAAAAcGUQLt/vr//wA6/6EFtQVLAiYFKAAAACcFLQHpAAAABwZRAu3++v///7r/oQH0BUsCJgUpAAAAJgUtAAAABwZRAOj++v///7r/oQH0BUsCJgUpAAAAJgUtAAAABwZRAOj++v//ADr+mQW1BUsCJgUoAAAAJwUwAhUAAAAHBlEC7f76//8AOv6ZBbUFSwImBSgAAAAnBTACFQAAAAcGUQLt/vr///+6/pkB9AVLAiYFKQAAACYFMAAAAAcGUQDo/vr///+6/pkB9AVLAiYFKQAAACYFMAAAAAcGUQDo/vr//wA6ASUFtQSWAiYFKAAAAAcRgwLwAr3//wA6ASUFtQSWAiYFKAAAAAcRgwLwAr0ABP+6ASUDFQVLAAwAEAAUADMAKUAOFBASDg4fHy4VJycHCAK6Au8AAALrAD/tLzMzL83OMi8yLzPNMjAxASE1ITQnJic3FhcWFQEHJzc3Byc3EyEiJyY1NDc2NjcXBwYVFBcWMzM1NCcmJzczFhcWFQMV/KUDEhwTS05IEhv+LCRPJrkjTiTR/uJcNkQUBBEODhUNOzZQ6g0MICAMDQUhASWudj4rUaNbM02yAt5EKEUDRShF/icgKVQrMAggFwksIBw4HxwNNiAhGUUUBDZl////ugElAxUFSwIGEW8AAP//AEr/RgPpBecCJgOtAAAABxGFAt4EE///AEr/RgPpBecCJgOtAAAABxGFAt4EE///ADL+VwTZBWcCJgM1AAAAJwUuAXn/CwAHEYUCXQOT//8AJP5OBLUERAImA/IAAAAHEYUCXQJw////uv9zAfQFswImBSkAAAAmBS4HJwAHEYUA8APf////uv9zAfQFswImBSkAAAAmBS4HJwAHEYUA8APf//8AJwElBk8D0gIGBboAAP//ACcBJQZPA9ICBgW6AAD///+6/6ECJARbAiYFKgAAAAYFLQAA////uv+hAhoD8wImBSsAAAAGBS0AAP//AEb/ZwSnA48CBgUsAAD//wBG/z4EpwMqAgYP/wAA////ugElAiQFzgImBSoAAAAHBS0AEgVH////ugElAhoFowImBSsAAAAHBS0AMwUc//8ARf9sBDUDVwIGBg8AAP//AEX/bAQ1A1cCBgYPAAD///+6ASUB9AUWAiYFKQAAAAcFLQAXBI////+6ASUB9AUWAiYFKQAAAAcFLQAXBI8AA/6xAAABTgHZAB4AIgAmABtACyIgICYkJAoKGRMBAC/dzDIvMi/NMy/NMDEhISInJjU0NzY2NxcHBhUUFxYzITU0JyYnNzMWFxYVAQcnNzcHJzcBTv45XDZEFAQRDg4VDTs0UgGTDQwgIAwNBSH+syRPJrkjTiQgKVQrMAggFwksIBw6HRwNNiAhGUUUBDZlAQNEKEUDRShFAAP/CAAAAPwB2QAeACIAJgAbQAsiICAmJCQKChkTAQAv3cwyLzIvzTMvzTAxMyEiJyY1NDc2NjcXBwYVFBcWMzM1NCcmJzczFhcWFQMHJzc3Byc3/P7iXDZEFAQRDg4VDTs0UuoNDCAgDA0FIfAkTya5I04kIClUKzAIIBcJLCAcOh0cDTYgIRlFFAQ2ZQEDRChFA0UoRQAAAv8+//8AwgHUABsAHwAUtx8dHQoKFw8CAC/dzjIvMi/NMDE3FCMiNTQ2NzY2NxcGFRQzMjY3NjU0JzczFhYVJwcnN8LiohERBg0NEix6ITobRikfBhQWiCRNI6mqdh9JIQwcFwhYOk8JCxozTTFJG0cuwEUoRQAABP4c/8IB4gLpAEMAegCcAKAAVkAqoJ6eRXJrankEeG6UlG5uMzcsBSIAJCw9PSw3YWE3AABpRUxVVRQSEoFFAC8zMy/NMi/NEM0yL80yLxDMMi8QzRE5ORESOTMvMy8QzBc5ETMvzTAxAyMiJyYnBgYHBgcGFRQXFhcWMxcHIiYnJicmNTQ3Njc2NjcmIyIHIzY2NzYzMhcWFRQHBxYXFjMzNCcmJzczFhYXFhUBIxQHBgYHBiMiJyYnJzcWFjMyNzY3NjU0JyYmJzczFhYXFhUVMwMnNDY3FxQXFxQGBwYGBycTNxQGBwYGByc0Njc2NDU0JicmJicmJic2NjczFhYXFhcWFgUHJzcFgkQnJhYRHQ4kFBlMOGg2WwJbKkMYVjJAGBMmCSEYCRYKDQcFCgUYOiUeHxEaGRcXI2INCSEhBg4TAwwBS6AfDSAUJhcXGRUaMAgULRIoKiYdGxUIFw8XBhEZCRRzNhcKCwcdLgICAgQCFjWcBwYEDgsIAQEBBAQDCQUDBwQIFQoEBAgFDAYEBP3RI0khAWYVFS8LFgseHSUiTSggDAYDSAQEDSkzXT41KioKIBceEBggCSwTFSIVERQfDA03GhUjRBMcCyNQ/s41OBkpESAJBg8YEgUNJiE4NiskJxAgEUIRHxAoLh8BfQsgNhoFGg4SCxgNDRIHB/6fGxIjEQkcFAUGEAgIDAMXQSoqWC4cOB0SKxQaQytXSS1DMUElQgAC/or/5AGYAbkANwBEAB9ADRAQIiIzOyhCARkFBQEALzMvzRDdMt7NMi8zLzAxJSEGBwYjIicmJjU0Njc2NjcXDgMVFBYzMjc2NTQnJic3MxYXFhUzMjc2Njc3NjY3NjMyFxYVBzQmIyIHBgYHBzMyNgGY/loLKDNnSCUUGg0QBRAJEgwRCwQ+O0AyPw4JEiMLDgQJBikmECERPw4aCxsgMBgXOSweGSALHREzpCIpt2QxPiETOSYqTi4NKRsIIzUqJBA8PSAoRy8sISBVIBcsSRIIGRE7DREFDCYjPwEXGxAFEgwkEwAAAf8y//MBDgLBAD8AFLcXHS0nDiw8AQAvzS8zM83ezTAxJQciJicmJyY1NDc2NzY3JicmNTQ2NzYzMhcWFhcVBgcGBwYVFBcWFzY2NzY3BwYGBwYGBwYVFBcWFxYWMzI2NwEOdzFLG1wzPxINHA0hKxMnFhQwRB4jChcOKSo9KS83LToXLhcyNRQxRhYsQxc7MSpWIVU0FysWQU4EBA0pNGA5LyYiECEVEiQ3GjAYNxIFDgsJAQUHEBIbHBsVCQ0VCRQNSRQcCxQrFTdAQyUhDgUGAQEAAAT/MwAAARMCxAAwAD0AQQBFACFADkE/P0VDLDUkOw4OOxkEAC/NLzMvEM3e3d7NMy/NMDElFAcGIyImJyYmNTQ3NjcXBgYHBgYVFBcWMzI3NjU0JicmJwYjIicmNTQ3NjMyFxYVJyYnJiMiBhUUFjMyNhMHJzcHByc3ARNRSnkwThocGBMTHRQHCwUMDi4rU1lETgEBAgQmIioZIBsfKjcgG0sLBg4TFxUcEQwVBiJNIx8jTSS6XjAsEBMUQCg5PDo2CBEcDR48Hz0dGyElQgwRBQwKExMWLjQyNktBU1MdBxQVEQ8RBwE7RChEU0QoRAD///8Q/94A8AMfAicGVwAA/JIABw8m/xD/+f///xD9bADwAK0CJwZXAAD6IAAHDyb/EP2HAAv9hP+4AnwCyABRAHAAdAB4AHwAgACEAIgAjACQAJ8AeUA7nJSURk9nZxIbG090cnKEgoIvOTkGgH5+iIaGeHaMioqQjo58egZ2enp2BgNBTyYvNAwBQR9WVh8rKx8ALzMvETMvEN0yMjLczS8SFzkvLy8QzTMvzTIvzRDNMy/NMi/NETMvEjkvzTMvzREzL8wyLxDMMi/NMDE3MzQnJic3MxYXFhUVMwMnNDY3FxQXFxQHBgYHJxMVISInJicnJiMiBwYGByc2NjMyFxYzMzQnJic3MxYWFxYVFTMDJzQ2NxcUFxcUBgcGBycTJRQHBgcnNjY1NjY1NCYnJiYnJiYnNzMWFhcWFhcWFiUHJzclByc3BQcnNyUHJzcFByc3JQcnNyUHJzcXByc3NxQGByc2NjU0Jic3MxYWRKkNCSEgBx0HDK01GAsLBx0tAwIFAhU1/OcdFRUdHA8OGisOGg4hK081HSsqHowMCiEhBg8TAwyVNhcKCwcdLgICAwUWNQI4DQUYCAEBAQEEBAQJBQMHBCcFAwgGBQkDBQP7dCFLJAOWJEgh/o0jSSIBryNIIv27IUoiAsgiSSH+myJIIToiSSLICAwKAQELDRUFDQ1ONB0VI0QmFCNQIAF+CyA1GgUZDhIXGQ0TBgf+n1gMDCAeDUIYNB0ScHAsMDYbFSNEExwLI1AgAX4LIDUaBRkOEgsYDRgOB/6fGyYgECkEBw8ICQsDF0IqKlgtHDgdTxpBKi1QJC1CikEnQYJBJkEmQSZBKkInQfVCJkExQSZBU0InQZ9BJkGYDB0RBAUJAhM2MSIrOgAAB/yG/14DegJGAIIAlAC1AMUAyQDNANEAWkAty81Uh8HBb3V7ycfH0c+7j5AbCSd7kGdnkHsnCRsGPmJcLyETAG+ZSUJUrDU+AC/MMi8zMzPNMjIyMjIyERc5Ly8vLy8vEM0y3s0zL80QzREzL80Q3s0wMTcyNjc2NTQmJzczFhYXFhYXFjMzMjc2NTQmJzczFxYXFjMyNTQnJzczFhYXFhYVFTMDJzQ2NxcUFxcUBgcGBycTFSMiJicGBwYjIyInJiYnBgYHBiMhIicmNTQ2NzMWFxYzMzQnJic3MxYWFxYWFSEmJyYnJiMiBzY3NjMyFxYWFxYXJRQHBiMiJyY1NDc3JzcWFhcWBRQHBgcnNjY1NjY1NCYnJiYnJiYnNjY3MxYWFxYWFxYWBTQnJiYnBwYVFBYzMjY3NgMHJzcBByc3AQcnN64SGggaAwMOBgYIBQcQCBUdHiEREgQDDwUIDBIOGxsSFhoGCAsDBQ5QNRgLCwcdLgICAwYVNakdKhEUERgnHRcYCBILCxQJEij9QRsTFQQFCgQODBKuFxtCBwojMBEPFAFLLh8nISQlFxgNFh8uLj4QMyM3Evz3FCFUIRYZEB0GGyovCDYF+Q0FGAgBAQEBBAQECQUDBwQJFAsEBAgFBQkDBQP54DELFwwYDRoWDBwOHgEiSSICsSNJIv17IkojTgQDCSAOGRAWExsJERgIFQsKGw4aDxYlMhMRGhobHiwNFQoPKBoeAX4LIDUaBRkOEgsYDRoMB/6fWBAOEAYICQMJBwgLAwYPDxQRHBEUBwdPMz0UUxQ7JiJYNyUTGAwMAyAWHS0LKyAxBDdCHjENDxseK0cCTBYbBSc5JiAQKQQHDwgJCwMXQioqWC0cOB0TKhQaQyotUCQtQigQHQYMBhwQERcZBggNAVBCJkL91EElQgG2QCZBAAb8g//0A30CRgBqAIoAlACYAJwApwBFQCKcmjiij1iYlmNHolhjJSVjWKJHBQ2dXT4wAJJxGhGCggUNAC/MMy8vMzPNMjIyMjIRFzkvLy8vLxDezRDNEN3ezTAxJTMDJzQ3FxQXFxQHBgcnExUhIicmJicGBwYjISInJicmNTQ2NzcXBgYHBhUUFxYzMyYnJjU0NzYzMhcWFRUzMjY3NjU0Jic3FhYXFhYzMjc2NzY2NzY3NjMyFxYVFTM0JyYnNzMWFhcWFhUlFAYHBgYHJzc2NDU0JicmJicmJic2NjczFhYXFhcWFgU0JyYjIgcHMzITByc3JQcnNxM0JicmIyIVFBcWAkZ1NhcWBh4tBAMFFjX8pBgWCRQLExIUKf6JRio0GR0KDRsaCg0DBjAwZO00GRwbISUsFRArExoIGgQDHAgRDg4eFCAwMyIdJAciGR4kOBsapw0JISEFDhMEBg8BNwcGBA4LCQMBBAQECAUDBwQIEwoGBAgFDAYEBP22FxcgJjdWsVDLI0ki/JojSSJ2AwULFR4TD04Bfgs9MgUaDRIZFxgOB/6fWAgDCgcQBgYMDSEjPBQvGjYNFBwLFBA5HRwPExUgKjA1NCxSNAQDCSAOGRAbHy4REhIRFBsXGwUZCAwkIDwkNB0VI0UTHQsROigFEiMRCRwUBB4JCwMXQioqWC0cOB0SKBMZQSlYSS1CGRYMDR40AVJBJUIDQSZB/pkUHgsZIxYMCAAF/WX/uAKbAiAAgACEAIgAjACQAEpAJJCOjoyKWgkXJFpaJBcJBGNxcoiGhoSCR1CAVR0PYz9MTDUsPwAvMzMzLxDdMjIyMtzN3s0zL80vzRIXOS8vLy8Q3s0zL80wMTcyNjc2NTQmJzczFxYXFjMzMjc2NTQnNzMXFhcWMzI2NTQnJzczFhcWFhUVIyImJwYGBwYjIyInJiYnBgYHBiMhIicmJycmIyIHBgYHJzY2MzIXFjMzNCcmJzczFhYXFhYVFSEmJyYmJwcnJjU0NzY3NxUHBgYHBhUUFxcWFhcWFyUHJzc3Byc3NwcnNzcHJzfgEhoIGgIEDgUUDxEVHB4hERIGDwQJDBIOGwwPEhcbBQ8IBQ4sHSkRCxIIGCcdFxgIEwsLEwkUJ/2+HRUVHRwPDhsqDhoOIStPNh4pKh54DQkhIQYOEwMGDwFRICgUNiMPNRwmIVh/Xh0tESwdJCI7GjYi/RIhSyOwIUoi7SJKI7AiSSJOBAMJIA4ZEBY3Ig8VCwobGR4XJjITEQ4MGhseLRkUDygabBAOCAsDCAkDCQcICwMGDAwgHg1EFzMdEnBwLDA3GhUjRBMcCxE6KCAxIhImFQ4oGA1NLCciMU0gCREIFAkMFBsaNh07Q8ZBJ0EDQiZBMEEnQARCJkEAAAb+MQAAAc8CJQA3ADsAPwBDAE4AWQA7QBsrWFgjU0NBQT07OTk/PTNTSR4eUwsLU0QWIwEAL80yMi8zLxEzL80Q3d7NMy/NETMvzRESOS/NMDEhISInJicmNTQ2NzcXBgYHBhUUFxYzISYnJjU0NzYzMhcWFRUhNCcGBgcGIyInJjU0NzYzMhcWFQEHJzcFByc3NwcnNwM0JicmIyIVFBcWJSYnJiMiBhUUMzIBz/1QTS44HB8JDhsaCg0DBjIwZwE3NBkcGyElLhMQAQIJDBIGFRAfFhgWGig3Hhn+fCNJIgFXIkojsCJJIv8DBQsVHhMPATIGDhMRDBAoFQwOICI9FDAaNQ0UHAsUEDocHA8TFSAqMDU0LFI0KCMEBAIGERIkPTE0VkleAVRBJkEZQSdABEImQf5jFB4LGSMVDQhZDxIWFA4kAAAK/bf/fwJJAiUAQgBkAGgAbABwAHQAeACFAI8AmgBbQCtYhmCKijaZKX55mX6Zfi6UeHZ2cmxqanRyPpRHUQBwbm5oZggUGi4ADg4AAC8yLxDdMtzN3s0zL80Q3s0v3d7NMy/NETMvzRESOTkvLzkQzRDNMy/N3s0wMSEhIicmJycmIyIGBwYGByc+AzMyFhcWMzMyNjc2NjcmJicmNTQ3NjMyFxYVFSE0JwYGBwYjIicmNTQ3NjMyFxYVBRQHBiMiJyYmJyc3FhYzMjY3Njc2NyInJjU0NzYzMhcWFSUHJzclByc3BQcnNyUHJzc3Byc3AyYmJyYjIgYVFBcWFgUmJyYjIgYVFBYlJicmIyIGFRQzMgE2/cwdFRUdHA8ODyMTDhoOIRYpKSwbDSgTKh6KDhcKChUMJzIMMxgdJy4YEwEHCQwSBhUQHxYYFhooNx4YARM3PVAgHQweEjsJGjYWHDMYJicVIjwfIhUZJycRDvvaIUskAgYjSSH+9CFKIgJ/IkojsCJJIv4FCQUSGw0RIwcdAmQLDQwSDRIo/u0GDhMRDBAoFQwMIB4NJCAYMh0SOFQ4HBUXMAEBAQUDBgoFFjcvKi86LUFNKCMEBAIGERIkPTE0VkdgEUhLUgcCCQYUGwYNAw4WKhYuFBYyLycuLSU+fEEnQaRBJkHHQiZBc0EnQARCJkH+eBIbCSETDiIMAgQKKxEPEQ0WF1UPEhYUDiQAAAL++QAAARgBDAASACEADrQLFyAQAAAv3TLczTAxMyMiJyYnJjU0NzYzFhcWFRUhFSU0JyYnIgcGFRYXFhYXNqDLQjJCERVeGSAfCg8BUP6SAwkeJCUSAkAPGwwMCg8mMSNJJwkCHCMpUQU2Dg8cBSoXDhAHAgIBGgAAAv5nAAABngD9ABoAIgAXQAkYHRERHQkgBQEALzPdMs4yLxDNMDEhISInBiMjJzUhMjc2NTQmJzcWMzI3NzYzMhUHNCMiBwczMgGe/qkfJRoz13gBUBwNFQMCDhs+KixNLi9HTCcYHzdsKR4eTQUHCiEMHREciCxTLHgNLx43AAACAOEB8wL9BRUAGQAzABlACxELKBkAAwIyHSACAC8vMzMSFznNMjAxATczFhYXFhUUBwYjIiYnBgYjIicmNTQ3NjcDNjczFhYzMjY1NCcmJicGBgcGBwYVFBYzMgGpLQtIbSZBLjVNFCMVID8iRCwvOjqOBxciDREzGyIvPx1ONA4hES4cJDEtIQR/lkmSSn9wV0xVChAaFiYnRU9oaKP+SAkaDxQkHTViLWU5ESYZPj1KNS41AAYADQEaCAoGtQCMALYAugDHANMA4ABaQB2A0XnMiLq4iN/WtJ+qpa+YkZFTvDHFOztrU1OIIrgC77TFxV1CebgC77IYCgG4AusAPzMz7TIyMi/tLzMvMzMvEjk5ETMvM90y3jIy3s0Q3s0QzRE5OTAxASEiLgInBgYHByYmJyYmJwYGBw4DIyImJyYmJwYHBiMiLgI1ND4CNz4DNy4DNTQ3NjY3FxYWFxYWMzI2NzY2NwMmJicmNTQ3NjY3FxMWFhceAzMyPgI3AyYmNTQ3NjY3FhYXHgMXHgMzITQnBgYHBiMiJyY1NDc2MzIXFhUBFAcGIyImJwYHBiMiJjU0Njc3FAYVFBYzMjc2NzcWFhcWMzI3NjU3FhYlByc3AScGBgcGBgcWFjMyNgEmJyYjIgYVFDMyNgEUByc2NjU0JzY2NxYICv54R3VcRBgKFQgTM1oqIywUGTUgDiUpKhInSyAgJg4pNzg1OFpAIhgpNBwLMkJPKQIFBQMXChgQGwwVDBBOSxwzERAoGTsEBAIHFwoZEBQ/CSEUCiYtMBYKEQsHAlICAxcKGQ4DEw8JDQsIBAo4XoZXASMVGigOLyJJLjUyOFp6Qjf70hodMxIeExUSICMqKg4NFQQSEisaDBIVBAcCDBwlFxIVBAcDXU6iSvslEi1RGBUhERY3Mhw8BccNIComGyNYFzT7/iIWAgIiChcOJwElGy03HRw3EisDFBQRNiorOxcJExAKFBsaVCk7JyYJDxYNFTxCQhsLHyImEwcWGBYHICwRJBOjSIE/P0EXDgwtLAESEBoKJhIhLBEjE3L+xTNJHA4bFQ4EDhwZAXwVHQghLBMjEQ1QRio7LycVNWVPMFlOCAwEDCUqT4ppdL+c1wMiSjE2DA0kEiA4MxoyIAkIJAwWIzgZTAYZHgUfMigrBhMvHJFUkvxabhAfDg0zHAkKIQEiIyYyLR9QEgL+N0oEExsIRUQTKxl3AAAEAA0BGggKBc4AjQCRAJ4AqgBEQBKBqHmjiZGPiZMxnDs7bFRUiSK4Au+0nJxeQnm4Au+yGAoAuALrAD8yMu0yMjIv7S8zLzMzLxI5ORDezRDNETk5MDEBISIuAicGBgcHJiYnJiYnBgYHDgMjIiYnJiYnBgcGIyIuAjU0PgI3PgM3LgM1NDc2NjcXFhYXFhYzMjY3NjY3AyYmJyYmNTQ3NjY3FxMWFhceAzMyPgI3AyYmNTQ3NjY3FhYXHgMXHgMzITQnBgYHBiMiJyY1NDc2MzIXFhUDByc3AScGBgcGBgcWFjMyNgEmJyYjIgYVFDMyNggK/nhHdVxEGAoVCBMzWiojLBQZNSAOJSkqEidLICAmDik3ODU4WkAiGCk0HAsyQk8pAgUFAxcKGBAbDBUMEE5LHDMRECgZQwQEAgQDFwoZEBZFCSEUCiYtMBYKEQsHAloCAxcKGQ4DFREKDgsJBQs4XoVXASMVGigOLyJJLjUyOFp6QjfRTqJK+yUSLVEYFSERFjcyHDwFxw0gKiYbI1gXNAElGy03HRw3EisDFBQRNiorOxcJExAKFBsaVCk7JyYJDxYNFTxCQhsLHyImEwcWGBYHICwRJBOjSIE/P0EXDgwtLAEqER0LFx0JIzERIxN9/qczSRwOGxUOBA4cGQGaFx8JIzATIxEOWU4uQjQsFzRlTzFZTggMBAwlKk+KaXS/nNcDUJFUkvxabhAfDg0zHAkKIQEiIyYyLR9QEgAAAAABAAAVXAABA40MAAAJCU4AAwAk/48AAwA3/9sAAwA8/9sAAwHx/48AAwH5/48AAwH7/48AAwIB/48AAwIJ/9sAAwIK/9sAAwIP/9sAFAAU/2gAJAAD/48AJAA3/2gAJAA5/2gAJAA6/7QAJAA8/2gAJABZ/9sAJABa/9sAJABc/9sAJAC2/2gAKQAP/x0AKQAR/x0AKQAk/48ALwAD/7QALwA3/2gALwA5/2gALwA6/2gALwA8/2gALwBc/7QALwC2/48AMwAD/9sAMwAP/vgAMwAR/vgAMwAk/2gANQA3/9sANQA5/9sANQA6/9sANQA8/9sANwAD/9sANwAP/x0ANwAQ/48ANwAR/x0ANwAd/x0ANwAe/x0ANwAk/2gANwAy/9sANwBE/x0ANwBG/x0ANwBI/x0ANwBM/7QANwBS/x0ANwBV/7QANwBW/x0ANwBY/7QANwBa/48ANwBc/48AOQAP/0QAOQAQ/48AOQAR/0QAOQAd/7QAOQAe/7QAOQAk/2gAOQBE/2gAOQBI/48AOQBM/9sAOQBS/48AOQBV/7QAOQBY/7QAOQBc/7QAOgAP/48AOgAQ/9sAOgAR/48AOgAd/9sAOgAe/9sAOgAk/7QAOgBE/7QAOgBI/9sAOgBMAAAAOgBS/9sAOgBV/9sAOgBY/9sAOgBc/+4APAAD/9sAPAAP/vgAPAAQ/0QAPAAR/vgAPAAd/48APAAe/3sAPAAk/2gAPABE/2gAPABI/0QAPABM/7QAPABS/0QAPABT/2gAPABU/0QAPABY/48APABZ/48ASQBJ/9sASQC2ACUAVQAP/48AVQAR/48AVQC2AEwAWQAP/2gAWQAR/2gAWgAP/48AWgAR/48AXAAP/2gAXAAR/2gAtQC1/9sAtgAD/7QAtgBW/9sAtgC2/9sAxAIt/2AAxAI2/2AAxAJM/2AAxAJR/7wAxAJU/7wBKwAP/x8BKwAR/x8BKwH4AKQBKwH5/0QBKwH7/0QBKwIB/0QBKwIa/6gBKwInAFgBLAH5/9sBLAH7/9sBLAIB/9sBLAIK/74BLAIP/74BLQH5/8UBLQIK/74BLQIP/74BLwEy/+MBLwIc/9kBLwIk/8kBLwKM/+MBMgEu/+MBMgEv/+MBMgEx/+MBMgEz/+MBMgIQ/+MBMgIX/+MBMgIg/+MBMgIi/+MBMgIm/+MBMgIr/+MBMwEy/+MBMwIc/9kBMwIk/8kBMwKM/+MB8QEs/9UB8QEt/8UB8QIF/9UB8QIJ/2gB8QIK/2gB8QIP/2gB8QIW/9sB8QIe/9sB8QIk/9sB9QIK/74B9gEs/40B9gEt/40B9gEu/0YB9gEx/0YB9gEz/0YB9gH4AKoB9gH5/2gB9gH7/2gB9gIB/2gB9gIF/40B9gIN/54B9gIS/2gB9gIT/7QB9gIY/2gB9gIa/7QB9gIb/2gB9gId/2gB9gIg/0YB9gInAGIB9gIp/0YB9wIK/9EB9wIP/9EB+QAD/48B+QC2/2gB+QEs/9UB+QEt/8UB+QIF/9UB+QIJ/2gB+QIK/2gB+QIP/2gB+QIW/9sB+QIe/9sB+QIk/9sB+wAD/48B+wEs/9UB+wIF/9UB+wIJ/4kB+wIK/2gB+wIP/2gCAAEs/8ECAAEt/48CAAEu/+cCAAEv/+cCAAEx/+cCAAEz/+cCAAIF/8ECAAIQ/+cCAAIX/+cCAAIZ/+cCAAIf/+cCAAIg/+cCAAIm/+cCAAIp/+cCAAIr/+cCAQAD/48CAQEs/9UCAQIF/9UCAQIJ/2gCAQIK/2gCAQIP/2gCBQH5/9sCBQH7/9UCBQIB/9sCBQIK/74CBQIP/74CBwAD/9sCBwAP/voCBwAR/voCBwH5/2gCBwH7/2gCBwIB/2gCCAEy/54CCAKM/54CCQAD/9sCCQAP/x8CCQAR/x8CCQAd/x8CCQAe/x8CCQEs/9sCCQEt/9sCCQEu/x8CCQEw/x8CCQEx/x8CCQEz/x8CCQH4ALwCCQH5/2gCCQH7/2gCCQIB/2gCCQIF/9sCCQIN/9sCCQIQ/x8CCQIR/x8CCQIU/04CCQIW/04CCQIY/2oCCQIa/7QCCQId/2oCCQIe/48CCQIg/x8CCQIj/1ACCQIk/48CCQIl/2oCCQInALwCCQIo/04CCQIp/x8CCQIq/04CCgAD/9sCCgAP/voCCgAQ/0YCCgAR/voCCgAd/48CCgAe/48CCgEs/40CCgEt/40CCgEu/0YCCgEx/0YCCgEz/0YCCgH4ALwCCgH5/2gCCgH7/2gCCgIB/2gCCgIF/40CCgIN/54CCgIS/2gCCgIT/7QCCgIW/54CCgIY/2gCCgIa/7QCCgIb/2gCCgId/2gCCgIg/0YCCgInAHkCCgIp/0YCDAEu/7ICDAEv/7ICDAEx/7ICDAEz/7ICDAIQ/7ICDAIZ/9kCDAIg/7ICDAIm/7ICDAIp/7ICDAIr/7ICDQIK/9ECDQIP/9ECDwAD/9sCDwEs/40CDwEt/40CDwEu/0YCDwEx/0YCDwEz/0YCDwH4AKoCDwH5/2gCDwH7/2gCDwIB/2gCDwIF/40CDwIN/54CDwIS/2gCDwIT/7QCDwIY/2gCDwIa/7QCDwIb/2gCDwId/2gCDwIg/0YCDwInAGICDwIp/0YCFwEu/3cCFwEv/7QCFwEx/3cCFwEy/6oCFwEz/3cCFwIQ/3cCFwIS/9sCFwIW/6oCFwIY/9sCFwIZ/54CFwIa/9sCFwIb/9sCFwIe/6oCFwIg/3cCFwIm/3cCFwIp/3cCFwIr/3cCFwKM/6oCGQIc/9kCGwEu/+cCGwEv/+cCGwEx/+cCGwEz/+cCGwIQ/+cCGwIX/+cCGwIZ/+cCGwIf/+cCGwIg/+cCGwIi/+cCGwIm/+cCGwIp/+cCGwIr/+cCHAEu/+ECHAEv/+ECHAEx/+ECHAEz/9sCHAIQ/+ECHAIf/+ECHAIg/+ECHAIi/9ECHAIj/88CHAIm/+ECHAIp/+ECHAIq/88CHAIr/+ECHwEu/8kCHwEv/8kCHwEx/8kCHwEz/8kCHwIQ/8kCHwIX/8kCHwIf/8kCHwIg/8kCHwIi/8kCHwIp/8kCIAEy/+MCIAIc/9kCIAIk/8kCIAKM/+MCIQEy/+MCIQIc/9kCIQKM/+MCJAEu/8kCJAEv/8kCJAEx/8kCJAEz/8kCJAIQ/8kCJAIX/8kCJAIg/8kCJAIi/8kCJAIm/8kCJAIp/8kCJAIr/8kCJgEy/+MCJgIc/9kCJgIk/8kCJgKM/+MCKQEy/+MCKQIc/9kCKQIk/8kCKQKM/+MCKwEy/+MCKwIc/9kCKwIk/8kCKwKM/+MCLgAP/wYCLgAR/wYCLgCp/3cCLgCq/3cCLgCy/9MCNAC2/2ACNQC2/3cCOgC2/40COgI+AEQCOgJB/+kCOgJFAC0COgJI/9MCOgJJ/+kCOgJL/9MCOgJM/2ACOgJN/6YCOgJO/7wCOgJR/2ACOgJX/9MCOgJaABcCOgJs/9MCOgJt/+kCOgJuABcCOgJ3AC0COwI6/9MCOwJB/+kCOwJI/+kCOwJL/+kCOwJM/6QCOwJN/9ECOwJO/+kCOwJP/9MCOwJR/6QCOwJU/7wCOwJX/+kCOwJZ/+kCOwJl/+kCOwJt/9MCPAI6/7wCPAI+/9MCPAJA/9MCPAJB/7wCPAJF/+kCPAJI/7wCPAJL/7wCPAJM/3cCPAJN/7wCPAJO/7wCPAJP/6YCPAJR/6QCPAJU/40CPAJZ/7wCPAJe/+kCPAJm/+kCPAJs/7wCPAJt/+kCPAJv/+kCPAJx/7wCPAJ5/+kCPQAP/wYCPQAR/wYCPQCp/3cCPQCq/3cCPQCy/9MCPQI6/3cCPQI+/3cCPQJB/9MCPQJF/40CPQJG/9ECPQJI/40CPQJL/6QCPQJZ/7wCPQJa/40CPQJc/40CPQJe/3cCPQJf/3cCPQJi/40CPQJl/40CPQJm/40CPQJn/40CPQJo/3cCPQJq/40CPQJt/3cCPQJ1/40CPQJ2/40CPQJ4/40CPQJ5/3cCPgJNABcCPgJO/9MCPgJR/7oCPgJhAEQCPgJoABcCPgJtAC0CPwJB/9MCPwJr/+kCQAJB/+kCQAJI/9MCQAJL/+kCQAJMABcCQAJNAC0CQAJUAC0CQAJaABcCQAJf/+cCQAJo/+kCQAJt/+kCQQJF/+kCQQJI/+kCQQJL/+kCQQJM/9MCQQJN/+kCQQJO/+kCQQJR/9MCQQJZ/+kCRAJB/+kCRAJI/+kCRAJL/+kCRAJNABcCRAJO/7oCRQJO/+kCRQJbABcCRQJtABcCRgJO/+kCRgJR/+kCRgJaABcCRgJfABcCRgJoABcCRgJrABcCRgJtABcCRgJx/+kCRgJ3ABcCSAI6/9MCSAI+/9MCSAJA/9MCSAJF/+kCSAJN/9MCSAJP/6QCSAJR/9MCSAJZ/9MCSAJe/9MCSAJl/+kCSAJv/+kCSgAP/n0CSgAR/n0CSgAd/9MCSgAe/9MCSgCq/40CSgI6/3cCSgI+/3cCSgJA/+kCSgJB/9MCSgJF/40CSgJG/+kCSgJI/9MCSgJL/+kCSgJM/6QCSgJN/9MCSgJO/+kCSgJP/6QCSgJZ/9MCSgJa/7wCSgJe/2ACSgJf/6YCSgJo/6YCSgJ3/9MCSgJ5/7wCSwI6/9MCSwI+/9MCSwJB/+kCSwJF/7wCSwJG/+kCSwJI/9MCSwJM/7wCSwJN/7wCSwJP/40CSwJR/7wCSwJU/7oCSwJX/+kCSwJaABcCSwJgAC0CSwJx/+kCTAAP/x0CTAAR/x0CTACp/6YCTACq/6YCTACy/9MCTAI6/7wCTAI+/7wCTAJAABcCTAJB/+kCTAJF/9MCTAJI/6QCTAJO/7wCTAJZ/9MCTAJa/6QCTAJc/6YCTAJf/40CTAJi/6YCTAJk/6YCTAJl/6QCTAJm/6YCTAJo/2ACTAJp/6YCTAJq/40CTAJr/40CTAJt/40CTAJv/6YCTAJz/6YCTAJ1/6YCTAJ2/6YCTAJ4/6YCTAJ5/40CTQAP/vACTQAR/vACTQAd/9MCTQAe/9MCTQCp/6YCTQCq/6QCTQCy/+kCTQI6/3cCTQI+/6QCTQJB/9MCTQJF/7wCTQJI/7wCTQJO/7wCTQJX/9MCTQJZ/9MCTQJb/9MCTQJc/40CTQJd/6QCTQJe/2ACTQJf/3cCTQJg/7wCTQJh/40CTQJi/6QCTQJj/7wCTQJk/6QCTQJl/3cCTQJm/6QCTQJn/6QCTQJo/3cCTQJp/6QCTQJq/6QCTQJr/3cCTQJv/6QCTQJw/6QCTQJy/6QCTQJz/6QCTQJ4/6QCTQJ5/3cCTgI6/9MCTgI+/7wCTgJF/7wCTgJM/40CTgJN/6QCTgJR/9MCTgJZ/7oCTgJl/7wCTwJB/9MCTwJI/7wCTwJL/7wCTwJO/7wCTwJX/7oCTwJo/+kCTwJt/9MCUAJI/9MCUAJaAC0CUwJaABcCUwJtAC0CVAC2/3cCVAJZ/7wCVgC2/2ACVgI6/9MCVgI+/9MCVgJA/7wCVgJB/+kCVgJF/7oCVgJG/9MCVgJI/9MCVgJL/9MCVgJM/zMCVgJP/6QCVgJR/2ACVgJX/+kCVgJZ/6QCVwI+/7wCVwJA/+cCVwJB/+kCVwJF/7wCVwJP/7oCVwJZ/9MCVwJe/7wCVwJgABcCVwJl/7wCVwJm/+kCVwJ5/+kCWAI6/7wCWAI+/6YCWAJA/9MCWAJF/6QCWAJI/+kCWAJL/+kCWAJM/40CWAJP/6QCWAJR/7wCWAJe/6QCWAJl/6QCWAJm/+kCWgJh/+kCWgJs/9MCWgJt/+kCWgJx/9MCWwJa/9ECWwJe/6QCWwJf/+kCWwJg/+kCWwJh/9MCWwJl/6QCWwJm/9MCWwJr/+kCWwJt/9MCWwJu/+kCWwJv/7wCWwJx/7wCWwJ0/7wCWwJ3/+kCWwJ5/9MCXAJa/+kCXAJb/+kCXAJe/+kCXAJf/+kCXAJg/+kCXAJh/+kCXAJl/9ECXAJm/+kCXAJo/+kCXAJr/+kCXAJs/9MCXAJt/9MCXAJu/+kCXAJx/6QCXAJ0/7wCXAJ5/+kCXQAP/wYCXQAR/wYCXQJa/9MCXQJe/6QCXQJf/9MCXQJh/+kCXQJl/9MCXQJo/9MCXQJr/9MCXQJ5/+kCXgJ0/9MCXgJ3ABcCXwJb/+kCXwJe/9MCXwJg/+kCXwJh/9MCXwJl/7wCXwJs/7wCXwJt/+kCXwJv/9MCXwJx/7wCYAJb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AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAaQBzACAAbwBwAGUAbgAgAHMAbwB1AHIAYwBlACAAcwBvAGYAdAB3AGEAcgBlACAAdQBuAGQAZQByACAAdABoAGUAIABNAEkAVAAgAEwAaQBjAGUAbgBzAGUAOwAgAHMAZQBlACAAZQBtAGIAZQBkAGQAZQBkACAAbABpAGMAZQBuAHMAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAZABlAHQAYQBpAGwAcwAuAEEAcgBpAGEAbABSAGUAZwB1AGwAYQByAE0AbwBuAG8AdAB5AHAAZQA6AEEAcgBpAGEAbAAgAFIAZQBnAHUAbABhAHIAIAAoAE0AaQBjAHIAbwBzAG8AZgB0ACkAVgBlAHIAcwBpAG8AbgAgADcALgAwADAAQQByAGkAYQBsAE0AVABBAHIAaQBhAGwAIAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4ATQBvAG4AbwB0AHkAcABlACAAVAB5AHAAZQAgAEQAcgBhAHcAaQBuAGcAIABPAGYAZgBpAGMAZQAgAC0AIABSAG8AYgBpAG4AIABOAGkAYwBoAG8AbABhAHMALAAgAFAAYQB0AHIAaQBjAGkAYQAgAFMAYQB1AG4AZABlAHIAcwAgADEAOQA4ADIATQBpAGMAcgBvAHMAbwBmAHQAIABzAHUAcABwAGwAaQBlAGQAIABmAG8AbgB0AC4AIABZAG8AdQAgAG0AYQB5ACAAdQBzAGUAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGMAcgBlAGEAdABlACwAIABkAGkAcwBwAGwAYQB5ACwAIABhAG4AZAAgAHAAcgBpAG4AdAAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAG8AcgAgAHQAZQByAG0AcwAgAG8AZgAgAHUAcwBlACwAIABvAGYAIAB0AGgAZQAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAcAByAG8AZAB1AGMAdAAsACAAcwBlAHIAdgBpAGMAZQAsACAAbwByACAAYwBvAG4AdABlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABpAHMAIABmAG8AbgB0ACAAdwBhAHMAIABpAG4AYwBsAHUAZABlAGQALgAgAFkAbwB1ACAAbQBhAHkAIABvAG4AbAB5ACAAKABpACkAIABlAG0AYgBlAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAGkAbgAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAZQBtAGIAZQBkAGQAaQBuAGcAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAHQAaABpAHMAIABmAG8AbgB0ADsAIABhAG4AZAAgACgAaQBpACkAIAB0AGUAbQBwAG8AcgBhAHIAaQBsAHkAIABkAG8AdwBuAGwAbwBhAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGEAIABwAHIAaQBuAHQAZQByACAAbwByACAAbwB0AGgAZQByACAAbwB1AHQAcAB1AHQAIABkAGUAdgBpAGMAZQAgAHQAbwAgAGgAZQBsAHAAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0AC4AIABBAG4AeQAgAG8AdABoAGUAcgAgAHUAcwBlACAAaQBzACAAcAByAG8AaABpAGIAaQB0AGUAZAAuAA0ADQBUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAbABpAGMAZQBuAHMAZQAsACAAYgBhAHMAZQBkACAAbwBuACAAdABoAGUAIABNAEkAVAAgAGwAaQBjAGUAbgBzAGUAIAAoAGgAdAB0AHAAOgAvAC8AZQBuAC4AdwBpAGsAaQBwAGUAZABpAGEALgBvAHIAZwAvAHcAaQBrAGkALwBNAEkAVABfAEwAaQBjAGUAbgBzAGUAKQAsACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAHQAaABlACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAgHABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYyAdACAAYQBzACAAagBvAGkAbgB0AGwAeQAgAGQAZQB2AGUAbABvAHAAZQBkACAAYgB5ACAAUgBhAGwAcABoACAASABhAG4AYwBvAGMAawAgAGEAbgBkACAASgBvAGgAbgAgAEgAdQBkAHMAbwBuAC4AIAANAA0AUABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGgAZQByAGUAYgB5ACAAZwByAGEAbgB0AGUAZAAsACAAZgByAGUAZQAgAG8AZgAgAGMAaABhAHIAZwBlACwAIAB0AG8AIABhAG4AeQAgAHAAZQByAHMAbwBuACAAbwBiAHQAYQBpAG4AaQBuAGcAIABhACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAYQBuAGQAIABhAHMAcwBvAGMAaQBhAHQAZQBkACAAZABvAGMAdQBtAGUAbgB0AGEAdABpAG8AbgAgAGYAaQBsAGUAcwAgACgAdABoAGUAICAcAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlIB0AKQAsACAAdABvACAAZABlAGEAbAAgAGkAbgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAdABoAG8AdQB0ACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAHcAaQB0AGgAbwB1AHQAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAHQAbwAgAHUAcwBlACwAIABjAG8AcAB5ACwAIABtAG8AZABpAGYAeQAsACAAbQBlAHIAZwBlACwAIABwAHUAYgBsAGkAcwBoACwAIABkAGkAcwB0AHIAaQBiAHUAdABlACwAIABzAHUAYgBsAGkAYwBlAG4AcwBlACwAIABhAG4AZAAvAG8AcgAgAHMAZQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUALAAgAGEAbgBkACAAdABvACAAcABlAHIAbQBpAHQAIABwAGUAcgBzAG8AbgBzACAAdABvACAAdwBoAG8AbQAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABmAHUAcgBuAGkAcwBoAGUAZAAgAHQAbwAgAGQAbwAgAHMAbwAsACAAcwB1AGIAagBlAGMAdAAgAHQAbwAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABjAG8AbgBkAGkAdABpAG8AbgBzADoADQANAFQAaABlACAAYQBiAG8AdgBlACAAYwBvAHAAeQByAGkAZwBoAHQAIABuAG8AdABpAGMAZQAgAGEAbgBkACAAdABoAGkAcwAgAHAAZQByAG0AaQBzAHMAaQBvAG4AIABuAG8AdABpAGMAZQAgAHMAaABhAGwAbAAgAGIAZQAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABvAHIAIABzAHUAYgBzAHQAYQBuAHQAaQBhAGwAIABwAG8AcgB0AGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlAC4ADQANAFQASABFACAAUwBPAEYAVABXAEEAUgBFACAASQBTACAAUABSAE8AVgBJAEQARQBEACAAJwBBAFMAIABJAFMAJwAsACAAVwBJAFQASABPAFUAVAAgAFcAQQBSAFIAQQBOAFQAWQAgAE8ARgAgAEEATgBZACAASwBJAE4ARAAsACAARQBYAFAAUgBFAFMAUwAgAE8AUgAgAEkATQBQAEwASQBFAEQALAAgAEkATgBDAEwAVQBEAEkATgBHACAAQgBVAFQAIABOAE8AVAAgAEwASQBNAEkAVABFAEQAIABUAE8AIABUAEgARQAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAEYAIABNAEUAUgBDAEgAQQBOAFQAQQBCAEkATABJAFQAWQAsACAARgBJAFQATgBFAFMAUwAgAEYATwBSACAAQQAgAFAAQQBSAFQASQBDAFUATABBAFIAIABQAFUAUgBQAE8AUwBFACAAQQBOAEQAIABOAE8ATgBJAE4ARgBSAEkATgBHAEUATQBFAE4AVAAuACAASQBOACAATgBPACAARQBWAEUATgBUACAAUwBIAEEATABMACAAVABIAEUAIABBAFUAVABIAE8AUgBTACAATwBSACAAQwBPAFAAWQBSAEkARwBIAFQAIABIAE8ATABEAEUAUgBTACAAQgBFACAATABJAEEAQgBMAEUAIABGAE8AUgAgAEEATgBZACAAQwBMAEEASQBNACwAIABEAEEATQBBAEcARQBTACAATwBSACAATwBUAEgARQBSACAATABJAEEAQgBJAEwASQBUAFkALAAgAFcASABFAFQASABFAFIAIABJAE4AIABBAE4AIABBAEMAVABJAE8ATgAgAE8ARgAgAEMATwBOAFQAUgBBAEMAVAAsACAAVABPAFIAVAAgAE8AUgAgAE8AVABIAEUAUgBXAEkAUwBFACwAIABBAFIASQBTAEkATgBHACAARgBSAE8ATQAsACAATwBVAFQAIABPAEYAIABPAFIAIABJAE4AIABDAE8ATgBOAEUAQwBUAEkATwBOACAAVwBJAFQASAAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACAATwBSACAAVABIAEUAIABVAFMARQAgAE8AUgAgAE8AVABIAEUAUgAgAEQARQBBAEwASQBOAEcAUwAgAEkATgAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC6pIDIwMTcgVGhlIE1vbm90eXBlIENvcnBvcmF0aW9uLiBBbGwgUmlnaHRzIFJlc2VydmVkLiANDUhlYnJldyBPcGVuVHlwZSBMYXlvdXQgbG9naWMgY29weXJpZ2h0IKkgMjAwMyAmIDIwMDcsIFJhbHBoIEhhbmNvY2sgJiBKb2huIEh1ZHNvbi4gVGhpcyBsYXlvdXQgbG9naWMgZm9yIEJpYmxpY2FsIEhlYnJldyBpcyBvcGVuIHNvdXJjZSBzb2Z0d2FyZSB1bmRlciB0aGUgTUlUIExpY2Vuc2U7IHNlZSBlbWJlZGRlZCBsaWNlbnNlIGRlc2NyaXB0aW9uIGZvciBkZXRhaWxzLkFyaWFsUmVndWxhck1vbm90eXBlOkFyaWFsIFJlZ3VsYXIgKE1pY3Jvc29mdClWZXJzaW9uIDcuMDBBcmlhbE1UQXJpYWwgaXMgYSB0cmFkZW1hcmsgb2YgVGhlIE1vbm90eXBlIENvcnBvcmF0aW9uLk1vbm90eXBlIFR5cGUgRHJhd2luZyBPZmZpY2UgLSBSb2JpbiBOaWNob2xhcywgUGF0cmljaWEgU2F1bmRlcnMgMTk4Mk1pY3Jvc29mdCBzdXBwbGllZCBmb250LiBZb3UgbWF5IHVzZSB0aGlzIGZvbnQgdG8gY3JlYXRlLCBkaXNwbGF5LCBhbmQgcHJpbnQgY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGxpY2Vuc2UgdGVybXMgb3IgdGVybXMgb2YgdXNlLCBvZiB0aGUgTWljcm9zb2Z0IHByb2R1Y3QsIHNlcnZpY2UsIG9yIGNvbnRlbnQgaW4gd2hpY2ggdGhpcyBmb250IHdhcyBpbmNsdWRlZC4gWW91IG1heSBvbmx5IChpKSBlbWJlZCB0aGlzIGZvbnQgaW4gY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGVtYmVkZGluZyByZXN0cmljdGlvbnMgaW5jbHVkZWQgaW4gdGhpcyBmb250OyBhbmQgKGlpKSB0ZW1wb3JhcmlseSBkb3dubG9hZCB0aGlzIGZvbnQgdG8gYSBwcmludGVyIG9yIG90aGVyIG91dHB1dCBkZXZpY2UgdG8gaGVscCBwcmludCBjb250ZW50LiBBbnkgb3RoZXIgdXNlIGlzIHByb2hpYml0ZWQuDQ1UaGUgZm9sbG93aW5nIGxpY2Vuc2UsIGJhc2VkIG9uIHRoZSBNSVQgbGljZW5zZSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSksIGFwcGxpZXMgdG8gdGhlIE9wZW5UeXBlIExheW91dCBsb2dpYyBmb3IgQmlibGljYWwgSGVicmV3INJMYXlvdXQgTG9naWPTIGFzIGpvaW50bHkgZGV2ZWxvcGVkIGJ5IFJhbHBoIEhhbmNvY2sgYW5kIEpvaG4gSHVkc29uLiANDVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIE9wZW5UeXBlIExheW91dCBsb2dpYyBmb3IgQmlibGljYWwgSGVicmV3IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSDSTGF5b3V0IExvZ2ljIFNvZnR3YXJl0yksIHRvIGRlYWwgaW4gdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0NVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTGF5b3V0IExvZ2ljIFNvZnR3YXJlLg0NVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICdBUyBJUycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgBOAG8AcgBtAGEAbABvAGIAeQENAGUAagBuAOkAbgBvAHIAbQBhAGwAUwB0AGEAbgBkAGEAcgBkA5oDsQO9A78DvQO5A7oDrACpACAAMgAwADEANwAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4AIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AIAANAAoADQAKAEgAZQBiAHIAZQB3ACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABjAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAAzACAAJgAgADIAMAAwADcALAAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIAAmACAASgBvAGgAbgAgAEgAdQBkAHMAbwBuAC4AIABUAGgAaQBzACAAbABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAaQBzACAAbwBwAGUAbgAgAHMAbwB1AHIAYwBlACAAcwBvAGYAdAB3AGEAcgBlACAAdQBuAGQAZQByACAAdABoAGUAIABNAEkAVAAgAEwAaQBjAGUAbgBzAGUAOwAgAHMAZQBlACAAZQBtAGIAZQBkAGQAZQBkACAAbABpAGMAZQBuAHMAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAZABlAHQAYQBpAGwAcwAuAEEAcgBpAGEAbAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4ATQBpAGMAcgBvAHMAbwBmAHQAIABzAHUAcABwAGwAaQBlAGQAIABmAG8AbgB0AC4AIABZAG8AdQAgAG0AYQB5ACAAdQBzAGUAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGMAcgBlAGEAdABlACwAIABkAGkAcwBwAGwAYQB5ACwAIABhAG4AZAAgAHAAcgBpAG4AdAAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAG8AcgAgAHQAZQByAG0AcwAgAG8AZgAgAHUAcwBlACwAIABvAGYAIAB0AGgAZQAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAcAByAG8AZAB1AGMAdAAsACAAcwBlAHIAdgBpAGMAZQAsACAAbwByACAAYwBvAG4AdABlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABpAHMAIABmAG8AbgB0ACAAdwBhAHMAIABpAG4AYwBsAHUAZABlAGQALgAgAFkAbwB1ACAAbQBhAHkAIABvAG4AbAB5ACAAKABpACkAIABlAG0AYgBlAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAGkAbgAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAZQBtAGIAZQBkAGQAaQBuAGcAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAHQAaABpAHMAIABmAG8AbgB0ADsAIABhAG4AZAAgACgAaQBpACkAIAB0AGUAbQBwAG8AcgBhAHIAaQBsAHkAIABkAG8AdwBuAGwAbwBhAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGEAIABwAHIAaQBuAHQAZQByACAAbwByACAAbwB0AGgAZQByACAAbwB1AHQAcAB1AHQAIABkAGUAdgBpAGMAZQAgAHQAbwAgAGgAZQBsAHAAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0AC4AIABBAG4AeQAgAG8AdABoAGUAcgAgAHUAcwBlACAAaQBzACAAcAByAG8AaABpAGIAaQB0AGUAZAAuAA0ACgANAAoAVABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAGwAaQBjAGUAbgBzAGUALAAgAGIAYQBzAGUAZAAgAG8AbgAgAHQAaABlACAATQBJAFQAIABsAGkAYwBlAG4AcwBlACAAKABoAHQAdABwADoALwAvAGUAbgAuAHcAaQBrAGkAcABlAGQAaQBhAC4AbwByAGcALwB3AGkAawBpAC8ATQBJAFQAXwBMAGkAYwBlAG4AcwBlACkALAAgAGEAcABwAGwAaQBlAHMAIAB0AG8AIAB0AGgAZQAgAE8AcABlAG4AVAB5AHAAZQAgAEwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAZgBvAHIAIABCAGkAYgBsAGkAYwBhAGwAIABIAGUAYgByAGUAdwAgIBwATABhAHkAbwB1AHQAIABMAG8AZwBpAGMgHQAgAGEAcwAgAGoAbwBpAG4AdABsAHkAIABkAGUAdgBlAGwAbwBwAGUAZAAgAGIAeQAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIABhAG4AZAAgAEoAbwBoAG4AIABIAHUAZABzAG8AbgAuACAADQAKAA0ACgBQAGUAcgBtAGkAcwBzAGkAbwBuACAAaQBzACAAaABlAHIAZQBiAHkAIABnAHIAYQBuAHQAZQBkACwAIABmAHIAZQBlACAAbwBmACAAYwBoAGEAcgBnAGUALAAgAHQAbwAgAGEAbgB5ACAAcABlAHIAcwBvAG4AIABvAGIAdABhAGkAbgBpAG4AZwAgAGEAIABjAG8AcAB5ACAAbwBmACAAdABoAGUAIABPAHAAZQBuAFQAeQBwAGUAIABMAGEAeQBvAHUAdAAgAGwAbwBnAGkAYwAgAGYAbwByACAAQgBpAGIAbABpAGMAYQBsACAASABlAGIAcgBlAHcAIABhAG4AZAAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIABkAG8AYwB1AG0AZQBuAHQAYQB0AGkAbwBuACAAZgBpAGwAZQBzACAAKAB0AGgAZQAgIBwATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUgHQApACwAIAB0AG8AIABkAGUAYQBsACAAaQBuACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaQB0AGgAbwB1AHQAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4ALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAdwBpAHQAaABvAHUAdAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AIAB0AGgAZQAgAHIAaQBnAGgAdABzACAAdABvACAAdQBzAGUALAAgAGMAbwBwAHkALAAgAG0AbwBkAGkAZgB5ACwAIABtAGUAcgBnAGUALAAgAHAAdQBiAGwAaQBzAGgALAAgAGQAaQBzAHQAcgBpAGIAdQB0AGUALAAgAHMAdQBiAGwAaQBjAGUAbgBzAGUALAAgAGEAbgBkAC8AbwByACAAcwBlAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAsACAAYQBuAGQAIAB0AG8AIABwAGUAcgBtAGkAdAAgAHAAZQByAHMAbwBuAHMAIAB0AG8AIAB3AGgAbwBtACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGYAdQByAG4AaQBzAGgAZQBkACAAdABvACAAZABvACAAcwBvACwAIABzAHUAYgBqAGUAYwB0ACAAdABvACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAGMAbwBuAGQAaQB0AGkAbwBuAHMAOgANAAoADQAKAFQAaABlACAAYQBiAG8AdgBlACAAYwBvAHAAeQByAGkAZwBoAHQAIABuAG8AdABpAGMAZQAgAGEAbgBkACAAdABoAGkAcwAgAHAAZQByAG0AaQBzAHMAaQBvAG4AIABuAG8AdABpAGMAZQAgAHMAaABhAGwAbAAgAGIAZQAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABvAHIAIABzAHUAYgBzAHQAYQBuAHQAaQBhAGwAIABwAG8AcgB0AGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlAC4ADQAKAA0ACgBUAEgARQAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFAAUgBPAFYASQBEAEUARAAgACcAQQBTACAASQBTACcALAAgAFcASQBUAEgATwBVAFQAIABXAEEAUgBSAEEATgBUAFkAIABPAEYAIABBAE4AWQAgAEsASQBOAEQALAAgAEUAWABQAFIARQBTAFMAIABPAFIAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEIAVQBUACAATgBPAFQAIABMAEkATQBJAFQARQBEACAAVABPACAAVABIAEUAIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBGACAATQBFAFIAQwBIAEEATgBUAEEAQgBJAEwASQBUAFkALAAgAEYASQBUAE4ARQBTAFMAIABGAE8AUgAgAEEAIABQAEEAUgBUAEkAQwBVAEwAQQBSACAAUABVAFIAUABPAFMARQAgAEEATgBEACAATgBPAE4ASQBOAEYAUgBJAE4ARwBFAE0ARQBOAFQALgAgAEkATgAgAE4ATwAgAEUAVgBFAE4AVAAgAFMASABBAEwATAAgAFQASABFACAAQQBVAFQASABPAFIAUwAgAE8AUgAgAEMATwBQAFkAUgBJAEcASABUACAASABPAEwARABFAFIAUwAgAEIARQAgAEwASQBBAEIATABFACAARgBPAFIAIABBAE4AWQAgAEMATABBAEkATQAsACAARABBAE0AQQBHAEUAUwAgAE8AUgAgAE8AVABIAEUAUgAgAEwASQBBAEIASQBMAEkAVABZACwAIABXAEgARQBUAEgARQBSACAASQBOACAAQQBOACAAQQBDAFQASQBPAE4AIABPAEYAIABDAE8ATgBUAFIAQQBDAFQALAAgAFQATwBSAFQAIABPAFIAIABPAFQASABFAFIAVwBJAFMARQAsACAAQQBSAEkAUwBJAE4ARwAgAEYAUgBPAE0ALAAgAE8AVQBUACAATwBGACAATwBSACAASQBOACAAQwBPAE4ATgBFAEMAVABJAE8ATgAgAFcASQBUAEgAIABUAEgARQAgAFMATwBGAFQAVwBBAFIARQAgAE8AUgAgAFQASABFACAAVQBTAEUAIABPAFIAIABPAFQASABFAFIAIABEAEUAQQBMAEkATgBHAFMAIABJAE4AIABUAEgARQAgAFMATwBGAFQAVwBBAFIARQAuAE4AbwByAG0AYQBhAGwAaQBOAG8AcgBtAOEAbABOAG8AcgBtAGEAbABl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AAAP9AAJAAEAAQAIAAEABAAA39AACQABAAEACAABAAQAAPdeAAkAAQACAAoAEgABAAgAAPq6AAEACAAA+uYACQABAAEACAABAAUAAPs+AAkAAQABAAgAAQAIAAECPgAJAAEAAQAIAAEABgABAlIACQABAAEACAABAAYAAQgMAAkAAAABAAgAAQAEAAEJogAJAAAAAQAIAAEABAABMOAACQAAAAEACAABAAQAATIQAAkAAAABAAgAAQAEAAE1EAAJAAAAAQAIAAEABAABSJgACQAAAAEACAABAAQAAUqMAAkAAAABAAgAAQAEAAFLygAJAgAAAQAIAAEABAABWMwACQEAAAEACAABAAYAAWk6AAkDAAABAAgAAQAGAAFs2AAJAAAAAQAIAAEAAQABbvYACQAAAAEACAABAAEAAXCAAAkAAAABAAgAAQABAAFxnAAJAAAABgASABoAIgAqADIAOgABAAgAAXdcAAEACAABd3YAAQAIAAF3kAABAAgAAXeqAAEACAABd8QAAQAIAAF33gAJAAAABQAQABgAIAAoADAAAQAIAAF36AABAAgAAXgEAAEACAABeCAAAQAIAAF4PAABAAgAAXhYAAkAAAAFABAAGAAgACgAMAABAAgAAXhkAAEACAABeIAAAQAIAAF4nAABAAgAAXi4AAEACAABeNQACQAAAAUAEAAYACAAKAAwAAEACAABeOAAAQAIAAF4/gABAAgAAXkcAAEACAABeToAAQAIAAF5WAAJAAAABQAQABgAIAAoADAAAQAIAAF5ZgABAAgAAXmEAAEACAABeaIAAQAIAAF5wAABAAgAAXneAAkAAAAFABAAGAAgACgAMAABAAgAAXnsAAEACAABegoAAQAIAAF6KAABAAgAAXpGAAEACAABemQACQAAAAQADgAWAB4AJgABAAgAAXp0AAEACAABepQAAQAIAAF6tAABAAgAAXrUAAkAAAAEAA4AFgAeACYAAQAIAAF65gABAAgAAXsGAAEACAABeyYAAQAIAAF7RgAJAAAABAAOABYAHgAmAAEACAABe1gAAQAIAAF7eAABAAgAAXuYAAEACAABe7gACQAAAAQADgAWAB4AJgABAAgAAXvKAAEACAABe+oAAQAIAAF8CgABAAgAAXwqAAkAAQABAAgAAQAEAAF8QgAJAAEAAQAIAAEABAABfOAACQABAAEACAABAAgAAYL6AAkAAQADAAwAFAAcAAEACAABgyoAAQAIAAGDWgABAAgAAYOQAAkAAQABAAgAAQAEAAGDvgAJAAEABAAOABYAHgAmAAEACAABhT4AAQAIAAGFVAABAAgAAYWgAAEACAABhe4ACQABABgANgA+AEYATgBWAF4AZgBuAHYAfgCGAI4AlgCeAKYArgC2AL4AxgDOANYA3gDmAO4AAQAIAAGGCAABAAgAAYYwAAEACAABhk4AAQAIAAGGogABAAgAAYbAAAEACAABhxQAAQAIAAGHKgABAAgAAYeIAAEACAABh+gAAQAIAAGISgABAAgAAYieAAEACAABiPQAAQAIAAGJSgABAAgAAYmiAAEACAABifoAAQAIAAGKVAABAAgAAYqoAAEACAABiv4AAQAIAAGLVAABAAgAAYusAAEACAABjAQAAQAIAAGMXgABAAgAAYyqAAEACAABjPgACQABACIASgBSAFoAYgBqAHIAegCCAIoAkgCaAKIAqgCyALoAwgDKANIA2gDiAOoA8gD6AQIBCgESARoBIgEqATIBOgFCAUoBUgABAAgAAYz+AAEACAABjXIAAQAIAAGOHAABAAgAAY7IAAEACAABjxQAAQAIAAGPlgABAAgAAZAaAAEACAABkFQAAQAIAAGQxAABAAgAAZE2AAEACAABkXgAAQAIAAGR8AABAAgAAZJqAAEACAABkqwAAQAIAAGTJAABAAgAAZOeAAEACAABlEgAAQAIAAGU9AABAAgAAZWiAAEACAABliQAAQAIAAGWqAABAAgAAZcuAAEACAABl54AAQAIAAGYEAABAAgAAZiEAAEACAABmP4AAQAIAAGZegABAAgAAZn4AAEACAABmnAAAQAIAAGa6gABAAgAAZtmAAEACAABm94AAQAIAAGcWAABAAgAAZzUAAkAAQABAAgAAQAEAAGc4gAJAAEAAQAIAAEACAABpnoACQABAAwAHgAmAC4ANgA+AEYATgBWAF4AZgBuAHYAAQAIAAGmpgABAAgAAabmAAEACAABp1wAAQAIAAGn1AABAAgAAafsAAEACAABqDoAAQAIAAGoigABAAgAAaiiAAEACAABqPAAAQAIAAGpQAABAAgAAalYAAEACAABqaYACQABAAMADAAUABwAAQAIAAGp6gABAAgAAapEAAEACAABqnYACQABAAsAHAAkACwANAA8AEQATABUAFwAZABsAAEACAABqowAAQAIAAGqzAABAAgAAatUAAEACAABq94AAQAIAAGsZAABAAgAAazsAAEACAABrXYAAQAIAAGtvAABAAgAAa5KAAEACAABrtoAAQAIAAGvIAAJAAEABAAOABYAHgAmAAEACAABr1gAAQAIAAGvoAABAAgAAbAwAAEACAABsMIACQABADsAfACEAIwAlACcAKQArAC0ALwAxADMANQA3ADkAOwA9AD8AQQBDAEUARwBJAEsATQBPAFEAUwBVAFcAWQBbAF0AXwBhAGMAZQBnAGkAawBtAG8AcQBzAHUAdwB5AHsAfQB/AIEAgwCFAIcAiQCLAI0AjwCRAJMAAEACAABsNoAAQAIAAGxfgABAAgAAbIsAAEACAABswYAAQAIAAGz4AABAAgAAbS8AAEACAABtZgAAQAIAAG2dgABAAgAAbdaAAEACAABuD4AAQAIAAG5JAABAAgAAboKAAEACAABuvIAAQAIAAG7bgABAAgAAbv0AAEACAABvKYAAQAIAAG9WAABAAgAAb4MAAEACAABvsAAAQAIAAG/dgABAAgAAcAyAAEACAABwO4AAQAIAAHBrAABAAgAAcJqAAEACAABwyoAAQAIAAHDnAABAAgAAcQOAAEACAABxIoAAQAIAAHFBgABAAgAAcWuAAEACAABxlYAAQAIAAHHAAABAAgAAceqAAEACAAByFYAAQAIAAHI/gABAAgAAcmmAAEACAABylAAAQAIAAHK+gABAAgAAcumAAEACAABzFgAAQAIAAHNCgABAAgAAc28AAEACAABznAAAQAIAAHO5AABAAgAAc+WAAEACAAB0EgAAQAIAAHQ/AABAAgAAdGwAAEACAAB0hoAAQAIAAHSjgABAAgAAdMuAAEACAAB084AAQAIAAHUcAABAAgAAdUSAAEACAAB1bYAAQAIAAHWYAABAAgAAdcKAAEACAAB17YAAQAIAAHYYgAJAAEAAQAIAAEABAAB2QgACQABAAEACAABAAgAAdxgAAkAAQABAAgAAQAIAAHccgAJAAEAAQAIAAEACAAB3IoACQAAAAEACAABAAYAAdygAAkAAQABAAgAAQAGAAHdGAAJAAEAAQAIAAEABgAB3m4ACQABAAMADAAUABwAAQAIAAHfbgABAAgAAd+cAAEACAAB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/48AAP+P/4//j//b/9sAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAA/2j/aP+0/2gAAAAAAAAAAAAAAAAAAAAAAAAAAP/b/9v/2wAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/7T/aAAAAAD/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HQAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/10AAP90AAAAAAAAAAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/2j/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+0AAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2j/aP9oAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAP74AAAAAAAAAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aAAA/6YAAAAAAAAAAP8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/b/9v/2//bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/2//b/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/x3/jwAA/x3/Hf9o/9sAAAAAAAAAAP8d/x3/HQAA/7QAAAAA/7T/Hf+0AAD/j/+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+L/4v/b/x3/tP9o/9v/ugAAAAAAAAAA/7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9E/48AAP+0/7T/aAAAAAAAAAAAAAD/aAAA/48AAP/bAAAAAP+0AAD/tAAAAAD/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/7T/aAAA/9gAAAAAAAAAAP+SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j//bAAD/2//b/7QAAAAAAAAAAAAA/7QAAP/bAAAAAAAAAAD/2wAA/9sAAAAA/+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tP/u/7QAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/vj/RAAA/4//e/9oAAAAAAAAAAAAAP9oAAD/RAAA/7T/aP9EAAAAAP+P/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7r/xAAA/0QAAP9o/5z/pgAAAAAAAAAA/2r/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/aP+0/2gAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9EAAAAAAAAAAP/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/agAA/zgAAAAAAAAAAP8GAAAAAP9qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2oAAP84AAAAAAAAAAD/BgAAAAD/agAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/40AAAAAAAAAAAAAAAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+6/8QAAP9EAAD/aP+c/6YAAAAAAAAAAP9q/5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAD/vP+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2j/aP9gAAAAAP+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/aP9o/2gAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/b/9v/2//bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/i/+L/2/8d/7T/aP/b/7oAAAAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKT/RP9E/0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/qAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RP/OAAAAAAAAAAD/zgBaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/2//bAAD/vgAA/74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAA/74AAAAAAAAAAP++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/FAAAAAAAA/74AAP++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/FAAAAAAAAAAAAAAAAAAD/vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ZAAAAAAAAAAAAAP/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/j/+MAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAP/jAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pgAAAAAAAAAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tP/u/7QAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/V/8UAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2gAAP9oAAAAAAAAAAD/2wAAAAAAAAAAAAAAAP/bAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9X/aP9o/8UAAAAAAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1QAAAAD/vgAAAAAAAAAA/74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/43/jf9GAAAAAAAA/0YAAACq/2j/aP9oAAAAAP+eAAAAAP9o/7QAAAAAAAD/aAAA/7QAAP9oAAAAAAAAAAAAAAAAAAAAYv9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/jQAAAAD/jQAA/54AUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9EAAP/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/RAAAAAAAAAAD/0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aAAAAAD/1f/FAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9oAAD/aAAAAAAAAAAA/9sAAAAAAAAAAAAAAAD/2wAAAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/V/2j/aP/FAAAAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4n/aAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1f9o/2j/xQAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/B/4//5//nAAAAAP/nAAAAAAAAAAAAAAAAAAAAAAAA/+cAAAAAAAAAAP/nAAD/5wAAAAAAAAAA/+cAAAAAAAAAAP/nAAD/5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9oAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/V/2j/aP/FAAAAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/1f/bAAD/vgAA/74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAA/74AAAAAAAAAAP++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAP76AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2j/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/54AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/x8AAAAA/x//HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/2/8fAAD/HwAA/x8AAAC8/2j/aP9oAAAAAP/bAAD/HwAAAAD/Tv9OAAD/agAA/7QAAP9q/48AAAAA/1D/j/9qAAAAvP8f/04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/2wAAAAAAAAAA/9sAWgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAAAAP76/0YAAP+P/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+N/43/RgAAAAAAAP9GAAAAvP9o/2j/aAAAAAD/ngAAAAD/aP+0AAD/ngAA/2gAAP+0AAD/aAAAAAAAAAAAAAAAAAAAAHn/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/40AAAAA/40AAP+eAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7L/sgAAAAD/sgAAAAAAAAAAAAAAAAAAAAAAAP+yAAAAAAAAAAAAAAAA/9kAAAAAAAAAAAAAAAAAAAAAAAD/sgAA/7IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/43/jf9GAAAAAAAA/0YAAACq/2j/aP9oAAAAAP+eAAAAAP9o/7QAAAAAAAD/aAAA/7QAAP9oAAAAAAAAAAAAAAAAAAAAYv9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/jQAAAAD/jQAA/54AUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/d/+0AAD/qv93AAAAAAAAAAAAAAAAAAAAAAAA/3f/2wAAAAD/qgAA/9v/nv/bAAAAAP+qAAAAAAAAAAAAAP93AAD/dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/n/+cAAAAA/+cAAAAAAAAAAAAAAAAAAAAAAAD/5wAAAAAAAAAA/+cAAP/nAAAAAAAAAAD/5//nAAAAAAAA/+cAAP/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4f/hAAAAAP/bAAAAAAAAAAAAAAAAAAAAAAAA/+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+H/0f/PAAAAAP/hAAD/4f/PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8n/yQAAAAD/yQAAAAAAAAAAAAAAAAAAAAAAAP/JAAAAAAAAAAD/yQAAAAAAAAAAAAAAAP/J/8kAAAAAAAAAAAAA/8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yf/JAAAAAP/JAAAAAAAAAAAAAAAAAAAAAAAA/8kAAAAAAAAAAP/JAAAAAAAAAAAAAAAAAAD/yQAAAAAAAP/JAAD/yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAA/wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3f/dwAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jQAAAAAAAAAA/3cAAP93AAD/0wAAAAAAAAAA/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/k/9MAAAAAAAAAAP/T/+7/0wAA/+kAAP+//+7/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zP/0wAA/9MAAAAA/9MAAAAAAAAAAAAAAAAAAAAA/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP93AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8z/9MAAP/TAAAAAP/TAAAAAAAAAAAAAAAAAAAAAP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF//pAAAAAAAAAAAAAAAtAAAAAP/p/7oAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAAAAAAAAAA/7wAAP93AAD/0/+8AAAAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAD/6QAtAAD/0//p/9P/YP+m/7wAAP9gAAD/0wAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/T/+kAFwAAAAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9g/9MAAP/pAAAAAABE/6YAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MAAAAA/+kAAAAA/+kAAP/p/6T/0f/p/9P/pP+8/+n/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pP/pAAAAAAAAAAAAAP/RAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+8/9P/0/+8/+kAAP+8AAD/vP93/7z/vP+m/6T/jQAA/7wAAAAAAAAAAP/pAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAA/7z/6QAA/+n/vAAAAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5X/6QAAAAAAAAAAAAD/vAAAAAAAAP/p/6b/0wAA/+kAAAAAAAAAAP8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP93/3cAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/d/93AAD/0/+N/9H/jQAA/6QAAAAAAAAAAAAAAAAAAP+8/40AAP+NAAD/d/93AAAAAP+NAAAAAP+N/43/jf93/40AAAAA/3cAAAAAAAAAAP+NAAD/dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/40AAAAAAAAAAP93AAD/dwAA/9MAAAAAAAAAAP+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF//TAAD/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAFwAAAAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAA/9MAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAD/0wAA/+kAFwAtAAAAAAAAAC0AAAAAABcAAAAAAAAAAP/nAAAAAAAAAAAAAAAAAAAAAP/pAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX/+kAAAAAAAAAAAAAAC0AAAAA/+n/ugAAAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAA/+kAAP/p/9P/6f/pAAD/0wAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/lf/pAAAAAAAAAAAAAP+8AAAAAAAA/+n/pv/TAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAP/pAAD/6QAAABf/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf/6QAAAAAAAAAAAAAALQAAAAD/6f+6AAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAD/6QAAAAAAAAAXAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAFwAAABcAAAAXAAAAAP/pAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/T/9P/0wAA/+kAAAAAAAAAAAAA/9MAAP+k/9MAAAAA/9MAAAAAAAAAAP/TAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/93/6QAAAAAAAAAA/6QAAP/T/+f/6QAA/6T/0wAA/9MAAAAAAAAAAP59AAAAAP/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/d/93/+n/0/+N/+n/0wAA/+n/pP/T/+n/pAAAAAAAAP/T/7wAAAAAAAD/YP+mAAAAAAAAAAAAAAAAAAAAAP+mAAAAAAAAAAAAAAAAAAAAAAAA/9P/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/W/+kAAP/pAAAAAP93/9MAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9P/0wAA/+n/vP/p/9MAAAAA/7z/vAAA/43/vP+6/+kAAAAXAAAAAAAAAAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5P/TAAAAAAAAAAD/0//u/9MAAP/pAAD/v//u/+wAAAAAAAAAAAAA/x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6b/pgAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+8/7wAF//p/9MAAP+kAAAAAAAAAAD/vAAAAAAAAAAA/9P/pAAA/6YAAAAA/40AAAAA/6YAAP+m/6T/pgAA/2D/jf+NAAD/jQAA/6YAAAAA/6YAAP+NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pAAAAAAAAAAA/7wAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAP7wAAAAAP/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+m/6QAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/d/+kAAD/0/+8AAD/vAAAAAAAAAAA/7wAAAAAAAD/0//TAAD/0/+N/6T/YP93/7z/jf+k/7z/pP93/6T/pP93/6T/dwAAAAAAAP+kAAAAAAAAAAD/dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7wAAAAAAAAAAP+8AAD/dwAA/9P/vAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9P/vAAAAAD/vAAAAAAAAAAA/43/pAAAAAD/0wAAAAD/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5wAAAAAAAAAAAAD/vP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/TAAAAAP+8AAD/vAAAAAD/vAAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAD/0wAA/7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAA/9MAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zP/0wAA/9MAAAAA/9MAAAAAAAAAAAAAAAAAAAAA/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0//T/7z/6f+6/9P/0wAA/9P/MwAAAAD/pP9gAAD/6f+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8z/9MAAP/TAAAAAP/TAAAAAAAAAAAAAAAAAAAAAP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vP/n/+n/vAAAAAAAAAAAAAAAAAAA/7oAAAAAAAD/0wAAAAAAAAAA/7wAAAAXAAAAAAAAAAD/vP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3f/pAAAAAAAAAAD/pAAA/9P/5//pAAD/pP/TAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+8/6b/0wAA/6QAAP/pAAD/6f+NAAAAAP+k/7wAAAAAAAAAAAAAAAAAAP+kAAAAAAAAAAAAAAAA/6T/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/93/6QAAAAAAAAAA/6QAAP/T/+f/6QAA/6T/0wAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAP/T/+kAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/RAAAAAAAA/6T/6f/p/9MAAAAAAAD/pP/TAAAAAAAA/+kAAP/T/+n/vP+8/7wAAP/p/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6f/pAAAAAP/p/+n/6f/pAAAAAAAA/9H/6QAA/+kAAP/p/9P/0//pAAD/pP+8AAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MAAAAAAAD/pP/TAAD/6QAAAAAAAP/TAAAAAP/TAAD/0wAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAP/TAAD/6f/TAAAAAAAA/7wAAAAAAAAAAAAA/7z/6QAA/9P/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAA/+kALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAA/9P/6QAA/+kAAAAAAAD/6QAAAAD/6QAA/+kAAP/p/+kAAP+8/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAtAAAAAAAAABcAAAAXAAAAAAAAABcAAAAAABcAAAAXABcAFwAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/TAAD/6f/pAAAAAAAA/9MAAAAAAAAAAAAA/9P/6QAA/+n/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0QAAAAD/6QAAAAAAAP+6AAAAAAAAAAAAAP/T/+kAAP/p/9MAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAAP/pAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAP+8/+kARAAAAAAAAAAA/9MAAAAA/+kAAP/pAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAFwAAAAD/vP/pABcAAAAAAAAAAP/T/+kAAP/n/+n/6QAAAAD/6QAAAAAAAAAA/+n/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+kAAAAA/9MAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAD/0//pAAAAAP/TAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6f/pAAAAAAAA/+kAAP/pAAAAAAAAAAAAAAAA/+kAAP/p/+kAAP/pAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAD/6QAAAAAAAAAAAAAAAP/pAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAD/6QAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2AAAAAAAAD/dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0wAXAAD/6QAAAAAAAP/TAAAAAAAXAAAAAP/TAAAAAP/pAAAAAAAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MAAP/pAAAAAAAAAAD/0//pAAAAAAAAAAD/0wAAAAD/6f/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8GAAAAAP/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9g/2AAAAAA/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAA/+MAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8T/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j/9o/2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4b/aP+0/2gAAAAA/4YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAA/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+0/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/2j/aAAAAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3wAAAAAAAAAAAAAAAD/fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/x3/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8d/4//jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+G/9v/nAAAAAAAAAAA/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9E/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RP+P/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aAAA/+IAAAAAAAAAAP9qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j//bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4//2//bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7QAAP/iAAAAAAAAAAD/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/vj/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP74/0T/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAD/4gAAAAAAAAAA/2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zv/OAAD/dAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4//aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1f9o/2j/xf/OAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1QAAAAD/vgAAAAAAAAAA/74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP76AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD++gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP/bAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vr/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP76/0b/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/jQAAAAAAAAAA/54AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/FAAAAAAAAAAAAAAAAAAD/vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAA/vr/RgAA/4//jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP76/0b/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/jQAAAAD/jQAA/54AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9MAAAAAAAAAAAAAAAA/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Bv/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wb/0//TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+1AAD/0QAA/5L/xwAA/3cAAP/T/8QAAAAAAAD/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9r/0wAAAAAAAAAA/9P/vP/xAAD/6QAA/7UAAP+6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0z/0wAA/9MAAAAA/9P/uv/T/7wAAAAAAAAAAP9q/7wAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9CAAAAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF//TAAAAAAAAAAAAAAAXAAAAAP/p/7oAAAAAAC0AAAAAAAAAAAAA/vD/6QAA/9P/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7w/+n/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vP/iAAAAAP/E/9YAAP93AAD/0/+8AAAAAAAA/9MAAAAA/40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9g/9MAAAAAAAAAAABE/6YAAAAA/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pP/pAAAAAAAAAAAAAP/RAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6n/vAAAAAAAAAAA/9P/6f/k/9P/+P/p/6b/0/+N/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAD/0wAA/7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/of/pAAAAAAAAAAD/0//T/7z/0//pAAD/pAAA/+L/0wAAAAAAAAAA/n0AAAAA/9P/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP59AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+r/6QAA/+kAAAAA/8f/0wAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAP8d/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Hf/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6QAAAAAAAAAAP/nAAAAAAAA/+kAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jQAAAAAAAAAAAAD/vP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAP8G/9MAAP/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Bv/T/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBDAADAA0AFAAkACkALwAzADUANwA5ADoAPABJAFUAWQBaAFwAYgBjAJ8ArACtALMAtQC2ALoAxADGAMgA4ADpAOsBAgEEAQ0BDwERARkBGwEfASEBKwEsAS0BLwEyATMBlgG5AcMBxwHRAdMB1gHdAd8B4QHjAeUB8QH1AfYB9wH5AfsCAAIBAgUCBwIIAgkCCgIMAg0CDwIXAhkCGwIcAh8CIAIhAiQCJgIpAisCLAIuAi8CMQI0AjUCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJkAmUCZgJoAmoCawJsAm0CbgJvAnACcwJ2AncCeAKGAogCjA11DXYNiQ2ODZQNmA2aDZwNng2fDaENpQ2qDasNrA2tDa4Nrw3DDcQNxQ3GDeAN4Q3iDeMN6w3sDe0N8w30DfUN9g39Df4N/w4ADgEOAg4DDgcOCg4MDg0OEQ4TDhQOGA4aDhwOHQ4eDiAOIQ4iDiYOJw4oDioOKw4sDi0OLg4vDjEOMw40DjUONg43DjkOOg47DjwOPQ4+Dj8OQA5DDkcOSQ5KDksOTA5NDk4OTw5SDlMOVQ5WDlcOWQ5nDmgOaQ5qDmsObA5tDm4Obw5wDnEOcg5zDnQOdQ52DncOeA55DnoOew58AAIA4AADAAMAAQANAA0AAgAUABQAAwAkACQABAApACkABQAvAC8ABgAzADMABwA1ADUACAA3ADcACQA5ADkACgA6ADoACwA8ADwADABJAEkADQBVAFUADgBZAFkADwBaAFoAEABcAFwADwBiAGMAEQCfAJ8AEgCsAK0AEQCzALMAEwC1ALUAFAC2ALYAFQC6ALoAFgDEAMQAFwDGAMYAEQDIAMgAEQDgAOAAGADpAOkAFgDrAOsAGQECAQIAEQEEAQQAEQENAQ0AGgEPAQ8AGgERAREAGAEZARkAGwEbARsAGwEfAR8AHAEhASEAHAErASsAHQEsASwAHgEtAS0AHwEvAS8AIAEyATIAIQEzATMAIAGWAZYAEQG5AbkAGgHDAcMAGwHHAccAIgHRAdEAIwHTAdMAFgHWAdYAEQHdAd0AIwHfAd8AIwHhAeEAIwHjAeMAFgHlAeUAJAHxAfEAJQH1AfUAJgH2AfYAJwH3AfcAKAH5AfkAKQH7AfsAKgIAAgAAKwIBAgEALAIFAgUALQIHAgcALgIIAggALwIJAgkAMAIKAgoAMQIMAgwAMgINAg0AKAIPAg8AMwIXAhcANAIZAhkANQIbAhsANgIcAhwANwIfAh8AOAIgAiAAIAIhAiEAOQIkAiQAOgImAiYAIAIpAikAIAIrAisAIAIsAiwAOwIuAi4APAIvAi8APQIxAjEAPgI0AjQAPwI1AjUAQAI3AjcAQQI4AjgAQgI5AjkAPgI6AjoAQwI7AjsARAI8AjwARQI9Aj0ARgI+Aj4ARwI/Aj8ASAJAAkAASQJBAkEASgJCAkMAPgJEAkQASwJFAkUATAJGAkYATQJHAkcAPgJIAkgATgJJAkkAPgJKAkoATwJLAksAUAJMAkwAUQJNAk0AUgJOAk4AUwJPAk8AVAJQAlAAVQJRAlIAPgJTAlMAVgJUAlQAVwJVAlUAPgJWAlYAWAJXAlcAWQJYAlgAWgJZAlkAPgJaAloAWwJbAlsAXAJcAlwAXQJdAl0AXgJeAl4AXwJfAl8AYAJgAmAAYQJhAmEAYgJkAmQAYwJlAmUAZAJmAmYAZQJoAmgAZgJqAmoAZwJrAmsAaAJsAmwAaQJtAm0AagJuAm4AawJvAm8AbAJwAnAAbQJzAnMAbgJ2AnYAbwJ3AncAcAJ4AngAcQKGAoYAcgKIAogAcwKMAowAdA11DXUAdQ12DXYAdg2JDYkAdw2ODY4AeA2UDZQAeQ2YDZgAeg2aDZoAGw2cDZwAew2eDZ4AfA2fDZ8AfQ2hDaEAfg2lDaUAfw2qDa8Adw3DDcMAfg3EDcYAdw3gDeEAeQ3iDeIAgA3jDeMAfw3rDe0AGw3zDfYAew39DgAAfQ4BDgMAfg4HDgcAdw4KDgoAgQ4MDgwAgg4NDg0AgQ4RDhEAgw4TDhMAhA4UDhQAgQ4YDhgAgw4aDhoAhQ4cDhwAhg4dDh0Ahw4eDh4AiA4gDiAAiQ4hDiEAEg4iDiIAgQ4mDiYAgw4nDicAig4oDigAEg4qDioAig4rDisAOw4sDiwAiw4tDi0AjA4uDi4AjQ4vDi8Ajg4xDjEAjw4zDjQAkA41DjUAkQ42DjYAkg43DjcAkw45DjkAlA46DjoAlQ47DjsAlg48DjwAjA49Dj0Alw4+Dj4AOw4/Dj8Akg5ADkAAlg5DDkMAkg5HDkcAmA5JDkkAmQ5KDkoAjQ5LDksAmg5MDkwAkw5NDk0Amw5ODk4AnA5PDk8Alw5SDlIAlw5TDlMAkA5VDlUAkA5WDlcAmA5ZDlkAnQ5nDnEAdQ5yDnwAdgACAOgAAwADAAEABQAFAAIACgAKAAIADQANAAMADwAPAAQAEAAQAAUAEQARAAQAFAAUAAYAHQAdAAcAHgAeAAgAJAAkAAkAMgAyAAoANwA3AAsAOQA5AAwAOgA6AA0APAA8AA4ARABEAA8ARgBGABAASABIABEASQBJABIATABMABMAUgBSABEAUwBTABQAVABUABUAVQBVABYAVgBWABcAWABYABgAWQBZABkAWgBaABoAXABcABsAqQCpABwAqgCqAB0AqwCrAB4AsQCxAB8AsgCyACAAtAC0AAIAtQC1ACEAtgC2ACIAugC6ACMA6QDpACMBHwEfACQBIQEhACQBLAEsACUBLQEtACYBLgEuACcBLwEvACgBMAEwACkBMQExACcBMgEyACoBMwEzACsB0wHTACMB4wHjACMB8QHxACwB+AH4AC0B+QH5AC4B+wH7AC8CAQIBADACBQIFACUCCQIJADECCgIKADICDQINADMCDwIPADQCEAIQADUCEQIRACkCEgISADYCEwITADcCFAIUADgCFgIWADkCFwIXADoCGAIYADsCGQIZADwCGgIaAD0CGwIbADYCHAIcAD4CHQIdAD8CHgIeAEACHwIfAEECIAIgACcCIgIiAEICIwIjAEMCJAIkAEQCJQIlAEUCJgImAEYCJwInAEcCKAIoADgCKQIpAEgCKgIqAEkCKwIrAEYCLQItAEoCNgI2AEoCOgI6AEsCPgI+AEwCQAJAAE0CQQJBAE4CRQJFAE8CRgJGAFACSAJIAFECSQJJAFICSwJLAFMCTAJMAFQCTQJNAFUCTgJOAFYCTwJPAFcCUQJRAFgCVAJUAFkCVwJXAFoCWQJZAFsCWgJaAFwCWwJbAF0CXAJcAF4CXQJdAF8CXgJeAGACXwJfAGECYAJgAGICYQJhAGMCYgJiAGQCYwJjAGUCZAJkAGYCZQJlAGcCZgJmAGgCZwJnAGkCaAJoAGoCaQJpAGYCagJqAGsCawJrAGwCbAJsAG0CbQJtAG4CbgJuAG8CbwJvAHACcAJwAF8CcQJxAHECcgJyAF8CcwJzAGYCdAJ0AHICdQJ2AHMCdwJ3AHQCeAJ4AGQCeQJ5AHUCjAKMACoNdQ11AHYNdg12AHcNfA18AHgNfQ19AHkNgQ2BAHkNgw2DAHoNiQ2JAHsNiw2LAHwNjw2PAHwNkg2SAH0Nlw2XAHwNmQ2ZAHwNnA2cAH4Nng2eAH8Nnw2fAIANoQ2hAIENow2jAIINpA2kAHwNpg2mAIMNqg2vAHsNsA2wAHwNug2+AHwNww3DAIENxA3GAHsNxw3KAHwN0g3VAHwN3g3eAH0N6A3qAHwN8w31AH4N9g32AIQN/Q4AAIAOAQ4DAIEOBw4HAHsOCA4IAIIOCQ4JAIMOCg4KAIUODQ4NAIUOEQ4RAIYOFA4UAIUOGA4YAIYOHA4cAIcOHQ4dAIgOHg4eAIkOIA4gAIoOIQ4hAIsOIg4iAIUOJQ4lAIwOJg4mAIYOJw4nAI0OKA4oAIsOKQ4pAIwOKg4qAI0OLA4sAI4OLg4uAI8OLw4vAJAOMA4wAJEOMQ4xAJIOMg4yAJMOMw4zAJQONA40AJEONQ41AI4ONw43AJUOOA44AJEOOQ45AJYOOg48AJEOPQ49AJQOPg4+AJEOPw4/AJcOQA5AAJgOQQ5BAJEOQw5DAJEORA5EAJQORQ5GAJEORw5HAI8OSA5JAJEOSg5KAI8OSw5LAI4OTA5MAJUOTQ5NAJkOTg5OAJoOTw5PAJEOUA5QAJsOUQ5SAJEOUw5TAJwOVA5VAJEOVg5WAJgOVw5XAJEOWA5YAJ0OWQ5ZAJEOZw5xAHYOcg58AHcOrQ6tAHkOuQ68AHoAAQAMAIgAAgEQArIAAgAUAvEC+AAAAxIDEgAIA0cDSwAJBTMFNAAOBTgFOwAQBkUGSwAUBk4GUwAbBlYGVwAhBlkGWwAjC6gLrwAmC/sMAAAuDVcNXgA0DyIPJgA8Dz8PPwBBD9AP1QBCD9wP6gBIEAQQBABXEHsQewBYEJUQlQBZEYYRkwBaAAIAFgLvAvAAAAMfAyIAAgMnAzYABgOBA/QAFgUoBSwAigU8BjsAjwY+BkMBjwZcBmcBlQZpBmkBoQZrBmwBogZyBnMBpAuxC7gBpgwCDG8Brg7fDxgCHA8nDz4CVg+mD88Cbg//D/8CmBBoEGsCmRBtEHoCnRCNEJQCqxFlEYICsxGUEZQC0QBoAAAM7AAADPIAAQz4AAAM/gAADQQAAQ0KAAANEAAADRYAAA0QAAANEAAADRwAAA0QAAANEAAADSIAAA0oAAANLgAADTQAAA06AAENQAAADUYAAA1MAAANTAAADVIAAA1MAAANWAAADVgAAA1eAAANZAAADWQAAA1eAAANagABDXAAAA1kAAANXgAADV4AAQ12AAANXgABDXwAAA2CAAANiAAADY4AAA2UAAANmgABDaAAAA2mAAANrAAADawAAA2yAAANsgABDbgAAA2mAAANsgAADPIAAA06AAANOgAADToAAA06AAANOgABDUAAAQ1AAAANvgAADcQAAA3KAAAN0AABDdYAAQ3cAAANdgAADXYAAQ12AAANdgAADXYAAQ3iAAANdgAADegAAQ3uAAAN9AAADXYAAA12AAENdgAADXYAAA12AAENdgABDXYAAA12AAANdgAADXYAAA3oAAAN+gAADgAAAQ12AAANdgAADXYAAA12AAANdgAADXYAAQ4GAAANdgAADXYAAA12AAANdgAADXYAAA12AAANdgAADXYC0gxqDHAMdgx8DIIMiAyCDIgMjgyUDI4MlAyaDKAMpgygDKwMsgysDLIMuAy+DLgMvgzEDMoM0AzKDNYM3AzWDNwM4gzKDOIMygzoDNwM6AzcDO4M9Az6DQANBg0MDRINGA0eDQwNJA0YDSoNMA0qDTANNg08DUINSA1ODPQNVA0ADVoNYA1aDWANNg0MDUINGAyCDWYMgg1mDI4NbAyODWwNcg14DX4NhA2KDZANig2QDZYNYA2WDWANnA2QDZwNkA2iDWANog1gDJoMoAymDKAMrA2oDKwNqAyaDKAMpgygDKwNrgysDa4NtAygDbQMoA26Da4Nug2uDcANxg3ADcYNzA3GDcwNxg3SDL4N0gy+DdgMvg3YDL4N3g3kDd4N5A3qDNwN6g3wDd4N5A3eDeQN9gzcDfYN8A38DeQN/A3kDgIOCA4CDggN/A3kDfwN5A4ODggODg4IDhQOGg4UDhoOFA4aDhQOGg4UDhoOFA4aDhQOGg4UDhoOIA4mDiwOMg44DNwOPgzcDkQOJg5KDjIOUAzcDlYM3A5cDmIOXA5iDmgNYA5uDnQOeg6ADnoOgA6GDWAOjA50DpIOmA6SDpgOngzcDp4M3A6kDqoOpA6qDrAOdA6wDnQOtg68DrYOvA7CDsgOwg7IDs4O1A7ODtQO2g1gDtoNYA7gDuYO7A2EDvIO+A7+DwQPCg0wDwoNMAzuDPQM+g0ADO4PEAz6DxYMjg8cDI4PHAyCDZAMjg1gDyINYA8oDnQPLg6ADzQNDA86DRgPQA0MD0YNGA02D0wNQg9SDTYNDA1CDRgPWA0wD1gNMA9eDTAPXg0wD2QM9A9qDQAPcA2QD3ANkA92DWAPdg1gD3wNkA98DZAPgg1gD4INYAyCD4gMgg+IDI4PjgyOD44Nig+UDYoPlA2WD5oNlg+aD3wNkA98DZAPoA1gD6ANYA98DZAPfA2QD6ANYA+gDWAMgg+mDIIPpgyOD6wMjg+sD7IMoA+yDKAPuA2uD7gNrg++DKAPvgygD8QNrg/EDa4MmgygDKYMoAysD8oMrA/QDJoMoAymDKAMrA/WDKwP1g/cDKAP3AygD8QNrg/EDa4MmgygDKYMoAysD+IMrA/iD+gP7g/oD+4NwA/0DcAP9A3AD/oNwA/6D+gQAA/oEAAQBg3GEAYNxg3AEAwNwBAMEBINxhASDcYQGBAeEBgQHhAkECoQJBAqEDAMvhAwDL4QNgy+EDYMvg3SEDwN0hA8DdIQQg3SEEIN0hBIDdIQSA3SEEIN0hBCEE4MvhBODL4QVAy+EFQMvg3eDeQN3g3kEFoQYBBaEGAN3g3kDd4N5A3qEGYN6hBmDd4N5A3eDeQQbBBmEGwQZg38DeQN/A3kDgIQcg4CEHIN/A3kDfwN5BB4DggQeA4IDhQOGg4UDhoQfg4mEIQOMhCKDNwQkAzcDlwOYg5cDmIOXA5iDyIQlg8oEJYOXA5iDlwOYhCcEJYQnBCWDlwOYg5cDmIQog1gEKIOdA5cDmIOXA5iDyIQqA8oEK4OXA5iDlwOYhC0DWAQtA50ELoOgBC6DoAQwA6AEMAOgBDGEMwQxhDMENIQ2BDSENgMxAzKDNAMyg6eDNwOngzcEN4OmBDeDpgQ5AzcEOQM3BDqDpgQ6g6YEPAM3BDwDNwOkhD2DpIQ9g6eEPwOnhD8DOIMyhECDMoM6AzcDOgM3BEIDMoRDgzKERQM3BEUDNwM4hEaEQIRGgzoESAM6BEmDOIRLBECESwM6BEyDOgROBEIDMoRDgzKDzQM3A80DNwOpA6qDqQOqhE+DnQRPg50DqQOqg6kDqoRRA50EUQOdA6kDqoOpA6qEUQOdBFEDnQOpBFKDqQRSg6wEKgOsBCoDs4RUA7OEVAO2g1sDtoNbBFWDtQRVg7UEVwO1BFcDtQOzhFiDs4RYg7aD5oO2g+aEWgO1BFoDtQNtAygDbQMoA26EW4NuhFuEXQRehGADYQRhhGMEZIRjBGYEYwPCg0wDwoNMA8KDTAPCg0wEZ4NMBGeDTARpA0wEaQNMBGqDTARqg0wEbANMBGwDTARtg0wEbYNMBG8DTARvA0wDO4M9BHCEcgRzgz0EdQNABHaDxwR2g8cEeANMBHgDTAR5hHsDPoR8hHmEfgM+hHyEf4SBBIKEhASFhIEEhwSEA3eDeQN3g3kEGwQYBBsEGAN/A3kDfwN5A4OEiIODhIiEigOJg20DjIOUBIuDlYSNA62EjoSQBJGEkwSUhJYDMoSXgzKEmQNxhJkDcYQNgy+EDYMvhJqDvgScA8EEmoO+BJwDwQMghJ2DIISdgyOEnwMjhJ8DZwNZg2cDWYNog1sDaINbAyCDIgMggyIDI4SggyOEoINigyIDYoMiA2WEoINlhKCEogSjhKIEo4O2hKUDtoSlAyCEpoMghKaDI4SoAyOEqASpg2QEqYNkBHaDWAR2g1gEqwMoBKsDKASsg2uErINrgyaDKAMpgygDKwRbgysEW4P6BK4D+gSuA3AEr4NwBK+DdIMvg3SDL4N3g3kDd4N5BBsDNwQbA3wEsQOJhLKDjIS0AzcEtYM3BLcDiYS4g4yEIoM3BCQDNwQfg4mEuIOMhLoDNwQkAzcDlwOYg5cDmIPIhLuDygRJg5cDmIOXA5iDyIQrg8oEKgS9AzKEvoMyhDkDNwQ5AzcElgMyhJeDMoTAAzcEwAM3AzEEwYM0BMGDp4TDA6eExITGA68ExgOvBMeDsgTHg7IDrYTJA62EyQOwhMqDsITKg7OEzAOzhMwDtoSlA7aEpQTNg7UEzYO1BM8DWATPA1gE0IO1BNCDtQTSA1gE0gNYA6kDqoOpA6qDrAOdA6wDnQTTgy+E04MvhBODL4QTgy+Dd4N5A3eDeQTVAzcE1QN8AyaDKAMpgygDKwTWgysE1oMmgygDKYMoAysD+IMrA/iDd4N5A3eDeQTYAzcE2AM3BNmDL4TZgy+E2wMoBNsDKATcg2uE3INrhN4DQwTfhOEE4oNDBOQE4QR5gz0E5YNABOcE6ITnBOiEeYM9BOoDQATrhOiE64TohHmE7QM+hO6DI4TwAyOE8ATxg0w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AAAE4gAB//EAwwAB/6AELgABAPsEIgABAPoFeAABAQQFFAABAPoAXwABAJsAlgAB/+IAAAABAAAALQABAAD/8QABAAAASwABAAAD7QABADwAPAABAAAArQABBBoF3AABBH4AjAABAu4G1gABArwAjAABAPoD1AABAPoAjAABAyAGGAABA4QASwABAOYGkAABAcIAGQABA4QGGAABA7YAlgABAUoAfQABAKAHCAABAOYGIgABAfT/JAABAVT/JAABAKAHJgABALQHJgABAa7/OAABAUr/OAABA4QGQAABA4QGkAABA2YHbAABA1IHbAABAyAHJgABAz4HHAABArwHJgABAtoHJgABA1L+mAABAUoAGQABA+j+mAABBZEGIgABBdwAjAABBGUAjAABAu4AjAABCS4D6AABB2z+ogABBxwETAABBXj/BgABBOIGhgABA1L/BgABAV4FAAABASz/agABBEwEnAABAvMEgwABA3AGGAABA9QASwABAOYGhgABAhIAGQABA7YGGAABBAYAlgABA44GGAABA+gAlgABA3AGLAABA3AASwABAOYGLAABA3AAlgABAV4AfQABAwIEgwABBpAGCwABBvQAjAABBKYF8AABBQoAjAABAxYG1gABAwwAjAABBKYFKAABAxYE4gADAAEAGgABABIAAAABAAAAQAABAAIC9w1XAAEAAw7CEAURlgABAAwAvgABAWoCyAABAFcC8QLyAvQC9QL3AvgDEgNHA0gDSQNKA0sFMwU0BTgFOQU7BkUGRgZHBkgGSQZKBksGTgZPBlAGUQZTBlYGVwZaC6gLqQuqC6sLrAuuC68L+wv8C/0L/wwADVcNWA1ZDVoNWw1cDyIPIw8kDyUP0A/RD9MP1A/WD9cP2A/cD90P3w/gD+EP4w/kD+cP6A/pD+oQBBB7EYYRhxGIEYkRihGMEY0RjhGPEZARkRGSEZMAAQBUAvEC8gL0AvUC9wL4AxIDRwNIA0kDSgNLBTMFNAU4BTkFOwZFBkYGRwZIBkkGSgZLBk4GTwZQBlEGUwZWBlcGWguoC6kLqgurC6wLrguvC/sL/Av9C/8MAA1XDVgNWQ1aDVsNXA8iDyMPJA8lD9AP0Q/TD9QP3A/dD98P4A/hD+MP5A/nD+gP6Q/qEAQQexGGEYcRiBGJEYoRjBGNEY4RjxGQEZERkhGTAFcAAAIIAAACDgAAAhQAAAIaAAACIAAAAiYAAAIgAAACIAAAAiwAAAIgAAACIAAAAjIAAAI4AAACPgAAAkQAAAJKAAACUAAAAlYAAAJWAAACXAAAAlYAAAJiAAACYgAAAmgAAAJuAAACbgAAAmgAAAJ0AAACbgAAAmgAAAJoAAACaAAAAnoAAAKAAAAChgAAAowAAAKSAAACmAAAAp4AAAKeAAACpAAAAqQAAAKYAAACpAAAAg4AAAJKAAACSgAAAkoAAAJKAAACSgAAAqoAAAKwAAACtgAAArwAAALCAAACwgAAAsIAAALCAAACyAAAAsgAAALIAAACwgAAAs4AAALUAAACwgAAAsIAAALCAAACwgAAAsIAAALCAAACwgAAAs4AAALaAAAC4AAAAsIAAALCAAACwgAAAsIAAALCAAACwgAAAsIAAALCAAACwgAAAsIAAALCAAACwgAAAsIAVAGIAY4BiAGUAZoBoAGmAawBsgG4Ab4BxAHKAdAB1gHcAeIB6AHuAfQB+gIAAgYCDAISAhICGAIeAUYCJAIAAioCMAIwAjYCPAIAAkICSAJOAlQBIgJCAkgCWgJgAmYCbAJsAnICeAJ+AoQCigKQApYClgKcAqICqAKuArQCugKWAsACwALAAsACxgLMAtIC2AKoAt4C5ALqAvAC9gL2AvYC9gL2ArQC/AABAP8FFAABAQ4E+wABAPoFjAABAQ4FFAABAP8E7AABAMME2AABAPAFFAABAPUFFAABAR0EGgABANIGJwABANIFggABAOEF+gABAB4EZQABADwEOAABACgEOAABABQEOAABAAAEOAABAAAELgABAAAEZQABAAAGLAABAAAGGAABAAAFSwABAAAE+wABAAAFoAABAAAE7AABAAAFFAABAAAE4gAB/6AELgABAPsEIgABAPoFeAABAQQFFAABAAAAAAABAAD/7AABAAAALQABAAAASwABAAAD7QABADwAPAABAQQGVAABAQQGkAABAQQG1gABAQQGQAABANwGcgABAOYHYgABAPAH0AABAQQHhQABAQQG6gABAQQHqAABAQQHIQABAPoGuAABAQQHbAABAPAGWQABAPAHbAABAAAG4AABAJYGuAABAKAHbAABAAAFuQABADIHCAABAAAHCAABAAAFjAABAAAGWQABAAAFRgABAAAFtAABAAAGuAABAAAGDgABAAAF3AABAAAHngABAAAHbAABAAAHhQABAAAG1gABAAAGVAABAAAFyAABAAAGIgABAMgHYgABAMgH5AABAMgIegABAMgIhAABALQIXAAB/4wHWAABAOEG6gABANwGSgABAPAGmgABAAAA+gABAAABkAABAAACMAABAAABLAABAAAB9AABAAACJgABAAABXgABAAABVAABAAABuAABAAAB4AABAAAFZAABAHgCSQABAAADAgABAAADBwABAAAC7gABAAADUgABAAACsgABAAACTgABAAABQAABAAwAPgABAGoAyAABABcC8wL2BToGUgZZBlsLrQv+DV0NXg8mDz8P0g/VD9kP2g/bD94P4g/lD+YQlRGLAAEAFALzAvYFOgZSBlkGWwutC/4NXQ1eDyYPPw/SD9UP3g/iD+UP5hCVEYsAFwAAAIgAAACOAAAAlAAAAJoAAACgAAAApgAAAKwAAACyAAAAlAAAAJQAAAC4AAAAvgAAAKAAAADEAAAAoAAAAKAAAACgAAAAygAAAKAAAACgAAAAoAAAAKAAAADQABQAeAB+AIQAigCQAJYAnACiAKgArgC0ALoAwADGAMwAzADGAMYA0gDYAAEA8AAjAAEA8ABfAAEAwwCWAAH/4gBLAAEAAAAAAAEAAAC0AAEAAACWAAH/8QDDAAEA+gBfAAEAmwCWAAH/4gAAAAEAAP/xAAEAAACtAAEA+v6iAAEA+v9qAAEA+v7UAAEAAP4+AAEAAP40AAEAAP5wAAEAAP4MAAEAAP8aAAEA+v6EAAEA+v3uAAEA8P+wAAEAuf9MAAEAAP7UAAEAAP5IAAEAAP6sAAEAAP3uAAEAAPyuAAEADABwAAMBpgNYAAIAEAR0BHQAAAR6BHoAAQSSBJMAAgSVBJUABAhCCFgABQhaCF4AHAhhCGMAIQhmCHAAJAh2CHwALwh/CIsANgiQCJwAQwjvCPIAUAspCzAAVAvqC+wAXAzEDMcAXw0RDRkAYwACADMAJAA9AAAARABdABoAYgCBADQAiQCJAFQAkACRAFUAoAChAFcApgCmAFkArACwAFoAuQC6AF8AxgDVAGEA4ADlAHEA5wDsAHcA9gD/AH0BAgEqAIcBigGMALABlgHVALMB3QHkAPMEagRtAPsEpASnAP8EvATBAQMEzATTAQkE6ATrAREE9gUDARUFJAUlASMGiga8ASUGwAbBAVgGwwbDAVoGyAbRAVsG1wcGAWUHCQcXAZUHHQceAaQHIQd/AaYJfwmGAgUJiQmSAg0JlwmaAhcJnQmsAhsJrwnKAisJ0wnaAkcJ3Qn2Ak8J+woUAmkLCQsJAoMLDgsPAoQLEgsXAoYL3wvoAowMcAyeApYM9Q0CAsUNGw0bAtMNHQ0jAtQNKg0qAtsNLQ0tAtwPbw9vAt0AbAAAEugAABLuAAAS9AAAEvoAAhMAAAATBgAAEwwAABMSAAATGAAAEwYAABMeAAATJAAAEyoAABMGAAATMAAAEzAAABM2AAATGAAAEzwAABNCAAATQgAAE0IAARNIAAITTgACE1QAAhNaAAITVAAAE2AAAhNmAAITbAACE2wAAhNsAAITcgACE3gAAhN+AAITfgACE2wAAhOEAAITigACE04AAhNOAAITkAACE5AAAhOWAAITcgACE5wAAhOiAAITqAACE64AAhOEAAITigAAEzAAABMwAAATtAAAE7oAABNIAAATwAACE04AABMGAAITogACE2wAAhNsAAATxgAAE8wAABO6AAIT0gACE2wAABPYAAAT2AAAE9gAABPYAAAT2AAAE9gAABPYAAAT2AAAE9gAABPYAAAT2AAAE9gAABPYAAAT3gAAE+QAABPkAAAT5AAAE+oAABPwAAATPAACE/YAAhP8AAIT/AACE/wAABQCAAIT9gACE/YAABQIAAATwAAAE8AAAhP2AAAUDgAAFA4AABQOAAAUDgAAFA4AABQOAAAUDgACE/YAABQUAAIT9gLeEmgSbhJ0EnoSgBKGEowSkhKYEp4SpBKqErASthK8Ep4SwhJ0EsgSpBLOEtQSpBLaEuAS5hLsEvIS+BL+EtQSpBK8EwQTChMQEvgTFhMcEtQTIhLaEsgSpBMoEp4SthMuEzQSpBM6ErASthNAErASgBMuEnoSthNGEtQTTBLaErATUhNYE14TZBNqE3ASpBN2ErATUhN8E4ITiBKGE44TlBOaE6ATChOaE6YTrBOaE7ISgBO4E74TxBPKE9AT1hPcE6YT4hPoE+4TChO4E/QT+hQAFAYT+hQMFBITChO4FBgUHhQkFCoUMBQ2FDwUQhO4FEgUQhOaE74UThPoE6YUVBRaFGAUZhQAFGwUchR4FH4UhBSKE6YUThO4FJAUlhScFKIUMBSoFJAUThScFJAUrhS0FLoUwBTGFMwU0hNYFMwU2BNYEowSkhTeFOQU6hK8FPAU9hLaFPwVAhMoFPAVCBLaE6AVDhOaE6AVDhOaE6AVDhOaE+4VFBOaE6AVFBOaFRoVDhOaE6YTrBUgE+4VJhPKE+4VJhPKE+4VJhPKE+4VJhPKFSwVMhSKFTgVPhPcEuAVRBVKEuAVUBLsFVYVXBO4FWIVaBOaFWIVaBOaFWIVaBOaFWIVaBOaFWIVaBOaFBIVbhV0FBIVbhO4FWIVbhO4E7IVbhO4E+4VXBPKEqQVehWAEsgVhhMoE6wVjBWSFZgVXBWeEvgVpBWqFbAVthNYFbwVwhNYFPwVyBMoEoAVzhXUFdoV4BXmFewVXBXyFfgV/hMuFgQWChNYFhAU6hK8FbAVthNYFhYU6hYcFhAU6hK8FiIWKBYuFjQWKBY6FkAWRhY6FkwWUhZYFl4VyBMoFl4VyBMoFl4VyBMoFmQWahLaFmQWcBLaFmQWahLaFnYWfBLsE+4SbhaCFAYT0BaIFo4WlBN2FpoWoBScFqYU6hWeE7IVJhasEp4SthKqE+4VXBayFOQWuBN8FewVXBXyEp4WvhMuE+4VXBbEFsoW0BMcFVYW1hbcFjQW4hLsEmgSthboFLoTrBbuFvQW+hcAFwYXDBOaFxIW+hcAFxgXDBOaFwYSthceFOQXJBN2E+4VFBaCFyoXMBc2FzwUrhdCF0gVyBKqF04SpBKGEp4SpBK8F1QXWhdgFzwXZhdCF2wXchK8FVYVbhceF3gXfhaCF4QXihQkF5AXlhaCE/QSaBQkF5ATChaCFBgWmhQkFmQV/hLaFVYVJhOaF5wV/hLaF6IXqBOaF64XtBMoE+4XuhOaFOQV/hcAFSwXwBfGFbAV/hcAF8wVRBfSFbAU6hfYF94X5BasF+oSkhfwF/YX/BgCGAgU6hKGF/YYDhgUGBoV/hLaGCAYJhPKGBoV/hLaFBIYLBPKFbAU6hgyGDgYPhasFbAU6hgyGEQYPhasEowYShKqGFAYVhhcGGIYaBMuFbwVwhfYGG4VbhceGHQV/hKYE+4XqBceGHoYgBKYE+4XqBceGIYYjBK8E+4VFBPKFmQYjBK8FWIVFBPKGJIYjBK8GJgVFBPKGJ4XtBMcGKQVbhiqGLAV/hMcFVYW1hiqEsgYthi8GMIYJhiqGMgV/hLaGM4Y1BO4GNoYthLaE+4Y4BO4GOYY7BYuGPIY+BLsFkAY/hLsGPIVRBLsFkAZBBLsGPIVUBLsGQoWmhWqE/QZEBkWGRwZIhkoGS4ZNBk6GUAYthlGE+4ZTBlSGVgTxBO4EwQTChdCE/QZEBleGNoYthlkFDwZahiqEowTUhNAFDwUlhiqFPwV/hMoGG4XqBOaFl4V/hMoGG4ZcBOaGXYSpBlGGXwZghmIFgQU6hK8F94VDhmOEwQSpBKGF/YZlBSKGZoV/hLaFBIZcBO4GaAV/hLaFBIVbhO4GBoV/hLaFWIVaBO4GaYYthlkGawUThiqGbIZuBXmGb4ZxBLaGcoV/hJ0F94ZcBnQFSwZ1hQkGbIZ3BNqGeIZ6BSoGbIZ7hNqGeIZ9BSoGbIZ3BNqGeIZ6BSoGcoZ+hMuFewUlhnQEsgaABMoFEgaBhOaEtQaDBNAFEgYaBPKGhISbhoYGh4TlBokFgQSbhJ0GioaMBo2E9YaPBpCE74TxBpIFhAaPBK8Gk4aVBPKFhAaPBK8FVYTxBPKGloaYBpmGmwachQkGngZEBp+E/QahBqKEsgSpBqQE74UQhqWFl4SpBqcGk4aohayGqgTTBquE74Urhq0GZoTTBNAGk4auhPKGXYYthrAGsYazBUgGcoTUhJ0GtIauhUgGcoTUhJ0FewUrhUgFgQa2BfYFwYVFBreGloa5BpmGuoa8BfGFl4a9hMoFWIVXBPKGBoa/BNAFBIVXBPKEowbAhcAE74UrhPKE+4bCBceGeIYthLOGw4TIhKqFpobFBMQGw4bGhKqGyAbJhO4E9YbLBYcGzIbOBKYGz4bRBOaEp4bLBfYEsgbShMcG1AbVhKqEnobJhPKE74UThtcEmgbYhKqEnobaBgyEp4bbht0G3obgBMcGw4bhhuMG5IbmBueFAYT0BukG6obsBLsG7YZ+hN2GKQbvBO4E/QYUBfGFpobkhvCG8gbzhueEtQYthcAG9QT4hvaEsgb4BMoEvgb5hMoG+wb8hO4Eowb+BKYEnobvBiqGXYaPBv+E3ASthMuFLoUchScHAQSthN2HAoXkBlSF/YTphwQEwQTIhKGE9AS1BwWEwQTIhwcG7YbShcAHCITUhwoHC4cNBw6FWIaDBxAGw4SkhxGFLoUrhxMEp4SkhxSF+oSthboFBIbvBO4GoQcWBxeE74T4hxkHGoccBx2HHwcghyIHI4clByaE2QcoBymHKwcshy4HL4S+BzEHMoc0BzWHNwc4hzoHO4c9Bz6E74dABPKHQYdDB0SHRgVjB0eEsgYShMcE6YT4hiqGJ4dJBMcE7IW1hiqHSoa/BK8HTAdNh08EsgdQhi8E74UQh1IFl4dThi8FWIVXB1IF0gdVB1aFBIdYBiqFBgdZh1sHXIdeBx2HX4cgh2EHYoclB2QHZYa9hMcFVYW1hiqG1AdnBcAEp4Sth2iF0ga/BYcFVYVFBOaHSodqBJ0FpoVFBayFgQdqBJ0FwYVFBayF0gdrhYcFBIVXBPKGcodrhYcE+4VXBPKGloWRhVKGPIa8BYuGloWRhVKGPIVMhpmGZoa9hMoGKQdtBOaFl4a9hMoE+4dtBPKF0gduhNAFB4dwB3GFhAduhNAE9AdwBQAGJIdzBNAFBIVXBPKGZodzBNAFBIVXBPKEwQdrh3SF/YbPh3YE7ISbhlSFnwd3h3kHeoYgB3wHfYd/BO4G1ASpBdgHgISgBWeHggSbhPKGw4Skh4OFLoUrh4UFgQa2BJ0FwYVFBreE9YSkh4aE74TxB1IFl4a9hMoFWIVaBPKHiAeJhMuF94VFBUgG9QYaBreE6YeLB4yHjgT4h4yEnoT4hPKHj4Urh5EGawUrhceHkoSgB1IE+4Z+hPKE74eUBPKE74eVhPKHlweYh5oHj4eYh5uHj4Urh5uHnQUrh56FnYegB6GE+4bLBiqFEgejBiqFEgUrhOaHpIT4h6YHp4epBNGE74T4hiqEnoT4hPKEnoT4h6qE/QUkBQkHrAahBQkHrAahBQkE/oSeh62E/oSeh62FAYWmh68EnoewhvaHsgezh7UHsgezh7aHsgezh7gG9QT4hlSHjgT4hlSE74dABPKFEgT4hOaHuYe7BMcGYIe8hMoGG4S+BzEGoQe+B7+GRASnh7+GoQb7B8EFGAfCh8QFGAfCh68FGAfChQAHxYfHBkoE6YUrhPKE74YaBmOFJAfIh8oE/oSsB8uHzQS1B86H0AT0BwWEwQfRh9MGuofNB9SFH4fNB9ME6YejBO4HxwfWB4yHnQUrhmOHnQd3hmOFKIfXhSoHkobkhmOGVgT4hmOFLoUrhbuFLoUrh9kE6YYaB9qFEgYaB9qHzQbkhkoGKQSbhPKGRASyBkoFDwfIh9wEsgVhhMoHnQfdhmOFJAfIh98H4IfiBPKE6YUTh+OHggSjB9MFJAfIhnQHlwflB+aFVYZ+hiqGRATXhkoFWIY4BPKHUIfoB+mEqQfrB+yH7gfvh/EG5IfiBueH8of0BlSEm4f1h/cEm4f4h/oEsgf7hcAEowf9BNAFpobvBasH/obvCAAGhISbiAGIAwTlCASHSoSgBNGF+oTChPKGdYSgBoYIBgTCiAeEwQSgCAkE+4TCiAqFgQSpBJ0GKQSgCAAE3ASpCAwGKQSgCA2E3ASpCA8FWISgCA2GXYSpCBCFVYSgB9wE3ASpBdgFBISgB9qE3AStiBIFEgTxCASE3ASthdgFEgTxCASF0gSwhJ0IE4T1hPcFl4Z+iBUFBIT4h9qGBoSpBNAF3gTChPKG1ASpCBaHggTCiBgHeoSpBNAIGYTChPKG1ASpCBsHggTCiByG1ASpCB4HggTCh9wGQoS5hmIE/QT+h8QFhASpBMuIH4TCh08E9YSpBrAE+4TChq0E9YSpCCEE+4TChokEnoTCiByE/QUHhqKIIoTCiCQIJYSaCCcEnoTCiCQE/QUHiCiEnoTCiCoE/QUHh8QIK4bziC0ILogwBWSIK4gxiC0ILogzBWSILog0iDYIN4g5CDYHeoZ+hNAFVYTxBayG1AZ+iDqFDwTxBqWG1AZ+iBaFDwTxBpIG1AZ+h4aFDwTxB9wFbAg8BMuF5AUQhvaFbAg8BMuF5AUQhvaGcoSpBfYIPYfChQAGUASpCD8IQIfCiEIGUASpCBsIQIfCiEOFbAhFBK8G7ATrCEaEmghFCA8ISATrCEmFbAhFCEsITIbkiEaFbAhFCEsITIbkiEaFbAhFCE4G7ATrCE+HSohRBNGFjQXBiFKEwQhRCFQEuAgDCFWEwQhRCFQEuAgDCFcEwQhRCFiEuAgDB68G1AbLCFoE6YUlh6qG1AbLCB4E6YUlhiqG1AbLCB4E6YUliFuGcoZ+hfYGEQfIhxMGXYZ+hrAIXQfIiF6GbITZBNqGeIhgBSoGUwTZCGGFKIhgCGMGcoTIhfYGEQV2h08GcoTIhfYGEQV2h08GcoTUhJ0FewV2hUgF0gSthMuFewV2hxMEp4StiGSGsYV2iGYEp4StiFQGsYV2iGeFVYbkhpIFjQhpCGqIbAhthSoIbwhwhUgGiohyBreIc4h1BQAIdoh4CHmIewh8hQkIfgh8iH+FVYbvBdgFAYWmhmIFDwUQhboF/YbPhSKIgQfiBi8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AAED/AOiAAEG4AOiAAEDrAQoAAEBbgQmAAEEBgOiAAED6gQmAAEDUgOiAAEDGAOrAAEDIAOiAAEDhAOiAAEEgAPYAAEBOwQoAAEBLAQoAAEF8QQoAAED0gQoAAEELAQoAAECcQQoAAEADAAeAAIBDAEqAAEABwiNCI4IjwsxCzILMwvtAAIAJwAkAD0AAABEAF0AGgBiAIEANACJAIkAVACQAJEAVQCgAKEAVwCmAKYAWQCsALAAWgC5ALoAXwDGANUAYQDgAOUAcQDnAOwAdwD2AP8AfQECASoAhwGKAYwAsAGWAdUAswHdAeQA8wRqBG0A+wSkBQMA/wUkBSUBXwaKBrwBYQbABsMBlAbIBtEBmAbXBwYBogcJBxcB0gcdBx4B4QchB38B4wl/ChQCQgsJCwkC2AsOCw8C2QsSCxcC2wvfC+gC4QxwDJ4C6wz1DQIDGg0bDRsDKA0dDSMDKQ0qDSoDMA0tDS0DMQ9vD28DMgAHAAAM7AAADPIAAQz4AAAM/gAADQQAAQ0KAAENEAMzDPgM/gz4DP4NBA0KDQQNCgz4DP4NEA0WDRwNIg0EDQoNKA0uDTQNOgz4DP4NQA1GDUwNUg0EDQoNHA0iDPgM/g0cDSINBA0KDPgM/g0QDRYNBA0KDPgM/g1YDV4M+Az+DPgM/g0QDRYNQA1GDUANRg00DToNQA1GDUANRg0oDS4NQA1GDUANRg1kDWoNZA1qDTQNOg1kDWoNTA1SDUANRg1ADUYNQA1GDUANRg1wDXYNNA06DSgNLg1ADUYNNA06DQQNCg00DToNNA06DTQNOg18DP4NfAz+DQQNCgz4DP4Ngg0KDYgNIg2CDQoNQA1GDUANRg1ADUYNQA1GDUANRg1ADUYNNA06DUANRg1ADUYNQA1GDUANRg0oDS4NKA0uDSgNLg0oDS4NQA1GDUANRg1ADUYNQA1GDUANRg1ADUYNQA1GDUANRg1ADUYNQA1GDRANFg2ODZQNHA0iDZoNoA0QDRYNQA1GDXwM/g18DP4NiA0iDY4NlA1YDV4NNA06DPgM/g18DP4NfAz+DXwM/g18DP4NfAz+DaYNLg2mDS4Npg0uDaYNLg2IDSINiA0iDYgNIg2CDQoNgg0KDYINCg0oDS4NQA1GDWQNag18DP4NNA06DawNFg00DToNBA0KDUANRg18DP4NNA06DPgM/g1ADUYNiA0iDUANRg0oDS4Nsg24DTQNOg0EDQoNNA06DYINCg00DToNQA1GDPgM/g1ADUYM+Az+DUANRg2CDQoNvg3EDQQNCgz4DP4NQA1GDXwM/g1ADUYNyg1GDWQNag1ADUYN0A3WDUANRg3cDeINgg0KDUANRg2CDQoNQA1GDYgNIg1ADUYNgg0KDXANdg2CDQoNcA12DXwM/g00DToNEA0WDSgNLg2sDRYN6A3uDYINCg1ADUYNgg0KDUANRg2sDRYNNA06DawNFg00DToN9A36DgAOBg4MDhIM+Az+DUANRg2CDQoNNA06DYINCg00DToM+Az+DUANRg18DP4NQA1GDXwM/g1ADUYNiA0iDUANRg2IDSINQA1GDRwNIg1ADUYNgg0KDcoNRg0EDQoNQA1GDSgNLg0oDS4NKA0uDSgNLg2mDS4NKA0uDSgNLg1kDWoNNA06DWQNagz4DP4NNA06DTQNOg1ADUYNZA1qDQQNCg1ADUYOGA4eDUANRg0cDSINQA1GDRwNIg1ADUYNBA0KDXANdg18DP4NNA06DRANFg0oDS4Ngg0KDUANRg0EDQoNQA1GDYINCg1ADUYNBA0KDUANRg1YDV4NBA0KDXwM/g00DToNZA1qDiQNXg0EDQoOJA1eDQQNCg4kDV4NBA0KDXwM/g00DToOKg4wDjYOPA5CDkgOTg5UDPgM/g1ADUYNfAz+DUANRg18DP4NQA1GDXwM/g1ADUYNfAz+DUANRg18DP4Nyg1GDXwM/g1ADUYNfAz+DUANRg18DP4NQA1GDXwM/g3KDUYNfAz+DcoNRg18DP4NQA1GDXwM/g1ADUYNfAz+DUANRg18DP4NQA1GDXwM/g1ADUYNfAz+DUANRg18DP4NQA1GDXwM/g3KDUYNfAz+DUANRg2mDS4NZA1qDSgNLg1kDWoNHA0iDUANRg2IDSINQA1GDYgNIg1ADUYNiA0iDUANRg2IDSINQA1GDYgNIg3KDUYNiA0iDUANRg5aDjAONg48DloOMA42DjwOWg4wDjYOPA5aDjAONg48DioOMA42DjwNBA0KDUANRg2CDQoNQA1GDmAOSA5ODlQOYA5IDk4OVA5gDkgOTg5UDmAOSA5ODlQOYA5IDk4OVAz4DP4NNA06DXwM/g00DToNfAz+DTQNOg18DP4NQA1GDaYNLg1kDWoNiA0iDUANRg2CDQoNQA1GDmYObA1ADUYNQA1GDnIOeA5+DoQNQA1GDn4OhA1ADUYNBA0KDQQNCg00DToNBA0KDooOkA5+DoQNQA1GDpYOnAz4DP4ODA4SDRANFg0cDSIOog6oDq4OtA1kDWoNKA0uDPgM/g00DToNZA1qDTQNOg66DsANBA0KDUANRg0cDSIOxg7MDtIM/g7YDt4NQA1GDPgM/gz4DP4NNA06DuQO6g7wDvYNKA0uDRANFg0oDS4NEA0WDvwPAg0EDQoPCA8ODTQNOg0QDRYNNA06DRANFg0QDRYNQA1GDxQPGg8gDyYNQA1GDywPMg84Dz4PRA9KD1APVg1MDVIPXA9iDzgPPg9oD24PdA96DUANRg+ADZQNmg2gDRwNIg1ADUYNiA0iDUANRg18DP4Phg06DRwNIg1ADUYNiA0iDUANRg2sDRYPjA+SDWQNag+YDzIPOA8+D0QPSg2IDSINQA1GD54PpA7kDuoNgg0KDUANRg18DP4NQA1GDXwM/g1ADUYNfAz+DUANRg18DP4NQA1GDaYNLg0oDS4Npg0uDSgNLg2IDSINQA1GDYgNIg1ADUYNgg0KDXANdg2CDQoNcA12DYINCg1ADUYNgg0KDUANRg0QDRYNKA0uD4wPkg+qD7ANgg0KDcoNRg+2D7wPwg/ID84P1A0QDRYNNA06DXwM/g1ADUYM+Az+DUANRg2IDSINQA1GDXwM/g00DToNQA1GDUANRg1ADUYNQA1GDTQNOg00DToNQA1GDUANRg1ADUYP2g/gDxQPGg8UDxoP5g/sD/IP+A0oDS4NQA1GDUANRg/+EAQQChAQEBYQHA1ADUYNQA1GDUANRg1kDWoNZA1qDWQNahAiECgQLhA0DWQNahA6EEANTA1SDUwNUg1MDVINQA1GDUANRhBGEEwNQA1GEFIQWBBeEGQQahBwDXANdg1wDXYNcA12DXANdg1wDXYNcA12DXANdhB2EHwQdhB8DTQNOg1kDWoQghCIDWQNahCOEJQNKA0uDSgNLg1ADUYQmhCgEKYQrA00DToNBA0KDTQNOhCyELgNNA06EL4QfA+MD5IPjA+SDTQNOg00DToNNA06DTQNOg0cDSIQxBDKD/IP+A/+EAQQ0BDWENwQ4g00DToQ6BDuDUANRg00DToNNA06EPQQ+hEAEQYRDBESERgRHhEkESoRMBE2ETwRQhFIEU4RVBFaEWARZhFsEXIM+Az+DUANRg18DP4NQA1GDPgM/g1ADUYM+Az+DUANRg2CDQoNNA06DYINCg1ADUYNBA0KDUANRg0EDQoNQA1GDQQNCg1ADUYNBA0KDUANRg18DP4NQA1GDXwM/g1ADUYM+Az+DUANRgz4DP4NQA1GDXwM/g1ADUYNrA0WDaYNLg2IDSINQA1GDYINCg1ADUYNBA0KDUANRg2CDQoNyg1GDQQNCg1ADUYNBA0KDUANRg0oDS4NZA1qDaYNLg2mDS4NfAz+D4YNOgz4DP4NNA06DPgM/g00DToNQA1GDWQNag3KDUYReA1qDUANRg1kDWoNQA1GDWQNahF+DVINTA1SEX4NUg1MDVINTA1SDUwNUg2CDQoNQA1GDQQNCg1ADUYNBA0KDUANRg0EDQoNQA1GDYgNIg1ADUYNiA0iDcoNRg2IDSINQA1GDYgNIg1ADUYNfAz+DUANRg18DP4NQA1GDYINCg1wDXYNBA0KDXANdg2CDQoNcA12DQQNCg1wDXYNfAz+DTQNOgz4DP4NNA06DXwM/g+GDToNfAz+D4YNOg18DP4NNA06DawNFg0oDS4NEA0WDSgNLg0QDRYNKA0uDRANFg0oDS4NBA0KDUANRg0EDQoNQA1GDQQNCg1ADUYNgg0KDUANRg2CDQoNyg1GDXwM/g00DToM+Az+DTQNOg4kDV4NBA0KDVgNXg0EDQoNfAz+DTQNOg18DP4NNA06DXwM/g00DToNrA0WDTQNOg0QDRYNNA06DRANFg00DToNQA1GDSgNLg0EDQoNNA06DUANRhF4DWoRhBGKDWQNag1kDWoRkBGWEI4QlBGcEaIRqBGuEbQRuhG0EboRwBHGEcARxgz4DP4NBA0KDTQNOg1ADUYNEA0WDTQNOg00DToRzBHSDUANRg1ADUYNKA0uDUwNUg1ADUYNQA1GDXANdg1wDXYNNA06DSgNLg00DToNQA1GDvAO9g6WDpwR2BHeDWQNag1kDWoNQA1GEKYQrBCaEKANQA1GDUANRg0oDS4R5BHqDTQNOg1kDWoNTA1SDUANRg1ADUYNcA12DTQNOhHwEfYNNA06DTQNOg00DToNQA1GDUANRg1ADUYNQA1GDxQPGg8UDxoR/BICDWQNag00DToNZA1qDUANRg+MD5ISCBIODPgSFA0EEhoSIBImDPgSFA1A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BxoHJgcsBvYHMgc4BxoG5Ac+BywHRAaQB0oHUAdWBmwGbAdcBoQGtAZ4BsYGqAaoBqgGqAaoBqgHYgcCBwIHAgcCB2gHCAacB24HLAb2BvYG9gb2BvYHLAcsBywHLAd0B3oGeAeABvYHhgZsBmwGeAeMB5IHUAbkBmwGhAZsBoQGhAeYB54GnAa6BngGeAZ4BsYGxgbGB6QGqAcaBsYG5AbqB1YGfgeqBuQHUAaKB7AGkAcOBpwHtge8BngG9gZ4BvYHdAZsBqgHwgfIBn4G/AZ+B84H1AaEBwIGqAcaBqgHGgaoBxoGtAcsBrQHLAZ4BvYGwAcaBsAH2gbGBuQH4AfmBswHPgbGBywGxgcsBuoHVgbqB1YG6gfsB/IGbAaoBngG9gZ4BvYGhAcCBoQHAgaEBwIGkAcOBpAHDgf4Bw4GlgcsBpYHLAekB24HbgduBpwHbgf+CAQGogcgCAoGeAcUBw4IEAgWBqgIHAgiBngG9gZ4BvYGwAgoBsYG5AbMBz4GxgcsBsYHLAbGBywILgg0BtgGkAbkB1AHGgbYBpAG2AaQBtgGkAbkB1AGeAb2BsYHLAZsBqgGbAaoBmwGqAZsBqgGbAaoBmwGqAZsBqgGbAaoBmwGqAZsBqgGbAaoBmwGqAaECDoGhAcCBoQHAgaEBwIGhAcCBoQHAgaEBwIGhAg6BpwHGghACEYITAhSBngG9gZ4BvYGeAb2BngG9gZ4BvYITAhSBngG9gZ4BvYGeAb2BngG9ghMCFIIWAcsBsYHLAbGBywGxgcsBsYHLAbGBywIWAcsCF4HUAbkB1AG5AdQBmwGqAacBxoGeAb2BsYHLAZ4BwIG8AhkB0oG8AhqBvAHSgZ4BvYGfgZ4CHAHdAh2CHwIggiIBpAIjgiUCJoGnAaWBxQHGgcsCKAGtAimBngIrAiyCLgHsAi+BsYG5AgcCMQIygbMBz4I0AjWBsYHFAdQBuoHVgjcCOIG9gbMCOgHMgjuCPQI+gkACQYJDAkSCRgJHgkkCSoHgAaQCTAGkAcOBpYHFAk2CTwJNgk8CNwJMAcgCO4I9Aj6BpAHDglCCUgGtAcsBmwGqAZsBqgGhAcCBoQHAgekCU4HbgduBngG9gZ4BvYGwAa6BsAJVAbGB3QGxglaB+AH5glgCWYGlgcUCWwJcgiCBnIJeAZsBqgHtgdiBngG9gbkB1AHAgb8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DOwNEAzsDRAM7A0QDOwNEAzsDRAM7A0QDOwNEAzsDPgM7A0uDOwM/gzsDTQM7Az4DOwNEAzsDOYM7AzmDOwM/gzsDS4M7A0cDOwNCgzsDOYM7AzmDOwM5gzsDOYM7AzmDOwM5gzsDQQM7A0EDOwNBAzsDQQM7Az+DOwM/gzsDP4M7AzyDOwM8gzsDPIM7A0EDOwNEAzsDSIM7AzmDOwNCgzsDPgM7A0KDOwM8gzsDRAM7AzmDOwNCgzsDOYM7A0QDOwM/gzsDRAM7A0EDOwM7AzsDQoM7AzyDOwNCgzsDPIM7A0KDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzyDOwNOgzsDPIM7AzmDOwNEAzsDOYM7A0QDOwNEAzsDSIM7A0QDOwNQAzsDRAM7A1GDOwM8gzsDRAM7AzyDOwNEAzsDP4M7A0QDOwM8gzsDSgM7AzyDOwNKAzsDOYM7A0KDOwM+AzsDQQM7Az4DOwNTAzsDPIM7A0QDOwM8gzsDRAM7Az4DOwNCgzsDPgM7A0KDOwNUgzsDVgM7A1eDOwM5gzsDRAM7AzyDOwNCgzsDPIM7A0KDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM/gzsDRAM7Az+DOwNEAzsDP4M7A0QDOwM8gzsDRAM7AzyDOwNEAzsDQQM7A0EDOwNBAzsDQQM7A0EDOwNBAzsDQQM7A0iDOwNCgzsDSIM7AzmDOwNCgzsDQoM7A0QDOwNIgzsDPIM7A0QDOwNZAzsDRAM7Az+DOwNEAzsDP4M7A0QDOwM8gzsDSgM7AzmDOwNCgzsDPgM7A0EDOwM8gzsDRAM7AzyDOwNEAzsDPIM7A0QDOwM8gzsDRAM7A0cDOwM8gzsDOYM7A0KDOwNIgzsDRwM7AzyDOwNHAzsDPIM7A0cDOwM8gzsDOYM7A0KDOwNagzsDXAM7A12DOwNfAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7A0EDOwNIgzsDQQM7A0iDOwM/gzsDRAM7Az+DOwNEAzsDP4M7A0QDOwM/gzsDRAM7Az+DOwNEAzsDP4M7A0QDOwM/gzsDRAM7A1qDOwNcAzsDWoM7A1wDOwNagzsDXAM7A1qDOwNcAzsDWoM7A1wDOwM8gzsDRAM7AzyDOwNEAzsDXYM7A18DOwNdgzsDXwM7A12DOwNfAzsDXYM7A18DOwNdgzsDXwM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzmDOwNEAzsDQQM7A0iDOwM/gzsDRAM7AzyDOwNEAzsDYIM7A0QDOwNEAzsDYgM7A2ODOwNEAzsDY4M7A0QDOwM8gzsDPIM7A0KDOwM8gzsDZQM7A2ODOwNEAzsDZoM7AzmDOwNXgzsDPgM7Az+DOwNoAzsDaYM7A0iDOwNBAzsDOYM7A0KDOwNIgzsDQoM7A2sDOwM8gzsDRAM7Az+DOwNsgzsDbgM7A2+DOwNEAzsDOYM7AzmDOwNCgzsDcQM7A3KDOwNBAzsDPgM7A0EDOwM+AzsDdAM7AzyDOwN1gzsDQoM7Az4DOwNCgzsDPgM7Az4DOwNEAzsDdwM7A3iDOwNEAzsDegM7A3uDOwN9AzsDfoM7A0WDOwOAAzsDe4M7A4GDOwODAzsDRAM7A0uDOwNNAzsDP4M7A0QDOwM/gzsDRAM7AzmDOwNCgzsDP4M7A0QDOwM/gzsDRAM7Az4DOwOEgzsDSIM7A3oDOwN7gzsDfQM7Az+DOwNEAzsDhgM7A3EDOwM8gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDQQM7A0EDOwNBAzsDQQM7Az+DOwNEAzsDP4M7A0QDOwM8gzsDSgM7AzyDOwNKAzsDPIM7A0QDOwM8gzsDRAM7Az4DOwNBAzsDhIM7A4eDOwM8gzsDRAM7A4kDOwOKgzsDjAM7Az4DOwNCgzsDOYM7A0QDOwM5gzsDRAM7Az+DOwNEAzsDOYM7A0KDOwNEAzsDRAM7A0QDOwNEAzsDQoM7A0KDOwNEAzsDRAM7A0QDOwONgzsDdwM7A3cDOwOPAzsDkIM7A0EDOwNEAzsDRAM7A5IDOwOTgzsDlQM7A0QDOwNEAzsDRAM7A0iDOwNIgzsDSIM7A5aDOwOYAzsDSIM7A5mDOwNFgzsDRYM7A0WDOwNEAzsDRAM7A5sDOwNEAzsDnIM7A54DOwOfgzsDSgM7A0oDOwNKAzsDSgM7A0oDOwNKAzsDSgM7A6EDOwOhAzsDQoM7A0iDOwOigzsDSIM7A6QDOwNBAzsDQQM7A0QDOwOlgzsDpwM7A0KDOwM8gzsDQoM7A6iDOwNCgzsDqgM7A4SDOwOEgzsDQoM7A0KDOwNCgzsDQoM7Az+DOwOrgzsDkIM7A5IDOwOtAzsDroM7A0KDOwOwAzsDRAM7A0KDOwNCgzsDsYM7A7MDOwO0gzsDtgM7A7eDOwO5AzsDuoM7A7wDOwO9gzsDvwM7A8CDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzyDOwNCgzsDPIM7A0QDOwM8gzsDRAM7AzyDOwNEAzsDPIM7A0QDOwM8gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM5gzsDRAM7AzmDOwNEAzsDOYM7A0QDOwM+AzsDQQM7Az+DOwNEAzsDPIM7A0QDOwM8gzsDRAM7AzyDOwNEAzsDPIM7A0QDOwM8gzsDRAM7A0EDOwNIgzsDQQM7A0EDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwNEAzsDSIM7A0QDOwNIgzsDRAM7A0iDOwNEAzsDSIM7A0WDOwNFgzsDRYM7A0WDOwNFgzsDRYM7AzyDOwNEAzsDPIM7A0QDOwM8gzsDRAM7AzyDOwNEAzsDP4M7A0QDOwM/gzsDRAM7Az+DOwNEAzsDP4M7A0QDOwM5gzsDRAM7AzmDOwNEAzsDPIM7A0oDOwM8gzsDSgM7AzyDOwNKAzsDPIM7A0oDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzmDOwNCgzsDPgM7A0EDOwM+AzsDQQM7Az4DOwNBAzsDPgM7A0EDOwM8gzsDRAM7AzyDOwNEAzsDPIM7A0QDOwM8gzsDRAM7AzyDOwNEAzsDOYM7A0KDOwM5gzsDQoM7A0cDOwM8gzsDRwM7AzyDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM+AzsDQoM7Az4DOwNCgzsDPgM7A0KDOwNEAzsDQQM7AzyDOwNCgzsDRAM7A0iDOwPCAzsDSIM7A0iDOwPDgzsDpAM7A8UDOwPGgzsDyAM7A8gDOwPJgzsDyYM7AzmDOwM8gzsDQoM7A0QDOwM+AzsDQoM7A0KDOwPLAzsDRAM7A0QDOwNBAzsDRYM7A0Q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ACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAACAAUCLAIwAAACMgIyAAUCNAJZAAYCiAKIACwOKw5ZAC0AAgEQAAUAQgAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAACAAQBKwEtAAAB8QH3AAMB+QIPAAoOCg4qACEAAgQIAAUBAAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAAgBNACQAPQAAAGIAaAAaAJAAkQAhAKwArwAjALoAugAnAMYA1AAoAOAA4AA3AOIA4gA4AOQA5AA5AOcA5wA6AOkA6QA7AOsA6wA8APYA9gA9APgA+QA+APsA+wBAAP0A/QBBAQIBAgBCAQQBBABDAQYBBgBEAQgBCQBFAQsBCwBHAQ0BDQBIAQ8BDwBJAREBEQBKARMBEwBLARUBFQBMARcBFwBNARkBGQBOARsBGwBPAR0BHQBQAR8BHwBRASEBIQBSASMBIwBTASUBJQBUAScBJwBVASkBKQBWAYoBigBXAZYBlgBYAZgBmABZAZoBmgBaAZwBnABbAZ4BngBcAaABoABdAaIBogBeAaQBpABfAaYBpgBgAagBqABhAaoBqgBiAawBrABjAa4BrgBkAbABsABlAbIBsgBmAbQBtABn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AqYEXARiBGgDPARuBHQEaAR6BIAEhgSMBJIC+gMAAwYDDAKgAqYCrAKyA1oDYANmA2wDcgN4BA4EFATgBOYE7ATyBJgEngSkBKoE+AT+BQQFCgUQBRYFHAUiBSgFLgU0BToFQARiBUYFTAPqA/AD9gP8BVIFWAVeBWQFQARiBUYFTAVqBXAFdgV8BYIFiAWOBZQCuAK+AsQCygLQAtYC3ALiAugC7gLcAvQEgASGBIwEkgABAAAAAAABAeoAAAABAWcAAAABAQcAAAABAHQAAAABAcwAAAABAUkAAAABAOkAAAABAFYAAAABASIAAAABAJ8AAAABAD8AAAAB/6wAAAABAnYAAAABAfMAAAABAS8AAAABAIgAAAABAhIAAAABAY8AAAABAJwAAAABAKgAAAABACUAAAAB/8UAAAAB/x4AAAABAQkAAAABAIYAAAABACYAAAAB/5MAAAABAggAAAABAYUAAAABASUAAAABAJIAAAABARMAAAABAJAAAAABAAUAAAAB/xEAAAABAQ4AAAABAIsAAAABACsAAAAB/7YAAAABAa4AAAABASsAAAABAGcAAAAB/9QAAAABAiYAAAABAaMAAAABAUMAAAABALAAAAAB/5AAAAAB/p0AAAAB/d0AAAAB/OkAAAABANwAAAABAFkAAAAB//kAAAAB/2YAAAABAfQAAAABAXEAAAABAREAAAABAH4AAAABAcIAAAABAT8AAAABAN8AAAABAEwAAAABAHsAAAAB/4cAAAABAMsAAAABADgAAAABAE0AAAAB/1sAAAAB/psAAAAB/acAAAABAWgAAAABAOUAAAABAIUAAAAB//IAAAABAmIAAAABAd8AAAABAa0AAAABAtAAAAABAiUAAAABAYkAAAABAmwAAAABAekAAAABAPYAAAABAkQAAAABAcEAAAABAWEAAAABAM4AAAABAaQAAAABASEAAAABAMEAAAABAC4AAAABAPoAAAABAHcAAAABABcAAAAB/3AAAAABAV4AAAABANsAAAAB/+gAAAAB/vEAAAABAgMAAAABAYAAAAABASAAAAABAI0AAAABAg0AAAABAYoAAAABASoAAAABAJcAAAABAlgAAAABAdUAAAABAXUAAAABAOIAAAABA6cAAAABAyQAAAABAmAAAAABAX0AAAABAqgAAAABAcUAAAABATIAAAABAtUAAAABAlIAAAABAY4AAAABAPsAAAABA/wAAAABA1EAAAABArUAAAABAb4AAAABAu4AAAABAmsAAAABAgsAAAABAXgAAAADAAAAAQASAAEAKAABAAAAcAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAMAAAABABQAAgAcABwAAQAAAHEAAQACAo0CkQABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAwAAAAEAFAACACIAHAABAAAAcQABAAICjQKRAAEAAQKUAAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gADAAAAAQAUAAIAIgAcAAEAAABxAAEAAgKNApEAAQABApIAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADAASAAEAQABGAAEAAQKWAAIABwKgAr0AAALCAsoAHgLNAucAJwZ3BncAQgsJCwkAQwu5C8AARA/uD/EATAABAAAAqABQAKgArgC0ALoAwADGAMwAxgDSAMYA2ADeAOQAxgDqAMYA8AD2AKgA/AECAQgBDgEUANgA3gEaAMAAwADAANgA2ADkAOQA9gDeASAA3gEgAKgArgC0ALoAwAEmASwA0gEmANgA3gDkAOoA8AD2APwBAgEOARQA2ADeARoBMgEOATgBPgDkAMABRAD2ALoAwADeAOQAwADYARoBOAC6AUoBGgABAAAAAAABANwAAAABAKYAAAABAPgAAAABAIEAAAABAPoAAAABAPkAAAABALMAAAABAOoAAAABAIwAAAABAL4AAAAB/50AAAABAKoAAAABAK4AAAABAOYAAAABAMwAAAABANgAAAABAHgAAAABAG4AAAABAPQAAAABALQAAAAB/88AAAABAUwAAAABAQwAAAABAGcAAAABACMAAAABALkAAAABANIAAAABAOsAAAADAAAAAQASAAEAGAABAAAAcgABAAEClgABAAECoAADAAAAAQAUAAIAGgBOAAEAAAByAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAADAAAAAQAWAAMAHAAcAFAAAQAAAHIAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAE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A00AAAABAV0AAAABAYcAAAABALgAAAABA5gAAAABAyIAAAABAU4AAAABAXgAAAABAHgAAAABAa4AAAABAyoAAAABApYAAAABASAAAAABAXwAAAABAtoAAAABAjgAAAABAT4AAAAB/ykAAAABAggAAAABAvgAAAABAuEAAAAB/70AAAABADIAAAABAk4AAAABAhIAAAABA1IAAAABASIAAAABATkAAAABAHwAAAABAUAAAAABAVAAAAABARIAAAABASgAAAABALQAAAABA8oAAAABAyAAAAABAUoAAAABAKoAAAABAhwAAAABA6IAAAABAsgAAAABAJoAAAABAwsAAAABATAAAAABAVoAAAABAKYAAAABA4QAAAABAucAAAABATwAAAABAWYAAAABAFoAAAABAcwAAAABAnAAAAABAPAAAAABAFAAAAABA3AAAAABAOYAAAABAQQAAAABAMIAAAABAjAAAAABAwwAAAABAVgAAAABAYwAAAABAPoAAAABAIwAAAABBOwAAAABBD0AAAABAKAAAAABBEIAAAABA6cAAAABATYAAAABAUgAAAABAf4AAAABA7sAAAABAmsAAAAB/xoA+gAB/70AtAABADIA+gABAiYAAAABA6wAAAABAtQAAAABAX4AAAABBhEACgABArEAAAABBRcAAAAB/2EAAAABAu8AAAABASIAtAABAIoAAAABBhEAAAABALcAAAABAU8AAAABAhUAAAABAWEAAAABAWIAAAABANoAAAABAfMAAAABAuMAAAABAk0AAAABAYQAAAABAbgAAAABAAwAAAABAEYAAAABApgAAAABAPwA3AABAbIAAAABALYAAAAB//8AAAABAdYAtAABA50AAAABAqQAAAABALEAAAAB/7QAAAABAZAAtAABAlkAAAABAGYAAAABAEoAAAABAhwAtAABAmIAAAABBBYAAAABAzL/8gABANIAAAABBSgAAAABBEQAAAABBJIAAAABAu4AAAABBRQAAAABBIAAAAABBAYAAAABA2QAAAABBCQAAAABBHkAAAABBFYAAAABA8IAAAABAwIAAAABBW4AAAABBNMAAAABAYIAAAABABgAAAABAfQAtAABA7YAAAABAr0AAAABAMoAAAABAlgAtAABBBoAAAABAS4AAAABAY8AAAADAAIAFAAaAAEASAAAAAEAAAB1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AmYCbAI8AkICSAJyAngCfgKEAhICigKQApYCnAIwAiQCNgKiAqgCNgKuArQCugLAAsYCzALSAtgC3gLkAuoC8AL2AvwDAgMIAw4CKgMUAxoDIAMmAywDMgM4Az4DPgM4A0QDSgNQA1YDXAIeA2IDaANuA3QDegNuA3QDegNuA3QDegJyAngCfgJyAngCfgKQApYCnAKQApYCnANuA3QDegNQA1YDXANQA1YDXANQA1YDXANQA1YDXAHoAe4B9AH6AgACBgIMAhICGAIeAiQCKgIwAiQCNgOAA4YDjAOSA5gDngJgAmYCbAOAA4YDjAJyAngCfgKEAhICigKQApYCnAKiAqgCNgLAAsYCzALSAtgC3gL2AvwDAgMIAw4CKgMmAywDMgM4Az4DPgM4A0QDSgNQA1YDXAIeA2IDaAI8AkICSAH6AgACBgKEAhICigMIAw4CKgOkA6oDsANuA3QDegO2A7wDwgPIA84D1APaA+AD5gPsA/ID+ALkAuoC8AP+BAQECgPsA/ID+AQQBBYEHAQiBCgELgIMAhICGAIeAiQCKgIwAiQCNgIeA2IDaAABAAAAAAABAsYAAAABAkMAAAABAeMAAAABAqgAAAABAiUAAAABAcUAAAABAf4AAAABAXsAAAABARsAAAABAyAAAAABAmsAAAABAacAAAABAu4AAAABAgsAAAABAYQAAAABAO0AAAABAI0AAAABAeUAAAABAWIAAAABAQIAAAABAuQAAAABAmEAAAABAgEAAAABAccAAAABAMUAAAABAAUAAAABAeoAAAABAQcAAAABAlgAAAABAaMAAAABAS8AAAABAwIAAAABAn8AAAAB/6MAAAAB/p0AAAAB/d0AAAABAbgAAAABATUAAAABAMEAAAABAtAAAAABAk0AAAABAe0AAAABAp4AAAABAhsAAAABAbsAAAABAkEAAAABATsAAAABAHsAAAABAooAAAABAgcAAAABAGEAAAAB/1sAAAAB/psAAAABAkQAAAABAcEAAAABAWEAAAABA2YAAAABA1AAAAABAokAAAABAfcAAAABA0gAAAABAsUAAAABAmUAAAABAp0AAAABAj0AAAABAoAAAAABAf0AAAABAZ0AAAABAdYAAAABAT8AAAABAN8AAAABAjoAAAABAbcAAAABAVcAAAABAt8AAAABAlwAAAABAfwAAAAB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ACAAJgAmACYAJgAmACYALAAmACYAJgAgAAEAAAAAAAECJgAAAAECvAAAAAEC7gAAAAEADAAUAAEAMAA6AAEAAgliCXQAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAIAAAAkAAAAJAAMACAAJgAmACYAJgAmACYALAAmACYAJgAgAAEAAAAAAAEC7gAAAAEDUgAAAAEDhAAAAAEADAA0AAEAYgCsAAEAEgZ1CVsJXAldCV8JYAlkCWYJZwloCWkJbwlwCXIJcwl2D/IP8wACAAcCoAK9AAACwgLKAB4CzQLnACcGdwZ3AEILCQsJAEMLuQvAAEQP7g/xAEwAEgAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7ABQAKgArgC0ALoAwADGAMwA0gDYAMYA3gDkAOoA0gDwAMYA9gD8AQIBCAEOARQArgEaAN4BIAEmASwBLAEsAN4A3gDqAOoBMgE4AT4BOAE+AKgArgC0ALoAwAFEASwA2AFEAN4A5ADqAPAA9gD8AQgBDgCuARoA3gEgASYBSgFQAVYBXAFiASwA8AFoAW4BdAF6AYABhgGMAZIBmAGeAaQBqgABAAAAAAABAzYAAAABArIAAAABAmIAAAABAu4AAAABA1QAAAABAeQAAAABAooAAAABA00AAAABAyIAAAABApYAAAABAnQAAAABA4sAAAABA1IAAAABAiwAAAABA0gAAAABAwQAAAABAwsAAAABAucAAAABAqwAAAABAyAAAAABA8UAAAABA6cAAAABAuMAAAABAxAAAAABA40AAAABA+0AAAABAjYAAAABAeQA+gABAsIAtAABAnQAtAABAu8AtAABA5b/8gABA+AAAAABA6IAAAABA+oAAAABAwAAAAABA5gAAAABA+MAAAABAywAAAABBD0AAAABAmIAtAABAu4AvgABA1QAtAABA6cAtAABAAwAEgABAEAARgABAAECkQACAAcCoAK9AAACwgLKAB4CzQLnACcGdwZ3AEILCQsJAEMLuQvAAEQP7g/xAEwAAQAAAKgAUACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAAQAAAAAAAf7AAAAAAQAAAAoBuAkMAAVhcmFiACBjeXJsANBncmVrAPZoZWJyAR5sYXRuAS4AHAAERkFSIAA4TUxZIABWU05EIAB0VVJEIACSAAD//wALAAUACgAUAB8AKQAuADMAQwBXAFwAbAAA//8ADAAGAAsAFQAgACoALwA0AD0ARABYAF0AbQAA//8ADAAHAAwAFgAhACsAMAA1AD4ARQBZAF4AbgAA//8ADAAIAA0AFwAiACwAMQA2AD8ARgBaAF8AbwAA//8ADAAJAA4AGAAjAC0AMgA3AEAARwBbAGAAcAAEAAAAAP//AA4AAAAaACQAOABIAE0AUgBiAGcAcQB2AHsAgACFAAQAAAAA//8ADwABAA8AGwAlADkASQBOAFMAYwBoAHIAdwB8AIEAhgAEAAAAAP//AAMAEAAZAGEAEAACTFRIIAA0VFJLIABaAAD//wAPAAIAEQAcACYAOgBKAE8AVABkAGkAcwB4AH0AggCHAAD//wAQAAMAEgAdACcAOwBBAEsAUABVAGUAagB0AHkAfgCDAIgAAP//ABAABAATAB4AKAA8AEIATABRAFYAZgBrAHUAegB/AIQAiQCKYzJzYwM+YzJzYwNIYzJzYwNSYzJzYwNcYzJzYwNmY2FsdANwY2FsdAN2Y2FsdAN8Y2FsdAOCY2FsdAOIY2NtcAOOY2NtcAOaY2NtcAOmY2NtcAOyY2NtcAO+Y2NtcAPKY2NtcAPUY2NtcAQEY2NtcAQOY2NtcAQYZGxpZwQiZGxpZwQqZGxpZwQyZGxpZwQ6ZGxpZwRCZGxpZwRKZG5vbQRQZG5vbQRWZG5vbQRcZG5vbQRiZG5vbQRoZmluYQRuZmluYQR0ZmluYQR6ZmluYQSAZmluYQSGZnJhYwSMZnJhYwSWZnJhYwSgZnJhYwSqZnJhYwS0aW5pdAS+aW5pdATEaW5pdATKaW5pdATQaW5pdATWaXNvbATcaXNvbATiaXNvbAToaXNvbATuaXNvbAT0bGlnYQT6bGlnYQUIbGlnYQUWbGlnYQUkbGlnYQUybG51bQVAbG51bQVGbG51bQVMbG51bQVSbG51bQVYbG9jbAVebG9jbAVkbG9jbAVqbG9jbAVwbG9jbAV2bG9jbAV8bWVkaQWCbWVkaQWIbWVkaQWObWVkaQWUbWVkaQWabnVtcgWgbnVtcgWmbnVtcgWsbnVtcgWybnVtcgW4b251bQW+b251bQXGb251bQXOb251bQXWb251bQXecG51bQXmcG51bQXscG51bQXycG51bQX4cG51bQX+cmNsdAYEcmNsdAYKcmNsdAYQcmNsdAYWcmNsdAYccmxpZwYicmxpZwYocmxpZwYucmxpZwY0cmxpZwY6cmxpZwZAc2FsdAZGc2FsdAZMc2FsdAZSc2FsdAZYc2FsdAZec21jcAZkc21jcAZuc21jcAZ4c21jcAaCc21jcAaMc3MwMQaWc3MwMQacc3MwMQaic3MwMQaoc3MwMQauc3MwMQa0c3MwMQa6c3MwMQbAc3MwMQbGc3MwMQbMc3MwMgbSc3MwMgbYc3MwMgbec3MwMgbkc3MwMgbqc3MwMwbwc3MwMwb2c3MwMwb8c3MwMwcCc3MwMwcIdG51bQcOdG51bQcWdG51bQcedG51bQcmdG51bQcudW5pYwc2dW5pYwc8dW5pYwdCdW5pYwdIdW5pYwdOAAAAAwArACwALQAAAAMAKwAsAC0AAAADACsALAAtAAAAAwArACwALQAAAAMAKwAsAC0AAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAAEAAQABQAJAAoAAAAEAAQABQAJAAoAAAAEAAQABQAJAAoAAAAEAAQABQAJAAoAAAAEAAQABQAJAAoAAAADAAAAAQACAAAAFgAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAAAAAwAAAAEAAgAAAAMAAAABAAIAAAADAAAAAQACAAAAAgAVABYAAAACABUAFgAAAAIAFQAWAAAAAgAVABYAAAACABUAFgAAAAEALgAAAAEAHAAAAAEAHAAAAAEAHAAAAAEAHAAAAAEAHAAAAAEADAAAAAEADAAAAAEADAAAAAEADAAAAAEADAAAAAMAGQAaABsAAAADABkAGgAbAAAAAwAZABoAGwAAAAMAGQAaABsAAAADABkAGgAbAAAAAQAOAAAAAQAOAAAAAQAOAAAAAQAOAAAAAQAOAAAAAQALAAAAAQALAAAAAQALAAAAAQALAAAAAQALAAAABQARABIAEwAUABYAAAAFABEAEgATABQAFgAAAAUAEQASABMAFAAWAAAABQARABIAEwAUABYAAAAFABEAEgATABQAFgAAAAEAJwAAAAEAJwAAAAEAJwAAAAEAJwAAAAEAJwAAAAEACAAAAAEABwAAAAEADwAAAAEABgAAAAEAAwAAAAEAIQAAAAEADQAAAAEADQAAAAEADQAAAAEADQAAAAEADQAAAAEAGwAAAAEAGwAAAAEAGwAAAAEAGwAAAAEAGwAAAAIAIgAkAAAAAgAiACQAAAACACIAJAAAAAIAIgAkAAAAAgAiACQAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABAAAAABABAAAAABABAAAAABABAAAAABABAAAAABAC8AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAADACgAKQAqAAAAAwAoACkAKgAAAAMAKAApACoAAAADACgAKQAqAAAAAwAoACkAKgAAAAEAGAAAAAEAGAAAAAEAGAAAAAEAGAAAAAEAGAAAAAEAHgAAAAEAHgAAAAEAHgAAAAEAHgAAAAEAHgAAAAEAIAAAAAEAIAAAAAEAIAAAAAEAIAAAAAEAIAAAAAEAHwAAAAEAHwAAAAEAHwAAAAEAHwAAAAEAHwAAAAIAIwAmAAAAAgAjACYAAAACACMAJgAAAAIAIwAmAAAAAgAjACYAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAWwC4AMgA2ADoAPgBCAFUAWQBdAGEAZ4BuAHIAdgB6AH4AggCGAIoAjgCSAJYAtYC8AMKAxoDKgM6A0oDWgNqA3oDigOaA6oDugPKA9oD6gP6BAoEGgQqBDoESgRaBGoEegSKBLgF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawB6YHtgfGCJQIpAi0CSgJOAlICVgJaAl4CYgJmAmoCbgJyAnYCegJ+AoIChgKKAo4CkgKWApoAAcBAAABAAgAAQAGAAAJuAAHAAAAAQAIAAEABAAACjYABwAAAAEACAABAAQAAA+aAAcAAAABAAgAAQABAAARJgAHAAEAAQAIAAEABAAAESIABwAJAAcAFAAcACQALAA0ADwARAABAAYAABIIAAEABgAAEjAAAQAGAAASZAABAAYAABKaAAEABgAAEsgAAQAGAAATAgABAAYAABM+AAcAAQABAAgAAQABAAATdAAHAAkAAQAIAAEAAQAAE3oABwABAAEACAABAAEAABN4AAcAAQACAAoAEgABAAYAABN8AAEABgAAE6IABwABAAIACgASAAEABgAAE8oAAQAGAAAT8gAHAAkAAQAIAAEAAQAAFBIABwAJAAEACAABAAEAABQYAAcACQABAAgAAQABAAAXjgAHAAkAAQAIAAEAAQAAGewABwAJAAEACAABAAEAABxKAAcACQABAAgAAQAEAAAcbAAHAAEAAQAIAAEABAAAHawABwAJAAEACAABAAQAAB3IAAcAAQABAAgAAQAEAAAd5AAHAAkAAQAIAAEABAAAHjQABwABAAwAHgAmAC4ANgA+AEYATgBWAF4AZgBuAHYAAQAGAAAegAABAAYAAB8aAAEABgAAHzoAAQAGAAAf8AABAAYAACAsAAEABgAAIOAAAQAGAAAhGgABAAYAACH+AAEABgAAImgAAQAGAAAjYgABAAYAACPiAAEABgAAJNAABwABAAIACgASAAEABgAAJToAAQAGAAAlTAAHAAkAAgAKABIAAQAGAAAlUAABAAYAACV0AAcACQABAAgAAQABAAAlkgAHAAAAAQAIAAEAAQAAJbAABwAAAAEACAABAAYAACWsAAcAAAABAAgAAQABAAAlyAAHAAAAAQAIAAEAAQAAJdwABwAAAAEACAABAAEAACXcAAcAAAABAAgAAQABAAAl8AAHAAAAAQAIAAEAAQAAJjoABwAAAAEACAABAAEAACboAAcAAAABAAgAAQABAAApZgAHAAAAAQAIAAEAAQAAKWIABwAAAAEACAABAAEAACliAAcAAAABAAgAAQABAAApYgAHAAAAAQAIAAEAAQAAKWIABwAAAAEACAABAAEAACliAAcAAAABAAgAAQABAAApYgAHAAAAAQAIAAEAAQAAKWIABwAAAAEACAABAAEAACnGAAcAAAABAAgAAQABAAAqHAAHAAAAAQAIAAEAAQAALB4ABwAAAAEACAABAAEAACyCAAcAAAABAAgAAQABAAAs0AAHAAEAAQAIAAEABAAALs4ABwABAAEACAABAAQAAC7WAAcAAQAEAA4AFgAeACYAAQAGAAAu2gABAAYAAC8cAAEABgAAL1AAAQAGAAAvbgAHAAEAHQBAAEgAUABYAGAAaABwAHgAgACIAJAAmACgAKgAsAC4AMAAyADQANgA4ADoAPAA+AEAAQgBEAEYASAAAQAGAAAvTAABAAYAAC/aAAEABgAAMGoAAQAGAAAxAgABAAYAADGcAAEABgAAMfQAAQAGAAAylAABAAYAADL6AAEABgAAM2IAAQAGAAAzkAABAAYAADQGAAEABgAANC4AAQAGAAA0ngABAAYAADT2AAEABgAANVwAAQAGAAA1igABAAYAADW4AAEABgAANlgAAQAGAAA2wAABAAYAADc2AAEABgAAN6wAAQAGAAA3+gABAAYAADhQAAEABgAAOKYAAQAGAAA5PAABAAYAADnUAAEABgAAOnIAAQAGAAA7EgABAAYAADuwAAcAAAABAAgAAQABAAA8SAAHAAEAAQAIAAEABAAAPEQABwABAAEACAABAAQAADxQAAcAAQABAAgAAQAEAAA8dAAHAAEAAQAIAAEABAAAPJ4ABwABAAEACAABAAYAAD5OAAcAAQABAAgAAQAEAAA+nAAHAAEAAQAIAAEABAAAPqwABwABAAEACAABAAQAAE2uAAcAAQABAAgAAQAEAABOVgAHAAEAAQAIAAEABAAAT8gABwABAAEACAABAAQAAE/uAAcAAQABAAgAAQABAABP9gAHAAEAGAA2AD4ARgBOAFYAXgBmAG4AdgB+AIYAjgCWAJ4ApgCuALYAvgDGAM4A1gDeAOYA7gABAAYAAE/EAAEABgAAUB4AAQAGAABQrgABAAYAAFFAAAEABgAAUdQAAQAGAABSBgABAAYAAFJuAAEABgAAUtgAAQAGAABTRAABAAYAAFNkAAEABgAAU7oAAQAGAABUEgABAAYAAFRsAAEABgAAVJQAAQAGAABUvAABAAYAAFUaAAEABgAAVXgAAQAGAABV2AABAAYAAFY4AAEABgAAVpoAAQAGAABW/AABAAYAAFccAAEABgAAV4QAAQAGAABXpAAHAAEAAQAIAAEABgAAWAQABwABAAEACAABAAQAAFgiAAcAAQAUAC4ANgA+AEYATgBWAF4AZgBuAHYAfgCGAI4AlgCeAKYArgC2AL4AxgABAAYAAFgMAAEABgAAWIwAAQAGAABY5AABAAYAAFlkAAEABgAAWbwAAQAGAABaPAABAAYAAFqUAAEABgAAWxQAAQAGAABbbAABAAYAAFvsAAEABgAAXEQAAQAGAABcxAABAAYAAF0cAAEABgAAXZwAAQAGAABd9AABAAYAAF50AAEABgAAXswAAQAGAABfTAABAAYAAF+kAAEABgAAYCQABwABAAEACAABAAYAAGB0AAcAAQABAAgAAQAEAABgygAHAAEACwAcACQALAA0ADwARABMAFQAXABkAGwAAQAGAABg6AABAAYAAGGwAAEABgAAYngAAQAGAABjEgABAAYAAGOsAAEABgAAZEYAAQAGAABk4AABAAYAAGV6AAEABgAAZhQAAQAGAABmrgABAAYAAGdIAAcBAAABAAgAAQABAABn2gAHAAkAAQAIAAEAAQAAZ+QABwABAAEACAABAAIAAGgOAAcAAQABAAgAAQACAABokgAHAAEAAQAIAAEABAAAaRYABwABAAEACAABAAQAAGkiAAcAAQABAAgAAQAEAABpSgAHAAEAAQAIAAEABAAAaW4ABwABAAEACAABAAQAAGn2AAcAAQABAAgAAQAEAABqegAHAAEAAQAIAAEAAgAAaqQABwAJAAEACAABAAEAAGquAAcAAAABAAgAAQABAABquAAHAAEAAQAIAAEAAQAAargABwABAAEACAABAAEAAGq0AAcAAQABAAgAAQABAABqsAAHAAEAAQAIAAEABAAAaqwABwABAAEACAABAAQAAGrCAAcAAQABAAgAAQACAABqygAHAAEAAQAIAAEAAgAAazwABwABAAEACAABAAIAAGvCAAMAAAABABIAAQAeAAEAAABGAAEABABMAE0Bswc6AAIAEgR0BHQAAAR6BHoAAQSSBJMAAghCCFIABAhYCFgAFQh6CHwAFgh/CIEAGQiDCIMAHAiHCIkAHQiQCJwAIAjvCPIALQspCysAMQswCzAANAvsC+wANQzEDMUANgzHDMcAOA0RDRYAOQ0YDRgAPwABABAABQAaAFQAjgDIAQIAAgABB6wHsAAAABwBIgEqATIBOgFCAUoBUgFaAWIBagFwAXgBgAGIAZABmAGeAaYBrgG2Ab4BxgHMAdQB3AHkAewB9AAcAcAByAHQAdgB4AHoAe4B9gH+AgYCDgIWAh4CJgIuAjYCPAJEAkwCVAJcAmQCagJyAnoCggKKApIAHAJeAmYCbgJ2An4ChgKMApQCnAKkAqwCtAK6AsICygLSAtoC4gLqAvIC+gMCAwgDEAMYAyADKAMwABwC/AMEAwwDFAMcAyQDKgMyAzoDQgNKA1IDWANgA2gDcAN4A4ADhgOOA5YDngOmA6wDtAO8A8QDzAAcA5oDogOqA7IDugPCA8gD0APYA+AD6APwA/YD/gQGBA4EFgQeBCQELAQ0BDwERARMBFIEWgRiBGoHtgADB6wHrQe3AAMHrAeuB7gAAwesB68HuQADB6wHsAe6AAMHrQesB7sAAwetB60HvAADB60Hrge9AAMHrQevB74AAwetB7AHvwACB60HwAADB64HrAfBAAMHrgetB8IAAweuB64HwwADB64HrwfEAAMHrgewB8UAAgeuB8YAAwevB6wHxwADB68HrQfIAAMHrweuB8kAAwevB68HygADB68HsAfLAAIHrwfMAAMHsAesB80AAwewB60HzgADB7AHrgfPAAMHsAevB9AAAwewB7AH0QACB7AH0gADB6wHrAfTAAMHrAetB9QAAwesB64H1QADB6wHrwfWAAMHrAewB9cAAgesB9gAAwetB6wH2QADB60HrgfaAAMHrQevB9sAAwetB7AH3AADB64HrAfdAAMHrgetB94AAweuB64H3wADB64HrwfgAAMHrgewB+EAAgeuB+IAAwevB6wH4wADB68HrQfkAAMHrweuB+UAAwevB68H5gADB68HsAfnAAIHrwfoAAMHsAesB+kAAwewB60H6gADB7AHrgfrAAMHsAevB+wAAwewB7AH7QACB7AH7gADB6wHrAfvAAMHrAetB/AAAwesB64H8QADB6wHrwfyAAMHrAewB/MAAgesB/QAAwetB6wH9QADB60HrQf2AAMHrQeuB/cAAwetB68H+AADB60HsAf5AAIHrQf6AAMHrgesB/sAAweuB60H/AADB64Hrwf9AAMHrgewB/4AAwevB6wH/wADB68HrQgAAAMHrweuCAEAAwevB68IAgADB68HsAgDAAIHrwgEAAMHsAesCAUAAwewB60IBgADB7AHrggHAAMHsAevCAgAAwewB7AICQACB7AICgADB6wHrAgLAAMHrAetCAwAAwesB64IDQADB6wHrwgOAAMHrAewCA8AAgesCBAAAwetB6wIEQADB60HrQgSAAMHrQeuCBMAAwetB68IFAADB60HsAgVAAIHrQgWAAMHrgesCBcAAweuB60IGAADB64HrggZAAMHrgevCBoAAweuB7AIGwACB64IHAADB68HrAgdAAMHrwetCB4AAwevB64IHwADB68HsAglAAIHsAggAAMHsAesCCEAAwewB60IIgADB7AHrggjAAMHsAevCCQAAwewB7AIJgADB6wHrAgnAAMHrAetCCgAAwesB64IKQADB6wHrwgqAAMHrAewCCsAAgesCCwAAwetB6wILQADB60HrQguAAMHrQeuCC8AAwetB68IMAADB60HsAgxAAIHrQgyAAMHrgesCDMAAweuB60INAADB64Hrgg1AAMHrgevCDYAAweuB7AINwACB64IOAADB68HrAg5AAMHrwetCDoAAwevB64IOwADB68Hrwg8AAMHrwewCD0AAgevCD4AAwewB6wIPwADB7AHrQhAAAMHsAeuCEEAAwewB68AAQAMAAMAFgAoAEIAAQADAS4CGgIjAAgARgBQAFoAZABuAHgAggCMAAwAhACOAJgAogCsALYAwADKANQA3gDoAPIADADiAOwA9gEAAQoBFAEeASgBMgE8AUYBUAzTAAQIQwhRBJIM1AAECEMIUQSTDNUABAhDCFIEkgzWAAQIQwhSBJMM1wAECEUIUQSSDNgABAhFCFEEkwzZAAQIRQhSBJIM2gAECEUIUgSTDNsABAhDCFEEkgzcAAQIQwhRBJMM3QAECEMIUgSSDN4ABAhDCFIEkwzfAAQIRQhRBJIM4AAECEUIUQSTDOEABAhFCFIEkgziAAQIRQhSBJMM6wAECEcIQwSSDOwABAhHCEMEkwztAAQIRwhFBJIM7gAECEcIRQSTDOMABAhDCFEEkgzkAAQIQwhRBJMM5QAECEMIUgSSDOYABAhDCFIEkwznAAQIRQhRBJIM6AAECEUIUQSTDOkABAhFCFIEkgzqAAQIRQhSBJMM7wAECEcIQwSSDPAABAhHCEMEkwzxAAQIRwhFBJIM8gAECEcIRQSTAAEABgzAAAEAAQB0AAEAHAALACwAMgA4ADwAQgBIAEwAWABcAGgAbgACAAIC8QL4AAAFOQU7AAgAAgBGAEwAAgBMAFIAAQBSAAIAVABaAAIAWgBgAAEAYAAFAGIAaABuAHQAegABAHQABQB2AHwAggCIAI4AAgCIAI4AAQCOAxIAAgL3DVkAAgU5A0cAAgL3DVsAAgU5DV4AAgU6A0kAAgL3DVgAAgU5A0oAAgL3DVoAAgU5DV0AAgU6A0kAAgL0AxIAAgLxDVcAAgU7A0oAAgL1A0cAAgLyDVwAAgU5DVgAAgL0DVkAAgLxDVoAAgL1DVsAAgLyDVwAAgL4DV0AAgL2DV4AAgLzDVcAAgL3AAMAAQAoAAEAEgAAAAEAAABHAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAIGTBGUAAMAAgAyACoAAQAUAAAAAQAAAEcAAgADAvkDAgAAAwoDDAAKBoYGhwANAAEAAgZMEZQAAgABDsgO1gAAAAMAAwA0ADQALAABABYAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQACBkwRlAACAAEOyA7WAAAAAwABACgAAQASAAAAAQAAAEcAAgADAvkDAgAAAwoDDAAKBoYGhwANAAEABQuhC6ILpA7YD0gAAwACADgAKgABABQAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQAFC6ELogukDtgPSAACAAEOyA7WAAAAAwADADoAOgAsAAEAFgAAAAEAAABHAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAULoQuiC6QO2A9IAAIAAQ7IDtYAAAADAAQAPAA8ADwALgABABgAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQAFC6ELogukDtgPSAACAAEOyA7WAAAAAgAMAAMGhwaGAv8AAQADAwADCgMMAAEABg0IAAEAAgLsAu0AAgAMAAMQAhABEAMAAQADAwQLphAAAAMAAQAoAAEAEgAAAAEAAABIAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAELowADAAIAKgA0AAEAFAAAAAEAAABIAAIAAwL5AwIAAAMKAwwACgaGBocADQACAAEOyA7WAAAAAQABDtkAAwACABQAKgABABQAAAABAAAASQACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQABEGYAAwACABQAKgABABQAAAABAAAASQACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQABEGcAAgAMAAMD6QYdA5MAAQADBh8GIAYhAAIBxADfA+oDHwMoAysDLgMyAzYDggOEA4UDiAOKA44DjwOUA5UDmQOeA6IDpgOpA6sDrQOvA7EDtQO5A70DwQPFA8oDzgPRA9YD2QPdA+ED5QPqA+wD7QPwA/IFKA//BT0FPwVBBUMFRAVGBUkFSgVOBVIFVgVaBV4FYgVnBWsFbwVzBXcFewV+BYAFggWEBYYFiAWKBYwFjgWQBZIFlAWWBZgFmgWcBZ4FoAWkBagFrAWwBbQFtwW6BbsFvwXDBccFywXQBdIF1AXYBdsF3wXjBegF7AXwBfQF+AX7Bf8GAwYHBgsGDwYRBhMGFwYaBh4GHwYgBiEGIgYkBiYGKAYqBiwGLgYwBjMGNQY4BjsGPwZBBkMGXAZgBmUGcwuyC7QLtgwCDAYMCgwODBIMFgwaDB8MIwwmDCgMKgwsDDEMNQw5DDwMQAxFDEkMTQxQDFQMWAxcDGAMZAxsDuAO5A7oDuwO7g7yDvQO9g76Dv4PAg8EDwYPCA8KDw4PEg8WDygPLA8wDzQPOA88D6cPqw+vD7MPtw+7D78Pww/HD8sPzQ/PEGkQbhBwEHQQeBB6EI4QkhFmEWoRbhFyEXQReBF8EYAAAQDfAwgDHwMnAysDLQMxAzUDgQODA4UDhwOJA40DjwOTA5UDmQOdA6EDpQOpA6sDrQOvA7EDtQO5A70DwQPFA8kDzQPRA9UD2QPdA+ED5QPpA+sD7QPvA/EFKAUsBTwFPgVABUIFRAVGBUgFSgVOBVIFVgVaBV4FYgVmBWoFbgVyBXYFegV+BYAFggWEBYYFiAWKBYwFjgWQBZIFlAWWBZgFmgWcBZ4FoAWkBagFrAWwBbQFtgW6BbsFvwXDBccFywXPBdEF0wXXBdsF3wXjBecF6wXvBfMF9wX7Bf8GAwYHBgsGDwYRBhMGFwYZBh0GHwYgBiEGIgYkBiYGKAYqBiwGLgYwBjIGNAY4BjoGPgZABkIGXAZgBmQGcguxC7MLtQwCDAYMCgwODBIMFgwaDB4MIgwmDCgMKgwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxsDt8O4w7nDusO7Q7xDvMO9Q75Dv0PAQ8DDwUPBw8JDw0PEQ8VDycPKw8vDzMPNw87D6YPqg+uD7IPtg+6D74Pwg/GD8oPzA/OEGgQbRBvEHMQdxB5EI0QkRFlEWkRbRFxEXMRdxF7EX8AAgE4AJkDIQMpAzADNAPzA4sDkQOXA5sDnwOjA6cDswO3A7sDvwPBA8UDzAPQA9QD2APbA+AD4wPnA+wD7AUpA/MFKQUrA4sFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWiBaYFqgWuBbIFtAW5BSsFvgXCBcYFygXOA9QFxgXWBdoF3QXhBeUF6gXuBfIF9gX6Bf4GAgYGBgoGDQPnBUwGFQMiBhsGbAY2BVQDIgZeBmIGZwXhC7gMBAwIDAwMEAwUDBgMHAwgDCQMLgwzDDcMOww/DEMMRwxLDE8MUgxWDFoMXgxiDGYMbg7iDuYO6g7wDvgO/A8ADwwPEA8UDxgPKg8uDzIPNg86Dz4PqQ+tD7EPtQ+5D70PwQ/FD8kQaxByEHYQkBCUEWgRbBFwEXYRehF+EYIAAQCZAx8DJwMtAzEDNQOJA48DlQOZA50DoQOlA7EDtQO5A70DwQPFA8kDzQPRA9UD2QPdA+ED5QPpA+sD7wPxBSgFLAVIBUoFTgVSBVYFWgVeBWIFZgVqBW4FcgV2BXoFoAWkBagFrAWwBbQFtgW6BbsFvwXDBccFywXPBdEF0wXXBdsF3wXjBecF6wXvBfMF9wX7Bf8GAwYHBgsGDwYRBhMGFwYZBh8GNAY6Bj4GXAZgBmQGcgu1DAIMBgwKDA4MEgwWDBoMHgwiDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGwO3w7jDucO7Q71DvkO/Q8JDw0PEQ8VDycPKw8vDzMPNw87D6YPqg+uD7IPtg+6D74Pwg/GEGgQbxBzEI0QkRFlEWkRbRFzEXcRexF/AAIBOACZAyEDKQMvAzMD8wOLA5EDlwObA58DowOnA7MDtwO7A78DwQPFA8sDzwPTA9cD2wPfA+MD5wPrA+sFKQPzBSkFKgOLBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFogWmBaoFrgWyBbQFuAUqBb0FwQXFBckFzQPTBcUF1QXZBd0F4QXlBekF7QXxBfUF+QX9BgEGBQYJBg0D5wVMBhUDIQYbBmsGNgVUAyEGXgZiBmYF4Qu3DAQMCAwMDBAMFAwYDBwMIAwkDC4MMgw2DDoMPgxCDEYMSgxODFIMVgxaDF4MYgxmDG4O4Q7lDukO7w73DvsO/w8LDw8PEw8XDykPLQ8xDzUPOQ89D6gPrA+wD7QPuA+8D8APxA/IEGoQcRB1EI8QkxFnEWsRbxF1EXkRfRGBAAEAmQMfAycDLQMxAzUDiQOPA5UDmQOdA6EDpQOxA7UDuQO9A8EDxQPJA80D0QPVA9kD3QPhA+UD6QPrA+8D8QUoBSwFSAVKBU4FUgVWBVoFXgViBWYFagVuBXIFdgV6BaAFpAWoBawFsAW0BbYFugW7Bb8FwwXHBcsFzwXRBdMF1wXbBd8F4wXnBesF7wXzBfcF+wX/BgMGBwYLBg8GEQYTBhcGGQYfBjQGOgY+BlwGYAZkBnILtQwCDAYMCgwODBIMFgwaDB4MIgwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxsDt8O4w7nDu0O9Q75Dv0PCQ8NDxEPFQ8nDysPLw8zDzcPOw+mD6oPrg+yD7YPug++D8IPxhBoEG8QcxCNEJERZRFpEW0RcxF3EXsRfwACABoACg/0D/UGhwaGAv8P9g/3Bh8D6g/8AAEACgLsAu0DAAMKAwwD4QPiA+oGHwZpAAEAIAANAD4AVABqAG4AcgB2AHoAfgCCAIYAigCOAJIAAQANA98D4AX9Bf4GAQYCBgUGBgYJBgoMZg+8D70ACgBYAF4AZABqAHAAdgB8AIIAiACOAAoAfgCEAIoAkACWAJwAogCoAK4AtAABAKQAAQCmAAEAqAABAKoAAQCsAAEArgABALAAAQCyAAEAtAABALYAAQC4A/UAAgOCA/cAAgOEA/kAAgOIA/sAAgOOBogAAgU9BngAAgU/BnoAAgVBBnwAAgVDDxkAAg7yDxsAAg70A/YAAgOCA/gAAgOEA/oAAgOIA/wAAgOOBokAAgU9BnkAAgU/BnsAAgVBBn0AAgVDDxoAAg7yDxwAAg70Bn4AAgOOBn8AAgOOBoAAAgOOBoEAAgOOBoIAAgOOBoMAAgOOBoQAAgOOBoUAAgOODPMAAgOOD+sAAgOOD+wAAgOOAAEACAABAA4AAQABA40AAgAGABILzAAFA40D3wPgA+oLzAAFA40D3wPgBh8AAQAIAAEADgABAAEDjQACAAYAEhAFAAUDjQPfA+AD6hAFAAUDjQPfA+AGHwABAAwAAwAWABwAIgABAAMDjQPTA98AAgASABwAAgAgACoAAgAuADYLzAAEA98D4APqC8wABAPfA+AGHxGVAAQD4APgA+oRlQAEA+AD4AYfA38AAwPgA+oDfwADA+AGHwABAA4ABAAaACAAJAAqAAEABAONA60D0wPfAAIAFgAgAAEAJAACACoANAACADgAQBAFAAQD3wPgA+oQBQAEA98D4AYfC80ABAPzA44D3RGWAAQD4APgA+oRlgAEA+AD4AYfDsIAAwPgBh8OwgADA+AD6gADAAAABACcAJAAnACWAAEAFAAAAAIAFALxAvgAAAMSAxIACANHA0sACQUzBTQADgU4BTsAEAZFBksAFAZOBlMAGwZWBlcAIQZZBlsAIwuoC68AJgv7DAAALg1XDV4ANA8iDyYAPA8/Dz8AQQ/QD9UAQg/cD+oASBAEEAQAVxB7EHsAWBCVEJUAWRGGEZMAWgABAAEDowABAAEDqQABAAED4wADAAAABAAiABYAIgAcAAAAAQAAAEoAAQABA6MAAQABA6kAAQABA+MAAwAAAAgApACqABwApACwAJ4AsAC2AAEAIgAAAAEAAQADAAIAFALxAvgAAAMSAxIACANHA0sACQUzBTQADgU4BTsAEAZFBksAFAZOBlMAGwZWBlcAIQZZBlsAIwuoC68AJgv7DAAALg1XDV4ANA8iDyYAPA8/Dz8AQQ/QD9UAQg/cD+oASBAEEAQAVxB7EHsAWBCVEJUAWRGGEZMAWgABAAEDjgABAAEDnwABAAED3QABAAED3wABAAID6gYfAAMAAAAIACoAMAAeACoANgAkADYAPAAAAAEAAABLAAEAAQADAAEAAQOOAAEAAQOfAAEAAQPdAAEAAQPfAAEAAgPqBh8AAwAAAAcAnACiABoAnAC2AKgArgABACAAAAABAAEAAwACABQC8QL4AAADEgMSAAgDRwNLAAkFMwU0AA4FOAU7ABAGRQZLABQGTgZTABsGVgZXACEGWQZbACMLqAuvACYL+wwAAC4NVw1eADQPIg8mADwPPw8/AEEP0A/VAEIP3A/qAEgQBBAEAFcQexB7AFgQlRCVAFkRhhGTAFoAAQABA58AAQABA90AAQABA98AAQACA+oGHwABAAED/AADAAAABwAiACgAHAAiADwALgA0AAAAAQAAAEwAAQABAAMAAQABA58AAQABA90AAQABA98AAQACA+oGHwABAAED/AADAAAADwC6AMYArAAqAOYAKgDAAMYA4ADSACoA2gC0AMYAzAABADAAAAABAAEAAwACABQC8QL4AAADEgMSAAgDRwNLAAkFMwU0AA4FOAU7ABAGRQZLABQGTgZTABsGVgZXACEGWQZbACMLqAuvACYL+wwAAC4NVw1eADQPIg8mADwPPw8/AEEP0A/VAEIP3A/qAEgQBBAEAFcQexB7AFgQlRCVAFkRhhGTAFoAAQACAzYD8AABAAEDswABAAEDuwABAAEDywABAAED4AABAAED4QABAAID6gYfAAEAAQPtAAEAAQPzAAEAAQvMAAMAAAAPAEAATAAyACwAbAAsAEYATABmAFgALABgADoATABSAAAAAQAAAE0AAQABAAMAAQACAzYD8AABAAEDswABAAEDuwABAAEDywABAAED4AABAAED4QABAAID6gYfAAEAAQPtAAEAAQPzAAEAAQvMAAMAAAAUAMoA3AC2ADQA/AA0ANAA3AD2AOgANADwAL4A1gDoADQA8ADEANwA4gABADoAAAABAAEAAwACABQC8QL4AAADEgMSAAgDRwNLAAkFMwU0AA4FOAU7ABAGRQZLABQGTgZTABsGVgZXACEGWQZbACMLqAuvACYL+wwAAC4NVw1eADQPIg8mADwPPw8/AEEP0A/VAEIP3A/qAEgQBBAEAFcQexB7AFgQlRCVAFkRhhGTAFoAAQACAzYD8AABAAEDgQABAAEDswABAAEDuwABAAEDywABAAED3wABAAED4AABAAED4QABAAID6gYfAAEAAQPtAAEAAQPzAAEAAQvMAAMAAAAUAFAAYgA8ADYAggA2AFYAYgB8AG4ANgB2AEQAXABuADYAdgBKAGIAaAAAAAEAAABOAAEAAQADAAEAAgM2A/AAAQABA4EAAQABA7MAAQABA7sAAQABA8sAAQABA98AAQABA+AAAQABA+EAAQACA+oGHwABAAED7QABAAED8wABAAELzAADAAAAEwC6AMwA2AAyAPAAMgC0ANIAxgDAAN4A5AAyALQA0gDGAMAA6gDYAAEAOAAAAAEAAQADAAIAFALxAvgAAAMSAxIACANHA0sACQUzBTQADgU4BTsAEAZFBksAFAZOBlMAGwZWBlcAIQZZBlsAIwuoC68AJgv7DAAALg1XDV4ANA8iDyYAPA8/Dz8AQQ/QD9UAQg/cD+oASBAEEAQAVxB7EHsAWBCVEJUAWRGGEZMAWgABAAEDjQABAAEDkQABAAEDowABAAEDrQABAAEDswABAAED3wABAAED4QABAAED4wABAAED5QABAAED8wABAAELzAADAAAAEwBAAFIAXgA0AHYANAA6AFgATABGAGQAagA0ADoAWABM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DgYNqA3DDacN0g3wDccNyA3MDcUNxg3LDdAN0Q3gDeIN4w3kDeYN6g3rDe0N7g3zDfUN+g37DgQOBQ3dDcQNyQ3KDc0Nzg3PDdMN1Q3UDdYN1w3YDdkN2g3bDd4N3w3hDeUN5w3oDekN7A3vDfYN9w34DfkN/A39DgEOBw4IDgkN/g3/DgAOAw3yDdwAAQCCAAkARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAiQCgAKEAsAC5ANUA4QDjAOUA6ADqAOwA9wD6APwA/gD/AQMBBQEHAQoBDAEOARABEgEUARYBGAEaARwBHgEgASIBJAEmASgBKgGLAZcBmQGbAZ0BnwGhAaMBpQGnAakBqwGtAa8BsQGzAbUBtwG6AbwBvgHAAcIBxAHGAcgBygHMAc4B0AHSAdQB1wHZAdsB3gHgAeIB5AcIDYgAAgBkAC8OKw4sDi0OLg4vDjAOMQ4yDjMONA41DjYONw44DjkOOg47DjwOPQ4+Dj8OQA5BDkIOQw5EDkUORg5HDkgOSQ5KDksOTA5NDk4OTw5QDlEOUg5TDlQOVQ5WDlcOWA5ZAAIAAgIsAlkAAAKIAogALgACAEgAIQ4MDhEOHg4iDiMOJA4lDiYOJw4oDgoOCw4NDg4ODw4QDhIOEw4UDhUOFg4XDhgOGQ4aDhsOHA4dDh8OIA4hDikOKgACAAMBKwEtAAAB8QH3AAMB+QIPAAoAAgEIAIEOvQ2JDYoNiw2MDY0Njg2PDZANkQ2SDZMNlA2VDZYNlw2YDZkNmg2bDZwNnQ2eDZ8NoA2hDaINrg2vDbANsg25Db4Nwg2jDaYNqg2tDb0NpA4CDawNsw2rDbQNsQ22DbcNuA21DbsNvA26DcANwQ2/DaUN8Q4GDagNww2nDdIN3A3wDccNyA3FDcYNyw3MDdAN0Q3gDeIN4w3kDeYN6g3rDe0N7g3zDfUN+g37DgQOBQ3dDcQNyQ3KDc0Nzg3PDdMN1Q3UDdYN1w3YDdkN2g3bDd4N3w3hDeUN5w3oDekN7A3vDfYN9w34DfkN/A39DgEOBw4IDgkN/g3/DgAOAw3yDakAAQCBAAkAJAAlACYAJwAoACkAKgAr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BV4AAwVcBWIFaAADBWYFbAVyAAMFcAV2BXwAAwV6BYAFhgADBYQFigWQAAMFjgWUBZoAAwWYBZ4FpAADBaIFqAWuAAMFrAWyBbgAAwW2BbwFwgADBcAFxgXMAAMFygXQBdYAAwXUBdoF4AADBd4F5AXqAAMF6AXuBfQAAwXyBfgF/gADBfwGAgYIAAMGBgYMBhIAAwYQBhYGHAADBhoGIAYmAAMGJAYqBjAAAwYuBjQGOgADBjgGPgZEAAMGQgZIBk4AAwZMBlIGWAADBlYGXAZiAAMGYAZmBmwAAwZqBnAGdgADBnQGegaAAAMGfgaEBooAAwaIBo4GlAADBpIGmAaeAAMGnAaiBqgAAwamBqwGsgADBrAGtga8AAMGugbABsYAAwbEBsoG0AADBs4G1AbaAAMG2AbeBuQAAwbiBugG7gADBuwG8gb4AAMG9gb8BwIAAwcABwYHDAADBwoHEAcWAAMHFAcaByAAAwceByQHKgADBygHLgc0AAMHMgc4Bz4AAwc8B0IHSAADB0YHTAdSAAMHUAdWB1wAAwdaB2AHZgADB2QHagdwAAMHbgd0B3oAAwd4B34HhAADB4IHiAeOAAMHjAeSB5gAAweWB5wHogADB6AHpgesAAMHqgewB7YAAwe0B7oHwAADB74HxAfKAAMHyAfOB9QAAwfSB9gH3gADB9wH4gfoAAMH5gfsB/IAAwfwB/YH/AADB/oIAAgGAAMIBAgKCBAAAwgOCBQIGgADCBgIHggkAAMIIggoCC4AAwgsCDIIOAADCDYIPAhCAAMIQAhGCEwAAwhKCFAIVgADCFQIWghgAAMIXghkCGoAAwhoCG4IdAADCHIIeAh+AAMIfAiCCIgAAwiGCIwIkgADCJAIlgicAAMImgigCKYAAwikCKoIsAADCK4ItAi6AAMIuAi+CMQAAwjCCMgIzgADCMwI0gjYAAMI1gjcCOIAAwjgCOYI7AADCOoI8Aj2AAMI9Aj6CQAAAwj+CQQJCgADCQgJDgkUAAMJEgkYCR4AAwkcCSIJKAADCSYJLAkyAAMJMAk2CTwAAwk6CUAJRgADCUQJSglQAAMJTglUCVoAAwlYCV4JZAADCWIJaAluAo0AAgiMAo0AAgLpAo0AAgLoAo4AAgiMAo4AAgLpAo4AAgLoAo8AAgiMAo8AAgLpAo8AAgLoApAAAgiMApAAAgLpApAAAgLoApEAAgiMApEAAgLpApEAAgLoApIAAgiMApIAAgLpApIAAgLoApMAAgiMApMAAgLpApMAAgLoApQAAgiMApQAAgLpApQAAgLoApUAAgiMApUAAgLpApUAAgLoApYAAgiMApYAAgLpApYAAgLoApcAAgiMApcAAgLpApcAAgLoApgAAgiMApgAAgLpApgAAgLoApkAAgiMApkAAgLpApkAAgLoApsAAgiMApsAAgLpApsAAgLoAqAAAgiMAqAAAgLpAqAAAgLoAqEAAgiMAqEAAgLpAqEAAgLoAqIAAgiMAqIAAgLpAqIAAgLoAqMAAgiMAqMAAgLpAqMAAgLoAqQAAgiMAqQAAgLpAqQAAgLoAqUAAgiMAqUAAgLpAqUAAgLoAqYAAgiMAqYAAgLpAqYAAgLoAqcAAgiMAqcAAgLpAqcAAgLoAqgAAgiMAqgAAgLpAqgAAgLoAqkAAgiMAqkAAgLpAqkAAgLoAqoAAgiMAqoAAgLpAqoAAgLoAqsAAgiMAqsAAgLpAqsAAgLoAqwAAgiMAqwAAgLpAqwAAgLoAq0AAgiMAq0AAgLpAq0AAgLoAq4AAgiMAq4AAgLpAq4AAgLoAq8AAgiMAq8AAgLpAq8AAgLoArAAAgiMArAAAgLpArAAAgLoArEAAgiMArEAAgLpArEAAgLoArIAAgiMArIAAgLpArIAAgLoArMAAgiMArMAAgLpArMAAgLoArQAAgiMArQAAgLpArQAAgLoArUAAgiMArUAAgLpArUAAgLoArYAAgiMArYAAgLpArYAAgLoArcAAgiMArcAAgLpArcAAgLoArgAAgiMArgAAgLpArgAAgLoArkAAgiMArkAAgLpArkAAgLoAroAAgiMAroAAgLpAroAAgLoArsAAgiMArsAAgLpArsAAgLoArwAAgiMArwAAgLpArwAAgLoAr0AAgiMAr0AAgLpAr0AAgLoAsIAAgiMAsIAAgLpAsIAAgLoAsMAAgiMAsMAAgLpAsMAAgLoAsQAAgiMAsQAAgLpAsQAAgLoAsUAAgiMAsUAAgLpAsUAAgLoAsYAAgiMAsYAAgLpAsYAAgLoAscAAgiMAscAAgLpAscAAgLoAsgAAgiMAsgAAgLpAsgAAgLoAskAAgiMAskAAgLpAskAAgLoAsoAAgiMAsoAAgLpAsoAAgLoAs0AAgiMAs0AAgLpAs0AAgLoAs4AAgiMAs4AAgLpAs4AAgLoAs8AAgiMAs8AAgLpAs8AAgLoAtAAAgiMAtAAAgLpAtAAAgLoAtEAAgiMAtEAAgLpAtEAAgLoAtIAAgiMAtIAAgLpAtIAAgLoAtMAAgiMAtMAAgLpAtMAAgLoAtQAAgiMAtQAAgLpAtQAAgLoAtUAAgiMAtUAAgLpAtUAAgLoAtYAAgiMAtYAAgLpAtYAAgLoAtcAAgiMAtcAAgLpAtcAAgLoAtgAAgiMAtgAAgLpAtgAAgLoAtkAAgiMAtkAAgLpAtkAAgLoAtoAAgiMAtoAAgLpAtoAAgLoAtsAAgiMAtsAAgLpAtsAAgLoAtwAAgiMAtwAAgLpAtwAAgLoAt0AAgiMAt0AAgLpAt0AAgLoAt4AAgiMAt4AAgLpAt4AAgLoAt8AAgiMAt8AAgLpAt8AAgLoAuAAAgiMAuAAAgLpAuAAAgLoAuEAAgiMAuEAAgLpAuEAAgLoAuIAAgiMAuIAAgLpAuIAAgLoAuMAAgiMAuMAAgLpAuMAAgLoAuQAAgiMAuQAAgLpAuQAAgLoAuUAAgiMAuUAAgLpAuUAAgLoAuYAAgiMAuYAAgLpAuYAAgLoAucAAgiMAucAAgLpAucAAgLoBJUAAgiMBJUAAgLpBJUAAgLoBnUAAgiMBnUAAgLpBnUAAgLoBncAAgiMBncAAgLpBncAAgLoCEYAAgiMCEYAAgLpCEYAAgLoCVkAAgiMCVkAAgLpCVkAAgLoCVoAAgiMCVoAAgLpCVoAAgLoCVsAAgiMCVsAAgLpCVsAAgLoCVwAAgiMCVwAAgLpCVwAAgLoCV0AAgiMCV0AAgLpCV0AAgLoCV4AAgiMCV4AAgLpCV4AAgLoCV8AAgiMCV8AAgLpCV8AAgLoCWAAAgiMCWAAAgLpCWAAAgLoCWEAAgiMCWEAAgLpCWEAAgLoCWIAAgiMCWIAAgLpCWIAAgLoCWMAAgiMCWMAAgLpCWMAAgLoCWQAAgiMCWQAAgLpCWQAAgLoCWUAAgiMCWUAAgLpCWUAAgLoCWYAAgiMCWYAAgLpCWYAAgLoCWcAAgiMCWcAAgLpCWcAAgLoCWgAAgiMCWgAAgLpCWgAAgLoCWkAAgiMCWkAAgLpCWkAAgLoCWoAAgiMCWoAAgLpCWoAAgLoCWsAAgiMCWsAAgLpCWsAAgLoCWwAAgiMCWwAAgLpCWwAAgLoCW0AAgiMCW0AAgLpCW0AAgLoCW4AAgiMCW4AAgLpCW4AAgLoCW8AAgiMCW8AAgLpCW8AAgLoCXAAAgiMCXAAAgLpCXAAAgLoCXEAAgiMCXEAAgLpCXEAAgLoCXIAAgiMCXIAAgLpCXIAAgLoCXMAAgiMCXMAAgLpCXMAAgLoCXQAAgiMCXQAAgLpCXQAAgLoCXUAAgiMCXUAAgLpCXUAAgLoCXYAAgiMCXYAAgLpCXYAAgLoCXcAAgiMCXcAAgLpCXcAAgLoCwkAAgiMCwkAAgLpCwkAAgLoC7kAAgiMC7kAAgLpC7kAAgLoC7oAAgiMC7oAAgLpC7oAAgLoC7sAAgiMC7sAAgLpC7sAAgLoC7wAAgiMC7wAAgLpC7wAAgLoC70AAgiMC70AAgLpC70AAgLoC74AAgiMC74AAgLpC74AAgLoC78AAgiMC78AAgLpC78AAgLoC8AAAgiMC8AAAgLpC8AAAgLoC/QAAgiMC/QAAgLpC/QAAgLoC/YAAgiMC/YAAgLpC/YAAgLoC/gAAgiMC/gAAgLpC/gAAgLoD+0AAgiMD+0AAgLpD+0AAgLoD+4AAgiMD+4AAgLpD+4AAgLoD+8AAgiMD+8AAgLpD+8AAgLoD/AAAgiMD/AAAgLpD/AAAgLoD/EAAgiMD/EAAgLpD/EAAgLoD/IAAgiMD/IAAgLpD/IAAgLoD/MAAgiMD/MAAgLpD/MAAgLoAAEAIAANADYAOgA+AEIARgBKAE4AUgBWAFoAXgBiAGYAAgADAo0ClwAAC/UL9QALC/gL+AAMAAEANAABADYAAQA4AAEAOgABADwAAQA+AAEAQAABAEIAAQBEAAEARgABAEgAAQBKAAEATAKNAAICjQKOAAICjgKPAAICjwKQAAICkAKRAAICkQKSAAICkgKTAAICkwKUAAIClAKVAAIClQKWAAIClgKXAAIClwv1AAIL9Qv4AAIL+AABADIAFgBaAF4AZABqAHAAdgB6AH4AggCGAIoAkACUAJgAnACgAKQAqgCuALIAtgC+AAIABgKgAqYAAAKoAqwABwKuAq4ADAKwArEADQKzArQADwK2AroAEQABAGoAAgBsAHIAAgByAHgAAgB4AH4AAgB+AIQAAQCEAAEAhgABAIgAAQCKAAEAjAACAI4AlAABAJQAAQCWAAEAmAABAJoAAQCcAAIAngCkAAEApAABAKYAAQCoAAMAqgCwALgAAgC4AL4CzQACApgCzgACApgC5AACApsCzwACApgP7gACApsC0AACApgP7wACApsC0QACApgP8AACApsC0gACApgC0wACApgC1AACApgC1QACApgC1gACApgC1wACApgC5QACApsC2AACApgC2QACApgC2gACApgC2wACApgC3AACApgC3QACApgC5gACApsC3gACApgC3wACApgC4AACApgC4QACApgCyQADAp0CmALKAAMCngKYAuIAAgKYD/EAAgKbAAEACgACABIAGAABAAICuQLhAAIADAASAAIAEgAYAscAAgKdAsgAAgKeAskAAgKdAsoAAgKeAAEACAABAA4AAQABAqUAAQAEAuMAAgKWAAEABvahAAEAAQv1AAMAAAACAFoAFAABABoAAQAAAFYAAQABApYAAgAKAqECvQAAAsICygAdAs0C1gAmAtgC4gAwAuQC5wA7BnQGdAA/BncGdwBACwkLCQBBC7kLwABCD+4P8QBKAAEAAgKsAtgAAwAAAAIAkAAWAAIAHABQAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsGdAZ0AD8GdwZ3AEALCQsJAEELuQvAAEIP7g/xAEoAAQACAqwC2AADAAAAAgCSABgAAwAeAB4AUgABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAgAKAqECvQAAAsICygAdAs0C1gAmAtgC4gAwAuQC5wA7BnQGdAA/BncGdwBACwkLCQBBC7kLwABCD+4P8QBKAAEAAgKsAtgAAwAAAAIAlAAaAAQAIAAgACAAVAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAgAKAqECvQAAAsICygAdAs0C1gAmAtgC4gAwAuQC5wA7BnQGdAA/BncGdwBACwkLCQBBC7kLwABCD+4P8QBKAAEAAgKsAtgAAwAAAAIAMgAmAAIALAAWAAEAAABWAAIAAgKNApcAAAv4C/gACwABAAEClgABAAECoAABAAICrALYAAMAAAACAGgAKAADAC4AYgAYAAEAAABWAAIAAgKNApcAAAv4C/gACwABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AADAAAAAgBqACoABAAwADAAZAAaAAEAAABWAAIAAgKNApcAAAv4C/gACwABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AADAAAAAgBsACwABQAyADIAMgBmABwAAQAAAFYAAgACAo0ClwAAC/gL+AALAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAMAAAACABoAFAABACIAAQAAAFYAAQABApYAAQACAqwC2AABAAECzQADAAAAAgBQABYAAgAcAFgAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAgKsAtgAAQABAs0AAwAAAAIAUgAYAAMAHgAeAFoAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAgKsAtgAAQABAs0AAwAAAAIAVAAaAAQAIAAgACAAXAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQACAqwC2AABAAECzQADAAAAAgAiABYAAgAcACoAAQAAAFYAAQABApYAAQABAqAAAQACAqwC2AABAAEC4wADAAAAAgAiABYAAgAcACoAAQAAAFYAAQABApYAAQABAqAAAQACAqwC2AABAAEC0gADAAAAAgBYABgAAwAeAFIAYAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AABAAEC4wADAAAAAgBYABgAAwAeAFIAYAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AABAAEC0gADAAAAAgBaABoABAAgACAAVABiAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAEAAQLjAAMAAAACAFoAGgAEACAAIABUAGIAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAQKgAAEAAgKsAtgAAQABAtIAAwAAAAIAXAAcAAUAIgAiACIAVgBkAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAEAAQLjAAMAAAACAFwAHAAFACIAIgAiAFYAZAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AABAAEC0gADAAAAAgAaABQAAQAiAAEAAABWAAEAAQKWAAEAAgKsAtgAAQABCWEAAwAAAAIAYgBcAAIAFgBqAAEAAABWAAIACwKNApkAAAKbApsADQSVBJUADgZ1BnUADwhGCEYAEAlZCXcAEQv0C/QAMAv2C/YAMQv4C/gAMg/tD+0AMw/yD/MANAABAAEClgABAAICrALYAAEAAQlhAAMAAAACABoAFAABACIAAQAAAFYAAQABApYAAQACAqwC2AABAAEJdQADAAAAAgBiAFwAAgAWAGoAAQAAAFYAAgALAo0CmQAAApsCmwANBJUElQAOBnUGdQAPCEYIRgAQCVkJdwARC/QL9AAwC/YL9gAxC/gL+AAyD+0P7QAzD/IP8wA0AAEAAQKWAAEAAgKsAtgAAQABCXUAAwACABYAIgACACgAHAAAAAEAAABXAAEAAQKNAAEAAQKRAAEAAQK2AAEAAQsJAAEACAABAA4AAQABAqoAAgAGAAwCwgACAo0CwwACApUAAwACAC4AYAABAEQAAgBmABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQABAqIAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAMAAgAWAEgAAQAsAAEATgABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEAAQKiAAEABwKqAq8CswLCAsMC1gLcAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAECzwADAAIAFgBaAAEALAABAEgAAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAcCqgKvArMCwgLDAtYC3AABAAECzwADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAqUAAwACABYASAABACwAAQBOAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQABAqUAAQAHAqoCrwKzAsICwwLWAtwAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQLSAAMAAgAWAFoAAQAsAAEASAABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEABwKqAq8CswLCAsMC1gLcAAEAAQLSAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAECqQADAAIAFgBIAAEALAABAE4AAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAECqQABAAcCqgKvArMCwgLDAtYC3AADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAtUAAwACABYAWgABACwAAQBIAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAHAqoCrwKzAsICwwLWAtwAAQABAtUAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQKwAAMAAgAWAFoAAQAsAAEASAABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEABwKqAq8CswLCAsMC1gLcAAEAAQKwAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAEC2gADAAIAFgBaAAEALAABAEgAAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAcCqgKvArMCwgLDAtYC3AABAAEC2gADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAqYAAwACABYASAABACwAAQBOAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQABAqYAAQAHAqoCrwKzAsICwwLWAtwAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQLTAAMAAgAWAFoAAQAsAAEASAABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEABwKqAq8CswLCAsMC1gLcAAEAAQLTAAMAAgAUABQAAQBGAAAAAQAAAFkAAQAXAo0CjgKPApACkQKSApMClAKVApcCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YL+AABAA4CjQKUApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADgAEABoAHgAkACgAAQAEBJUIRghHCXcAAQASAAIAEgAYAAEAFgABABYL9gABD/MAAghGD/IAAQ/zAAEP8gABAAMAAAABABgABACuAHwAfADKAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABABcCjQKOAo8CkAKRApICkwKUApUClwKZCVkJXgljCWoJawlsCW0JbglxC/QL9gv4AAEADAKiAqUCpgKpAq8CsALPAtIC0wLVAtoP7gABAAEJdAADAAAAAQAYAAQArgB8AHwAygABAAAAWgACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUElQSVAFAGdQZ1AFEGdwZ3AFIIRghGAFMJWQl3AFQLCQsJAHMLuQvAAHQL9Av0AHwL9gv2AH0L+Av4AH4P7Q/zAH8AAQAXAo0CjgKPApACkQKSApMClAKVApcCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YL+AABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCWIAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCXQAAQABC8QAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCWIAAQABC8QAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCXQAAQABC8IAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCWIAAQABC8IAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCXQAAQABC8MAAwAAAAEAFgADAHoAnACWAAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAQABCWIAAQABC8MAAwAAAAEAFgADAIYAgAB6AAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAECjwABAAECmQABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAwAAAAEAFgADAIYAgAB6AAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAECjgABAAECmQABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAwAAAAEAFgADAIYAgAB6AAEAAABaAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwABAAECkAABAAECmQABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaD+4AAgAOAAQA1QsPD28LDgABAAQATABNAbMHOgACACQADw7IDskOyg7LDswOzQ7ODs8O0A7RDtIO0w7UDtUO1gACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQAkAA8AOgBAAEYATABSAFgAXgBkAGoAcAB2AHwAggCIAI4AAgADAvkDAgAAAwoDDAAKBoYGhwANAAIO2Q7IAAIO2Q7JAAIO2Q7KAAIO2Q7LAAIO2Q7MAAIO2Q7NAAIO2Q7OAAIO2Q7PAAIO2Q7QAAIO2Q7RAAIO2Q7SAAIO2Q7TAAIO2Q7UAAIO2Q7VAAIO2Q7WAAEAJAAPADoAQABGAEwAUgBYAF4AZABqAHAAdgB8AIIAiACOAAIAAwL5AwIAAAMKAwwACgaGBocADQACEGcC+QACEGcC+gACEGcC+wACEGcC/AACEGcC/QACEGcC/gACEGcC/wACEGcDAAACEGcDAQACEGcDAgACEGcDCgACEGcDCwACEGcDDAACEGcGhgACEGcGhwABAAgAAQAOAAEAAQPjAAEABA8dAAQDowPjA6kAAQAIAAEADgABAAEDnwACAAYAGA8gAAgD3QADA58D3wOOA98D6g8gAAgD3QADA58D3wOOA98GHwABAAgAAQAOAAEAAQOfAAIABgAWDyAABwPdAAMDnwP8A98D6g8gAAcD3QADA58D/APfBh8AAQAIAAEADgABAAEDuwAEAAoAKgBKAGoPHgAPA+AD8AADC8wAAwPLA+AD8wPqAAMD7QOzA+AD4Q8eAA8D4AM2AAMLzAADA8sD4APzA+oAAwPtA7MD4APhDx4ADwPgA/AAAwvMAAMDywPgA/MGHwADA+0DswPgA+EPHgAPA+ADNgADC8wAAwPLA+AD8wYfAAMD7QOzA+AD4QABAAgAAQAOAAEAAQO7AAMACAAyAFwPHwAUA+AD8AADC8wAAwPLA+AD8wPqAAMD7QOBA98D6gADA+0DswPgA+EPHwAUA+ADNgADC8wAAwPLA+AD8wPqAAMD7QOBA98D6gADA+0DswPgA+EPHwAUA+ADNgADC8wAAwPLA+AD8wYfAAMD7QOBA98GHwADA+0DswPgA+EAAQAIAAEADgABAAEDkQABAAQPIQATA7MD4QADC8wAAwONA98DrQOjA+MD5QADA40D3wOtA6MD8wPhAAEACAABAA4AAQABDyEABQ8hD3APcQ9yD3MAAgAOAAQO1w7YDtoPdAABAAQLoQuiC6QPSAABAAYORwACAAEAEwAcAAAAAQAGABQAAQABArIAAQAGAA4AAQABCWEAAQAGCwYAAQABAAMAAQAKAAIAEgAWAAEAAgKsAtgAAQAIAAEACgLEAAIClgLFAAIClgABAAgAAQAOAAEAAQsJAAEABAKRAAICkQABAB4ADAA6AEAARgBMAFIAWABeAGQAagBwAHYAfAABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAgKZC9gAAglZC9gAAgleC9gAAgljC9gAAglqC9gAAglrC9gAAglsC9gAAgltC9gAAgluC9gAAglxC9gAAgv0C9gAAgv2C9gAAQAiAA4AQgBIAE4AVABaAGAAZgBsAHIAeAB+AIQAigCQAAEADgKNApQCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAgKNC9cAAgKUC9cAAgKZC9cAAglZC9cAAgleC9cAAgljC9cAAglqC9cAAglrC9cAAglsC9cAAgltC9cAAgluC9cAAglxC9cAAgv0C9cAAgv2C9cAAQESAIYBdgF8AYIBiAGOAZQBmgGgAaYBrAGyAbgBvgHEAcoB0AHWAdwB4gHoAe4B9AH6AgACBgIMAhICGAIeAiQCKgIwAjYCPAJCAkgCTgJUAloCYAJmAmwCcgJ4An4ChAKKApAClgKcAqICqAKuArQCugLAAsYCzALSAtgC3gLkAuoC8AL2AvwDAgMIAw4DFAMaAyADJgMsAzIDOAM+A0QDSgNQA1YDXANiA2gDbgN0A3oDgAOGA4wDkgOYA54DpAOqA7ADtgO8A8IDyAPOA9QD2gPgA+YD7APyA/gD/gQEBAoEEAQWBBwEIgQoBC4ENAQ6BEAERgRMBFIEWAReBGQEagRwBHYEfASCBIgEjgSUAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwACAo0L1wACAo4L1wACAo8L1wACApAL1wACApEL1wACApIL1wACApML1wACApQL1wACApUL1wACApYL1wACApcL1wACApgL1wACApkL1wACApsL1wACAqAL1wACAqEL1wACAqIL1wACAqML1wACAqQL1wACAqUL1wACAqYL1wACAqcL1wACAqgL1wACAqkL1wACAqoL1wACAqsL1wACAqwL1wACAq0L1wACAq4L1wACAq8L1wACArAL1wACArEL1wACArIL1wACArML1wACArQL1wACArUL1wACArYL1wACArcL1wACArgL1wACArkL1wACAroL1wACArsL1wACArwL1wACAr0L1wACAsIL1wACAsML1wACAsQL1wACAsUL1wACAsYL1wACAscL1wACAsgL1wACAskL1wACAsoL1wACAs0L1wACAs4L1wACAs8L1wACAtAL1wACAtEL1wACAtIL1wACAtML1wACAtQL1wACAtUL1wACAtYL1wACAtcL1wACAtgL1wACAtkL1wACAtoL1wACAtsL1wACAtwL1wACAt0L1wACAt4L1wACAt8L1wACAuAL1wACAuEL1wACAuIL1wACAuML1wACAuQL1wACAuUL1wACAuYL1wACAucL1wACBJUL1wACBnUL1wACBncL1wACCEYL1wACCVkL1wACCVoL1wACCVsL1wACCVwL1wACCV0L1wACCV4L1wACCV8L1wACCWAL1wACCWEL1wACCWIL1wACCWML1wACCWQL1wACCWUL1wACCWYL1wACCWcL1wACCWgL1wACCWkL1wACCWoL1wACCWsL1wACCWwL1wACCW0L1wACCW4L1wACCW8L1wACCXAL1wACCXEL1wACCXIL1wACCXML1wACCXQL1wACCXUL1wACCXYL1wACCXcL1wACCwkL1wACC7kL1wACC7oL1wACC7sL1wACC7wL1wACC70L1wACC74L1wACC78L1wACC8AL1wACC/QL1wACC/YL1wACC/gL1wACD+0L1wACD+4L1wACD+8L1wACD/AL1wACD/EL1wACD/IL1wACD/ML1wABAAAAAWFyYWIADAAGAAAAAAAFAvADGwRnBGgEaQAAAAAAAQAAAAAAAAAoAAAAAmRsbmcAAAAoAAAAFnNsbmcAAAA+AAAAIkFybW4sIEN5cmwsIEdyZWssIExhdG5BcmFiLCBBcm1uLCBDeXJsLCBHcmVrLCBIZWJyLCBMYXRu';\r\n","export const arialBold =\r\n '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BOMAjQXHAJME4wCNBOMAFgQAACIE4wAWBAAAIgTPAJoGOQBWBpEAVgTrAE4E2gBOA8wATgV5AE4DkgAwBbkATgRr/+0E1QC4AysATwjAACkIAABPBAAAmQgAAE8EAACZCAAATwQAAJgEAACYB9UBagXHAI8EqwBVBNUAnQSsAFUE1QIiBNUBBQWr/+kFAAHJBasCfgWr/+kFqwJ+Bav/6QWrAn4Fq//pBav/6QWr/+kFq//pBav/6QWrAcAFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFqwJ+BasBwAWrAcAFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBasC1gWrAGYFq//qBdX//wTVAJIIAAAAB+sBMAfrASAH6wEwB+sBIATVALIE1QCABNUAKggrAZgIawG4B1UAEAYAAPQGAABvBEAAOgVAADcEwAA/BBUAQAQAACUGAABVBkcAjARzAJAFq//HAesAjQPVAIYHFQAjA+kAGATVAJIC1gBcAtYAXATVALIC1gBNBccAAARzAEkFxwBhBHMAVQXHAGEEcwBVBVYAlQRzAEEFVgCVBHMAQQVWAJUEcwBBBjkAYgTjAFQGOQBiBOMAVAY5AGIE4wBUBccAlgTjAJIFxwAFBOMAGQI5/7oCOf+7Ajn/2gI5/9oCOf/hAjn/4gI5AEgCOQBHBHMAIwI5/6IFxwCZBHMAiQRzAI0E4wCdAjkAgAXHAJgE4wCRBckAnATjAI4GOQBZBOMAUgY5AFkE4wBSBccAlgMdAHsFVgBKBHMAMATjACwCqgAHBccAkwTjAI0FxwCTBOMAjQXHAJME4wCNBccAkwTjAI0HjQAHBjkACQVW//0EcwAOAjkAjQXHAAAEcwBJCAD/qgcdAFgGOQA/BOMAVwKqAMkHjQAHBjkACQeNAAcGOQAJB40ABwY5AAkFVv/9BHMADgI5AJUCqv/XBHMADQTNAFoGrABcBqwAKQasADAGrAAvAqoAvAKqACYCqgC7A7j/9AXH/+gG0/+7Bz//uwPK/7sGmf+mB2v/yAa0/5wCOf8pBccAAAXHAJYFwAAABVYAlQTjABYFxwCWAjkAjAXHAJkFVgAABqoAkQXHAJgFJgBm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Ax3/5gMd/+YDHf/mAx0AhwMdAIcDHQCHAx3/5gSrAIoEqwCKBHMAMAKq/8QCqv/EAqr/mwRRAB4CqgAZAqoAHwTjABsE+ABLBKgAkQRzABIGOQAJBHMADwSRAA8EAAAiBXAAIgQ2ACIENgAiBHMAQgRzAFUEcwBCBHMAVQY5AFkE6wCWBIoATwSwAFIE1QCIA6sAHgRzABQDngCIBOMAWwRzAEIEcwBVCD8AVAeJAFQJrwBUBoIAHwRGAB8GmAAfBvQAGAY1AJMFigCTBEUAHgSCAIgC8QAyAvEAMgGO/+ICBAAyAgQAAAIEAAADAAAyBC8AAALiAAAB5wBcA8sAcAI5AJgCOQB1AjkAlAKqAPMCqgDzAwAAMgMAADIErABfBKwAXwSsACoErAAqAqoBIQKqALsCqgAqAqoBIQKqABMCqgAqAqoAuwKqAMoCqgDKAqoA8wKqAPMCqgCmAqoApgKqAKYCqgATAqr/4QKq//sC7QAAASEAMgMCADIC7gAAAwAAMgMQAJYDEACWAxAAlgMQAJYDEACWAqoAYgKqAGICqgADAqoAHQQAAGkEVwCWBFcAlgRXAJYEVwCWBFcAQwRXAEMEVwBDBFcAQwRXAEMDEABDBFcALwRXAC8EVwAvBFcALwRXAC8DEAAvBFcAJQRXACUEVwAlBFcAJQRXACUDEAAvBFcAGgRXABoEVwAaBFcAGgRXABoDEAAaBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcAlgRXAJYEVwCWBFcAlgRXAEIEVwBCBFcAQgRXAEIEVwBCAxAAQgRXAC8EVwAvBFcALwRXAC8EVwAvAxAALwRXAC8EVwAvBFcALwRXAC8EVwAvAxAALwRXACYEVwAmBFcAJgRXACYEVwAmAxAAJgRXAEIEVwBCBFcAQgRXAEIEVwBCAxAAQgRXAJYEVwCWBFcAlgRXAJYEVwBCBFcAQgRXAEIEVwBCBFcAQgMQAEIEVwAmBFcAJgRXACYEVwAmBFcAJgMQACYEVwAjBFcAIwRXACMEVwAjBFcAIwMQACMEVwAvBFcALwRXAC8EVwAvBFcALwMQAC8EVwBLBFcASwRXAEsEVwBLBFcASwMQAEsEVwCWBFcAlgRXAJYEVwCWBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcAGgRXABoEVwAaBFcAGgRXABoDEAAa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AqoAHwTjACwCqgAfBccAkwTjAI0FxwCTBOMAjQXHAJME4wCNBccAkwTjAI0FxwCTBOMAjQVW//8EcwALBVb//wRzAAsHjQAHBjkACQeNAAcGOQAJBVYAAARzAAwFVgAABHMADAVW//0EcwAOBOMAFgQAACIE4wAWBAAAIgTjABYEAAAiBOMAkgKq/94GOQAJBHMADgRzAEkCOQCNBOsATgTrAE4E6wBOBOsATgTrAE4E6wBOBOsATgTrAE4FxwAABccAAAbz//IG8wAABvP/8gbzAAAG8wBDBvMAQwPMAE4DzABOA8wATgPMAE4DzABOA8wATgYe//IGHgAAB67/8geuAAAHrv/yB64AAATjAI4E4wCOBOMAjgTjAI4E4wCOBOMAjgTjAI4E4wCOBo//8gaPAAAIH//yCB8AAAgf//IIHwAACB8AFAgfABQCOQCTAjkAkwI5/7YCOf/EAjn/3gI5/+wCOf+zAjn/wAMB//IDAQAABJH/8gSRAAAEkf/yBJEAAASRABQEkQAUBOMAUgTjAFIE4wBSBOMAUgTjAFIE4wBSBp3/8gadAAAIVf/yCFUAAAfJ//IHyQAABKgAdgSoAHYEqAB2BKgAdgSoAHYEqAB2BKgAdgSoAHYGggAAB/4AAAhiAAAHrv/zBsIATgbCAE4GwgBOBsIATgbCAE4GwgBOBsIATgbCAE4Gzv/yBs4AAAiG//IIhgAAB/r/8gf6AAAH+v/zB/r/8wTrAE4E6wBOA8wATgPMAE4E4wCOBOMAjgI5/+cCOQCNBOMAUgTjAFIEqAB2BKgAdgbCAE4GwgBOBOsATgTrAE4E6wBOBOsATgTrAE4E6wBOBOsATgTrAE4FxwAABccAAAbz//IG8wAABvP/8gbzAAAG8wBDBvMAQwTjAIwE4wCMBOMAjATjAIwE4wCMBOMAjATjAIwE4wCMBo//8gaPAAAIH//yCB8AAAgf//IIHwAACB//8wgf//MGwgBOBsIATgbCAE4GwgBOBsIATgbCAE4GwgBOBsIATgbO//IGzgAACIb/8giGAAAH+v/yB/oAAAf6//MH+v/zBOsATgTrAE4E6wBOBOsATgTrAE4E6wBOBOsATgXHAAAFxwAABcf/0QXH/90FxwAAAqoA3AKqAMoCqgDcAqr/8wKq//ME4wCMBOMAjATjAIwE4wCOBOMAjAbmAAAG5gAA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BMsASQbhAJgE9gAJA2QAmAKqADUCqgBbAqoAGQKqACgCqgASAqoAIgKqADUCqgAzAqoALAKqAC8CqgA1AqoALwKqADUFowBQBaMAUAWjAFAFowBQBaMAUAWjAFAFowBQBaMAUAWjAFAFowBQBaMAUAXTAFkF0wBZBdMAWQXTAFkF0wBZBdMAWQXTAFkF0wBZBdMAWQXTAFkF0wBZBdkAlgXZAJYF2QCWBdkAlgXZAIwF2QCMBdkAjAXZAIwF2QCMBdkAjAXZAIwF2QCMBdkAjAMWADsDFgA7AxYAOQMWADsDFgAxAxYAOwMWADsDFgA7AxYAOwRN/4kDFgA7AxYAOwMWADsCdwCCAncACQMHAIIDJgCCAnf/+QMWADsDFgA7AxYAOQMWADsDFgAxAxYAOwMWADsDFgA7BZgAmQTjAFQE4wBUBOMAVATjAFQE4wBUBOMAVATjAFQE4wBUBOMAVAId/7wEcACCAncAggJ3AAkDBwCCAyYAggJ3//kCUAAEAlAACAN6AA8CUAAPBOMAigTjAIoE4wCKBOMAigTWAEkEewBKBMcAXAU9AFwCqgASAqoAIgKqADMCqgAsBaAALgTtAJ0E7QCdBpsAKgTVAIUF4wCFAjIAowIyAJYCMgBOAjIAIAIyAGcCMgAxAjIAOQIyAB4CMgAeAjIAQgIyABwCMgAlAjIALgIyABcCMgALDWUARg4yAEYAAP+6D2IARgAA/2QAAP+aAAD/tAAA/5wEngA0BHgAMAQw/7oEMP+6BJ4ANAR4ADAEMP+6BDD/ugcyAEAHMgBABN7/ugTe/7oDdgAKA3YACgSeADQEeAAwBDD/ugQw/7oBvP/MAeD/aAG8/+YB4P+CBSgAlwRvAAoCLP+6Aiz/ugUoAJcEbwAKAiz/ugIs/7oFKACXBG8ACgIs/7oCLP+6A5wABgOcAAYDnAAGA5wABgZ/AEQGfwBFBn8ARAZ/AEUEngA0BHgAMAQw/7oEMP+6BzIAQAcyAEAE3v+6BN7/ugcyAEAHMgBABN7/ugTe/7oEVAApBFQAKQLi/7oC4v+6BE3/ywSl/8wEPv/VBKL/zQe5ADIF7wAyByMAMgUXADUL3v7tAAD+LAAA//wAAABrAAAAcwAAAGsFKACXBG8ACgIs/7oCLP+6Bg4AKQcIACkC4v+6BFb/ugYOACkHCAApAuL/ugRW/7oFKACX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MDAwMDABMDAwMDABMDAwMDABMDAwMDABMDAwMDAwMDAwATAwMDAwATAwMDAwATAwMDAwATAwMDAwATAwMDABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBCgcBAQEPHhIBHC4BHBYBARgKAQEBHAEUAQEWARIBAQESAQFlAQEBDjATFwEBAQEBAQEBAQEBAQEbAQIBAQEcAQEBAQEBAR4BAQEBAS4BAQEBAQEBAQoBAQEBHAEBAQIKAS0FAQEBAS4BLgEcARIBAQEBDwEPOJRGAS8BMS4ZLhkBARYaAZcllyUiDw4TKwGURgEOAQEwFzAXJCEBHBsUAfkB+QH5AQEYGQEhARgBARQBKAEBFQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAZclLiEuIS4hLgEuIS4hLiEuIS4hDhMOEw4TDhMOExwlDSEwNDA0MDQwNDA0OC84JS4MLgwuDBwvHC8cLxwvdjh2OHY4MDQwNDA0MDQkISQhJCEkISIhIiEuIy4jLiMuIwEvAS8BLwEvAS9+AX4BfgF+ATA0MDQwNDA0MDQWqhaqY99j3wEpASli+SIuIi4iLjQB3/klLwEBAQEBAQEBl5cBAQEBAQEVFRUVFRUBAQEBAQE0NDQ0NDQ0NBoaIiIiIiIiJSUlJSUlJSUBAQEBAQEBASEhISEhIRsbJSUBATQ0NDQ0NDQ0AQEBAaurq6urq6urAQEBAQEBAQEBARUVNDQlJSEhNDSrqwEBAQEBAQEBl5cBAQEBAQE0NDQ0NDQ0NBoaIiIiIiIiq6urq6urq6sBAQEBAQEBAQEBAQEBAQGXl5eXlwEBAQEBNDQ0NDQpKQEBMAEBASUlJSUlJTg4AQEBAQE0NDQ0AQE0NGJiKQEBAQEBq6urq6sBGx4BAQEBAS4uAS4BCi4cHgEBAQEBAQEBAQEpCAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARwBAQEBARUVAQ4BARsWQxchAQEBAQoBHBwBAQH/NBwdAarfLgECASsBGQEBMQEBAQEBKysBAQEBAQEfEAEBAQEBEAEBMjIBLgEBAQEBAQEBASABARodHQEBAQEgAQEKAScBAQEBAQEKAQEBAQEBASMBAQ0BAQEBAQEBAQEBAQEBASoBKgEdGAEWAQEaAQEBAQEBGQEBAQEBHgEBAQEBAS4BAQEBAQEuFhoBAQEuLgEcHAEBAQEBAQEBAS4uLgErAQEBAQEBAQEBAQEBAQELCwEBCwsBAQsLAQELCwEBCwsBAQsLAQELCwEBARIBAQESAQEBAQEBAQEGBgEBDQENLA0BDSwNAQ0sICAqASAgKgEBASwBAQEsAQEBLAEsLAEBLCwBAQ0NAQENDQEBDQ0BASoqAQEBAQEBBgYBARwcAQEcHAEBAQEBHAEBAQEBHAciHBwBAQEBARwcAQEtAQEBARwcAQICAQEBARwBARoaAQEBAQEBAQEBAQETBAEgIAEBAQEBAQEBAQEBAQEBAQEaAQEBAQEBMgEBEAEBLgEuAQEBAQEBAQEBJSUlJSUlJSU0NDQ0NDQ0NCUlJSU0NDQ0AQ0BLi4WAQEBARUcLgEBAQEBAS8BKwEBAQEBAgExAQEBAQEBAQEBAQEBHAEcAS4BAS4cLgEcAQENAQEBAQEBAQEvAS4BAQEBAQEBAQEBAQEiIWPfAQEBAQEBARwBAQEBAQEBAQEBAQEBAQEBHAEBJxABASwXFQEBLwEBAQEBAQEBAQEBARkBAQYBHAEBARwUHAEBAQEvASwlAQEBAQEULAEBASsgAQEBAQEBAQEBJgELMAEBHgEjAQEBAQEBJQEBAQEUFBQUKyAgICAgAQEBASYBAQElJQEBAQEBAQEBAQElAQEUFBQUFA4sAQEBAQErKysBICAgAQEBAQEBAQEBAQEBAQEBAQEBAQEBJiYmAQEBAQsBASwtAQEBAR0UAQEBKwEgAQEjASYBAQEBAQEBFCAmARQmARktAQEUFCwBEgEBJQUBASwtAQEVASsrAQEBASABASUBJQEBAREeAQEvAQEaAS8BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBMAEBAQEBAQEBAQYcHBwcHBwcHBwBAQEBATABFBQBFBwcHBwBASUBAQEBAQEBAQEZAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARIBAQESAQEGBgEBAQEBEgEBGgEaAScvAQEnLwEBJy8BASoqKioJCQkJARIBAQYGAQEGBgEBDQ0sLAEBIgEBAQEBAQEBAQEBJy8BAQEBLAEBASwBJy8BAScvAQEnLwEBAQ0pHDAwAS4cJBsBAQEjLAEBLhsBAQEHARkBHAEBATABAQEBARYuAQEBHAETAQEcJTABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEsLCwsLAEsARERFgEBAQEbGxsbGxsbGwEBAQEBAQsLAQEBEgEBAQEBASAgKgEpKSoBKioBASwsAQEnAQEBJwEBAQEBKioBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQENAQ0fJAEBAQEBAQEBAQEBAQEBKQEBAQEBASkBASkBAQEBAQEgBwEBDRwBKSkuAwEBAQEBAS4BKQEBAwEBASUVAQEVAQYBJQEBAS0kAQEjAQEBAQEBJAElJAEBASQBARcBAQEBAQEBAQEBAQEBEZUPAQEDKysrKwEBAQEBCwsBAQEBAQEBAQEBASwBAQEBAQEhLhkBAQEBATEBAQEBAQEaAQ0BDSwNDSwsAQEBBgEuHAEBAQEPDxAQAQEBBQ4jAS4VARUBFQEuAS4BLgEuAQEBHAEGAQEBMQEBHAEBAQEOHCcBHAEZGQEBCgEBAQEcARwBAQEBLS0BAQEBFAEBASMBIwEcAQEBAQEcARQBAQEYAS4BAQUuAQEcAQkBAQEiAQEBIgEcLgEuHC4BAQEBGQEMLhwBAS4KAasBAQEBHAEWAQEBAQEBDyUcAR4BASIcAQEcCgoKAQEBAQEBMQEVCAEcHAEBARMcJgEBAQEBAQEoAQEZDgoTHAEuHAsLAQELCwEBCwsBAQEBJy8BASAgKgEpKSoBDQ0BAQEBAQEBAQEBAQEBAQEBAQEBBAEBAAAAAAMAAwEBAQEBBQMDAQIBAQAYBewLwAD4CP8ACAAI//4ACQAJ//4ACgAK//4ACwAL//0ADAAM//0ADQAN//0ADgAN//0ADwAO//wAEAAP//wAEQAP//wAEgAR//wAEwAS//wAFAAT//sAFQAT//sAFgAV//sAFwAW//sAGAAX//oAGQAY//oAGgAY//oAGwAZ//kAHAAa//kAHQAb//kAHgAc//kAHwAd//kAIAAe//kAIQAf//kAIgAg//gAIwAg//cAJAAi//cAJQAj//cAJgAk//cAJwAk//cAKAAl//cAKQAm//cAKgAn//YAKwAo//UALAAo//UALQAq//UALgAr//UALwAs//UAMAAt//UAMQAt//UAMgAv//QAMwAw//QANAAx//QANQAx//MANgAy//MANwAz//MAOAA0//MAOQA1//MAOgA1//IAOwA3//IAPAA4//IAPQA5//IAPgA5//EAPwA6//EAQAA8//EAQQA9//AAQgA+//AAQwA+//AARAA///AARQBA//AARgBB//AARwBB//AASABD/+8ASQBE/+4ASgBF/+4ASwBG/+4ATABG/+4ATQBH/+4ATgBJ/+4ATwBK/+4AUABL/+4AUQBL/+wAUgBM/+0AUwBN/+0AVABO/+0AVQBO/+0AVgBQ/+0AVwBR/+0AWABS/+wAWQBT/+wAWgBT/+wAWwBU/+wAXABW/+sAXQBX/+sAXgBX/+sAXwBY/+sAYABZ/+oAYQBa/+oAYgBb/+oAYwBb/+oAZABd/+oAZQBe/+oAZgBf/+kAZwBf/+kAaABg/+gAaQBh/+gAagBj/+gAawBk/+gAbABk/+gAbQBl/+gAbgBm/+gAbwBn/+cAcABo/+cAcQBp/+cAcgBq/+YAcwBr/+YAdABs/+YAdQBs/+YAdgBt/+YAdwBu/+UAeABw/+UAeQBx/+UAegBx/+UAewBy/+UAfABz/+QAfQB0/+QAfgB0/+QAfwB2/+MAgAB3/+MAgQB4/+MAggB5/+MAgwB5/+MAhAB6/+MAhQB7/+IAhgB9/+IAhwB9/+EAiAB+/+EAiQB//+EAigCA/+EAiwCB/+EAjACB/+EAjQCD/+EAjgCE/+AAjwCF/+AAkACG/+AAkQCG/+AAkgCH/98AkwCI/98AlACK/98AlQCK/94AlgCL/94AlwCM/98AmACN/98AmQCO/98AmgCO/98AmwCQ/98AnACR/98AnQCS/90AngCS/90AnwCT/90AoACU/90AoQCW/90AogCX/94AowCX/94ApACY/90ApQCZ/90ApgCa/90ApwCa/9wAqACc/9sAqQCd/9wAqgCe/9wAqwCf/9wArACf/9sArQCg/9sArgCh/9sArwCj/9sAsACk/9sAsQCk/9sAsgCl/9oAswCm/9oAtACn/9kAtQCn/9kAtgCp/9kAtwCq/9kAuACr/9kAuQCs/9kAugCs/9gAuwCt/9gAvACu/9gAvQCw/9cAvgCw/9cAvwCx/9cAwACy/9cAwQCz/9cAwgC0/9cAwwC0/9YAxAC2/9YAxQC3/9YAxgC4/9YAxwC4/9YAyAC5/9UAyQC6/9UAygC7/9UAywC9/9QAzAC9/9QAzQC+/9QAzgC//9QAzwDA/9QA0ADB/9QA0QDC/9MA0gDD/9MA0wDE/9IA1ADF/9IA1QDF/9IA1gDG/9IA1wDH/9IA2ADJ/9IA2QDK/9IA2gDK/9EA2wDL/9EA3ADM/9EA3QDN/9AA3gDN/9AA3wDP/9AA4ADQ/9AA4QDR/9AA4gDS/88A4wDS/88A5ADT/88A5QDU/88A5gDW/88A5wDW/88A6ADX/84A6QDY/84A6gDZ/80A6wDa/80A7ADb/80A7QDc/80A7gDd/80A7wDe/80A8ADf/80A8QDf/8wA8gDg/8wA8wDh/8sA9ADj/8sA9QDj/8sA9gDk/8sA9wDl/8sA+ADm/8sA+QDn/8oA+gDo/8oA+wDp/8oA/ADq/8oA/QDr/8oA/gDr/8kA/wDs/8kA+Aj/AAgACP/+AAkACf/+AAoACv/+AAsAC//9AAwADP/9AA0ADf/9AA4ADf/9AA8ADv/8ABAAD//8ABEAD//8ABIAEf/8ABMAEv/8ABQAE//7ABUAE//7ABYAFf/7ABcAFv/7ABgAF//6ABkAGP/6ABoAGP/6ABsAGf/5ABwAGv/5AB0AG//5AB4AHP/5AB8AHf/5ACAAHv/5ACEAH//5ACIAIP/4ACMAIP/3ACQAIv/3ACUAI//3ACYAJP/3ACcAJP/3ACgAJf/3ACkAJv/3ACoAJ//2ACsAKP/1ACwAKP/1AC0AKv/1AC4AK//1AC8ALP/1ADAALf/1ADEALf/1ADIAL//0ADMAMP/0ADQAMf/0ADUAMf/0ADYAMv/0ADcAM//0ADgANP/zADkANf/zADoANf/zADsAN//zADwAOP/yAD0AOf/yAD4AOf/yAD8AOv/yAEAAPP/yAEEAPf/xAEIAPv/xAEMAPv/xAEQAP//xAEUAQP/xAEYAQf/wAEcAQf/wAEgAQ//wAEkARP/vAEoARf/vAEsARv/vAEwARv/vAE0AR//vAE4ASf/vAE8ASv/vAFAAS//vAFEAS//tAFIATP/tAFMATf/tAFQATv/tAFUATv/tAFYAUP/tAFcAUf/tAFgAUv/sAFkAU//sAFoAU//sAFsAVP/sAFwAVv/rAF0AV//rAF4AV//rAF8AWP/rAGAAWf/qAGEAWv/qAGIAW//qAGMAW//qAGQAXf/qAGUAXv/qAGYAX//pAGcAX//pAGgAYP/oAGkAYf/oAGoAY//oAGsAZP/oAGwAZP/oAG0AZf/oAG4AZv/oAG8AZ//nAHAAaP/nAHEAaf/nAHIAav/mAHMAa//mAHQAbP/mAHUAbP/mAHYAbf/mAHcAbv/lAHgAcP/lAHkAcf/lAHoAcf/lAHsAcv/lAHwAc//kAH0AdP/kAH4AdP/kAH8Adv/jAIAAd//jAIEAeP/jAIIAef/jAIMAef/jAIQAev/jAIUAe//jAIYAff/iAIcAff/hAIgAfv/hAIkAf//hAIoAgP/hAIsAgf/hAIwAgf/hAI0Ag//hAI4AhP/gAI8Ahf/gAJAAhv/hAJEAhv/hAJIAh//gAJMAiP/gAJQAiv/gAJUAiv/fAJYAi//fAJcAjP/fAJgAjf/fAJkAjv/fAJoAjv/fAJsAkP/fAJwAkf/fAJ0Akv/dAJ4Akv/dAJ8Ak//dAKAAlP/dAKEAlv/dAKIAl//eAKMAl//eAKQAmP/dAKUAmf/dAKYAmv/dAKcAmv/cAKgAnP/bAKkAnf/cAKoAnv/cAKsAn//cAKwAn//bAK0AoP/bAK4Aof/bAK8Ao//bALAApP/bALEApP/bALIApf/aALMApv/aALQAp//ZALUAp//ZALYAqf/ZALcAqv/ZALgAq//ZALkArP/ZALoArP/YALsArf/YALwArv/YAL0AsP/XAL4AsP/XAL8Asf/XAMAAsv/XAMEAs//XAMIAtP/XAMMAtP/WAMQAtv/WAMUAt//WAMYAuP/WAMcAuP/WAMgAuf/VAMkAuv/VAMoAvP/VAMsAvf/UAMwAvf/UAM0Avv/UAM4Av//UAM8AwP/UANAAwf/UANEAwv/TANIAw//TANMAxP/SANQAxf/SANUAxf/SANYAxv/SANcAx//SANgAyf/SANkAyv/SANoAyv/RANsAy//RANwAzP/RAN0Azf/QAN4Azf/QAN8Az//QAOAA0P/QAOEA0f/QAOIA0v/PAOMA0v/PAOQA0//PAOUA1P/PAOYA1v/PAOcA1v/PAOgA1//OAOkA2P/NAOoA2f/NAOsA2v/NAOwA2//NAO0A3P/NAO4A3f/NAO8A3v/NAPAA3//NAPEA3//MAPIA4P/MAPMA4f/LAPQA4//LAPUA4//LAPYA5P/LAPcA5f/LAPgA5v/LAPkA5//KAPoA6P/KAPsA6f/KAPwA6v/KAP0A6//KAP4A6//JAP8A7P/JAPgI/wAIAAj//gAJAAn//gAKAAr//gALAAv//QAMAAz//QANAA3//QAOAA3//QAPAA7//AAQAA///AARAA///AASABH//AATABL//AAUABP/+wAVABP/+wAWABX/+wAXABb/+wAYABf/+gAZABj/+gAaABj/+gAbABn/+QAcABr/+QAdABv/+QAeABz/+QAfAB3/+QAgAB7/+QAhAB//+QAiACD/+AAjACD/9wAkACL/9wAlACP/9wAmACT/9wAnACT/9wAoACX/9wApACb/9wAqACf/9gArACj/9gAsACj/9gAtACr/9gAuACv/9gAvACz/9gAwAC3/9gAxAC3/9QAyAC//9AAzADD/9AA0ADH/9AA1ADH/9AA2ADL/9AA3ADP/9AA4ADT/8wA5ADX/8wA6ADX/8wA7ADf/8wA8ADj/8gA9ADn/8gA+ADn/8gA/ADr/8gBAADz/8gBBAD3/8QBCAD7/8QBDAD7/8QBEAD//8QBFAED/8QBGAEH/8ABHAEH/8ABIAEP/8ABJAET/7wBKAEX/7wBLAEb/7wBMAEb/7wBNAEf/7wBOAEn/7wBPAEr/7wBQAEv/7wBRAEv/7QBSAEz/7QBTAE3/7QBUAE7/7QBVAE7/7QBWAFD/7QBXAFH/7QBYAFL/7ABZAFP/7ABaAFP/7ABbAFT/7ABcAFb/6wBdAFf/6wBeAFf/6wBfAFj/6wBgAFn/6gBhAFr/6gBiAFv/6gBjAFv/6gBkAF3/6gBlAF7/6gBmAF//6QBnAF//6QBoAGD/6ABpAGH/6ABqAGP/6ABrAGT/6ABsAGT/6ABtAGX/6ABuAGb/6ABvAGf/5wBwAGj/5wBxAGn/5wByAGr/5gBzAGv/5gB0AGz/5gB1AGz/5gB2AG3/5gB3AG7/5QB4AHD/5QB5AHH/5QB6AHH/5QB7AHL/5QB8AHP/5AB9AHT/5AB+AHT/4wB/AHb/4wCAAHf/4wCBAHj/4wCCAHn/4wCDAHn/4wCEAHr/4wCFAHv/4wCGAH3/4gCHAH3/4QCIAH7/4QCJAH//4QCKAID/4QCLAIH/4QCMAIH/4QCNAIP/4QCOAIT/4ACPAIX/4ACQAIb/4QCRAIb/4QCSAIf/4ACTAIj/4ACUAIr/4ACVAIr/3wCWAIv/3wCXAIz/3wCYAI3/3wCZAI7/3wCaAI7/3wCbAJD/3wCcAJH/3wCdAJL/3QCeAJL/3QCfAJP/3QCgAJT/3QChAJb/3QCiAJf/3gCjAJf/3gCkAJj/3QClAJn/3QCmAJr/3QCnAJr/3ACoAJz/2wCpAJ3/3ACqAJ7/3ACrAJ//3ACsAJ//2wCtAKD/2wCuAKH/2wCvAKP/2wCwAKT/2wCxAKT/2wCyAKX/2gCzAKb/2gC0AKf/2QC1AKf/2QC2AKn/2QC3AKr/2QC4AKv/2QC5AKz/2QC6AKz/2AC7AK3/2AC8AK7/2AC9ALD/1wC+ALD/1wC/ALH/1wDAALL/1wDBALP/1wDCALT/1wDDALT/1gDEALb/1gDFALf/1gDGALj/1gDHALj/1gDIALn/1QDJALr/1QDKALz/1QDLAL3/1ADMAL3/1ADNAL7/1ADOAL//1ADPAMD/1ADQAMH/1ADRAML/0wDSAMP/0wDTAMT/0gDUAMX/0gDVAMX/0gDWAMb/0gDXAMf/0gDYAMn/0gDZAMr/0gDaAMr/0QDbAMv/0QDcAMz/0QDdAM3/0ADeAM3/0ADfAM//0ADgAND/0ADhANH/0ADiANL/zwDjANL/zwDkANP/zwDlANT/zwDmANb/zwDnANb/zwDoANf/zgDpANj/zQDqANn/zQDrANr/zQDsANv/zQDtANz/zQDuAN3/zQDvAN7/zQDwAN//zQDxAN//zADyAOD/zADzAOH/ywD0AOP/ywD1AOP/ywD2AOT/ywD3AOX/ywD4AOb/ywD5AOf/ygD6AOj/ygD7AOn/ygD8AOr/ygD9AOv/ygD+AOv/yQD/AOz/yQAAABgAABGcCxYIAAMDAwUGBgkIAwQEBAYDBAMDBgYGBgYGBgYGBgMDBgYGBwsIBwgHBgYIBwMGBwcKBwgHCAcHBwcICgcHBwQDBAYGBAYHBgcHBAcHAwMHAwsHBwcHBQcEBwYKBgYGBAMEBggICAYHCAcGBgYGBgYGBwcHBwMDAwMHBwcHBwcHBwcHBgQGBgYEBgcICAsEBAYLCQgGBgYGBgUICQcDBAQICQcHAwYGBgYGBgYLCAgICwoGCwYGAwMGBQYHAgYEBAgIBgMDBgsIBggGBgMDAwMICAgHBwcDBAQEAwQEBAQEBAcDBwcHBgMIBwcGBwcGBgQEBAkJCQYIBwMHBwgGCAYHBgQIBggGBwgIBgcGBwcDBwQHBQcHBwcIBwcFBwUHBwcEBwUHBwcHBwYHBgcICQcHBQgFCQYHBAwLBgsGCwYGCwgGBwYHBwgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAcLCwsLCwcHBwsMCggIBgcHBgYICQYIAwUKBQcEBAcECAYIBggGBgcGBwYHCAcIBwgHBwcHBwMDAwMDAwMDBgMHBwYHAwcHCAcIBwgHBwUHBwcEBwcHBwcHBwcKCgcGAwgGCwkJBwQKCgoKCgoHBgMEBgcJCQkJBAQEBQgJCgUJCgkDCAcIBgcHAwcICgcHCAgHBwcHBwkJAwcHBQcDBgcHBQcGAwYHBwYFBwcGBgYJCQMGBwYJBgoHCAcDAwYMDAoHBwgICAcGCAYLBwcHBwgKBwgIBwgHBwkHCAgLCwoLCAgLBwYHBwUHBwkFBwcGBwgHBwcHBgUGCQYHBgkJCAkGBgkGBwcFBgcDAwMLCgcGBgYFBQsNCAAAAAAAAAAAAAAAAAAFAAQAAAMGBgYGBwMFBwcDBgUFBwcDBAcGBwYGBgcGCQcGBgYDBgkDBgYFBQYJCQkJBgYGBgYGBwQFBwQGBQUHBAcHBgYHBgkHAwYFBgcAAAAABAQEBQIAAAAAAAAAAAYGBgYGBgYGBgYGBAYICAQIBgYGCAgICAgACAgICAgICAgHCAgIBwcDAwgICAgGBgYGBQUICgQGCAoEBgcGBQgICAgICAgICAgICAgICAAAAAAACAgAAAAAAAAAAAAAAAAAAAAABgsICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAQICAUDAwIDBQUCAwcGAwMCAwcHAwMEBQcHAwMHBwMDBgYGBgYGBgYGBgYGBAQEBAUFBQUKCgcHCgoHBwwMCAgMDAgIBgYGBgYGBgYGBQYEBgUGBAgIAwQHBwMEBgYEBAUFAwMEBAUFBgYDAwQFBQUFBQcGBwYDAwYHBQYFBgUGCAgAAAgICAAACAgAAAgICAAAAAAAAAgAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQEBAgICAgICAgICAgICAgICAgICAgICAgIBAELFgkICQgAAAAAAAAAAAAAAAAAAAAABgkJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMIBggGCAYIBggGCAYIBggGCAYIBggGCAYGBwYHBgcGBwYHBgcGBwYHAwMDAwgHCAcIBwgHCAcIBwgHCQgJCAkICQgJCAcHBwcJCAkICQgJCAkIBwYHBgcGCAYDAwgHBwcHBwcHBwcHBwAAAAAGBQoIBwYHBggHBgYGBgcGCAYIBwgGCQcHAwMEBwMDAwMDAwAAAAQEAAAAAAIDAgMCAwIDBQUFBQcGBwcDAwcHAwMHBwMDBwcDAwcHAwMHBwMDBwcDAwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgQEBAQEBAQEBAQEBAQEBAQEBAUFBQUFBQUFBQUFBQUFBQUKCgcHCgoHBwoKBwcMDAgIDAwICAYGBgUGBAgICAMECAgDBAgIAwQICAMECAgDBAcHBwcNDQoKCAoEBgYGBAQGBgQEBgYEBAgKBAYICgQGCAoEBggKBAYICgQGBQUDAwUFAwMFBQMDBQUDAwYGAwMGBgYGBgYDAwYGBgYGBgQFBAQEBQUFBQUFBQUFBQUFBQUFBQcGBwYDAwUFBwYDAwcGCQkJCQIAAAAAAAAADAwAAAAAAAACBAAABwAAAAoKBwcMDAgIBgUGBAUEBAMEAwMDAwMICgMABQYFBgUGBQYFBgUGBQYFBgYGBQYHCQgHCAcICAYICQgHBwcHBwkHCgMDCAYDBgsIBwkKCAkHBwcGBwQEBwQHCQgIBgcGBwcGBgYGBQYHAwUGAw8NDA0KBg4LCgYIBgAIBgsJCQcIBwcHCAcIBwcGAw8NDAgHCwcHBwgGCAYGBwYHAwMDAwgHCAcHBQcFBwcHBwcHBwQGBgcHCAcHBwYIBgYHCAcACAcIBwgHBwYGBwcHBgYHBwYJBQUIBgQHBwYGBwcHBwMDBAQEAwcKCgoHBwcHCQkIBAQEBAQEBAYGBgQEBAYEBAcHBgYJBgYGBwYGBgYGBgkHBgYHBQYFBwYGCwoNCQYJCgkIBgYEBAIDAwMEBgQDBQMDAwQEBAQGBgYGBAQEBAQEBAQEBAQEBAQEBAQEAgQEBAQEBAQEBAQEBAYGBgYGBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQHBggLCAgJBwkHCAYHBQgGCQcLCggHCAcHBwcHCAYGBQcHBgMJBQUGBwcHDgkKCAsJBwYKCQkIDAsHBQkICQcJBwkHDAsJBw4KAA4JCAYGAAAAAAAACAcIBwcHCAcHBQcGCAcKCAwKCAYIBgcFCQgIBgkHCQcDCwkIBwgHCAcIBwgGCQgECAYIBgsJBgcIBgsJBwUHBgcHBwcIBwkHCAYHBgcGBwYIBgsJCAcLCgsJBwYLCwsKCQYICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYHBwcHBwcIBgcHBwcHBwcHBwcGBwYHBgcGBwYHBgQIBwcHBwcHBwcHBwcDAwMDBwcHBwcHBwMHAwcDBwMKCwoLCgsHBwcHBwcHBwgHCAcIBwgHBwcHBwcFBwUHBQcFBwcHBwcHBwcHBwcEBwQHBAcEBwcHBwcHBwcHBwgGCAYKCgoKBwYHBgcGBwYHBgcGBwQKBgYDBwcHBwcHBwcICAoKCgoKCgUFBQUFBQgICwsLCwcHBwcHBwcHCQkLCwsLCwsDAwMDAwMDAwQEBgYGBgYGBwcHBwcHCQkLCwsLBgYGBgYGBgYJCwwLCQkJCQkJCQkJCQwMCwsLCwcHBQUHBwMDBwcGBgkJBwcHBwcHBwcICAoKCgoKCgcHBwcHBwcHCQkLCwsLCwsJCQkJCQkJCQkJDAwLCwsLBwcHBwcHBwgICAgIBAQEBAQHBwcHBwkJCgoHBAQEAwMDAwMDAwMFBQQEBAYGBgYHBwYGBwcJCggFBQQJCQkJCQoJCgkJBAQGCAgKCA0KCAcMBgcAAAAAAwMGBwkFCQYICAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAHBwYJCgcGBgYGBQMGBgUIBwcGBwcHCgYHBwcGBgUGBwgHBgoGBQUHBQYHBwgHBQgFBQUFBQYFAgQFBAYFBQYFBQUFBQcEBAQGBAQEBAQEBAIEBgQFBAUFBAIEBAYEBQQEBAUEAgMEBAQEBAUECg8EDgcDBgAAAAAAAAAAAAQEBQUFBQUFCAgIBwcIBwkGAAAABgYFAwMDAwkNBgsGCwQDAgYDAgEACAgJCAoKCggIBgcHBgYHAAAAAAAHCAgIBgUAAAAEAAQEAAAAAAAAAAcHAwMHBwMDBwcDAwcHAwMHBwMDBwcDAwcHAwMGBgYGBgYGBgQEBAQFBQoKBwcGBQYEBgUGBAYFBgQICAMECAgDBAgKBAYICgQGCAoEBgQEBQUEBAUFBgYDAwYGAwMGBgMDBQUDAwUFBQUKCgcHBwcECgcHBAQGBAYHBAcKAwMHBgcHBwQIBgMKBwcEBgUGBgYGBwcGBQUHAwYEBwYEBAQFBAMDBAQCAgICAwICAwYGBQUEBQYEAwIEBQQEBAQEBQQEAAAAAAQEBAUEBAkIBwgEBwcHBwcHBwcDAwMDAwMDAwYGBgYGBgYGAwMDAwYGBgYFBgUICAgHBgYDCQcIBAcGBgYGAwYFBwYHBgcFCAcAAAAAAAAAAAALBgYHAwcHCAYECAcIBgcGBgYFCAAAAAAAAAMICAgAAAAAAAAAAAAAAAgHCgoIAAgHCwkEBAMDBgYEBAQEAAAAAAAAAAAHBgYFBgYGBgYGBgYGBQYGBgYGBgYGCAgIDQgECAkHAwYDBwMHBgYEAwMHBwcHBgYHBwMFBwYIBwcGBwcGBgcGCQYGBgkJBgcGBwcHBwcHBwcHBgYGBgMDAwMHBwcHBwcHBwcHBgcHBwcHBwcHBgYGBgYHBwcHBwMDAwMDCAUHBgYGBgcHBwcHBwcHBwcGBgYGBgYGBgcHBwcHBwkJCQkGBgYGBgYHCQcHBwYHBgYHBwMHBggHBgcHBgYGBggGBwcHBgcDBwYHAwYGCAYHBgMDBQoKCAYGBwcHBwYHBgkGBwcGBggHBwcGBwYGCAYHBwkJCAkHBwkHBQQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQEBAQEBAQEBAYEBAQDAwQEAwQEBAQEBAQECAcHBwcHBwcHBwMGAwMEBAMDAwUDBwcHBwcGBwcEBAQECAcHCQcIAwMDAwMDAwMDAwMDAwMDEhQAFQAAAAAGBgYGBgYGBgoKBwcFBQYGBgYCAwIDBwYDAwcGAwMHBgMDBQUFBQkJCQkGBgYGCgoHBwoKBwcGBgQEBgYGBgsICgcQAAAAAAAHBgMDCAoEBggKBAYHBgMDBwYDAwcGAwMABgUHBgcHCAcOBgcLCgkJCwoIBgwKDAoIBwgHBAQHCQYHBwgHCQgICAQHBgIEBwcDCg8MEBUCAgIDAgICAgMCAgICAgICAgICAgMDAwMDAwMCBAQHBAQGBgcHBwcHBwcHBgYGBgYGBwcDAwYGBgYGBgYGCAgDBAcHAwQFBQMDBAQFBQcGAwMHBgMDBAQFBQUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQYABgYHBwAABAQGBgYGBgYGBgYHBAQDAgAJCAgICAgICAgKCAgGCggIBwgICAgICAgICAkICAgIBwgIBgoICQkDAwIDAwMGCgcHBwcHBgcJBwcDCgcHBwYHBwcDBwYHBAoGBwcHCgcHBQoHBwkJAwQLCwgNDQ0NEQYLAAAHBwMDAgQEDAwICAgKBAYEAwUFAAYIBxANCAcIBwoKBwoKBwkJBgUGBAYGBAQAAwMDAwgHCQgGBgYGBwcGBg0KDQoMCgsJCwkLCQgGCAYIBggGCAUHAwoHCggPCwcHCQgKCQkHCwgHBQcHBwYKCQYGBwcHBwYFBQUGBgYGBAkFDAkECQgGCQcGBAYHBwcDCQcGBAcGCAYIBwgGBgcKCQcECAcIBggHCQcIBggHCAQHBgkHCAkIBwYJCAcLCQgFBwoHBwkDDQcKBgYHBAcFBAQKBwcGBgcKCgoLCwYHBAYGBwYJBAcHCgoHBgcHBwcHBwYEBAQDBQkJCgsHBwgHBwcDAwcHAwMHBwQEBQUHBgMDCAgDBAcHAwQGBgMDAAAAAAAAAAAAAAAAAAAAAAAFDQ0AAAAMGAkAAwMDBgcHCQkDBAQFBwMEAwMHBwcHBwcHBwcHAwMHBwcHDAgICAgHBggIAwcIBwoICQgJCAgHCAgMCAcHBAMEBwcEBwcHBwcEBwcDAwcDCwcHBwcFBwQHBgoHBgYFAwUHCAgIBwgJCAcHBwcHBwcHBwcHAwMDAwcHBwcHBwcHBwcHBQcHBwQHBwkJDAQEBw0JCQcHBwcHBgkKBwMEBAkLBwcDBwcHBwcHBwwICAkNCwcMBgYDAwcGBgcCBwQECAgHAwMGCwgHCAcHAwMDAwkJCQgICAMEBAQEBAQEBAQEBwMIBwcGAwkHBwYIBwcHBAQECgoKBwgHAwgHCAcIBwcHBAgHCAcICQkHBwcHBwMHBQcGCAcIBwkHCAUIBQgHBwQHBggHCAcHBgcGBwkLBwcGCAUJBwcFDQwGDAYMBgYMCQcHBwcHCQgJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBwwMDAwMBwcHDA0LCQkGCAcGBgkJBgkDBgsGBwQEBwQIBwgHCAcHBwcHBwcIBwgHCAcIBwgHAwMDAwMDAwMHAwgHBwcDCAcJBwkHCQcIBQgHBwQIBwgHCAcIBwwKBwYDCAcNCwkHBAwKDAoMCgcGAwQHBwoKCgoEBAQGCAoLBgoLCgMICAkHBwgDCAgKCAgJCQgHBwcICQoDBwcGBwMHBwcGBwYDBwcHBgUHBwYHBwkLAwcHBwsHCwcJCAMDBw0NCwcHCAgICAcJBwsICAgHCAoICQkICAcHCwgJCAsLCgwICQwIBwcHBQgHCQYHBwYICAcHBwcHBQYLBwcHCQkJCgcHCgcHBwUHBwMDAwwLBwYGCAYFDA0JAAAAAAAAAAAAAAAAAAUABAAAAwcHBgcHAwUHCAMGBgYHCAMFBwcHBwYGBwYJCAcHBwMGCgMGBgYGBwkJCQkHBwcHBgcHBAUIBAYGBggFBwcHBgcGCQgDBwYHBwAAAAAEBAQGAgAAAAAAAAAABwcHBwcHBwcHBwYEBgkJBAkHBwcJCQkJCQAJCQkJCQkJCQcJCQkICAMDCQkJCQcHBgYFBQkLBAcJCwQHCAcFCQkJCQkJCQkJCQkJCQkJAAAAAAAJCQAAAAAAAAAAAAAAAAAAAAAHDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkEBAkIBgMDAwMFBQMDCAcDAwMDCAgDAwQFCAgDAwgIAwMHBwYGBwcGBgcHBgYEBAQEBQUFBQsLBwcLCwcHDQ0JCQ0NCQkGBgYGBgYGBgcGBwQHBgcECQkEBAcHBAQHBwQEBQUDAwQEBQUHBwMDBAUGBQUFCAcIBwMDBwcGBwYHBgcJCQAACQkJAAAJCQAACQkJAAAAAAAACQAACQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBAQECQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkEAgwYCgkKCQAAAAAAAAAAAAAAAAAAAAAGCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwgHCAcIBwgHCAcIBwgHCAcIBwgHCAcIBwcHBwcHBwcHBwcHBwcHBwcDAwMDCQcJBwkHCQcJBwkHCQcKCQoJCgkKCQoJCAcIBwoJCgkKCQoJCgkHBgcGBwYIBwMDCQcIBwgHCAcIBwgHAAAAAAcFCwkHBgcGCQcHBwcHCAcIBwgHCQcJBwgDBAQHAwMDAwMDAAAABAQAAAAAAwMDAwMDAwMFBQUFCAcICAMDCAgDAwgIAwMICAMDCAgDAwgIAwMICAMDBwcGBgcHBgYHBwYGBwcGBgcHBgYHBwYGBAQEBAQEBAQEBAQEBAQEBAQEBQUFBQUFBQUFBQUFBQUFBQsLBwcLCwcHCwsHBw0NCQkNDQkJBgYHBgcECQkJBAQJCQQECQkEBAkJBAQJCQQEBwcHBw4OCwsJCwQHBwcEBAcHBAQHBwQECQsEBwkLBAcJCwQHCQsEBwkLBAcFBQMDBQUDAwUFAwMFBQMDBwcDAwcHBwcHBwMDBwcHBwYGBAUFBQUFBQUFBQUFBQUFBQUFBQUFCAcIBwMDBQUIBwMDCAcKCgoKAgAAAAAAAAANDQAAAAAAAAMEAAAHAAAACwsHBw0NCQkHBgcEBgQEAwQDAwMDAwkLAwAFBwYHBgcGBwYHBgcGBwYHBwcGBwcKCAcJBwkJBwkKCQcHCAgHCQgLAwMJBwMHDAkHCQsJCQcICAcHBAQHBAcKCQkHBwYHBwYGBwcGBwcDBgcDEA8NDgsHDwwLBwgHAAgHDQsJBwgHCAcJBwkHBwYDEA8NCAcMCAgHCAcIBwcHBwcDAwMDCQcJBwgFCAUIBwgHCAcHBAcGCAcICAgHBggHBwcJBwAJBwkHCQcHBgcHBwcHBwcHBwkGBggHBAcHBwcHBwcHAwMFBAQDBwsLCwcHBwcKCgkFBQUFBQUFBwcHBAQEBgQEBwcHBwkHBwYIBgYHBwcHCQcHBwcGBwUHBwcMCw8KBgoKCQgGBwQEAgMDAwUGBAMGAwMDBAQFBQcHBwcEBAQEBAQEBAQEBAQEBAQEBAQCBQQFBQUFBQUEBAQEBgcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAcHCQwJCQoICQcJBwcFCQYKBwwLCAcIBwgICAcJBwYFCAcHAwkGBgcIBwcPCQoIDAoIBwsKCgkNDAgGCgkJBwoICggNDAoIDwsADwkJBwcAAAAAAAAJBwkHCAcIBwgGBwYJBwsJDgsJBwkHBwYKCAgHCggKCAMLCQgHCAgJBwkHCAcKCQQIBwgHDQsHBwkHCwkIBggGCAcIBwkHCQcJBwcGBwYHBggHDAoJBwwLDAoIBgwLDAsJBwkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBwgHCAcIBwgHCAcIBwgHCAcIBwcHBwcHBwcHBwcGBAgHCAcIBwgHCAcIBwMDAwMIBwgHCAcHAwcDBwMHAwoLCgsKCwgHCAcIBwgHCQcJBwkHCQcIBwgHCAUIBQgFCAUIBwgHCAcIBwgHBwQHBAcEBwQIBwgHCAcIBwgHCAYIBgwKDAoIBwgHBwYHBgcGBwYHBAoGBwMHBwcHBwcHBwgICgoKCgoKBgYGBgYGCQkMDAwMBwcHBwcHBwcKCgwMDAwMDAMDAwMDAwMDBQUHBwcHBwcHBwcHBwcKCg0NDAwHBwcHBwcHBwoMDQwLCwsLCwsLCwoKDQ0MDAwMBwcGBgcHAwMHBwcHCwsHBwcHBwcHBwgICgoKCgoKBwcHBwcHBwcKCgwMDAwMDAsLCwsLCwsLCgoNDQwMDAwHBwcHBwcHCAgICAgEBAQEBAcHBwcHCgoLCwgEBAQDAwMDAwMDAwYGBAQEBwcHBwcHBwcHBwoLCQYGBAsLCwsLCwoLCgoEBAcJCQsJDwsJBw0GBwAAAAADAwcICgYKBgkJBAQEBAQEBAQEBAQEBAQFBQQAAAAAAAAAAAAAAAgHBwkLBwcHBwYGAwYHBQgHBwcHBwcLBwcHBwcHBQcHCQcGCgYGBgcFBwcHCQgGCAUFBQUFBgUCBAYFBgUFBgUFBgUFCAUFBQcFBQUFBAQFAgQHBAUFBQUFAwQFBwQFBQQFBgUCAwQEBQQFBgULEAQQCAMHAAAAAAAAAAAABAQFBQYFBgUJCAkICAkICgcAAAAHBgYDAwMDCg4GDAYMBAMCBwMCAQAJCAoJCwsLCQkHBwcHBggAAAAAAAcJCQkHBQAAAAUABAUAAAAAAAAACAgDAwgIAwMICAMDCAgDAwgIAwMICAMDCAgDAwcHBgYHBwYGBAQEBAUFCwsHBwcGBwQHBgcEBwYHBAkJBAQJCQQECQsEBwkLBAcJCwQHBAQFBQQEBQUHBwMDBwcDAwcHAwMFBQMDBQUFBQsLBwcHBwQLBwcFBQcEBgcEBwoDAwcHBwcHBAkHAwsHBwUHBgcHBgcHBwcGBggDBwQHBgUFBQUEAwMFBAICAgIEAgIDBwcFBQQFBgUDAwUFBAQEBAQGBQQAAAAABAUFBQQFCQkICQQHBwcHBwcHBwMDAwMDAwMDBwcHBwcHBwcDAwMDBwcHBwYHBgkJCAgHBwMJBwkFCAcHBwcDBwUIBwgHCAYICAAAAAAAAAAAAAwGBwcDBwgJBwQJBwkHBwYHBwUJAAAAAAAAAwkJCQAAAAAAAAAAAAAACQcMCgkACQcNCgQFAwMGBgQEBAQAAAAAAAAAAAcHBwUHBgcHBwYHBwcFBwcHBwcGBwcICQkOCQUICQcDBwQHAwcHBwUEAwcHBwcHBggIAwYHBgkICAcIBwcGBwcJBwcGCgoGCAcHCAcHBwcHBwcHBwcHAwMDAwgICAgICAcHBwcHBwcHBwcIBwcHBwcHBwgIBwgIAwMDAwMJBgcGBgYGCAgICAgICAcHBwcHBwcGBgYGBwcHBwcHCQkJCQcHBwYGBgcKCAcHBgcHBggIAwcHCQgGCAgHBgYHCAcICAcHCAMIBwgDBwcJBgcHAwMGCwsIBwcHBwcHBgcHCgcICAcHCQgICAcHBgcIBwgHCgoJCgcHCgcFBAQEBAQEBAQEBAQEBAgICAgICAgICAgICQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJBQUFBQUFBQUFBgUFBQQEBQUEBQUFBQUFBQUIBwcHBwcHBwcHAwcEBAUFBAMDBQMHBwcHBwcHCAQEBAQIBwcKBwkDAwMDAwMDAwMDAwMDAwMUFQAXAAAAAAcHBgYHBwYGCwsHBwUFBwcGBgMDAwMIBwMDCAcDAwgHAwMFBQUFCgoKCgcHBgYLCwcHCwsHBwcHBAQGBwYHDAkLCBIAAAAAAAgHAwMJCwQHCQsEBwgHAwMIBwMDCAcDAwAHBgcHCAgJBxAHCAwKCgoMCgkHDQsOCwkHCAcEBAcKBggHCAgKCQkIBQcGAgQIBwMLEQ0RFwICAgMCAgICAwICAgICAgICAgICAwMDAwMDAwIEBAcEBAcHCAgICAgICAgHBwYHBwYICAMDBwcGBgYGBgYJCQQEBwcEBAUFAwMEBAUFCAcDAwgHAwMFBQUFBQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBwAGBwcIAAAEBAcHBwcHBwcHBwcEBQMCAAoJCQkJCQkICQsJCAcLCQkICQkJCQkJCAkICgkJCQkICAkGCgkKCgMDAwMEAwYLBwgIBwcHCAkIBwMLBwcHBwcHBwMHBgcFCwcHBwcLBwcFCwcHCgkDBQwMCQ8PDw8SBwwAAAgIAwMCBAQNDQkJCQsEBwQDBQUABwkHEQ4JCAgICwsICwsICgoHBgcEBwcEBAAEAwQDCQcKCQcHBgYICAYHDwoOCw0LDAoMCgwKCQcJBwkHCQcJBQcDCwgLCBAMCAcKCQsKCgcMCQcGCAgIBwsJBwcIBwgHBwYGBgcHBwcECQUNCQUJCQYJBwYFBwcHBwMKCAYFCAcJBwkHCQcHBwsKCAQIBwkHCAcJBwkHCQcJBQgHCgcJCQkHBgkJBwwLCQUICwcICgMOBwsGBwgEBwYFBAsHBwcHBwsLCwwMBwgEBwYIBgkEBwcLCwgHCAcHBwgHBgQEBAQFCgoLDAcICQcICAMDCAgDAwgIBQUFBQgHAwMJCQQEBwcEBAcHAwMAAAAAAAAAAAAAAAAAAAAAAAYODgAAAA0aCgAEBAQGBwcKCQMEBAUIBAQEBAcHBwcHBwcHBwcEBAgICAgNCQkJCQgICgkEBwkICwkKCQoJCQgJCQ0JCAcEBAQIBwQICAcICAQICAQEBwQMCAgICAUGBAgHCwgHBwUDBQgJCQkICQoJCAgICAgIBwgICAgEBAQECAgICAgICAgICAcFBwcHBQcICgoNBAQHDQoJBwcHBwcGCQsHBAUFCgwICAQICAcHCAcHDQkJCg4MBw0HBwQEBwYHCAIHBAQICAcEBAcMCQgJCAgEBAQECgoKCQkJBAQEBAQEBAQEBAQIBAkGBwcDCQgIBwkICAgEBAQLCwsHCggECQYJBwkHCAcECQgJCAkJCQgICAgIBAgFCAYJCAkICggJBQkFCQYIBAgGCQgJCAcHBwcICgwICAYJBgoHCAUODQcNBw0HBw0JCAgICAgJCAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIDQ0NDQ0ICAgNDgwKCgcJCAcHCgoHCQMGDAYIBQUIBQkICQcJBwgICAgICAoICggKCAkICQgEBAQEBAQEBAcECQcHCAQJCAkICggKCAkFCQYIBAkICQgJCAkIDQsIBwQJCA0MCggEDQsNCw0LCAcEBAcICwsLCwQEBAYJCwwGCwwLBAkJCQgHCQQJCQsJCAoJCQgICAkKCgQICAYIBAgICAYIBwQHCAgHBggIBwgICgwECAgIDAgMCAkJBAQHDg4LCAgJCQkJBwkIDAgJCQgJCwkKCQkJCAgMCQoJDAwLDQkJDQkICAgFCAgKBwgIBwgJCAgICAcGBwwICAgKCgkLCAcLCAgIBQcGBAQEDAwIBwcJBgYNDgoAAAAAAAAAAAAAAAAABgADAAAECAcGBwgEBQgIBAcGBggIBAUIBwgIBwcIBwoJBwcHBQcLBAcHBgYHCgoKCggICAcGBwgEBggEBwYGCAUICAgHCAcKCQQHBggIAAAAAAQEBQYDAAAAAAAAAAAHBwcHBwcHBwcHBwQHCgoECgcHBwoKCgoKAAoKCgoKCgoKCAoKCggIBAQKCgoKCAcHBwYGCgsFBwoLBQcIBwUKCgoKCgoKCgoKCgoKCgoAAAAAAAoKAAAAAAAAAAAAAAAAAAAAAAcNCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgQECgkGAwMDAwYGAwMICAQEAwMICAQEBAUICAQECAgEBAgHBwcIBwcHCAcHBwQEBAQGBgYGDAwICAwMCAgODgoKDg4KCgcHBwcHBwcHBwYHBQcGBwUKCgQECAgEBAcHBQUGBgMDBQUFBQcHBAQEBQYGBgYIBwgIBAQHCAYHBgcGBwoKAAAKCgoAAAoKAAAKCgoAAAAAAAAKAAAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoEBAQKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgQCDRoLCQsJAAAAAAAAAAAAAAAAAAAAAAcLCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECQgJCAkICQgJCAkICQgJCAkICQgJCAkICAgICAgICAgICAgICAgICAQEBAQKCAoICggKCAoICggKCAsJCwkLCQsJCwkJCAkICwkLCQsJCwkLCQgHCAcIBwkIBAQKCAkICQgJCAkICQgAAAAABwUMCQgHCAcJCAcHBwcJBwkICQgJBwoICAQEBAgEBAQEBAQAAAAEBAAAAAADAwMDAwMDAwYGBgYIBwgIBAQICAQECAgEBAgIBAQICAQECAgEBAgIBAQIBwcHCAcHBwgHBwcIBwcHCAcHBwgHBwcEBAQEBAQEBAQEBAQEBAQEBAQGBgYGBgYGBgYGBgYGBgYGDAwICAwMCAgMDAgIDg4KCg4OCgoHBwcGBwUKCgoEBAoKBAQKCgQECgoEBAoKBAQICAgIDw8MDAoLBQcHBwUFBwcFBQcHBQUKCwUHCgsFBwoLBQcKCwUHCgsFBwYGAwMGBgMDBgYDAwYGAwMHBwQEBwcHBwcHBAQHBwgHBwcEBQUFBQYGBgYGBgYGBgYGBgYGBgYIBwgHBAQGBggHBAQIBwsLCwsDAAAAAAAAAA8OAAAAAAAAAwUAAAgAAAAMDAgIDg4KCgcGBwUGBQQEBAMDAwMDCgsEAAUHBgcGBwYHBgcGBwYHBgcHBwYHCAsJCAkICQkHCQsJCAgJCAgKCAwEBAkHBAcNCQgKDAoKCAkJBwgFBAgECAoJCgcIBwgIBwcHBwYICAQGCAQREA4PDAcRDQwHCQgACQgNDAoICggJBwoICggIBwQREA4KCA0JCQgJCAkICAgICAQEBAQKCAoICQUJBQkICQgJBggECAcJCAkICAgHCQgICAoIAAoICggKCAgHBwgICAcHCAgHCgYGCQcECAgIBwgICAgEBAUEBQQIDAwMCAgICAsLCgUFBQUFBQUICAcEBAQHBAQICAgHCgcHBwkHBwcHBwcKCAcICAYHBggHBw0MEAsHCwsKCQcHBQUDAwMDBQcFAwYEBAQEBAUFCAgICAQEBAQEBAQEBAQEBAQEBAQEBQIFBQUFBQUFBQQEBAQHBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECAgKDQoKCwkKCAkHCAYKBwoIDQwJCAkICQkICAoIBwYJCAcECgYGCAkICBEKCwkNCgkHDAoLCg4NCAYLCgoICwgLCA8NCwgRDAARCgkHCAAAAAAAAAkICQgJCAkICAYIBwoICwkPDAkICQcIBgsJCQgLCQsJBAwKCQgJCAkICQgJCAsKBAkICQgNDAgICQcMCggHCAcJCAkICggKCAkHCAcIBwgHCQgNCwkIDQwMCwkHDQwNDAoICgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkICQgJCAkICQcJCAkICQgJCAkICAgICAgICAgICAgECggJCAkICQgJCAkIBAQEBAkHCQcJBwgECAQIBAgECwwLDAsMCQgJCAkICQgKCAoICggKCAkICQgJBQkFCQUJBQkGCQYJBgkGCQYIBAgECAQIBAkICQgJCAkICQgJBwkHDQsNCwkICQgIBwcHBwcHBwgECwcIBAgICAgICAgICQkLCwsLCwsGBgYGBgYKCgwMDAwICAgICAgICAsLDQ0NDQ0NBAQEBAQEBAQFBQcHBwcHBwgICAgICAsLDg4NDQgICAgICAgICw0ODAwMDAwMDAwMCwsODg0NDQ0ICAYGCAgEBAgICAgMDAgICAgICAgICQkLCwsLCwsICAgICAgICAsLDQ0NDQ0NDAwMDAwMDAwLCw4ODQ0NDQgICAgICAgJCQkJCQQEBAQECAgICAgLCwwMCQQEBAQEBAQEBAQEBgYEBAQICAgICAgICAgICwwKBgYEDAwMDAwMCwwLCgQEBwkJDAkQDAkIDgcIAAAAAAQEBwkLBgsHCQkEBAQEBAQEBAQEBAQEBAUFBAAAAAAAAAAAAAAACQgICgwIBwcHBwcEBwcGCQgIBwgICAwHCAgICAgGCAgKCAcLBwYGCAUHCAgKCAYJBgYGBQUHBgIFBgUHBgYHBgUGBgYIBQUFCAUFBQUFBQUCBQcFBQUFBQUDBQUHBQUFBQUGBQIDBQUFBQUGBQwRBBEJAwcAAAAAAAAAAAAEBAYGBgYGBgkJCggICgkLCAAAAAcHBgMDAwMLDwcNBw0EAwIHBAMBAAoJCwoMDAwJCQcICAcHCAAAAAAACAkJCQcFAAAABQAEBQAAAAAAAAAICAQECAgEBAgIBAQICAQECAgEBAgIBAQICAQECAcHBwgHBwcEBAQEBgYMDAgIBwYHBQcGBwUHBgcFCgoEBAoKBAQKCwUHCgsFBwoLBQcFBQUFBQUFBQcHBAQHBwQEBwcEBAYGAwMGBgYGDAwICAgIBAwICAUFBwQHCAUICwQECAgICAgECgcEDAgIBQcGBwcHBwgIBwYGCQQHBAgHBQUFBQUDAwUFAgICAgQDAgQHBwUFBQUHBQQDBQUFBQUFBQYFBQAAAAAEBQUFBQUKCQkJBAgICAgICAgIBAQEBAQEBAQICAgICAgICAQEBAQICAgIBgcGCQkJCQcHBAoICQUJBwcHBwQHBQkHCQcIBgkIAAAAAAAAAAAADQcHCAQICQkHBAkICQcIBwcHBgkAAAAAAAAECQkJAAAAAAAAAAAAAAAKCA0LCQAKCA4LBAUDAwcHBAQEBAAAAAAAAAAACAcIBgcHBwcHBwcHBwYHBwcHBwcHBwkJCg8KBQkKCAMHBAgECAcHBQQECAgICAcHCQgEBggHCggJBwkIBwcIBwoICAcLCwcJBwgICAgICAgICAcHBwcEBAQECAkJCQkJCAgICAgICAgICAkICAcHBwcHCQkICAgEBAQEBAoGCAcHBwcICAgICQkJCAgIBwcHBwcHBwcICAgICAgKCgoKCAgIBwcHCAsJCAgHCAcHCAkECAcKCAcJCAcHBwgJCAkJCAcIBAkICQQIBwkHCAcEBAYMDAkHBwgICAgHCAcLBwgIBwgKCAkIBwgHBwkICAgLCwkLCAgLCAYEBAQEBAQEBAQEBAQECQkJCQkJCQkJCQkJCQkJCQkJCQkJCQoKCgoKCgoKCgoKCgoFBQUFBQUFBQUHBQUFBAQFBQQFBQUFBQUFBQkICAgICAgICAgDBwQEBQUEBAQGBAgICAgIBwgJBAQEBAkICAsICgQEBAQEBAQEBAQEBAQEBBYXABkAAAAACAcHBwgHBwcMDAgIBgYIBwcHAwMDAwgHBAQIBwQECAcEBAYGBgYLCwsLCAcHBwwMCAgMDAgIBwcFBQcIBwgNCgwIEwAAAAAACAcEBAoLBQcKCwUHCAcEBAgHBAQIBwQEAAcGCAgJCAkIEQcJDQsLCg0LCQcODA8MCQgJCAQECAsHCAgJCAsJCgkFCAcDBQkIBAwSDhIZAwMDAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwQDAwQECAUFBwcJCQkJCQkJCQcHBwcHBwgIBAQIBwcHBwcHBwoKBAQICAQEBgYDAwUFBQUICAQECAgEBAUFBgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYHAAYHCAkAAAQEBwcHBwcHBwcHCAQFBAIACwoJCgoJCQkJDAoJCAwKCQgJCgoKCgoJCQkLCgoJCgkJCgcLCgoLBAQDAwQEBwwICQkICAgICgkIBAwICAgHCAgIBAgHCAUMBwgICAwICAYMCAgLCgQFDQ0KEBAQEBQHDQAACAgEBAIEBA4OCgoKCwUHBAMGBgAHCQgTEAoICQgMDAgMDAgLCwcGBwUHBwUFAAQDBAMJCAsJBwcHBwgIBwcQCxAMDgwNCg0KDQoJBwkHCQcJBwoFCAQMCQsJEQ0JCAsKDAsLCA0KCAYICAkHDAoIBwkICQgIBgYGBwcHBwQKBg4KBQoKBwoIBwUICAgIBAsIBwUJBwkHCggJBwcIDAsJBAkICggJCAoICQcJCAkFCQcLCAoKCQgHCgkIDQwKBggMCAkLBA8ICwcHCQQIBgUFDAgIBwcIDAwMDQ0ICAUHBwkHCgQICAwMCAgICAgICAgHBAUEBAYLCwwNCAkJCAgIBAQICAQECAgFBQYGCAcEBAoKBAQICAQEBwcEBAAAAAAAAAAAAAAAAAAAAAAABg8PAAAADx4LAAQEBAcICA0LBAUFBgkEBQQECAgICAgICAgICAQECQkJCQ8JCwsLCgkMCwQICwkNCwwKDAsKCgsJDQoKCAUEBQkIBQgJCAkJBQkJBAQIBAwJCQkJBggFCQkLCAcIBgQGCQkJCwoLDAsICAgICAgICQkJCQQEBAQJCQkJCQkJCQkJCAYICAgFCAkLCw8FBQgQDAsICAgICQcLDAgEBgUMDQkJBAkJCAgJCAgPCQkMEA4IDwgIBAQIBwcKAwgFBQkJCAQECBIJCgkKCgQEBAQMDAwLCwsEBQUFBQUFBQUFBQkECggICAQLCQoHCgkJCQUFBQ0NDQgMCQQKCAsICwgJCAUJCAkICwsLCgkKCQkECQYJBwsJCwkMCQsGCwYKCAoFCgcLCQsJCAgICAkMDAkJBwoGDAgJBhEPCA8IDwgIDwsJCQkJCQsJCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwkPDw8PDwkJCQ8QDgsLCAoJCAgLDAgLBAcNBwkFBQkFCQgLCAsICgkKCQoJDAkMCQwJCwkLCQQEBAQEBAQECAQLCAgJBAsJCwkMCQwJCwYKCAoFCwkLCQsJCwkNCwoHBAkIEA0MCQUNCw0LDQsKBwQFCAkNDQ0NBQUFBwkNDgcMDg0ECQsLCggLBAsJDQsKDAsKCQoKCgwMBAoJBwkECQkIBwkIBAgICQkHCQkICQkMDgQJCQkOCg0JCwoEBAgQEA0JCQoJCwsJCwoOCQsLCQsNCwwLCgsKCQ4KCwsODg0PCwsPCwgJCQYKCQoHCQkICgsJCQkJCAYHDggJCQwMCw0JCA0JCQkGCAgEBAQPDgkIBwgHBw8RCwAAAAAAAAAAAAAAAAAHAAQAAAQJCQcICQQGCQkECAcHCQkEBgkICQkICAkIDAoICAgFCA0ECAgHBwgMDAwMCQkJCQcICQUHCQUIBwcJBgkJCQgJCAwKBAkHCQkAAAAABQUFBwMAAAAAAAAAAAgICAgICAgICAgIBQgLCwULCAgICwsLCwsACwsLCwsLCwsJCwsLCgoEBAsLCwsJCAgIBgYLDQUICw0FCAoIBgsLCwsLCwsLCwsLCwsLCwAAAAAACwsAAAAAAAAAAAAAAAAAAAAACA8LCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLBQULCwcEBAQEBwcEBAoJBAQEBAoKBAQFBgoKBAQKCgQECQgICAkICAgJCAgIBQUFBQYGBgYNDQkJDQ0JCRAQDAwQEAwMCAgICAgICAgIBwgFCAcIBQsLBQUJCQUFCAgFBQcHBAQFBQYGCAgEBAUGBwcHBwoICgkEBAgJBwgHCAcICwsAAAsLCwAACwsAAAsLCwAAAAAAAAsAAAsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwUFBQsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLBQIPHg0LDAsAAAAAAAAAAAAAAAAAAAAACA0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQJCAkICQgJCAkICQgJCAkICQgJCAkICQgKCQoJCgkKCQoJCgkKCQoJBAQEBAwJDAkMCQwJDAkMCQwJDQsNCw0LDQsNCwsJCwkMCwwLDAsMCwwLCgcKBwoHCQgEBAwJCwkLCQsJCwkLCQAAAAAJBg4LCQgJCAsJCAgICAoICwkLCQsIDAkKBAUFCQQEBAQEBAAAAAUFAAAAAAQEBAQEBAQEBwcHBwoICgoEBAoKBAQKCgQECgoEBAoKBAQKCgQECgoEBAkICAgJCAgICQgICAkICAgJCAgICQgICAUFBQUFBQUFBQUFBQUFBQUFBQYGBgYGBgYGBgYGBgYGBgYNDQkJDQ0JCQ0NCQkQEAwMEBAMDAgICAcIBQsLCwUFCwsFBQsLBQULCwUFCwsFBQkJCQkREQ4OCw0FCAgIBQUICAUFCAgFBQsNBQgLDQUICw0FCAsNBQgLDQUIBwcEBAcHBAQHBwQEBwcEBAgIBAQICAgICAgEBAgICQgICAUGBgYGBwcHBwcHBwcHBwcHBwcHBwoICggEBAcHCggEBAoIDAwMDAMAAAAAAAAAERAAAAAAAAADBgAACQAAAA0NCQkQEAwMCAcIBQcFBQQFBAQEBAQLDQQABggHCAcIBwgHCAcIBwgHCAgIBwgJDQsJCwkLCwgLDQsJCQoJCQwKDgQECwgECA8LCQwNCwwJCgoICQUFCQUJDAsMCAkICQkICAgIBwkJBAcJBBQSERINCBMPDQgJCAAJCBANDAkMCQsIDAkMCQkIBBQSEQwJDwoLCQkICQgKCQoJBAQEBAwJDAkLBgsGCwkLCQoICgUJCAsJCwkJCQgJCAoJDAkADAkMCQwJCgcICQkJCAgJCQgMBwcKCQUJCQkICQkJCQQEBgUFBAkNDQ0JCQkJDQ0LBgYGBgYGBgkJCAUFBQgFBQkJCQgMCAkICggICAgICAwJCQkJBwgHCQgIDw4SDAgMDQwKCAgGBgMEBAQGCAUEBwQEBAUFBgYJCQkJBQUFBQUFBQUFBQUFBQUFBQUFAgYGBgYGBgYGBQUFBQgICAgICAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgICAgIBggICAgIBggICAgIBggICAgIBggICAgIBggICAgICAgICAYICAgICAYICAgICAYICAgICAYICAgICAYICAgICAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUJCQwPDAsNCgwJCwgJBwsIDAkPDQsJCwkKCgoJCwkIBwoJCAQMBwcKCwkJEwwNCw8MCggODAwLEA8JBwwLDAkMCgwKEQ8MChMOABMMCwgJAAAAAAAACwkLCQoJCwkJBwkICwkNCxEOCwkLCAkHDQoLCQ0KDQoEDgoLCQsKCwkLCQsJDQsFCQgJCBANCgkLCA4KCQcJCAsJCwkMCQwJCwgJBwkHCQcLCQ8NCwkPDg4NCggPDg8ODAkLCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQgLCQsJCwkLCAsJCwkLCQsJCwkKCQoJCgkKCQoJCQUMCQsJCwkLCQsJCwkEBAQECwgLCAsICQQJBAkECQQNDA0MDQwLCQsJCwkLCQwJDAkMCQwJCgkKCQsGCwYLBgsGCggKCAoICggKCAoFCgUKBQoFCwkLCQsJCwkLCQkJCQkNCw0LCggKCAoHCAgICAgICQULBwgECQkJCQkJCQkJCQ0NDQ0NDQcHBwcHBwsLDg4ODgkJCQkJCQkJDAwPDw8PDw8EBAQEBAQEBAYGCQkJCQkJCQkJCQkJDAwQEA8PCQkJCQkJCQkMDxAODg4ODg4ODg4NDRAQDw8PDwkJBwcJCQQECQkJCQ4OCQkJCQkJCQkJCQ0NDQ0NDQkJCQkJCQkJDAwPDw8PDw8ODg4ODg4ODg0NEBAPDw8PCQkJCQkJCQkJCQkJBQUFBQUJCQkJCQ0NDg4LBQUFBAQEBAQEBAQHBwUFBQkJCQkJCQkJCgoNDgsHBwUODg4ODg4MDg0MBQUICwsNCxIOCwkQCAkAAAAABAQICg0HDQgLCwUFBQUFBQUFBQUFBQUFBgYFAAAAAAAAAAAAAAAKCQkMDQkICQkIBwQICAcLCQkICQkJDgkJCQkJCQYJCQwJCQsIBwcJBggJCQsKBwoHBwcGBggHAwUHBggHBwgHBgcHBwoGBgYJBgYGBgUFBgIFCAYGBgYGBgMGBggFBgYFBgcGAgQGBQYFBgcGDhQFFAoECAAAAAAAAAAAAAUFBgYHBwcHCwoLCgoLCgwJAAAACAgHBAQEBA0SCA8IDwUEAwgEAwEACwsNCw4ODgsLCAkJCAgKAAAAAAAJCwsLCQYAAAAGAAUGAAAAAAAAAAoKBAQKCgQECgoEBAoKBAQKCgQECgoEBAoKBAQJCAgICQgICAUFBQUGBg0NCQkIBwgFCAcIBQgHCAULCwUFCwsFBQsNBQgLDQUICw0FCAUFBgYFBQYGCAgEBAgIBAQICAQEBwcEBAYGBgYNDQkJCQkFDQkJBgYIBQgJBgkNBAQJCQkJCQUMCAQNCQkGCAcICAgICQkIBwcKBAgFCQgGBgYGBQQEBgYDAgIDBQMCBAgIBgYGBggGBAMGBgUFBQUFBwYFAAAAAAUGBgYGBgwLCgsFCQkJCQkJCQkEBAQEBAQEBAkJCQkJCQkJBAQEBAkJCQkHCAcLCwkKCAgEDAkLBgoICAgIBAkGCggKCAkHCwoAAAAAAAAAAAAPCAgJBAkKCwgFCwkLCAkICAgHCwAAAAAAAAQLCwsAAAAAAAAAAAAAAAwJDQsLAAsJEA0FBgQECAgFBQUFAAAAAAAAAAAJCAkHCQgICAkICAkIBwgICQgJCAgJCwsLEQsGCgwJBAgFCQQJCAgGBQQJCQkJCAgKCgQHCQgMCQoJCgkICAkJDAkJCA0NCAoJCQkJCQkJCQkJCAgICAQEBAQJCgoKCgoJCQkJCQkJCQkJCgkJCAgICAgKCgkKCgQEBAQECwcJCAgICAkJCQkKCgoJCQkICAgICAgICAkJCQkJCQwMDAwJCQkICAgJDQoJCQgJCAgKCgQJCAwJCAoJCQgICQoJCgoJCAoECgkKBAkICwgJCAQEBw0OCggICQkJCQgJCAwICQkICQwKCgkJCQgICwkJCQ0NCw0JCQ0JBgUFBQUFBQUFBQUFBQULCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwYGBgYGBgYGBggGBgYFBQYGBQYGBgYGBgYGCgkJCQkJCQkJCQQIBQUGBgUEBAcECQkJCQkICQoFBQUFCwkJDAkLBAQEBAQEBAQEBAQEBAQEGRsAHQAAAAAJCAgICQgICA0NCQkGBgkICAgEBAQECggEBAoIBAQKCAQEBwcHBwwMDAwJCAgIDQ0JCQ0NCQkICAUFCAkICQ4LDQoWAAAAAAAKCAQECw0FCAsNBQgKCAQECggEBAoIBAQACAcJCQsKCwkUCAoPDQwMDw0LCBEOEQ4LCQsJBQUJDQgKCQsKDQsLCwYJCAMFCgkEDhURFR0DAwMEAwMDAwQDAwMDAwMDAwMDAwQEBAQEBAQDBQUJBgYICAoKCgoKCgoKCAgICAgICgoEBAkICAgICAgICwsFBQkJBQUHBwQEBQUGBgoJBAQKCQQEBgYHBwYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwgABwgJCgAABQUICAgICAgICAgJBQYEAwANCwsLCwsLCgsOCwoJDgwLCgsLCwwLCwsLCw0MDAsLCgoLCA0LDAwEBAMEBAQIDgkKCgkJCQkMCgkEDgkJCQkJCQkECQgJBg4JCQkJDQkJBw0JCQwMBAYPDwsSEhISFwgPAAAKCgQEAwUFEBAMDAsNBQgFBAYGAAgLCRYSCwkLCg4OCg4OCg0MCAcIBQgIBQUABQMEBAsJDQsICAgICgoICBINEg4RDg8MDwwPDAsICwgLCAsICwYJBA0KDQoUDwoJDQwODQwJDwwJBwoKCggODAkICgkKCQkHBwcICAkJBQwHEAwGDAsIDAkIBgkJCQkEDAoIBgoICwgLCQsICAkODAoFCwkLCQsJDAkLCAsJCwYKCA0JCwwLCQgMCwkPDgsHCg0JCg0EEgkNCAgKBQkHBgYOCQkJCQkODg4PDwkJBggICggMBQkJDQ0KCQoJCQkKCQgFBgUEBw0MDg8JCgsJCgoEBAoKBAQKCgYGBgYKCAQECwsFBQkJBQUICAQEAAAAAAAAAAAAAAAAAAAAAAAHEhIAAAAQIAwABAQECAkJEAwEBQUGCQQFBAQJCQkJCQkJCQkJBgYJCQkKEAsMDAwLCgwMBAkMCg0MDAsMDAsKDAsPCwoJBQQFCQkFCQoJCgkFCgoEBAkEDgoKCgoGCQUKCQ0JCQkGBAYJCwsMCwwMDAkJCQkJCQkJCQkJBAQEBAoKCgoKCgoKCgoJBgkJCQYJCgwMEAUFCRAMCwkJCQkJCAsNCQQGBgwOCgoECQkJCQkJCRALCwwQDwkQCAgEBAkICQoDCQUFCgoJBAQIEgsLCwsLBAQEBAwMDAwMDAQFBQUFBQUFBQUFCgQLCQkJBAwKCgkLCgkJBQUFDQ0NCQwKBAsJDAkMCQoJBQsJCwkMDAwLCQsJCgQKBgoHDAoMCgwKDAYMBgsJCgUKCAwKDAoJCQkJCgwMCgoICwYMCQoGERAIEAgQCAgQDAkKCQoKCwoLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsMChAQEBAQCgoKEBEPDAwJCwoICAwNCQsECA4ICgYGCgYLCQwJDAkLCQsJCwkMCgwKDAoMCgwKBAQEBAQEBAQJBAwJCQoEDAoMCgwKDAoMBgsJCgUMCgwKDAoMCg8NCgkECwkQDgwKBQ8NDw0PDQoJBAUJCg0NDQ0FBQUHCw4PCA0PDQQLDAwLCQwEDAsNDAoMDAsKCgoLDA0ECgoICgQJCggHCgkECQgKCQcKCggJCQwOBAkKCQ4LDgoLCwQECRIRDgoKDAsMDAkLCw4KDAwKCw0MDAwLDAoKDgsMCxAQDg8LCxEMCQoKBwoJDAgKCggKCwoKCgoJCAkOCQoJDg4MDgoJDgkJCgcJCQQEBBAPCggJCggHEBIMAAAAAAAAAAAAAAAAAAcABAAABgkJBwkKBAcKCgQICAgKCgQGCgkKCQgICQgMCwkJCQUIDQQICAgICQwMDAwJCQkJBwkKBQcKBQgICAoGCgoJCAkIDAsECQgJCgAAAAAFBQYIAwAAAAAAAAAACQkJCQkJCQkJCQgFCAwMBQwJCQkMDAwMDAAMDAwMDAwMDAoMDAwKCgQEDAwMDAkJCAgHBwwOBgkMDgYJCgkHDAwMDAwMDAwMDAwMDAwMAAAAAAAMDAAAAAAAAAAAAAAAAAAAAAAJEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFBQwLCAQEBAQHBwQECgkEBAQECgoEBAUHCgoEBAoKBAQJCQgICQkICAkJCAgFBQUFBwcHBw4OCgoODgoKEREMDBERDAwICAgICAgICAkICQYJCAkGDAwFBQoKBQUJCQYGBwcEBAYGBwcJCQQEBQcIBwcHCgkKCQQECQoICQgJCAkMDAAADAwMAAAMDAAADAwMAAAAAAAADAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMBQUFDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwFAhAgDgsNDAAAAAAAAAAAAAAAAAAAAAAIDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkEBAQEDAoMCgwKDAoMCgwKDAoOCw4LDgsOCw4LDAoMCg0MDQwNDA0MDQwKCQoJCgkLCQQEDAoMCgwKDAoMCgwKAAAAAAkHDgsKCAoIDAoJCQkJCwkLCQsKDAkMCgoEBQUKBAQEBAQEAAAABQUAAAAABAQEBAQEBAQHBwcHCgkKCgQECgoEBAoKBAQKCgQECgoEBAoKBAQKCgQECQkICAkJCAgJCQgICQkICAkJCAgJCQgIBQUFBQUFBQUFBQUFBQUFBQUFBwcHBwcHBwcHBwcHBwcHBw4OCgoODgoKDg4KChERDAwREQwMCAgJCAkGDAwMBQUMDAUFDAwFBQwMBQUMDAUFCgoKChISDw8MDgYJCQkGBgkJBgYJCQYGDA4GCQwOBgkMDgYJDA4GCQwOBgkHBwQEBwcEBAcHBAQHBwQECQkEBAkJCQkJCQQECQkJCQgIBQcGBgYHBwcHBwcHBwcHBwcHBwcHCgkKCQQEBwcKCQQECgkNDQ0NAwAAAAAAAAASEQAAAAAAAAMGAAAKAAAADg4KChERDAwJCAkGCAYFBAUEBAQEBAwOBAAHCQgJCAkICQgJCAkICQgJCQkICQoNDAoMCgwMCQwNDAoKCwoKDAoPBAQMCQQJEAwKDA4MDQoLCwkKBgUKBQoNDAwJCggKCggICQkICQoECAkEFRQSEw4JFBAOCQsJAAsJEA4MCgwKDAkMCgwKCggEFRQSDAoRCwwKCwkLCQsJCwkEBAQEDAoMCgwGDAYMCgwKCwkKBQkIDAoLCgoKCAsJCwkMCgAMCgwKDAoKCQkKCgoJCQoKCQ0ICAsJBQoKCQkKCgoKBAQGBQYECg4ODgoKCgoNDgwGBgYGBgYGCQkJBQUFCQUFCgoJCQwJCQgLCAgJCQkJDAoJCQoHCQcKCQkRDxMNCQ0ODAsJCQYGAwQEBAYIBgQIBAQEBQUGBgkJCQkFBQUFBQUFBQUFBQUFBQUFBQYCBgYGBgYGBgYFBQUFCAkJCQkJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQoJDBAMDA4LDAoMCQoHDAgNChAOCwoLCgsLCgoMCQgHCwoJBAwICAsMCQoUDA4LEA0LCQ8NDQwREAoIDQwMCg0KDQoSEA0KFA4AFAwMCQkAAAAAAAAMCgwKCwoLCgoICggMCg4LEg8MCQwJCggOCwsJDgsOCwQODAsKCwoMCgwKCwkNDAULCQsJEA4LCQwJDgwKCAoIDAoMCgwKDAoLCQoJCgkKCQsJDw4MChAPDw4LCRAPEQ8MCQwLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCQwKDAoMCgwJDAoMCgwKDAoMCgsJCwkLCQsJCwkKBQwKDAoMCgwKDAoMCgQEBAQMCQwJDAkKBAoECgQKBA0ODQ4NDgwKDAoMCgwKDAoMCgwKDAoLCgsKDAYMBgwGDAYLCQsJCwkLCQsJCgUKBQoFCgUMCgwKDAoMCgwKCwkLCQ8NDw0LCQsJCgkJCQkJCQkKBQ0JCQQKCgoKCgoKCgsLDg4ODg4OCAgICAgIDAwPDw8PCgoKCgoKCgoNDRAQEBAQEAQEBAQEBAQEBgYJCQkJCQkKCgoKCgoNDREREBAJCQkJCQkJCQ0QEQ8ODg4ODg4ODg4OEREQEBAQCgoICAoKBAQKCgkJDg4KCgoKCgoKCgsLDg4ODg4OCgoKCgoKCgoNDRAQEBAQEA4ODg4ODg4ODg4RERAQEBAKCgoKCgoKCwsLCwsFBQUFBQoKCgoKDg4PDwwFBQUEBAQEBAQEBAgIBQUFCQkJCQoKCQkKCg4PDAcHBQ4ODg4ODw0PDg0FBQkMDA4MFA8MChEICgAAAAAEBAkLDQgNCAwMBQUFBQUFBQUFBQUFBQUGBgUAAAAAAAAAAAAAAAsKCQwOCgkJCQgIBAgJBwsKCgkKCgoPCQoKCgkJCAkKDAoJDQkICAoHCQoKDAoICwcHBwcHCAcDBgcGCAcHCAcHBwcHCgYGBgkGBgYGBgYGAgYJBgcGBwcGAwYHCQYHBgYHCAYCBAYGBgYHCAYPFQUVCwQJAAAAAAAAAAAABQUHBwgHCAcMCwwKCgwLDQkAAAAJCAgEBAQEDhMIEAgQBQQDCQQDAQAMDA0MDw8PDAwJCgoJCAoAAAAAAAoMDAwJBwAAAAYABQYAAAAAAAAACgoEBAoKBAQKCgQECgoEBAoKBAQKCgQECgoEBAkJCAgJCQgIBQUFBQcHDg4KCgkICQYJCAkGCQgJBgwMBQUMDAUFDA4GCQwOBgkMDgYJBgYHBwYGBwcJCQQECQkEBAkJBAQHBwQEBwcHBw4OCgoKCgUOCgoGBgkFCAoGCg4EBAoJCgoKBQwJBA4KCgYJBwkJCAkKCgkICAoECQUKCAYGBgcGBAQGBgMCAgMFAwMFCQkHBwYHCAYEAwcHBgYGBgYHBgYAAAAABQYGBwYGDAwLDAUKCgoKCgoKCgQEBAQEBAQECQkJCQkJCQkEBAQECQkJCQgJCAwMCwsJCQQMCgwGCwkJCQkECQcLCQsJCggLCgAAAAAAAAAAABAICQoECgsMCQUMCgwJCggJCQcLAAAAAAAABAwMDAAAAAAAAAAAAAAADAoPDQsADAoRDgUGBAQICAUFBQUAAAAAAAAAAAoJCQcJCQkJCQgJCQkHCQkJCQkICQkLDAwSDAYLDAoECQUKBQoJCQYFBAoKCgoJCAoKBQgKCAwKCwkLCgkICgkNCQkIDg0ICwkKCgoKCgoKCgoJCQkJBQUFBQoLCwsLCwoKCgoJCgoKCgoKCgoJCQkJCQoKCgoKBQUFBQUMCAoICAgICgoKCgsLCwoKCgkJCQkICAgICgoKCgoKDQ0NDQkJCQgICAoOCwoKCAoJCAoLBQoJDAoICwoJCAgJCwkLCwoJCgULCQsFCQkMCAoJBQUIDg8LCQkKCgoKCAoJDQkKCgkJDAoLCgkKCAkLCQoKDg4MDQkKDgoHBQUFBQUFBQUFBQUFBQsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMBgYGBgYGBgYGCQYGBgUFBgYFBgYGBgYGBgYLCgoKCgoKCgoKBAkFBQYGBQUFBwUKCgoKCgkKCgUFBQULCgoNCgwEBAQEBAQEBAQEBAQEBAQbHAAfAAAAAAkJCAgJCQgIDg4KCgcHCQkICAQEBAQKCQQECgkEBAoJBAQHBwcHDQ0NDQkJCAgODgoKDg4KCgkJBgYJCQgJDwwOChgAAAAAAAoJBAQMDgYJDA4GCQoJBAQKCQQECgkEBAAJBwoJDAoMChUJCxAODQ0QDgwJEg8SDwwKCwoFBQoNCAoKCwoNDAwLBgoIAwYLCgQPFhIXHwMDAwQDAwMDBQMDAwMDAwMDAwMDBAQEBAQEBAMGBgoGBgkJCwsLCwsLCwsJCQgJCQgKCgQECQkICAgICAgMDAUFCgoFBQcHBAQGBgcHCgkEBAoJBAQGBgcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICQAHCQoLAAAFBQkJCQkJCQkJCQoFBgQDAA4MCwwMCwwLCw8MCwkPDAsKDAwMDAwMCwsLDgwMCwwLCwwJDgwNDQQEBAQFBAgOCgsLCgoJCgwLCgQOCgoKCQoKCgQKCAoGDgkKCgoOCgoHDgoKDQ0GBhAQDBQUFBQYCRAAAAoKBAQDBQUREQwMDA4GCQUEBwcACQwKFxMMCgsKDw4KDw8KDg0JCAkGCQkGBgAFBAUEDAoODAkJCQkKCggJEw4TDxIOEA0QDRANDAkMCQwJDAkMBwoEDgsOCxUQCwoODA8ODQoQDAoHCgoLCQ8MCQkLCgsKCQgHBwkJCQkFDQcRDQYMDAgMCggGCQoKCgQNCggGCwkMCQwKDAkJCg8NCwULCQwJCwkMCgwJDAoMBgsJDQoMDAwKCAwMChAODAcKDgoLDQQTCg4ICQsFCggGBg8KCgkJCg8PDxAQCQoGCQgLCA0FCgoODgoJCgoKCQoJCQUGBQUHDg0PEAoLDAoKCgQECgoEBAoKBgYHBwoJBAQMDAUFCgoFBQkJBAQAAAAAAAAAAAAAAAAAAAAAAAgTEwAAABEiDQAFBQYICQkQDAQGBgcKBQYFBQkJCQkJCQkJCQkGBgoKCgoRCwwMDAsKDQwECQwKDQwNCw0MCwoMCxELCgkGBQYKCQYJCgkKCQUKCgQECQQOCgoKCgcJBgoJDQkJCQcEBwoLCwwLDA0MCQkJCQkJCQkJCQkEBAQECgoKCgoKCgoKCgkHCQkJBgkKDQ0RBgYJEQ0MCQkJCQoIDA4JBQYGDQ8KCgYKCgkJCgkJEQsLDREPCREJCQUFCQgJCgMJBgYKCgkFBQkSCwsLCwsEBAQEDQ0NDAwMBAYGBgUGBgUGBgYKBAsJCQkEDAoKCQsKCgoGBgYODg4JDQoECwkMCQwJCgkGCwkLCQwMDAsJCwkKBAoHCgcMCgwKDQoMBwwHCwkKBgoIDAoMCgkJCQkKDQ4KCggMCAwJCgcSEQkRCREJCREMCgoKCgoMCwwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKEREREREKCgoREhANDQkLCgkJDQ0JDAQIDwgKBgYKBgsJDAkMCQsJCwkLCQ0KDQoNCgwKDAoEBAQEBAQEBAkEDAkJCgQMCgwKDQoNCgwHCwkKBgwKDAoMCgwKEQ0KCQQLCREPDQoGEQ0RDRENCgkFBgkKDg4ODgYGBggLDw8IDhAOBAsMDAsJDAQMCw0MCw0MCwoKCgsODgQKCggKBAoKCAgKCQQJCAoJCAoLCQoKDA4ECgoKDgsPCgwLBAQJExIPCgsMCwwMCgwLDgsMDAoMDQwNDAsMCgsOCwwMEBAPEQwMEgwJCwoHCwkMCAoKCQsNCgoKCgkICRAJCgoODgwOCgkPCgkKBwkJBAQEEA8KCQkKCAgREw0AAAAAAAAAAAAAAAAACAAGAAAGCgoICQoEBwoLBAkICAoLBAcKCQoKCAkKCQwLCQkJBQkOBAkJCAgKDAwMDAoKCgoICQoFBwsFCQgICwcKCgoJCgkMCwQKCAoKAAAAAAUFBggDAAAAAAAAAAAKCgoKCgoKCgoKCQUJDQ0GDQoKCg0NDQ0NAA0NDQ0NDQ0NCg0NDQsLBQUNDQ0NCgoJCQcHDQ8GCQ0PBgkLCQcNDQ0NDQ0NDQ0NDQ0NDQ0AAAAAAA0NAAAAAAAAAAAAAAAAAAAAAAkRDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQUFDQwIBAQEBAgIBAQLCgUFBAQLCwUFBgcLCwUFCwsFBQoKCQkKCgkJCgoJCQYGBgYHBwcHDw8KCg8PCgoSEg0NEhINDQkJCQkJCQkJCQgJBgkICQYNDQUGCgoFBgkJBgYICAQEBgYHBwkJBQUGBwgICAgLCQsKBQUJCggJCAkICQ0NAAANDQ0AAA0NAAANDQ0AAAAAAAANAAANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0FBQUNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQYCESIPDA4MAAAAAAAAAAAAAAAAAAAAAAkODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQQEBAQNCg0KDQoNCg0KDQoNCg8MDwwPDA8MDwwMCgwKDgwODA4MDgwODAoJCgkKCQsJBAQNCgwKDAoMCgwKDAoAAAAACgcPDAoJCgkMCgkJCQkLCQwKDAoMCQ0KCwUFBgoFBQUFBQUAAAAGBgAAAAAEBAQEBAQEBAgICAgLCQsLBQULCwUFCwsFBQsLBQULCwUFCwsFBQsLBQUKCgkJCgoJCQoKCQkKCgkJCgoJCQoKCQkGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHDw8KCg8PCgoPDwoKEhINDRISDQ0JCQkICQYNDQ0FBg0NBQYNDQUGDQ0FBg0NBQYKCgoKFBQPDw0PBgkJCQYGCQkGBgkJBgYNDwYJDQ8GCQ0PBgkNDwYJDQ8GCQgIBAQICAQECAgEBAgIBAQJCQUFCQkJCQkJBQUJCQoKCQkGBwcHBwgICAgICAgICAgICAgICAgLCQsJBQUICAsJBQULCQ4ODg4EAAAAAAAAABMSAAAAAAAABAYAAAoAAAAPDwoKEhINDQkICQYIBgYFBQQEBAQEDQ8EAAcJCAkICQgJCAkICQgJCAkKCggJCg4MCgwKDAwJDA4MCgoLCwoNCxAFBQwJBQkRDAoNDw0NCgsLCQoGBgoGCg4MDQkKCQoKCQkJCQgKCgUICgYXFRMUDwkWEQ8JCwkACwkRDw0KDQoMCQ0KDQoKCQUXFRMNChILDAoLCQsJCwkLCQQEBAQNCg0KDAcMBwwKDAoLCQoGCgkMCgwLCwoJCwkLCQ0KAA0KDQoNCgoJCQoKCgkJCgoJDQgIDAoGCgoKCQoKCgoFBQcGBgUKDw8PCgoKCg4ODQcHBwcHBwcKCgkGBgYJBgYKCwoJDQkKCQwJCQkJCQkNCgoKCggJCAoJCRIQFQ4JDg8NDAkKBgYDBAQEBgkGBAgFBQUGBgYGCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgIGBgYHBwcHBwYGBgYJCQkJCQkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGCgoNEQ0NDgwNCgwJCggNCQ4KEQ8MCgwKCwsLCg0KCQcMCwkEDQgICwwJChYNDwwRDgsJEA4ODRIRCwgODQ0KDgsOCxMRDgsWDwAWDQwJCgAAAAAAAAwKDAoLCgwKCwgKCQ0LDwwTEAwKDAkKCA8MDAoPDA8MBA4MDAoMCwwKDAoMCg4NBgsJCwkRDwsJDAkODAsICwkMCgwKDQoNCgwJCwkLCQsJDAoRDgwKEhAQDgsJERASEA0KDQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJDAoMCgwKDAkMCgwKDAoMCgwKCwkLCQsJCwkLCQoFDQoMCgwKDAoMCgwKBAQEBAwJDAkMCQoECgQKBAoEDQ4NDg0ODAoMCgwKDAoNCg0KDQoNCgsKCwoMBwwHDAcMBwsJCwkLCQsJCwkKBgoGCgYKBgwKDAoMCgwKDAoLCQsJEQ0RDQsJCwkKCQkJCQkJCQoGDQkJBAoKCgoKCgoKCwsPDw8PDw8ICAgICAgNDRAQEBAKCgoKCgoKCg4OERERERERBAQEBAQEBAQGBgoKCgoKCgoKCgoKCg4OEhIREQoKCgoKCgoKDhESEA4ODg4ODg4ODg4SEhEREREKCggICgoEBAoKCgoODgoKCgoKCgoKCwsPDw8PDw8KCgoKCgoKCg4OERERERERDg4ODg4ODg4ODhISEREREQoKCgoKCgoLCwsLCwYGBgYGCgoKCgoPDxAQDAYGBgQEBAQEBAQECAgGBgYKCgoKCwsKCgoKDw8NCAgGDg4ODg4QDhAODgYGCQwMDwwVEAwKEgkKAAAAAAUFCQsOCA4JDAwGBgYGBgYGBgYGBgYGBgcHBgAAAAAAAAAAAAAACwoKDQ8KCQoKCQgFCQkIDQoKCQsLCxAKCgoKCgoICgoNCgkNCQgICgcJCgoNCwgMCAgIBwcJBwMGCAcJBwcJBwcIBwcLBgYHCgcHBgYGBgcCBgoGBwYHBwcEBgcKBgcHBgcIBgIEBgYHBgcIBhAXBhYLBAkAAAAAAAAAAAAGBgcHCAgICAwMDQsLDQsOCgAAAAkJCAQEBAQOFAkRCREGBAMJBQMBAA0MDg0QEBAMDAkKCgkJCwAAAAAACwwMDAoHAAAABwAGBwAAAAAAAAALCwUFCwsFBQsLBQULCwUFCwsFBQsLBQULCwUFCgoJCQoKCQkGBgYGBwcPDwoKCQgJBgkICQYJCAkGDQ0FBg0NBQYNDwYJDQ8GCQ0PBgkGBgcHBgYHBwkJBQUJCQUFCQkFBQgIBAQHBwcHDw8KCgoKBg8KCgcHCQYJCgYKDwUFCgoLCgoGDQkFDwoKBwkICQkJCQoKCQgICwUJBgoJBwYGBwYEBAcGAwICAwUDAwUKCgcHBgcJBgUEBwcGBgYGBggGBgAAAAAGBgYHBgYNDAsMBgoKCgoKCgoKBAQEBAQEBAQKCgoKCgoKCgQEBAQKCgoKCAkIDAwLCwkJBQ0KDAcLCQkJCQQKBwsJCwkLCAwLAAAAAAAAAAAAEQkJCgUKCwwJBgwKDAkKCQkJBwwAAAAAAAAEDAwMAAAAAAAAAAAAAAANChENDAANChIPBgcEBAkJBgYGBgAAAAAAAAAACgkKBwoJCgkKCQkKCQcKCgoKCgkJCgwMDBMMBwwNCgQJBQoFCgkJBwUECgoKCwoJCwsFCAsJDQsLCgsLCgkKCg0KCgkODgkLCgsLCgoKCgoKCgoKCgoFBQUFCwsLCwsLCgoKCgoKCgoKCgsLCwoKCgoKCwsKCwsFBQUFBQwICwkJCQkLCwsLCwsLCwsLCgoKCgkJCQkKCgoKCgoNDQ0NCgoKCQkJCg4LCgoJCgoJCwsFCwoNCwkLCwoJCQoMCgwLCgoLBQsKCwUKCgwJCgoFBQgPEAwKCQsKCgoJCgoOCQsLCgoNCwsLCgoJCQwKCwoODwwOCgoPCwcGBgYGBgYGBgYGBgYGDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwHBwcHBwcHBwcJBwcHBQUGBwUHBwcHBwcHBwwKCgoKCgoKCgoECQUFBgcFBQUHBQoKCgoKCgoLBgYGBgwKCg4KDQUFBQUFBQUFBQUFBQUFBRweACEAAAAACgoJCQoKCQkPDwoKBwcKCgkJBAQEBAsJBQULCQUFCwkFBQgICAgODg4OCgoJCQ8PCgoPDwoKCQkGBgkKCQoQDQ8LGQAAAAAACwkFBQ0PBgkNDwYJCwkFBQsJBQULCQUFAAkICgoMCwwKFgkLEQ8ODhEPDAkTEBMQDAoMCgYGCg4JCwoMCw4MDQwHCgkDBgsKBBAYExghAwMDBAQEAwQFBAQDBAMEAwQDBAMEBAQEBAUEAwYGCgYGCQkLCwsLCwsLCwkJCQkJCQsLBQUKCgkJCQkJCQ0NBQYKCgUGCAgEBAYGBwcLCgUFCwoFBQcHCAgHBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJAAgJCgsAAAUFCgoKCgoKCgoKCgUHBQMADg0MDQ0MDAwMDw0MChANDAsMDQ0NDQ0MDAwODQ0MDQwMDQkPDQ0OBQUEBAUFCQ8KCwsKCwoLDQsKBQ8KCgoKCgoKBQoJCgcPCgoKCg8KCwgPCgsODQYHERENFRUVFRoJEQAACwsFBQMGBhISDQ0NDwYJBgQHBwAJDAoZFA0LDAsQDwsQEAsPDgkICQYJCQYGAAUEBQQMCg8MCgoJCQsLCQoVDxQQEw8RDhEOEQ4MCQwJDAkMCQ0HCgUPCw8MFhELCg8NEA8OChENCggLCwsJEA0KCQsKCwoKCAgICQkKCgYNCBINBw0NCQ0KCQcKCgoKBQ4LCQcLCQwJDQsMCQkKEA4LBgwKDAoMCg0KDAkMCgwHCwkOCg0NDAoJDQwKEQ4NCAsPCgsOBRQKDwkJDAUKCAcGEAsKCgoKEBAQEREKCwYJCQwJDQYKCg8PCwoLCgoKCwoJBgYFBQgPDhARCgsMCgsLBQULCwUFCwsHBwcHCwkFBQ0NBQYKCgUGCQkFBQAAAAAAAAAAAAAAAAAAAAAACBQUAAAAEyYOAAUFBQkLCxEOBQYGBwsFBgUFCwsLCwsLCwsLCwcHCwsLDBMNDg4ODQwPDQULDgwRDQ8NDw0NDQ0NEQ0NCwYFBgsLBgsMCwwLBgwMBQULBREMDAwMCAsGDAsPCwsKBwQHCw0NDg0NDw0LCwsLCwsLCwsLCwUFBQUMDAwMDAwMDAwMCwgLCwsHCwwODhMGBgoTDw4KCgoLCwkOEAoFBwcPEQwMBwsLCwoLCwsTDQ0PExILEwoKBQUKCQsNAwsGBgwMCwUFChUNDQ0NDQUFBQUPDw8NDQ0FBgYGBgYGBgYGBgwFDQsLCgQODA0LDQwLCwYGBhAQEAsPDAUNCw4LDgsMCwYNCw0LDg4ODQsNCwwFDAcMCQ0MDQwPDA0IDQgNCw0GDQkNDA0MCwoLCgsPDwwMCQ0HDwsLCBYTChMKEwoKEw4LCwsLCw0MDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDgsTExMTEwsLCxMUEQ4OCgwLCgoODwsNBQkRCQsHBwsHDQsOCw4LDQsNCw0LDwwPDA8MDQwNDAUFBQUFBQUFCwUOCwsMBQ0MDgwPDA8MDQgNCw0GDQwNDA0MDQwRDw0LBQ0LExEPDAYRDxEPEQ8NCwUGCwsQEBAQBgYGCQ0QEQkQEhAFDQ4ODQsNBQ4NEQ0MDw4NCw0NDQ8PBQ0MCQwFCwwLCQwKBQsLDAsIDAwKCwsPEQULDAsRDRELDg0FBQsVFBEMDA0NDg4LDg0RDA0NDA0RDQ8ODQ4NDBENDg0TExETDg4UDQsMDAgMCw0JDAwKDA0LDAsMCwkLEQsMCw8QDhAMCxALCwwICwsFBQUSEQwKCwwJCBMVDwAAAAAAAAAAAAAAAAAIAAYAAAcLCwkKDAUIDAwFCgkJDAwFBwwKCwsJCgsKDw0KCgoGChAFCgoJCQsPDw8PCwsLCwkKDAYIDAYKCQkMBwwLCwoLCg8NBQsJCwwAAAAABgYHCQQAAAAAAAAAAAsLCwsLCwsLCwsKBgoODgcOCwsLDg4ODg4ADg4ODg4ODg4MDg4ODAwFBQ4ODg4LCwoKCAgOEQcKDhEHCgwLCA4ODg4ODg4ODg4ODg4ODgAAAAAADg4AAAAAAAAAAAAAAAAAAAAACxMODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OBgYODQkFBQQECQkEBAwLBQUEBAwMBQUHCAwMBQUMDAUFCwsKCgsLCgoLCwoKBwcHBwgICAgREQwMEREMDBQUDw8UFA8PCgoKCgoKCgoKCQoHCgkKBw4OBgYMDAYGCgoHBwkJBAQHBwgICgoFBQcICQkJCQwLDAsFBQoLCQoJCgkKDg4AAA4ODgAADg4AAA4ODgAAAAAAAA4AAA4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgYGBg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OBwITJhAOEA4AAAAAAAAAAAAAAAAAAAAAChAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LBQUFBQ8MDwwPDA8MDwwPDA8MEA4QDhAOEA4QDg0MDQwQDhAOEA4QDhAODQsNCw0LDQsFBQ8MDQwNDA0MDQwNDAAAAAALCBENDAoMCg4LCwsLCw0LDQsNDA4LDwwMBQYGDAUFBQUFBQAAAAYGAAAAAAQEBAQEBAQECQkJCQwLDAwFBQwMBQUMDAUFDAwFBQwMBQUMDAUFDAwFBQsLCgoLCwoKCwsKCgsLCgoLCwoKCwsKCgcHBwcHBwcHBwcHBwcHBwcHBwgICAgICAgICAgICAgICAgREQwMEREMDBERDAwUFA8PFBQPDwoKCgkKBw4ODgYGDg4GBg4OBgYODgYGDg4GBgwMDAwWFhERDhEHCgoKBwcKCgcHCgoHBw4RBwoOEQcKDhEHCg4RBwoOEQcKCQkEBAkJBAQJCQQECQkEBAoKBQUKCgoKCgoFBQoKCwsKCgcIBwcHCQkJCQkJCQkJCQkJCQkJCQwLDAsFBQkJDAsFBQwLDw8PDwQAAAAAAAAAFRUAAAAAAAAEBwAACwAAABERDAwUFA8PCgkKBwkHBwUGBQUFBQUOEQUACAoJCgkKCQoJCgkKCQoJCgsLCQoMEA4MDgwODgsOEA4MDA0MDA8MEgUFDgsFCxMODA8RDg8MDQ0LCwcGDAYMDw4PCwwKDAwKCgsLCQsMBQkLBRkXFRYRCxgTEQsNCwANCxMRDwwPDA4LDwwPDAwKBRkXFQ8MFA0NDA0LDQsNCw0LBQUFBQ8MDwwNCA0IDQwNDA0LDQYLCg0MDQwMDAoNCw0LDwwADwwPDA8MDQsLDAwMCwsMDAsPCQkNCwYMDAsLCwwMDAUFCAYHBQsREREMDAwMEBAOBwcHBwcHBwsLCwYGBgoGBgwMCwsPCwsKDQoKCwsLCw8MCwsLCQsJDAsLFBIXDwoQEQ8NCgsHBwQFBQUHCgcFCQUFBQYGBwcLCwsLBgYGBgYGBgYGBgYGBgYGBgYHAwcHBwcHBwcHBgYGBgoKCgoKCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYMCw8TDw4QDQ8MDgsMCQ4KDwwTEQ0MDQwNDQwLDgsKCA0MCwUPCQkNDQsMGA8RDRMPDQsSDw8OFBMMCQ8ODwwPDA8MFRMPDBgRABgPDgsLAAAAAAAADgwODA0MDQsMCQwKDgwRDhUSDgsOCwwJEA0NCxANEA0FEQ0NCw0MDgsOCw0LEA4GDQsNCxMRDQsOCxENDAkMCg0MDQwPDA8MDgsMCwwLDAsNCxMQDgwUEhIQDQoTEhQSDwsPDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQsODA4MDgwOCw4MDgwODA4MDgwNCw0LDQsNCw0LDAYPDA0MDQwNDA0MDQwFBQUFDgsOCw4LDAUMBQwFDAURERERERENDA0MDQwNDA8MDwwPDA8MDQwNDA0IDQgNCA0IDQsNCw0LDQsNCw0GDQYNBg0GDQwNDA0MDQwNDA0LDQsRDxEPDQsNCw0LCwoLCgsKDAYPCwsFDAwMDAwMDAwNDREREREREQkJCQkJCQ8PEhISEgwMDAwMDAwMEBATExMTExMFBQUFBQUFBQcHCwsLCwsLDAwMDAwMEBAUFBISCwsLCwsLCwsPExQSEREREREREREQEBQUExMTEwwMCQkMDAUFDAwLCxERDAwMDAwMDAwNDREREREREQwMDAwMDAwMEBATExMTExMRERERERERERAQFBQTExMTDAwMDAwMDA0NDQ0NBgYGBgYMDAwMDBAQERENBgYGBQUFBQUFBQUJCQYGBgsLCwsMDAsLDQ0QEQ8JCQYRERERERIQEhAPBgYLDg4RDhcSDgwVCgsAAAAABQULDRAJEAoODgYGBgYGBgYGBgYGBgYGCAgGAAAAAAAAAAAAAAANDAsPEQwLCwsKCQUKCwkNDAwLDAwMEgsMDAwLCwkLDA8MCw8KCQkMCAsLDA4MCQ0JCQkICAoIAwcJBwoICAoICAkICAwHBwcLBwcHBwcHBwMHCwcIBwgIBwQHCAsHCAcHCAkHAwUHBwcHCAkHEhkGGQwFCgAAAAAAAAAAAAcHCAgJCQkJDg0ODAwODRALAAAACwoJBAQEBBAXChMKEwYFAwsFBAIADg4QDhISEg4OCwwMCwoMAAAAAAAMDg4OCwgAAAAHAAYIAAAAAAAAAAwMBQUMDAUFDAwFBQwMBQUMDAUFDAwFBQwMBQULCwoKCwsKCgcHBwcICBERDAwKCQoHCgkKBwoJCgcODgYGDg4GBg4RBwoOEQcKDhEHCgcHCAgHBwgICgoFBQoKBQUKCgUFCQkEBAgICAgREQwMDAwGEQwMBwcLBgoMBwwRBQUMCwwMDAYPCwURDAwHCwkLCwoLDAwLCQkMBQsGDAoHBwcIBwUFBwcDAwMDBgQDBQsLCAgHCAoHBQQICAcHBwcHCQcHAAAAAAYHBwgHBw8ODQ4GDAwMDAwMDAwFBQUFBQUFBQsLCwsLCwsLBQUFBQsLCwsJCgkODg0NCwsFDwwOBw0LCwsLBQsIDQsNCwwJDQwAAAAAAAAAAAATCgsMBQwNDgsGDgwOCwwKCwoIDgAAAAAAAAUODg4AAAAAAAAAAAAAAA8MEQ8OAA8MFBAGBwUFCgoGBgYGAAAAAAAAAAAMCwsICwoLCgsKCwsLCAsLCwsLCgsLDQ4OFg4HDQ8MBQsGDAYMCwsHBgULDAsMCwoMDAYJDAoPDA0LDQwLCgwLDwsLChAQCg0LDAwLCwsLCwsLCwsLCwYGBgYMDQ0NDQ0MDAwMCwsLCwsLDAwMCwsLCwsMDAsMDAYGBgYGDgkMCgoKCgwMDAwNDQ0MDAwLCwsLCgoKCgwMDAwMDA8PDw8LCwsKCgoLEA0LDAoLCwoMDQYMCw8MCg0MCwoKCw0LDQ0LCwwGDQsNBgsLDgoLCwYGCRERDQsKDAsMDAoMCxAKDAwLCw8MDQwLCwoKDQsMCxAQDhALCxAMCAYGBgYGBgYGBgYGBgYNDQ0NDQ0NDQ0NDQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgcHBwcHBwcHBwoHBwcGBgcHBgcHBwcHBwcHDQwMDAwMDAwMDAULBgYHBwYGBggGDAwMDAsLCwwGBgYGDQwMEAsOBQUFBQUFBQUFBQUFBQUFICIAJQAAAAALCwoKCwsKChERDAwICAsLCgoEBAQEDAsFBQwLBQUMCwUFCQkJCQ8PDw8LCwoKEREMDBERDAwKCgcHCgsKCxIOEQwcAAAAAAAMCwUFDhEHCg4RBwoMCwUFDAsFBQwLBQUACgkMCw0MDgwZCw0TEA8PExAOCxUSFREOCw0MBgYMEAoMDA0MEA4PDQcMCgQHDQwFEhsVGyUEBAQEBAQEBAYEBAQEBAQEBAQEBAUFBQUFBQUEBwcLBwcKCg0NDQ0NDQ0NCwsKCwsKDAwFBQsLCgoKCgoKDg4GBgwMBgYJCQQEBwcICAwLBQUMCwUFCAgJCQgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQoACQoMDQAABgYLCwsLCwsLCwsMBgcFBAAQDg4ODg4ODQ4RDg0LEg8NDA4ODg8ODg0ODRAPDw4ODQ0OChAODxAFBQQFBgUKEQwNDQwMCwwPDQwFEQwMDAsMDAwFDAoMBxELCwwMEQwMCBEMDBAPBwcTEw4XFxcXHQsTAAAMDAUFAwcHFBQPDw4RBwoGBQgIAAsOCxwXDwwNDBIRDBERDBAQCgkKBwoKBwcABgQGBQ4MEA4LCwoKDAwKCxcRFxIVERMPEw8TDw4LDgsOCw4LDggMBRENEQ0ZEw0MEA8SEA8MEw8MCQwMDQsSDwsKDQwNDAsJCQkLCwsLBg8JFA8HDw4KDwwKBwsMDAwFEAwKBw0LDgoODA4LCwwRDw0GDQsOCw0LDwwOCw4MDgcNCxALDw8ODAoPDgwTEQ4JDBEMDRAFFgwRCgsNBgwJCAcSDAwLCwwSEhITEwsMBwsKDQoPBgwMEREMCwwMCwsMCwoGBwYGCBAPEhIMDQ4MDAwFBQwMBQUMDAcHCAgMCwUFDg4GBgwMBgYKCgUFAAAAAAAAAAAAAAAAAAAAAAAJFxcAAAAVKhAABgYHCgwMEQ8FBwcIDAYHBgYMDAwMDAwMDAwMBwcMDAwNFA8PDw8ODRAOBQwPDREOEA4QDw4NDg0VDg0MBwYHDAwHDA0MDQwHDQ0FBQwFEw0NDQ0IDAcNDQ8MCwsIBggMDw8PDg4QDgwMDAwMDAwMDAwMBQUFBQ0NDQ0NDQ0NDQ0MCAwMDAcMDQ8PFQcHDBUQDwwMDAwMCg8RDAYICBATDQ0HDAwMDA0MDBUPDxAVFAwVCwsGBgwKCw0EDAcHDQ0MBgYLFQ8ODw4OBQUFBRAQEA4ODgUHBwcHBwcHBwcHDQUODAwLBg8NDQsODQwMBwcHEhISDBANBQ4MDwwPDA0MBw8MDwwPDw8ODA4MDQUNCA0KDg0ODRANDwgPCA4MDQcNCg4NDg0MCwwLDRARDQ0KDgkPDA0IGBULFQsVCwsVDwwNDA0NDw0PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDRUVFRUVDQ0NFRYTEBALDgwLCxAQDA8FChMKDQcHDQcPDA8MDwwODA4MDgwQDRANEA0ODQ4NBQUFBQUFBQUMBQ8MDA0FDg0PDRANEA0PCA4MDQcODQ4NDg0ODRUPDQsFDwwVExANBxUPFQ8VDw0LBgcMDRISEhIHBwcKDxITChETEgUPDw8ODA4FDw0RDg4QDw4NDQ0OEREFDQ0KDQUMDQsKDQsFDAsNDQkNDQsMDA8TBQwNDBMOEw0PDgUFDBcWEg0NDw8PDwwPDhMNDg4NDxEOEA8ODw0NEw4PDxUVEhUPDxYPDA0NCQ0MDwoNDQsNDw0NDQ0MCQsTDA0MERIPEg0MEgwMDQkMDAUFBRQTDQsLDAoJFRcQAAAAAAAAAAAAAAAAAAkABgAABwwMCgwNBQkNDQULCgoNDQUIDQsMDAoLDAsPDgsLCwYLEQULCwoKDA8PDw8MDAwMCgwNBwkNBwsKCg0IDQwMCwwLDw4FDAoMDQAAAAAHBwcKBAAAAAAAAAAADAwMDAwMDAwMDAsHCxAQBxAMDAwQEBAQEAAQEBAQEBAQEA0QEBAODgYGEBAQEAwMCwsJCRASCAsQEggLDgwJEBAQEBAQEBAQEBAQEBAQAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAAMFRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAHBxAPCgUFBQUJCQUFDgwGBgUFDg4GBgcJDg4GBg4OBgYMDAsLDAwLCwwMCwsHBwcHCQkJCRMTDQ0TEw0NFhYQEBYWEBALCwsLCwsLCwsKCwgLCgsIEBAGBw0NBgcLCwgICQkFBQgICQkLCwYGBwkKCQkJDgwODAYGCw0KCwoLCgsQEAAAEBAQAAAQEAAAEBAQAAAAAAAAEAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBwcHEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAHAxUqEg8RDwAAAAAAAAAAAAAAAAAAAAALEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ8MDwwPDA8MDwwPDA8MDwwPDA8MDwwPDA4MDgwODA4MDgwODA4MDgwFBQUFEA0QDRANEA0QDRANEA0SDxIPEg8SDxIPDg0ODREPEQ8RDxEPEQ8NCw0LDQsPDAUFEA0ODQ4NDg0ODQ4NAAAAAAwJEw8NCw0LDw0MDAwMDgwPDA8NDwwQDQ4GBgcNBgYGBgYGAAAABwcAAAAABQUFBQUFBQUJCQkJDgwODgYGDg4GBg4OBgYODgYGDg4GBg4OBgYODgYGDAwLCwwMCwsMDAsLDAwLCwwMCwsMDAsLBwcHBwcHBwcHBwcHBwcHBwcHCQkJCQkJCQkJCQkJCQkJCRMTDQ0TEw0NExMNDRYWEBAWFhAQCwsLCgsIEBAQBgcQEAYHEBAGBxAQBgcQEAYHDQ0NDRgYExMQEggLCwsICAsLCAgLCwgIEBIICxASCAsQEggLEBIICxASCAsJCQUFCQkFBQkJBQUJCQUFCwsGBgsLCwsLCwYGCwsMDAsLBwkICAgJCQkJCQkJCQkJCQkJCQkJDgwODAYGCQkODAYGDgwRERERBAAAAAAAAAAYFwAAAAAAAAQIAAANAAAAExMNDRYWEBALCgsICggHBgcFBQUFBRASBQAJCwoLCgsKCwoLCgsKCwoLDAwKCw0SDw0PDQ8PDA8SDw0NDg0NEA0UBgYPDAYMFQ8NEBMQEA0ODgwNCAcNBw0RDxAMDQsNDQsLDAwKDA0GCgwHHBoXGRMMGxUTDA8MAA8MFRMQDRANDwwQDRANDQsGHBoXEA0WDg4NDwwPDA4MDgwFBQUFEA0QDQ8IDwgODQ4NDgwNBwwLDg0PDQ0NCw8MDgwQDQAQDRANEA0NCwwNDQ0MDA0NDBAKCg8MBw0NDAwNDQ0NBgYJBwcGDRMTEw0NDQ0SEhAICAgICAgIDAwMBwcHCwcHDQ0MDBAMDAsOCwsMDAwMEA0MDA0KDAoNDAwWFBkRCxESEA8LDAgIBAUFBQgLCAUKBgYGBwcICAwMDAwHBwcHBwcHBwcHBwcHBwcHBwgDCAgICAgICAgHBwcHCwsLCwsLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBw0MEBUQEBIOEA0PDA0KEAsRDRUTDw0PDQ4ODg0PDAsJDg0MBRAKCg4ODA0bEBIPFBEODBMRERAXFQ0KERAQDREOEQ4YFBENGxMAGxAPDAwAAAAAAAAPDQ8NDg0PDQ0KDQsQDRIPGBMPDA8MDQoSDg8MEg4SDgUTDw8NDw0PDQ8NDwwSEAcPDA8MFRMODA8MEw8NCg0LDg0ODRANEA0PDA0LDQsNCw8MFRIPDRYUFBIOCxUUFhMQDBAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDA8NDw0PDQ8MDw0PDQ8NDw0PDQ4MDgwODA4MDgwNBxANDg0ODQ4NDg0ODQUFBQUPDA8MDwwNBQ0FDQUNBRETERMREw4NDg0ODQ4NEA0QDRANEA0ODQ4NDwgPCA8IDwgODA4MDgwODA4MDQcNBw0HDQcODQ4NDg0ODQ4NDQ0NDRUPFQ8ODA4MDQsMCwwLDAsNBw8LDAUNDQ0NDQ0NDQ8PEhISEhISCgoKCgoKEBAUFBQUDQ0NDQ0NDQ0RERUVFRUVFQUFBQUFBQUFCAgMDAwMDAwNDQ0NDQ0RERYWFBQMDAwMDAwMDBEVFhQTExMTExMTExISFhYVFRUVDQ0KCg0NBQUNDQwMExMNDQ0NDQ0NDQ8PEhISEhISDQ0NDQ0NDQ0RERUVFRUVFRMTExMTExMTEhIWFhUVFRUNDQ0NDQ0NDw8PDw8HBwcHBw0NDQ0NEhITEw4HBwcFBQUFBQUFBQoKBwcHDAwMDA0NDAwNDRITEAoKBxMTExMTExEUEhEHBwwPDxMPGhQPDRcLDAAAAAAGBgwOEgoSCw8PBwcHBwcHBwcHBwcHBwcICAcAAAAAAAAAAAAAAA4NDBATDQwMDAsKBgsMCg8NDQwNDQ0UDA0NDQwMCQwNEA0NDwsKCg0JDA0NEA0KDwoKCgkJCwkECAoICwkJCwkJCgkJDQgICAwICAgIBwcIAwcMCAkICQkIBQgJDAgJCAgJCggDBQgICAgJCggUHAcbDgULAAAAAAAAAAAABwcJCQoJCgkPDxANDhAOEQwAAAAMCwoFBQUFEhkLFQsVBwUEDAYEAgAPDxIQExQUDw8MDQ0MCw4AAAAAAA0PDw8MCQAAAAgABwkAAAAAAAAADg4GBg4OBgYODgYGDg4GBg4OBgYODgYGDg4GBgwMCwsMDAsLBwcHBwkJExMNDQsKCwgLCgsICwoLCBAQBgcQEAYHEBIICxASCAsQEggLCAgJCQgICQkLCwYGCwsGBgsLBgYJCQUFCQkJCRMTDQ0NDQcTDQ0ICAwHCw0IDRIGBg0MDQ0NBxAMBhMNDQgMCgwMCwwNDQwKCg4GDAcNCwgICAkHBQUICAQDAwQGBAMGDAwJCQgJCwgGBQkJCAgICAgKCAgAAAAABwgICQgIEA8ODwcNDQ0NDQ0NDQUFBQUFBQUFDAwMDAwMDAwFBQUFDAwMDAoLCg8PDQ4MDAYQDQ8IDgwMDAwFDAkODA4MDQoPDQAAAAAAAAAAABULDA0GDQ4PDAcPDQ8MDQsMCwkPAAAAAAAABQ8PDwAAAAAAAAAAAAAAEA0VDw8AEA0WEgcIBQULCwcHBwcAAAAAAAAAAA0MDAkMCwwLDAsMDAwJDAwMDAwLDAwPDw8YDwgPEA0GDAYNBg0MDAgGBQ0NDQ0MCw4NBgoNCxANDgwODQwLDQwRDAwLEhILDgwNDQ0NDQ0NDQ0MDAwMBgYGBg0ODg4ODg0NDQ0MDQ0NDQ0ODQ0MDAwMDA4ODQ0NBgYGBgYPCg0LCwsLDQ0NDQ4ODg0NDQwMDAwLCwsLDQ0NDQ0NEREREQwMDAsLCw0SDg0NCw0MCw0OBg0MEA0LDg0MCwsMDgwODg0MDQYODA4GDAwPCw0MBgYKExMPDAsNDQ0NCw0MEQsNDQwMEA0ODQwNCwsPDA0MEhIPEgwNEg0JBwcHBwcHBwcHBwcHBw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCAgICAgICAgICwgICAYGCAgGCAgICAgICAgPDQ0NDQ0NDQ0NBgwGBggIBgYGCQYNDQ0NDQwNDgcHBwcPDQ0RDQ8GBgYGBgYGBgYGBgYGBgYjJQAoAAAAAAwMCwsMDAsLExMNDQkJDAwLCwUFBQUODAYGDgwGBg4MBgYJCQkJEREREQwMCwsTEw0NExMNDQsLCAgLDAsMFBATDR8AAAAAAA4MBgYQEggLEBIICw4MBgYODAYGDgwGBgALCg0MDg0PDRsMDhUSEREVEg8MFxQYEw8NDw0HBw0SCw0NDw4SDxAPCA0LBAgODQUUHhceKAQEBAUEBAQEBgQEBAQEBAQEBAQEBQUFBQUGBQQHBw0ICAwMDg4ODg4ODg4MDAsMDAsODgYGDAwLCwsLCwsQEAYHDQ0GBwkJBQUICAkJDgwGBg4MBgYICAkJCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCwAKDA0OAAAHBwwMDAwMDAwMDA0HCAYEABIPDxAPDw8ODxMQDwwUEA8ODw8PEBAPDw8PEhAQDw8ODhALEhAREQYGBQUGBgsTDQ4ODQ0MDRAODQYTDQ0NDA0NDQYNCw0IEwwNDQ0TDQ0JEw0NERAHCBUVEBoaGhogDBUAAA4OBgYEBwcWFhAQEBIICwcFCQkADA8NHhkQDQ8NExMNExMOEhELCgsICwsICAAGBQYFDw0SDwwMCwsNDQsMGRIZExcTFBEUERQRDwwPDA8MDwwQCQ0GEw4SDxwVDg0SEBQSEQ0VEA0KDg4ODBQQDAsODQ4NDAoKCgwMDAwHEAkWEAgQEAsQDQsIDA0NDQYRDgsIDgwPCxANDwwMDRMRDgcPDA8MDwwQDQ8MDw0PCA4MEg0QEA8NCxAPDRUTDwkNEw0OEgYZDRILDA4HDQoICBMNDQwMDRQUFBUVDA0IDAsOCxAHDQ0TEw4MDg0NDA0MCwcIBwYJEhEUFA0ODw0ODgYGDg4GBg4OCAgJCQ4MBgYQEAYHDQ0GBwsLBgYAAAAAAAAAAAAAAAAAAAAAAAoZGQAAABgwEgAHBwcLDQ0SEQYICAkOBwgHBw0NDQ0NDQ0NDQ0HBw4ODg8XERERERAPExEHDREPFRESEBIREA8REBcQDw4IBwgODQgNDw0PDQgPDwcHDQcVDw8PDwkNCA8NEw0NDAkHCQ4REREQERIRDQ0NDQ0NDQ0NDQ0HBwcHDw8PDw8PDw8PDw0KDQ0NCA0PEhIYCAgNGBMRDQ0NDQ4MERQNBwkJEhUPDwcODQ0NDw0NGBEREhgXDRgMDAcHDQwNDwQNCAgODg0HBwwXERAREBAHBwcHEhISERERBwgICAgICAcICAgPBxANDgwHEQ8PDRAPDg4ICAgUFBQNEw8HEA0RDRENDw0IEQ0RDRERERANEA0PBw8JDwwRDxEPEg8RCREJEA0PCA8MEQ8RDw4MDgwOEhMPDwsQCxENDwoYGAwYDBgMDBgRDg8ODw8RDxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERIPGBgYGBgPDw8ZGRYSEg0QDgwMEhMNEQYMFQwPCQkPCRENEQ0RDRANEA0QDRMPEw8TDxEPEQ8HBwcHBwcHBw0HEQ0NDwcRDxEPEg8SDxEJEA0PCBEPEQ8RDxEPFxMPDQcRDRgVEw8IFxMXExcTDw0HCA0OFBQUFAgICAsRFBYLFBYUBxERERAOEQcREBURDxIREA4PDxATEwcPDwsPBw4PDQsPDQcNDQ8NCw8PDA4OERMHDg8OExAVDhEQBwcNGhoVDw8RERERDhEQFQ8REQ8RFRESERARDw8VEBIRGRkVFxERGRENDw8KDw0RDA8PDA8TDw8PDw0LDRUNDw4VFRIVDw0VDg0PCg0NBwcHFxYPDA0PDAsYGxIAAAAAAAAAAAAAAAAACwAHAAAHDg4LDQ8HCg8PBw0MDA8PBwkPDQ4ODAwODREQDQ0NBwwUBw0NDAwNEREREQ4ODg4LDQ8ICw8IDQwMDwkPDg4MDg0REAcODA4PAAAAAAgICQsFAAAAAAAAAAANDQ0NDQ0NDQ0NDQgNEhIIEg0NDRISEhISABISEhISEhISDxISEhAQBwcSEhISDg0NDQoKEhUJDRIVCQ0PDQoSEhISEhISEhISEhISEhIAAAAAABISAAAAAAAAAAAAAAAAAAAAAA0YEhISEhISEhISEhISEhISEhISEhISEhISEhISEggIEhELBgYFBgsLBQYPDgcHBQYQEAcHCAoQEAcHEBAHBw4NDQ0ODQ0NDg0NDQgICAgKCgoKFhYPDxYWDw8aGhMTGhoTEw0NDQ0NDQ0NDQsNCQ0LDQkSEgcIDw8HCA0NCQkLCwYGCQkKCg0NBwcICgsLCwsPDQ8OBwcNDgwNDA0MDRISAAASEhIAABISAAASEhIAAAAAAAASAAASEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhIICAgSEhISEhISEhISEhISEhISEhISEhISEggDGDAUERQRAAAAAAAAAAAAAAAAAAAAAAwUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEQ0RDRENEQ0RDRENEQ0RDRENEQ0RDRENEA0QDRANEA0QDRANEA0QDQcHBwcSDxIPEg8SDxIPEg8SDxQRFBEUERQRFBERDxEPFBEUERQRFBEUEQ8NDw0PDRENBwcSDxEPEQ8RDxEPEQ8AAAAADgoWEQ8MDwwRDw0NDQ0QDREOEQ8RDRMPEAcHCA8HBwcHBwcAAAAICAAAAAAFBgUGBQYFBgsLCwsPDRAQBwcQEAcHEBAHBxAQBwcQEAcHEBAHBxAQBwcODQ0NDg0NDQ4NDQ0ODQ0NDg0NDQ4NDQ0ICAgICAgICAgICAgICAgICAgKCgoKCgoKCgoKCgoKCgoKFhYPDxYWDw8WFg8PGhoTExoaExMNDQ0LDQkSEhIHCBISBwgSEgcIEhIHCBISBwgPDw8PHBwWFhIVCQ0NDQkJDQ0JCQ0NCQkSFQkNEhUJDRIVCQ0SFQkNEhUJDQsLBgYLCwYGCwsGBgsLBgYNDQcHDQ0NDQ0NBwcNDQ4NDQ0ICgkJCQsLCwsLCwsLCwsLCwsLCwsPDQ8NBwcLCw8NBwcPDRMTExMFAAAAAAAAABsaAAAAAAAABQkAAA4AAAAWFg8PGhoTEw0LDQkLCQgHCAYGBgYGEhUHAAoNDA0MDQwNDA0MDQwNDA0NDQwNDxQRDxEPERENERQRDw8QDw8TDxYHBxENBw0YEQ8TFRITDxAQDQ4JCA8IDxMREg0PDA8PDQ0NDQwODwcMDgcgHRscFQ0fGBUNEQ0AEQ0YFRMPEw8RDRIPEg8PDQcgHRsTDxkQEQ8RDRENEA0QDQcHBwcSDxIPEQkRCREPEQ8QDQ8IDgwRDxEPDw8MEQ0QDRIPABIPEg8SDw8NDQ8PDw0NDw8NEwwMEQ4IDw8ODQ4PDw8HBwoICQcOFRUVDw8PDxQUEgkJCQkJCQkODg0ICAgNCAgPDw4NEw0ODBANDQ0NDQ0TDw4ODwsNCw8NDRkXHRQNFBUTEQ0OCQkFBgYGCQ0JBgsHBwcICAkJDg4ODggICAgICAgICAgICAgICAgICQMJCQkJCQkJCQgICAgMDQ0NDQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIDw4SGBISFBATDxENDwsSDRMPGBURDxEPEBAPDhIODAsQDw0HEwsLEBENDx8TFREXExANFhMTEhoYDwwTEhMPFBAUEBsXFA8fFgAfExENDgAAAAAAABEPEQ8QDxEODwwPDBIPFREbFhEOEQ0PDBQREQ4VEBUQBxUREQ4RDxEPEQ8RDhQSCBENEQ0YFRANEQ0VEQ8MDw0RDxEPEg8TDxENDw0PDQ8NEQ4XFREPGRYXFBANGBcZFhMOEhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABENEQ8RDxEPEQ0RDxEPEQ8RDxEPEA0QDRANEA0QDQ8IEw8RDxEPEQ8RDxEPBwcHBxENEQ0RDQ8HDwcPBw8HFRUVFRUVEQ8RDxEPEQ8SDxIPEg8SDxAPEA8RCREJEQkRCRANEA0QDRANEA0PCA8IDwgPCBEPEQ8RDxEPEQ8QDRANFxMXExANEA0PDQ4MDgwODA8IEw0NBw8PDw8PDw8PEREVFRUVFRULCwsLCwsSEhcXFxcPDw8PDw8PDxQUGBgYGBgYBwcHBwcHBwcJCQ4ODg4ODg8PDw8PDxQUGRkXFw4ODg4ODg4OFBgZFxMTExMTExMTFBQaGhgYGBgPDwsLDw8HBw8PDg4TEw8PDw8PDw8PEREVFRUVFRUPDw8PDw8PDxQUGBgYGBgYExMTExMTExMUFBoaGBgYGA8PDw8PDw8REREREQgICAgIDw8PDw8VFRYWEQgICAcHBwcHBwcHCwsICAgODg4ODw8ODg8PFRYSCwsIExMTExMWFBcUEwgIDRERFREdFxEPGgwOAAAAAAcHDRAUDBQMEhIICAgICAgICAgICAgICAoKCAAAAAAAAAAAAAAAEA8OExUPDQ4ODAwHDA0LEw8PDQ8PDxcODw8PDg4LDg8SDw0TDAwMDwoNDw8SDwwRCwsLCgoMCgQJCwkMCgoMCgoLCgoPCQkJDgkJCQkICAkDCA4JCgkKCgkFCQoOCQoJCQoMCQMGCQkJCQoMCRYgCB8QBg0AAAAAAAAAAAAICAoKCwsLCxEREg8PEhAUDgAAAA0MDAYGBgYUHQwYDBgIBgQNBwUCABIRFBIWFxcREQ0PDw0MDwAAAAAADxEREQ4KAAAACQAICgAAAAAAAAAQEAcHEBAHBxAQBwcQEAcHEBAHBxAQBwcQEAcHDg0NDQ4NDQ0ICAgICgoWFg8PDQsNCQ0LDQkNCw0JEhIHCBISBwgSFQkNEhUJDRIVCQ0JCQoKCQkKCg0NBwcNDQcHDQ0HBwsLBgYKCgoKFhYPDw8PCBUPDwkJDQgMDwkPFQcHDw4PDw8IEg0HFQ8PCQ0LDQ0MDQ8PDQwMEAcNCA8NCQkJCggGBgkJBAMDBAcFBAcODgoKCQoMCQcFCgoJCQkJCQsJCQAAAAAICQkKCQkTERARCA8PDw8PDw8PBwcHBwcHBwcODg4ODg4ODgcHBwcODg4ODA0MEREQEA0NBxMPEQkQDQ0NDQcOChANEA0PDBEPAAAAAAAAAAAAGAwNDwcPEBENCBEPEQ0PDA0NChEAAAAAAAAHERERAAAAAAAAAAAAAAASDxcTEQASDxkVCAkGBgwMCAgICAAAAAAAAAAADw0OCg4NDg0ODQ0ODQsODg4ODg0NDhEREhwSCRETDwYNBw8HDw0NCQcHDg8ODw4MEA8HCw8NEg8QDhAPDQwPDhMODgwUFA0QDg8PDg4ODg4ODg4ODg4HBwcHDxAQEBAQDw8PDw4ODg4ODhAPDw4ODg4OEBAODw8HBwcHBxILDw0NDQ0PDw8PEBAQDw8PDQ0NDQwMDAwPDw8PDw8TExMTDg4ODAwMDhQQDg8MDg4MDxAHDw0SDw0QDw4MDA4RDhAQDg4PBxAOEAcODhIMDg0HBwsWFhENDQ8ODw8MDw4UDQ8PDQ4SDxAPDg4MDREODw4UFREUDg4VDwoICAgICAgICAgICAgIERERERERERERERERERERERERERERERISEhISEhISEhISEhIJCQkJCQkJCQkNCQkJBwcJCQcJCQkJCQkJCREPDw8PDw8PDw8GDQcHCQkHBwcKBw8PDw8PDQ4Q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AAASERAVGBEPEBAODQgODwwVEREPERERGQ8REREQEAwQERUQDxUODQ0RCw8QERQRDRMMDAwLCw4MBQoMCw4MDA4MCwwMDBEKCgsQCwsKCgkJCwQJDwoLCgsLCwYKCw8KCwoKCw0KBAcKCgoKCw0KGSQJIxIGDwAAAAAAAAAAAAkJDAwNDA0MFBMVEREUEhYQAAAADw4NBgYGBhcgDhsOGwkHBQ8IBQIAFBQWFBkaGhQUDxERDw4RAAAAAAARFBQUDwsAAAAKAAkLAAAAAAAAABISBwcSEgcHEhIHBxISBwcSEgcHEhIHBxISBwcQDw4OEA8ODgkJCQkMDBgYEBAPDQ8KDw0PCg8NDwoUFAgJFBQICRQYCg8UGAoPFBgKDwoKCwsKCgsLDw8HBw8PBwcPDwcHDAwGBgwMDAwYGBAQEREJGBERCwsPCQ4RChAYCAgREBEREQkVDwgYERELDw0PDw4PEREPDQ0SCA8JEQ4LCgoLCQcHCwoFBAQFCAUECA8PCwsKCw4KCAYLCwoKCgoKDQoKAAAAAAkKCgsKChUUEhQJEREREREREREICAgICAgICBAQEBAQEBAQCAgICBAQEBANDw0UFBISDw8IFREUCxIPDw8PCA8LEg8SDxENExEAAAAAAAAAAAAbDg8RCBESFA8JFBEUDxEODw8MEwAAAAAAAAgUFBQAAAAAAAAAAAAAABURGRUTABUQHBcJCwYGDg4JCQkJAAAAAAAAAAARDxAMDw8PDw8ODw8PDA8PEA8PDg8PExQUHxQKExURBw8IEQgRDw8KCAgQERARDw4SEQgNEQ4VERIPEhEPDhEPFRAQDhcXDhIPEREQEBAQEBAQDw8PDwgICAgREhISEhIREREREBAQEBAQEhERDw8PDw8SEhAREQgICAgIFA0RDg4ODhERERESEhIREREPDw8PDg4ODhERERERERUVFRUQEBAODg4QFxIQEQ4QDw4REggRDxURDhIRDw4OEBMQEhIQDxEIEhASCBAPFA4QDwgIDRgZEw8PERAREQ4QDxYPEREPEBUREhEPEA4PExAREBcXExcQEBcRCwkJCQkJCQkJCQkJCQkTExMTExMTExMTExQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAoKCgoKCgoKCg8KCgoICAoLCAoKCgoKCgoKExEREREREREREQcPCAgKCwgICAwI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CwsLCwsLCwsLDAUMDAwMDAwMDAsLCwsQERERERERERERDBERERERDBERERERDBERERERDBERERERDBEREREREREREQwREREREQwREREREQwREREREQwREREREQwREREREREREREMEREREREMEREREREMEREREREMEREREREMERERERERERERDBERERERDBERERERDBERERERDBERERERDBEREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLFBMZIBkYGxYZFBcSFA4YERoUIBwWFBYTFRUVExgTEA4WFBIKGQ8PFRYSFCkZHBYfGRUSHhoaGCIfFBAaGBkUGhUaFSQfGhQpHQApGRcSEwAAAAAAABcUFxQVFBYTFBAUEBgUHBckHRcSFxIUEBsWFhMbFhsWCBwWFhMWFBcTFxMWExsYCxcSFxIgHBUSFxIcFhQQFBEWFBYUGBMZFBcSFBEUERQRFhMfGxcTIR4fGxURIB8hHhkTGRYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcSFhMWExYTFxIXExcTFxMXExcTFRIVEhUSFRIVEhQLGRMWExYTFhMWExYTCAoIChcSFxIXEhQKFAoUChQKGxwbHBscFhMWExYTFhMYExgTGBMYExQTFBMWDRYNFg0WDRUSFRIVEhUSFRIUCxQLFAsUCxYTFhMWExYTFhMVERURHxkfGRUSFRIUERQQFBAUEBMLGRESChQUFBQUFBQUFxccHBwcHBwPDw8PDw8YGB8fHx8TExMTExMTExoaICAgICAgCgoKCgoKCgoMDBISEhISEhMTExMTExoaISEfHxISEhISEhISGiAiHxoaGhoaGhoaGxsiIiAgICAUFA8PExMKChMTEhIaGhQUFBQUFBQUFxccHBwcHBwTExMTExMTExoaICAgICAgGhoaGhoaGhobGyIiICAgIBQUFBQUFBQXFxcXFwsLCwsLExMTExMcHB0dFgsLCwoKCgoKCggIDw8LCwsSEhISFBQSEhQUHB0YDw8LGhoaGhoeGh4bGgsLEhcXHBcnHhcUIxATAAAAAAkJEhUbEBsQFxcLCwsLCwsLCwsL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BqYGpwRqBGsGqAapBqoGqwasBq0GrgavBrAGsQayBrMGtARsBG0GtQa2BrcGuAa5BroGuwa8Br0Gvga/BsAGwQbCBsMGxAbFBsYGxwbIBskGygbLBswGzQbOBs8G0AT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBtEG0gbTBtUG1gbXBtgG2QbaBtsG3AbdBt4G3wbgBuEG4gbjBuQG5QbmBucG6AbpBuoG6wbsBu0G7gHWAdcB2AHZAdoB2wsSBxAHEQcSBxMHFAcVBxYHFwcYBxkHGwccBx0HHgcfByAHIQciCxMLFAsVCw8L3wvgC+EL4gvjC+QL5QvmC+cL6Az1DPYM9wz4DPkM+gz7DPwM/Qz+DP8NAA0BDQIHIwckByUHJgcnBygHKQcqBysFJQsWCxcHgAeBB4IHgweEB4UHhgeHB4gHiQeKB4sHjAeNB44HjweQB5EHkgeTB5QHlQDWAN8HlgDYB5cHmAeZB5oHmwecB50HngefB6AHoQeiB6MHpADZANoA2wDeANcA3QelB6YHpweoB6kHqgerB6wHrQeuB68HsAexB7IHswe0B7ULGAsZCxoLGwscCx0LHgsfCyALIQsiCyMLJAslCyYLJwsoBJIEkwhCBHoIQwhECEUIRghHBHQISAhJCEoISwhMCE0ITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheCF8IYASVCykLKgsrCywLLQsuCy8LMAvpC+oL6wvsC+0LMQsyCzMIjQiOCI8IkAiRCJIIkwiUCJUIlgiXCJgImQiaCJsInA9AD0EPQg9DCJ0Ing9ED0UInw0DDQQNBQAeEHwB7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrD0YLNAs1C9sL3AvdC+4L7wvwC/EIxwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwjICMkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUIygKGAocIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6gjrCOwI7QjuCO8I8AjxCPINQgjzCPQI9Qj2CPcI+Aj5CPoCiAKJBRAFEQj7CPwFEgUTCP0I/gUUBRUFFgUXCP8JAAkBCQIFGAUZCQMJBAkFCQYJBwkICQkJCgkLCQwFGgUbBRwFHQUeBR8JDQkOCQ8JEAUgBSEFIgUjCREJEgkTCRQJFQkWCRcJGAkZCRoJGwkcCR0JHgkfCSAJIQkiCSMNBgklCSYJJwkoCSkJKgkrCSwFJAUlCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgUmBScJOwk8CT0JPgk/CUAJQQlCCUMJRAlFCUYL8gvzCUcJSA0HDQgNCQ0KDQsNDAlJCUoJSwlMCU0JTglPCVAJUQlSCVMJVAlVCVYJVwlYDQ0NDg0PDRAPSw9MD00PTg9PD1ANQw1EDUUNRg9RD1IPUw9UD1UPVg9XD1gPWQ9aEH0QfhB/EIAQgRCCEIMQhAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkL9AlqCWsJbAltCW4JbwlwCXEJcglzCXQJdQl2Ao0CjgKPApACkQKSApMClAKVApYL9QKXApgCmQKaApsCnAKdAp4Cnwl3C/YL9wv4C6ELogujC6QPSBBmDsMOxA7FDsYOxwv5AuwLpgulC6cLqAupC6oLqwusBTMPIg8jDyQPJQ8mAu0QZQv6Au4PJwLvA4EDgwOFA4cDiQONA48DkwOVA5kDnQOhA6UDqQOrA60DrwOxA7UDuQO9A8EDxQPJA80PKw8vDzMPNw87AvAD0QPVA9kD3QPhA+UD6QPtA+8D8QLxAvIC8wL0AvUC9gL3AvgFOAU5BToLrQuuC68L+wv8C/0L/gv/DAAPPwL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBBAAAwUFKAUsBTsFPAU+BUAFOQVCBUQFRgVIBUoFTgVSBVYFWgMfBV4FYgVmBWoFbgVyBXYDJwV6BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwDKwWeBaAFpAWoBawFsAW0BbYFugW7Bb8FwwXHBcsFzwXRAy0F0wXXBdsF3wXjAzEF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXA+sGGQYdBh8GIAYhBiIGJAYmBigGKgYsBi4GMAM1BjIGNAY4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BxMHFAcVBxYHFwcYBxkHGwccBx0HHgcfByAHIQciCxMLFAsVCw8L3wvgC+EL4gvjC+QL5QvmC+cL6Az1DPYM9wz4DPkM+gz7DPwM/Qz+DP8NAA0BDQIHIwckByUHJgcnBygHKQcqBysFJQsWCxcHgAeBB4IHgweEB4UHhgeHB4gHiQeKB4sHjAeNB44HjweQB5EHkgeTB5QHlQDWAN8HlgDYB5cHmAeZB5oHmwecB50HngefB6AHoQeiB6MHpADZANoA2wDeANcA3QelB6YHpweoB6kHqgerB6wHrQeuB68HsAexB7IHswe0B7ULGAsZCxoLGwscCx0LHgsfCyALIQsiCyMLJAslCyYLJwsoBJIEkwhCBHoIQwhECEUIRghHBHQISAhJCEoISwhMCE0ITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheCF8IYASVCykLKgsrCywLLQsuCy8LMAvpC+oL6wvsC+0LMQsyCzMIjQiOCI8IkAiRCJIIkwiUCJUIlgiXCJgImQiaCJsInA9AD0EPQg9DCJ0Ing9ED0UInw0DDQQNBQAeEHwB7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrD0YLNAs1C9sL3AvdC+4L7wvwC/EIxwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwjICMkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUIygKGAocIywjMCM0IzgjPCNAI0QjSCNMI1AjVCNYI1wjYCNkI2gjbCNwI3QjeCN8I4AjhCOII4wjkCOUI5gjnCOgI6gjrCOwI7QjuCO8I8AjxCPINQgjzCPQI9Qj2CPcI+Aj5CPoCiAKJBRAFEQj7CPwFEgUTCP0I/gUUBRUFFgUXCP8JAAkBCQIFGAUZCQMJBAkFCQYJBwkICQkJCgkLCQwFGgUbBRwFHQUeBR8JDQkOCQ8JEAUgBSEFIgUjCREJEgkTCRQJFQkWCRcJGAkZCRoJGwkcCR0JHgkfCSAJIQkiCSMNBgklCSYJJwkoCSkJKgkrCSwFJAUlCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgUmBScJOwk8CT0JPgk/CUAJQQlCCUMJRAlFCUYL8gvzCUcJSA0HDQgNCQ0KDQsNDAlJCUoJSwlMCU0JTglPCVAJUQlSCVMJVAlVCVYJVwlYDQ0NDg0PDRAPSw9MD00PTg9PD1ANQw1EDUUNRg9RD1IPUw9UD1UPVg9XD1gPWQ9aEH0QfhB/EIAQgRCCEIMQhAlZCVoJWwlcCV0JXglfCWAJYQliCWMJZAllCWYJZwloCWkL9AlqCWsJbAltCW4JbwlwCXEJcglzCXQJdQl2Ao0CjgKPApACkQKSApMClAKVApYL9QKXApgCmQKaApsCnAKdAp4Cnwl3C/YL9wv4C6ELogujC6QPSBBmDsMOxA7FDsYOxwv5AuwLpgulC6cLqAupC6oLqwusBTMPIg8jDyQPJQ8mAu0QZQv6Au4PJwLvA4EDgwOFA4cDiQONA48DkwOVA5kDnQOhA6UDqQOrA60DrwOxA7UDuQO9A8EDxQPJA80PKw8vDzMPNw87AvAD0QPVA9kD3QPhA+UD6QPtA+8D8QLxAvIC8wL0AvUC9gL3AvgFOAU5BToLrQuuC68L+wv8C/0L/gv/DAAPPwL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBBAAAwUFKAUsBTsFPAU+BUAFOQVCBUQFRgVIBUoFTgVSBVYFWgMfBV4FYgVmBWoFbgVyBXYDJwV6BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwDKwWeBaAFpAWoBawFsAW0BbYFugW7Bb8FwwXHBcsFzwXRAy0F0wXXBdsF3wXjAzEF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXA+sGGQYdBh8GIAYhBiIGJAYmBigGKgYsBi4GMAM1BjIGNAY4BjoGPgZABkIGRAMIBkUGRgZHBkgGSQZKBksGTAZNBk4GTwZQBlEGUgZTBlQGVQZWBlcGWAZZBloQBAZbC7ELswL5AvoC+wL8AwoDCwMMAwADAQMCBlwGYAZkBmgGaQu1DAIMBgwKDA4MEgwWDBoMHgwiDCYMKAwqDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMagxsDt8O4w7nDusO7Q7xDvMO9Q75Dv0PAQ8DDwUPBw8JDw0PEQ8VD6YQaA+qD64Psg+2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AACangAAnBoAAJ4wAACeagAAnqAAAJ9oAACgPAAAoKwAAKDKAAChbAAAokYAAKKCAACivAAAoyIAAKS6AAClWAAApeoAAKdGAACocAAAqVoAAKmYAACpqAAAqcYAAKvQAACsEgAArGAAAKycAACs3AAArSoAAK1oAACtpgAAreAAAK4iAACuWgAArooAAK7EAACvCAAArzgAAK+AAACv4gAAsE4AALD8AACxMAAAsaAAALHmAACynAAAszYAALPKAAC0MgAAtI4AALViAAC2LgAAtl4AALaOAAC28gAAt0gAALfQAAC4+gAAunIAALqoAAC62AAAu+AAALy0AAC88AAAvoYAAL8EAADAEgAAwUYAAMLyAADEgAAAxsgAAMd+AADHwgAAyAIAAMg0AADIeAAAyLQAAMj4AADJMgAAyWQAAMmWAADKxgAAyvwAAMsmAADLcgAAy7QAAMvaAADMAAAAzDYAAM10AADNjAAAzbIAAM3YAADOFgAAzkYAAM52AADOtAAAz3IAANAkAADQWAAA0JAAANDMAADRCgAA0VgAANGKAADRvAAA0fgAANI0AADScAAA0qwAANLeAADTDgAA0z4AANNkAADTiAAA08YAANU6AADVfgAA1bYAANXuAADWJAAA1nQAANa2AADW/AAA104AANeaAADYrAAA2bgAANqgAADbkAAA3JYAAN2AAADd8AAA3xoAAN9qAADfmgAA4JQAAOLIAADjGgAA41oAAOOsAADj6gAA5GIAAOTAAADlOgAA5VoAAOX6AADmlAAA5soAAOcuAADneAAA58IAAOfeAADn+gAA6BoAAOg6AADoWgAA6HoAAOigAADoxgAA6OwAAOkSAADpQgAA6WoAAOmSAADpvgAA6eoAAOoeAADqSAAA6nQAAOqqAADq1AAA6wAAAOs2AADrYAAA64oAAOu+AADr7gAA7CIAAOxmAADslgAA7MoAAO0MAADtQAAA7XIAAO20AADt6AAA7hgAAO5aAADungAA7uQAAO9AAADvXAAA73gAAO+UAADvsAAA78wAAPE6AADz5AAA9lQAAPZwAAD2igAA9qYAAPbCAAD23gAA9voAAPdWAAD3kAAA9/oAAPjEAAD5ZAAA+joAAPq6AAD7QgAA+7IAAPxIAAD8pgAA/OwAAP1KAAD9rAAA/ewAAP5IAAD+rAAA/x4AAP9cAAEA7gABAf4AAQI+AAECWgABAoYAAQK+AAEDCgABAzoAAQNqAAEDngABA84AAQP+AAEELgABBF4AAQSOAAEEvgABBO4AAQUeAAEFTgABBX4AAQWuAAEF3gABBg4AAQY0AAEH4gABCBIAAQhCAAEJLgABCkYAAQp2AAEKpAABCtQAAQsCAAELMgABC2AAAQuEAAELqAABC+IAAQzCAAEM6AABDQ4AAQ5UAAEOegABDp4AAQ7EAAEO6gABD8AAARC4AAEQ6AABERgAARFIAAEReAABEZ4AARHCAAER8gABEiIAARLkAAET+AABFCgAARRYAAEUiAABFLgAARToAAEVGAABFT4AARVkAAEVlAABFcQAARX0AAEWJAABFsQAARcWAAEX5AABGBQAARhEAAEYdAABGKQAARjWAAEZBgABGTYAARlmAAEZlgABGcoAARn+AAEaLgABGl4AARq8AAEa5gABHGwAAR1UAAEfCAABIVwAASOUAAElMgABJZIAASYYAAEmKAABJuoAASiOAAEpYgABKjgAASrEAAEr6AABLPwAAS5uAAEupAABLrQAAS7EAAEvngABL64AAS++AAEvzgABL94AAS/uAAEw9AABMQQAATEUAAExvgABMc4AATIgAAEyMAABMyQAATM0AAEzRAABM1QAATQmAAE1QAABNXQAATWoAAE12AABNggAATY4AAE2ZgABNpoAATeEAAE4egABOVoAATokAAE65AABOzYAATxoAAE9fAABPkAAAT5QAAE/XAABP2wAAUA2AAFBFAABQdwAAUL6AAFDxgABRMQAAUT2AAFFKgABRVoAAUWKAAFFugABRe4AAUbQAAFHAAABSCQAAUg0AAFIRAABSHgAAUiIAAFJjgABSnoAAUtIAAFLeAABS6gAAUwoAAFMOAABTO4AAUz+AAFNVgABTfQAAU4EAAFP5gABUQoAAVIwAAFSYAABU4oAAVQCAAFUEgABVCIAAVQyAAFUhgABVJYAAVSmAAFUtgABVa4AAVasAAFWvAABVygAAVe2AAFYPgABWNwAAVmaAAFaggABWzwAAVxmAAFdjAABXsoAAV7aAAFgAAABYO4AAWFMAAFiHAABYiwAAWQSAAFlZAABZkgAAWZ4AAFnjgABaBgAAWnSAAFqWAABamgAAWrSAAFq4gABavIAAWtcAAFrbAABbMAAAWzQAAFtWgABbeYAAW52AAFvJgABb+IAAXDiAAFxoAABcqYAAXOyAAF04AABdRQAAXZQAAF2fgABd5QAAXekAAF3tAABd+YAAXf2AAF5AgABeeYAAXrkAAF7HgABe04AAXvuAAF8TAABfLwAAXz4AAF+jgABfxIAAX+EAAGAggABgQgAAYGiAAGB5AABglAAAYLwAAGDFAABg0oAAYOMAAGEOAABhHYAAYScAAGE1AABhPoAAYVIAAGFhgABhcQAAYYgAAGHdgABiBgAAYkuAAGJjAABiigAAYpmAAGLIAABi5YAAYyUAAGMzgABjVgAAY4UAAGOtgABjzwAAZAIAAGQRgABkM4AAZGcAAGSegABk0IAAZRQAAGVBgABlhIAAZbEAAGXTAABmEwAAZk0AAGZjAABmeQAAZo4AAGahgABmx4AAZwqAAGcQgABnFoAAZxyAAGciAABnKQAAZ2EAAGdvAABneoAAZ4iAAGeUAABnoIAAZ60AAGfLgABn4QAAaDiAAGhggABoqAAAaNQAAGjnAABpPIAAaWiAAGlzAABpkgAAaaQAAGnyAABqMYAAak0AAGqtgABrHQAAa3aAAGu6AABrxIAAbCiAAGx4AABsfgAAbIQAAGyKAABskAAAbOuAAGz2AABtOgAAbWaAAG2SgABtt4AAbesAAG46AABuPgAAbksAAG57AABu6QAAbx8AAG85gABvgwAAb5qAAG/fAABwEoAAcDWAAHBVAABwjAAAcNwAAHEagABxSAAAcYMAAHG1AABx7IAAciCAAHJYAABydgAAcwEAAHMLgABzFgAAcxoAAHMkgABzcwAAc7qAAHP+gAB0CQAAdBOAAHQeAAB0KIAAdDMAAHQ7AAB0RYAAdFAAAHRagAB0ZQAAdG+AAHR6AAB0hIAAdI8AAHScAAB0poAAdLEAAHS7gAB0wYAAdMeAAHTNAAB00oAAdN0AAHTngAB08gAAdPyAAHUCgAB1oQAAdacAAHWtAAB1swAAdbkAAHYQgAB2iYAAdsoAAHcrgAB3ngAAeDMAAHiOgAB5C4AAeQ+AAHkTgAB5bIAAeXcAAHmBgAB5jAAAeZaAAHmhAAB5q4AAebYAAHnAgAB5ywAAedWAAHngAAB56oAAefUAAHn/gAB6CgAAehAAAHoYgAB6HoAAeq6AAHq1AAB6v4AAesoAAHrWAAB64gAAevYAAHsKAAB7GgAAezaAAHtLgAB7YwAAe3iAAHuGAAB7loAAe6gAAHu6gAB7xoAAe9SAAHvggAB8OgAAfQuAAH0WAAB9IIAAfSsAAH01gAB9QAAAfUqAAH1VAAB9X4AAfWoAAH10gAB9fwAAfYmAAH2UAAB9noAAfakAAH2zgAB9vgAAfciAAH3TAAB93YAAfegAAH3ygAB9/QAAfgeAAH4SAAB+HIAAficAAH4xgAB+cwAAfniAAH6DAAB+iQAAfsuAAH7WAAB+4IAAf1kAAH/OAAB/1AAAf9oAAIBEAACAqgAAgUaAAIHWgACCNIAAgjiAAIJjgACCjgAAgpQAAIKaAACCn4AAgqUAAIMNgACDh4AAg42AAIOTgACDmYAAg5+AAIOlgACDq4AAg7GAAIO3gACDvYAAg8OAAIPJgACDz4AAhAwAAIRjgACEjoAAhJKAAISYgACEnoAAhKSAAISqgACE04AAhNeAAITdgACE44AAhRYAAIUaAACFIAAAhSYAAIWXgACFm4AAhfcAAIX7AACGAQAAhgcAAIYNAACGEwAAhnIAAIZ2AACGwoAAhsaAAIbMgACG0oAAhtiAAIbegACHOgAAhz4AAIdCAACHRgAAh0wAAIdSAACHWAAAh14AAIeyAACIAAAAiEYAAIiEgACIioAAiJCAAIiWgACInIAAiKKAAIiogACIroAAiLSAAIi6gACIwIAAiMaAAIjMgACJWwAAiV8AAIljAACJZwAAicGAAInFgACJ+gAAif4AAIpMAACKUAAAiomAAIqNgACKk4AAipmAAIqfgACKpYAAiu8AAIrzAACLToAAi7oAAIwGAACMCgAAjGiAAIy5AACNQQAAjbWAAI27AACNwIAAjcuAAI3WgACN3AAAjeGAAI3ngACN7QAAjlyAAI6zAACOvYAAjsgAAI7MAACO0AAAjtqAAI7lAACO74AAjvOAAI73gACPAgAAjwyAAI8QgACPFIAAjx8AAI8pgACPNAAAjzoAAI9CAACPSIAAj1EAAI9VAACPWwAAj2WAAI9pgACPbYAAj3gAAI+CgACPjQAAj5eAAI+iAACPrIAAj7cAAI/BgACPzAAAj9aAAI/hAACP64AAj/YAAJAAgACQCwAAkBWAAJAgAACQKoAAkDUAAJA/gACQSgAAkFSAAJBfAACQaYAAkHQAAJB+gACQiQAAkJOAAJCeAACQqIAAkLMAAJC9gACQyAAAkNKAAJDdAACQ54AAkPIAAJD8gACRBwAAkRGAAJEcAACRJoAAkTEAAJE7gACRRgAAkVCAAJFbAACRZYAAkXAAAJF6gACRhQAAkY+AAJGaAACRpIAAkc6AAJHfgACR/QAAkgeAAJISAACSHIAAkicAAJIxgACSPAAAkkaAAJJRAACSW4AAkmYAAJJwgACSewAAkoWAAJKQAACSmoAAkqUAAJKvgACSugAAksSAAJLPAACS2YAAkuQAAJLugACTGwAAkygAAJM1AACTQgAAk6MAAJQDAACUXgAAlLGAAJThgACVEgAAlS6AAJVjAACVl4AAlbQAAJXlAACWIYAAllKAAJaPAACWuIAAlvuAAJcgAACXcgAAl8GAAJfagACYJIAAmJgAAJkqAACZRQAAmWAAAJl6gACZlYAAmcEAAJnsgACaFgAAmj+AAJppAACadQAAmoEAAJqNAACakYAAmpYAAJqagACanwAAmqOAAJq/gACa3AAAmugAAJrsgACa8QAAmvUAAJr5AACa/YAAmwIAAJsGgACbCwAAmw+AAJsUAACbVwAAm4CAAJvDgACb7QAAnAMAAJwMgACcFgAAnCCAAJwsAACcPoAAnFWAAJxkAACcegAAnIoAAJyeAACcrAAAnMGAAJzSAACc4gAAnPaAAJ0TAACdJYAAnUCAAJ1QgACda4AAnXuAAJ2VgACdpgAAnbsAAJ3EgACdzgAAndiAAJ3kgACd8IAAnfyAAJ4QAACeJwAAnjaAAJ5NAACeXwAAnnSAAJ6FgACemoAAnqwAAJ68gACexgAAntOAAJ7dAACe5oAAnvAAAJ75gACfBQAAnw+AAJ8iAACfOQAAn0eAAJ9dgACfbYAAn4KAAJ+QgACfpIAAn7UAAJ/FAACf04AAn+KAAJ/xgACgAIAAoAwAAKAWgACgJgAAoDIAAKA7gACgRQAAoE6AAKBYAACgYoAAoG0AAKB9AACgkAAAoKGAAKCvgACgugAAoMSAAKDQgACg3IAAoOYAAKDvgACg+gAAoQSAAKERAAChHYAAoSmAAKE1gAChQYAAoU2AAKFZgAChZQAAoXEAAKF9AAChiQAAoZUAAKGiAAChugAAoccAAKHgAACh7QAAogUAAKISAACiKwAAolUAAKKJAACizoAAowMAAKMhgACjPQAAo7WAAKQoAACkcAAApLSAAKUFgAClSoAApW6AAKWOgACls4AApdQAAKYEAACmLAAApl8AAKaYgACmxoAApvmAAKcYgACnHIAAp1AAAKeAAACnsoAAp9+AAKgGgACoJAAAqG4AAKi0gACpFoAAqTcAAKlzAACpsIAAqe6AAKoTAACql4AAqvuAAKsdAACrfYAAq5iAAKuzAACr04AArEUAAKy3AACs2wAArO4AAKz9gACtDgAArSAAAK0rAACtPIAArUoAAK1ZAACtaIAArXgAAK2aAACtvAAArcyAAK3agACt6QAArfeAAK4BgACuC4AArhyAAK4tgACuPQAArkyAAK5YgACuZIAArm4AAK53gACuf4AAroeAAK6PgACul4AArq2AAK7DgACu2oAArvGAAK8IgACvH4AArzMAAK9GgACvUIAAr1qAAK9kAACvbYAAr36AAK+PgACvooAAr7WAAK/IAACv2oAAr+4AALABgACwEYAAsDmAALBDAACwTIAAsF8AALB7AACwhQAAsI8AALCggACwsgAAsMeAALDdAACw8IAAsR8AALEpAACxMwAAsUgAALFdAACxbQAAsX0AALGGgACxkAAAsamAALHDAACx04AAseQAALHtgACx9wAAsgyAALIiAACyOQAAslAAALJlAACyegAAso2AALKhAACys4AAssYAALLcgACy8wAAswgAALMdAACzLYAAsz4AALNlgACzjQAAs5+AALOyAACzxoAAs9sAALP0gAC0DgAAtCQAALQ6AAC0RQAAtFAAALRbAAC0ZgAAtHEAALR8AAC0hwAAtJIAALSbgAC0pQAAtLAAALS7AAC0zoAAtOIAALT1AAC1CAAAtRwAALUwAAC1ToAAtWcAALWFAAC1l4AAtfwAALYJAAC2FgAAtiOAALYsgAC2NIAAtjyAALZdAAC2dwAAtokAALabAAC2rgAAtsiAALbSgAC23IAAtuYAALbvgAC3A4AAtxeAALc8gAC3UQAAt2iAALdugAC3iAAAt44AALfHgAC4C4AAuD8AALh9gAC4mIAAuLIAALjJgAC44gAAuQOAALklAAC5PoAAuVgAALlzAAC5jgAAuaOAALm5AAC5xYAAudIAALnbgAC55QAAugAAALoZgAC6MQAAukmAALqOAAC60QAAuxSAALtVgAC7XwAAu2kAALtyAAC7ewAAu4UAALuPAAC7mIAAu6IAALvqgAC8OYAAvIUAALzQAAC8/oAAvS0AAL1dAAC9jQAAvcYAAL3/AAC+PgAAvn0AAL62AAC+7wAAvySAAL9aAAC/bIAAv38AAL+IgAC/kgAAv5oAAL+iAAC/qYAAv7EAAL/mgAC/6oAAv/+AAMAUgADAHIAAwCSAAMAsgADANIAAwEcAAMBZgADAYYAAwHWAAMB9gADAhYAAwJoAAMCgAADAvoAAwM8AAMDgAADBA4AAwScAAMGTgADBl4AAwaYAAMG0gADBwIAAwcyAAMHZgADB5oAAwfUAAMIDgADCGIAAwi2AAMJGAADCXoAAwsqAAMMsgADDO4AAw0mAAMNQgADDV4AAw2kAAMN6gADDjoAAxBgAAMQhgADEKwAAxEAAAMTqgADFHwAAxUYAAMVZgADFaQAAxXWAAMXxAADGoAAAxsuAAMckgADHcwAAx54AAMgDgADImIAAySeAAMlEgADJYYAAyYYAAMnCgADJygAAyeiAAMoyAADKaQAAym2AAMrFgADLJwAAyzCAAMtgAADLZ4AAy3EAAMt6gADLhAAAy42AAMuVgADLnYAAy6WAAMutgADLtYAAy72AAMvFgADLzQAAzCSAAMybgADMn4AAzNOAAM0XgADNLwAAzXUAAM3YgADOAgAAzlOAAM5oAADOfIAAzoqAAM6dgADOqIAAzroAAM7FAADO1AAAzuqAAM79AADPEAAAzywAAM9dgADPfIAAz6yAAM/KgADQAQAA0CUAANAzgADQQoAA0KCAANDcgADQ7wAA0QCAANFTAADRlwAA0ZsAANHdgADSFwAA0luAANKOgADS1AAA0yOAANMngADTXYAA044AANPOAADUJIAA1DyAANSdgADUuoAA1Q+AANVpgADVooAA1bcAANXRAADWM4AA1pEAANazAADXHAAA11gAANehAADXyYAA2AQAANg+gADYfIAA2LaAANkDAADZVIAA2b0AANosAADaMAAA2nEAANq9gADa6AAA2y0AANtQAADbrAAA294AANwagADcbgAA3LQAAN0dgADdbYAA3cIAAN4LAADed4AA3tmAAN8YAADfTYAA36SAAN/UgADf4gAA3/wAAOAxAADgNQAA4E0AAOBkAADgeoAA4IiAAOCYAADgqoAA4LmAAODJAADg24AA4SAAAOE0gADhS4AA4XaAAOGAgADhnIAA4aiAAOG1AADiH4AA4mkAAOJ3gADig4AA4paAAOKjAADirIAA4rYAAOLGgADi1wAA4uMAAOLvAADjAAAA4xGAAOMhAADjL4AA4z4AAONKAADjeQAA46eAAOO4AADjxAAA49EAAOPgAADj7AAA4/gAAOQGgADkFIAA5CCAAOQtgADkOoAA5ESAAORQgADkXIAA5GmAAOR3gADkg4AA5I+AAOSfgADkrAAA5LsAAOTHgADk14AA5OYAAOTyAADk/gAA5QeAAOURAADlGoAA5SaAAOVsgADlrAAA5bgAAOXEgADl7YAA5lcAAOaxgADm7QAA50eAAOdTgADnX4AA522AAOd7gADnkAAA56cAAOfjgADn7YAA6AkAAOgVAADoIQAA6CsAAOhHgADoU4AA6GEAAOi5AADo6YAA6SCAAOlpgADpp4AA6fuAAOpCgADqigAA6ssAAOsjgADrjQAA6/MAAOx2AADsw4AA7OoAAO1FgADtSYAA7X0AAO3tgADubgAA7pqAAO7SAADvGIAA70SAAO9bgADvcgAA76eAAO/hAADwBQAA8GMAAPCigADw4wAA8TAAAPFngADxoQAA8ckAAPILgADyVYAA8pKAAPLMgADy64AA8wqAAPM1gADzYgAA85mAAPO3AADzzAAA9CiAAPSIgAD1CAAA9TkAAPVtgAD1p4AA9fUAAPYoAAD2agAA9rCAAPbqgAD3HoAA91YAAPe8gAD4A4AA+DoAAPiXAAD5FAAA+VmAAPnFAAD56YAA+hIAAPo1gAD6XQAA+p4AAPqiAAD6+IAA+zyAAPtAgAD7dwAA+8AAAPvYAAD8IAAA/FOAAPyMAAD9BgAA/YmAAP4/AAD+zYAA/zEAAP+7gAEAJYABAJ4AAQD0gAEBT4ABAXAAAQGdAAEB2IABAgOAAQIegAECPwABAnUAAQLGAAEDIoABA2YAAQNqAAEDbgABA4aAAQOfgAEDtwABA9qAAQP9gAEELwABBFWAAQRZgAEEXYABBIQAAQSsAAEEvYABBNoAAQT2gAEFCgABBRcAAQUzgAEFT4ABBWyAAQWAgAEFpYABBcmAAQXpAAEGCgABBjEAAQY8AAEGV4ABBoQAAQbHgAEG2oABB00AAQeIAAEHjAABB5mAAQeqgAEHu4ABB8yAAQfaAAEH5oABB/cAAQgMgAEIH4ABCEsAAQhpAAEIi4ABCKiAAQjCAAEI44ABCPuAAQkWAAEJNAABCVEAAQlogAEJkwABCboAAQnWAAEJ+oABChIAAQougAEKWgABCoSAAQqrAAEKyAABCumAAQsDgAELL4ABC2AAAQuMAAELsYABC8oAAQvmAAEL+4ABDBwAAQw8gAEMXwABDIMAAQyZgAEMtIABDNCAAQztAAENCgABDSwAAQ1RAAENa4ABDYoAAQ2qAAENyAABDfKAAQ4ZgAEOPoABDlcAAQ5/gAEOn4ABDsUAAQ7vAAEPGoABD0GAAQ9ZgAEPb4ABD4qAAQ+1AAEP4IABEBQAARA+gAEQWAABEG4AARCHAAEQq4ABEM4AARDygAERC4ABESWAARFAAAERWgABEXUAARGUAAERtwABEd0AARH4AAESEgABEisAARJXAAESiAABErSAARLZAAES8YABEw2AARMqgAETVIABE38AAROxAAET2oABE/SAARQZgAEUNwABFF4AARR+gAEUngABFLoAARTegAEU9YABFQ4AARUwgAEVUIABFWqAARWEgAEVmoABFbYAARXQAAEV8IABFg8AARYugAEWT4ABFmaAARaAAAEWmgABFsMAARbsgAEXHQABF0oAARdiAAEXgQABF5mAARe9AAEX5AABGAiAARgjAAEYO4ABGGAAARh9gAEYpQABGMsAARjoAAEZBQABGSQAARk7gAEZVIABGXQAARmLgAEZpIABGbwAARnUAAEZ7gABGgMAARoQgAEaI4ABGjyAARpMgAEaXwABGomAARqzgAEayQABGtcAARrrAAEbFwABG0KAARtXAAEbbAABG4IAARuWAAEbrAABG8WAARvdgAEcBYABHC6AARw+AAEcV4ABHH8AARykAAEcyIABHPIAARz+gAEdGIABHTKAAR1FAAEdeYABHZoAAR3EAAEd3gABHe2AAR4IAAEeMYABHkcAAR5cAAEedwABHpAAAR64AAEexIABHtCAAR7kgAEfCoABHxUAAR8fgAEfUYABH2gAAR+QgAEfqwABH8oAAR/2AAEgE4ABIC+AASBFgAEgXwABIHeAASCfgAEgtYABIOiAASEDgAEhGgABIS4AASFDgAEha4ABIZ0AASHwAAEiNwABIlAAASJtAAEjNoABI1qAASN6gAEjjgABI+gAASQzAAEkRQABJIQAASS2AAEk7YABJSoAASVYgAEljwABJamAASXPgAEmBAABJkEAASZdgAEmeQABJooAASbTAAEnEwABJ0+AASdggAEnb4ABJ6oAASfqgAEoSwABKIoAASjLAAEo8AABKSsAASlDgAEpYQABKcOAASnoAAEqNAABKnAAASq6AAErCAABKzkAAStzAAErowABK/gAASxkgAEsyQABLReAAS1xAAEtpoABLdYAAS4FgAEuNwABLo0AAS7hAAEu5QABLukAAS7tAAEvFAABLzuAAS9PAAEvXoABL3AAAS98AAEv0AABMDcAATB7gAEwxQABMSgAATGEgAExsoABMeKAATIegAEyXYABMrWAATMAAAEzZIABM8EAATQfAAE0d4ABNLeAATUFAAE1TQABNaGAATXegAE2MAABNkCAATZQgAE2p4ABNvAAATc4AAE3gIABN/mAAThYgAE4e4ABOIeAATiZgAE4voABOOUAATk9AAE5YYABOX2AATmRAAE5pYABOhIAATqhgAE7DYABO1gAATuVgAE71wABPEyAATy6AAE8+oABPUAAAT2xgAE+LQABPpcAAT72AAE/V4ABP6+AAT/VgAE//IABQEQAAUCNgAFA1oABQSgAAUF3AAFBzAABQe2AAUINAAFCOgABQmuAAUKWgAFCyQABQxWAAUN9gAFDvgABQ/4AAUQCAAFEDgABRBoAAUR3AAFE0wABRQOAAUU0AAFFbIABRaKAAUXPgAFGBIABRi8AAUZggAFGwQABRy0AAUdHgAFHU4ABR12AAUdqgAFHd4ABR3uAAUd/gAFHi4ABR5UAAUekAAFHswABR8AAAUfNAAFH2gABR+eAAUgxAAFINQABSEEAAUhNAAFIWgABSGgAAUh1AAFIggABSI8AAUicAAFIqQABSLaAAUjCgAFI0AABSN0AAUjrgAFI/4ABSRIAAUkfAAFJLAABSTmAAUlHAAFJdAABSXgAAUm6gAFKFYABSnAAAUrYAAFLKYABS3+AAUu8AAFL/oABTDeAAUx3gAFMwQABTPwAAU0rAAFNW4ABTXGAAU2aAAFNzAABTeiAAU4MAAFOGwABTjoAAU5/AAFOjoABTroAAU7VAAFO5AABTvOAAU8QAAFPSwABT2sAAU+BAAFPjQABT7iAAU/IgAFP5QABUA+AAVAegAFQPQABUFMAAVCBgAFQjYABUJ0AAVDggAFRBQABUROAAVFRAAFRj4ABUfAAAVJJAAFSiIABUsMAAVL2gAFTAIABUwqAAVMWgAFTIoABUyyAAVM2gAFTQIABU0qAAVNhAAFTe4ABU4gAAVOUAAFTnYABU6eAAVOxgAFTvAABU8aAAVPQgAFT2oABU+QAAVPvAAFUEYABVBuAAVQ8AAFURgABVE+AAVRZAAFUYoABVHcAAVSMAAFUmIABVKSAAVSxAAFUwAABVMwAAVTZgAFU4wABVOyAAVT5gAFVBoABVRaAAVUoAAFVMYABVTsAAVVEgAFVTgABVViAAVVxgAFVhIABVZEAAVWcgAFVqgABVbmAAVXDgAFVzQABVdaAAVXpAAFV+YABVgOAAVYNAAFWGAABViGAAVY4gAFWRIABVlCAAVZcgAFWZgABVnCAAVZ8gAFWiIABVpIAAVabgAFWpQABVq6AAVa4AAFWwYABVsuAAVbpgAFW9AABVw6AAVcYgAFXQYABV0uAAVdqgAFXd4ABV4gAAVeUAAFXoAABV6wAAVe4AAFXwwABV8yAAVfegAFX7wABV/oAAVgEAAFYEAABWBwAAVglgAFYLwABWDoAAVhnAAFYcQABWJ0AAVitgAFYvgABWMoAAVjXAAFY4IABWOqAAVj0AAFY/gABWQeAAVkRgAFZG4ABWSWAAVkvAAFZOIABWUIAAVlLgAFZVYABWXeAAVmEgAFZngABWaoAAVm2AAFZv4ABWckAAVnXgAFZ6IABWfUAAVoEAAFaEAABWhwAAVopAAFaNgABWkIAAVpPgAFaXYABWmmAAVp1AAFaf4ABWosAAVqUgAFangABWqsAAVq8gAFaywABWtoAAVrmgAFa8oABWwGAAVsQgAFbH4ABWzIAAVtEgAFbUoABW2IAAVtxAAFbgQABW5gAAVuvAAFbxgABW90AAVv3gAFcEgABXB4AAVwsAAFcPAABXE0AAVxeAAFcbwABXIYAAVydAAFcuAABXNMAAVzuAAFdCQABXRUAAV0hAAFdLwABXT0AAV1NAAFdXQABXWwAAV17AAFdkgABXakAAV3CAAFd2wABXfQAAV4NAAFeJIABXjwAAV5HgAFeUwABXl+AAV5sAAFeeIABXoUAAV6UgAFepAABXsAAAV7cgAFe9QABXw2AAV8mAAFfPoABX1SAAV9qgAFfdoABX4KAAV+PgAFfnIABX6mAAV+2gAFfzQABX+gAAWACgAFgHQABYDcAAWBRAAFgXQABYGkAAWB2AAFggwABYJMAAWCjAAFgsgABYMEAAWDWAAFg74ABYQSAAWEYAAFhJAABYTAAAWE9AAFhSgABYVcAAWFkAAFhcgABYYAAAWGXAAFhrIABYcSAAWHcgAFh8gABYgeAAWIeAAFiMwABYkCAAWJNAAFiXIABYmiAAWJ0gAFihwABYpKAAWKegAFisAABYr4AAWLNAAFi3gABYusAAWL3AAFjCYABYx6AAWM0AAFjSYABY2KAAWN7gAFjkAABY6WAAWO4gAFjzQABY+gAAWQDAAFkHgABZDkAAWRYAAFkdwABZIeAAWSYAAFkqgABZLwAAWTQgAFk5QABZPiAAWUMAAFlJ4ABZUMAAWVggAFlfgABZZuAAWW5AAFl1QABZfEAAWYBgAFmEgABZiMAAWY0AAFmRQABZlYAAWZogAFmewABZpaAAWawgAFmzQABZumAAWcDgAFnHYABZzgAAWdRAAFnXoABZ2wAAWeAAAFni4ABZ56AAWetgAFnwwABZ88AAWfbAAFn5gABZ/EAAWf6gAFoD4ABaCsAAWhAAAFoZwABaKOAAWi0AAFovYABaNSAAWjggAFo8QABaQqAAWkmAAFpP4ABaVoAAWljgAFpjYABabUAAWoFAAFqEIABahwAAWo1AAFqTgABalmAAWpmgAFqcoABan6AAWqagAFquAABauIAAWsJgAFrWIABa2SAAWtwgAFrigABa6OAAWuvgAFru4ABa8eAAWvVAAFr4QABa+0AAWwAAAFsGAABbC8AAWxlgAFsnAABbLiAAWzKAAFs04ABbOQAAWzwAAFtAIABbQ2AAW0oAAFtOYABbVcAAW1ggAFtfIABbZAAAW3YAAFufIABbuGAAW83gAFvpAABcGeAAXENAAFxhwABce6AAXKEgAFy1QABc1qAAXN2gAFzkIABc60AAXPJgAFz64ABdBMAAXSKgAF09gABdWkAAXWpAAF2DgABdmYAAXaXAAF21IABdu6AAXcHAAF3IoABdzuAAXdwgAF3ioABd70AAXfsgAF4E4ABeCwAAXhRgAF4dgABeJ0AAXjDAAF43IABePQAAXkPAAF5KQABeUgAAXlzgAF5jgABeaWAAXm+AAF56oABegsAAXorgAF6OQABekWAAXpJgAF6TYABepCAAXragAF7YoABe7cAAXu7AAF76YABfCcAAXxJgAF8TYABfG2AAXyLgAF8lAABfMSAAXzIgAF8zIABfNCAAXzUgAF9E4ABfWUAAX3VAAF+WgABfpaAAX6wAAF+yQABfvmAAX79gAF/ZAABf2gAAX9sAAF/nQABf+QAAYAbAAGAHwABgCMAAYAnAAGAfgABgPoAAYE+AAGBQgABgUYAAYFKAAGBTgABgXuAAYF/gAGB1QABgiQAAYJfgAGCo4ABgsyAAYLoAAGDBAABg0qAAYNjgAGDdIABg5gAAYQIAAGEGAABhFUAAYSIAAGEuwABhNyAAYUSAAGFOQABhZMAAYW0AAGF2QABhjeAAYaUAAGG9gABhy8AAYehgAGH3AABiBeAAYhigAGIrAABiQKAAYldAAGJrYABicuAAYoZAAGKVwABipaAAYrVgAGLDwABizGAAYtUAAGLkIABi7+AAYvwAAGMGwABjFiAAYyPgAGM0IABjSCAAY1agAGNuoABjgYAAY5HAAGOWYABjnSAAY6kgAGO24ABjysAAY9lAAGPuAABkAOAAZBGAAGQXgABkLEAAZDagAGRCwABkTYAAZFIAAGRxoABkfQAAZJvgAGSxoABky4AAZNugAGTiAABk9oAAZP4AAGUXAABlGmAAZR3AAGUi4ABlKAAAZSuAAGUvgABlMwAAZTcAAGVJ4ABlUAAAZVwAAGVnQABlcWAAZXrgAGWCoABlk2AAZZlAAGWsIABltyAAZcQAAGXHoABly2AAZdPgAGXf4ABl76AAZf0AAGX/YABmBeAAZg9gAGYQYABmEWAAZhJgAGYTYABmFGAAZhVgAGYWYABmF2AAZhhgAGYZYABmGmAAZhpgAGYwoABmMaAAZjjgAGZCgABmU2AAZmkAAGZ/AABmmqAAZreAAGbUwABm3QAAZu7gAGcDgABnHgAAZyfAAGcswABnNiAAZ0gAAGdNAABnVgAAZ2igAGdpoABnfIAAZ42AAGeU4ABnmmAAZ5/gAGejoABnpwAAZ7DAAGe0wABnzOAAZ9rAAGfewABn5WAAZ+wAAGfvgABoBAAAaBNgAGgkQABoJ8AAaCtAAGgtoABoMAAAaDIAAGg0AABoNeAAaDfAAGg6gABoPUAAaEGgAGhGAABoSIAAaEsAAGhM4ABoTsAAaFSAAGhaQABoXCAAaF4AAGhjgABoaQAAaG1gAGhxwABodSAAaHiAAGh74ABof0AAaIVgAGiMAABokgAAaJgAAGicwABoqaAAaKwgAGiuoABotWAAaLwgAGjBAABoxeAAaNZAAGjXQABo2+AAaOCAAGjlAABo6YAAaO9gAGj1gABo+yAAaQBAAGkIgABpDwAAaRZAAGkdYABpJcAAaSygAGkzwABpOiAAaTyAAGk+4ABpQSAAaUNgAGlGoABpSeAAaUxAAGlOoABpVWAAaVwgAGli4ABpaWAAaW6AAGlzoABpeQAAaX4gAGmAoABpgyAAaYZAAGmJIABpjoAAaZPgAGmZoABpn2AAaaHAAGmkIABppuAAaamgAGmroABpraAAaa+AAGmxYABpvMAAacggAGnlQABp5kAAaehAAGnqQABp7EAAae5AAGoKgABqC4AAahxgAGodYABqIwAAaiigAGouIABqM6AAajngAGpAIABqRGAAakigAGpiAABqeyAAapAgAGqtAABqxOAAauCAAGrzYABrAuAAayqAAGtCwABrZUAAa30AAGuFwABrmUAAa7uAAGvEAABrxQAAa9wAAGvuwABsBUAAbBmgAGwtAABsPOAAbFpAAGx1gABsfoAAbJLAAGyhgABstmAAbMVAAGzkAABs9cAAbQfgAG0lIABtO8AAbVYAAG1mYABte2AAbZDgAG2wQABtzgAAbeRAAG3wgABuA8AAbhBgAG4hAABuOKAAbkfgAG5WIABucAAAbo0gAG6OIABumQAAbqWgAG6moABusyAAbrzAAG7BgABuwoAAbsogAG7XYABu3SAAbuggAG7sQABu/6AAbw8AAG8ewABvLsAAbzigAG9M4ABvYWAAb4NgAG+MwABvnMAAb67AAG/DQABvzwAAb9ygAG/qYABv9yAAcAdAAHAiAABwNAAAcEZgAHBPQABwWEAAcGlgAHBvYABwfiAAcJTgAHCoAABwt8AAcMaAAHDY4ABw8GAAcQrAAHEngABxOoAAcUKgAHFKoABxU0AAcVtAAHFj4ABxb6AAcXogAHGFAABxj4AAcZcgAHGfYABxpwAAca9AAHG6oABxxMAAcc7AAHHY4ABx4KAAcekAAHHwwABx+SAAcgSgAHIPQAByGaAAciQgAHIzIAByQmAAclBgAHJe4ABybgAAcn1AAHKLoABymmAAcrbgAHLNAABy10AAcuhAAHL0oABy9aAAcwTgAHMagABzI8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AAhbhgAIXUoACF1aAAhdcAAIXvoACF8KAAhgLAAIYEQACGBcAAhgdAAIYIwACGCsAAhgzAAIYOwACGEMAAhhJAAIYTwACGFUAAhhbAAIYYwACGGsAAhhygAIYegACGIIAAhiKAAIYkYACGJcAAhjiAAIY5gACGR6AAhkigAIZKIACGS6AAhk0gAIZOoACGUCAAhlGgAIZTgACGVWAAhlbgAIZYYACGWkAAhlwgAIZtAACGbgAAhm+gAIZxQACGhkAAhodAAIaP4ACGngAAhp8gAIav4ACGyiAAhstAAIbNwACG0iAAhttgAIbcgACG3aAAht7AAIbgYACG4gAAhuOgAIbkwACG86AAhvVAAIb24ACG+4AAhwAgAIcBQACHAmAAhwPAAIcFwACHB0AAhwjgAIcjIACHN4AAhziAAIc6AACHO4AAhz0AAIc+gACHP4AAh0EgAIdHwACHUgAAh15gAIdqYACHa+AAh21gAIdu4ACHcGAAh3/gAIeBYACHguAAh5JAAIeYwACHnoAAh6HAAIeogACHrWAAh67gAIe6YACHw0AAh81gAIfWIACH3uAAh+jgAIfuIACH9eAAiAIgAIgMAACIFEAAiBegAIghIACILyAAiDbgAIg/oACIUIAAiFgAAIhjAACIayAAiHkAAIiBIACIjSAAiJQgAIifIACIqKAAiLYAAIi/AACIxgAAiM4AAIjdoACI5UAAiPQAAIj5AACJBaAAiRCgAIkZ4ACJJ+AAiS1gAIkvAACJMkAAiTfgAIk8IACJRAAAiUggAIlTwACJXUAAiWjgAIlyQACJfAAAiYaAAImMIACJlSAAiaIAAImr4ACJs6AAibfAAInFAACJ0QAAidigAIngYACJ7oAAifdAAIoEQACKDQAAihNAAIobwACKJeAAii2gAIo3YACKQkAAik9AAIpZoACKYUAAimnAAIp2YACKfiAAiorAAIqO4ACKm0AAiqgAAIqwoACKwCAAishgAIrJYACKz8AAiukAAIsCgACLDsAAix1gAIsugACLPeAAi05gAItjYACLb8AAi5CAAIuXIACLmYAAi5uAAIudgACLn2AAi6FAAIumoACLqCAAi6mgAIurIACLrKAAi64gAIuvoACLwMAAi9XAAIvjoACL9UAAjACAAIwJoACMC6AAjA2gAIwSoACME6AAjBqgAIwh4ACMLW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fHx8fHx8fHz6KX19fX19fX19fXx9fH19fH19fH18fPsifH18fX18fX18fX19+X19+nx8+X19+X19+Xx9fH19fH19fPyYfX18fX18fX18ffsifAF2ffp8AfJ9fXx9fXx9fXx9fXx9fHx9fH19fH19fH19fH19fH19fH18fH18fX18fX18BdL+inz+in3+inz+in18AXV9AXZ9AXV9AXZ9AXV9fX19fX19fX19ffl9fX19fX19fX19fX35fX19fX19fX19fXx8fHx8fHx8fHz5fX19fX19fX19ffl9fX19fX19fX19fX3+in19fX19fX19fX19fHx8fHx8fHx8fP6KfX19fX19fX19fXx9fX19fX19fX19AAEAkgAABEIDsAADAAATIREhkgOw/FADsPxQAAABAAABPQf/Ar8AAwAAESERIQf/+AECv/5+AAEBMAAABrwFiwACAAAhAQEBMALGAsYFi/p1AAABASD/4QbLBYkAAgAACQIBIAWr+lUFif0s/SwAAQEw/+EGvAVsAAIAAAkCBrz9Ov06BWz6dQWLAAEBIP/hBssFiQACAAABEQEGy/pVBYn6WALUAAACALIAiQQjA/oADQAbAAABMhYWFRQAIyIANTQ2NhciBgYVFBYzMjY1NCYmAmpv1Hb+/ra3/v521G9drmLWl5fVYq4D+nLUcrf+/gECt3PTckxesF6X1taXXrBeAAIAgAAABFQD1AADAA8AADMRIREBIgYVFBYzMjY1NCaAA9T+FlR2d1NUdnYD1PwsArR2VFN3d1NUdgADACoAAAStBIMAAwARAB8AADMRIREBIgYGFRQAMzIANTQmJgcyFhYVFAYjIiY1NDY2KgSD/b9w03YBAre2AQJ2029br2LVl5jVYq8Eg/t9A/py1HO2/v4BArZz1HJMXq9gl9XVl2CvXgAABQGY/4kGkwSEAAsAFwAjAC8AOwAAARAAISAAERAAISAAAzQAIyIAFRQAMzIAARQGIyImNTQ2MzIWBRQGIyImNTQ2MzIWATcWMzI3FwYGIyImBpP+i/74/vj+igF2AQgBCAF1XP7B4uL+wQE/4uIBP/07LyIhMDAhIi8B6S8iITAwISIv/ZU+T5mZTj8yk2FikgIG/vj+iwF1AQgBCQF1/ov+9+IBP/7B4uH+wQE/AWUhMDAhIi8vIiEwMCEiLy/+jSSQkCRfZGQA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AAAAFkAKAgAzNgQEQAIBM7kCNQApACsBKzX//wBh/+cFXgdlAiYAJgAAAQcA1gGrAZIAGkANASAbAQAbHgoKQAEBIbkCNAApACsBK101//8AVf/oBD8F0wImAEYAAAEHANYA5AAAABZACgEAGh0XF0ABASC5AjUAKQArASs1//8AYf/nBV4HSAImACYAAAEHANoBpwF1ABZACgEAGx4HDkABARu5AjQAKQArASs1//8AVf/oBD8F0wImAEYAAAEHANoA5AAAABZACgEAGh0UAEABARq5AjUAKQArASs1//8AlQAABPAG9wImACgAAAEHANgBVgFpABZACgEADA8BAkABAQy5AjQAKQArASs1//8AQf/oBCcFjgImAEgAAAEHANgA4gAAABZACgIAHSAIDkACAR25AjUAKQArASs1//8AlQAABPAHWAImACgAAAEHANkBVgGFABZACgEAEw0BAkABARC5AjQAKQArASs1//8AQf/oBCcF0wImAEgAAAEHANkA2AAAABZACgIAJB4IDkACASG5AjUAKQArASs1//8AlQAABPAHSAImACgAAAEHANoBVgF1ABZACgEADA8BAkABAQy5AjQAKQArASs1//8AQf/oBCcF0wImAEgAAAEHANoA4QAAABZACgIAHSAIDkACAR25AjUAKQArASs1//8AYv/nBb0HZQImACoAAAEHANYB3QGSABZACgEAISQKAkABASG5AjQAKQArASs1//8AVP5RBGAF0wImAEoAAAEHANYBHQAAABZACgIAMDMSGUACATC5AjUAKQArASs1//8AYv/nBb0HSAImACoAAAEHANoB3QF1ABZACgEAISQKAkABASG5AjQAKQArASs1//8AVP5RBGAF0wImAEoAAAEHANoBHAAAABZACgIAMDMSGUACATC5AjUAKQArASs1//8AYv3KBb0F0wImACoAAAEHAe0B6gAAAAu2AQAhIgYGQAErNQAAAwBU/lEEYAZpAAsAKgA2AQhAQYgoAVkcWS1WL1YzWTVpHGktZi9mM2k1+BsLCTZ3HogXAzsVNR47LzMzSxVFHkovRDP1FPofCgcHBgYAfwsBCwsAuAI1QBEGASAHAQckCwoKASYLCyIaDbj/wLUZGzQNMwy4/8CzKCo0DLj/wLMjJTQMuP/AszE0NAy4/8BACRUbNGAMAQxfD7gCdLQm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Er8DXQALAxAAAAMHAAMAIwMxQBAAABwFDw4dDh0wHAEcHCUVuAM4s08FAQW4AROFL13tETMvXTMzLy8zERI5L/0yAD8//TIvK+0REjkvce0SOS8rK+0xMAArXQFdATQ2NyY1NDY3NjYzMhYXByYmIyIGFRQWMzI3NjcDBgcGBwYHAXgmPPxQSjt+LjV4TxhCVjN0jGFRXEldbz5xRFc2PB0BJdHghhqGQadYR1JXYScYDz00KjITGED+9Tg/UXaDygAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wBGBXYBsQf3AiYC9wAAACcC9AAAARoABwL0AAABsgACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAAB/7oBJQTmAjUAAwAYvQADA24AAAMHAAADcrEFAS8Q9AA/7TEwASERIQTm+tQFLAElARAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxA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IRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIAEf4eAl0GEQAuADIAWEAnJSQiISMyHycODQsKDAgXFhYuADAQCCcmJggJMS8fICAQDy8ALhYXuAEYhQAvMy8zL80yMi8zEN7NMjIvMwEvMzPOMjIvMxDMMjIyMt0yMswyMjIyMTABBgYHBgcGBgc3FwcXBxcHJxYWFxYWFwcmJicmJyYmJwcnNyc3JzcXNjc2Njc2NwE3JwcCXSc1DjgcCg0FoA5fV1dcDpgIDxEcWzYuM0waZjoUHgmdDF5dXV8KnBItHU80NGf+7Xd3dwXkUnYklJg2cT5YDNdXWNQQUkKIRHPedCo7YyiarDx5QFcM015d1AtYlIlVok1Oeft9d3Z2AP//ADD+HgJ8BhEARwN8Ao0AAMACQAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wAuALoFSgcEAiYOwgAAAAcNVwIv/zkAAQB+AF4DYAQUACIAmEANJhE3EQJbEWoRgh8DFrgDYEAUIBdACC80FxcaDCAJDDQgDAgDBwG6A2EAAP/AQAoIDDQAAAfPGgEauANjshMHF7gDNrMWFh0BuAMxQBYvAAEAACQICB8JDAGqDLoMAgwAHQEduQM7AA8v7XEzXXEyMy8RMy9d5BI5LxnkABgvL/1xETkvK+0SFzkrEjkvKxoZ7DEwAV1xAQcGBwYHBgcnNDc2NyYmNTQSNjMyFhcHJiYjIgYVFBYXNjYDYFCbY1xNMmE8IhpCXjyab0tHa0CGL1IlHzFTY35+AqjmJjAtRS1vFkJDNFVeVio4ARZmPE7eNTEjFyBFMzwjAP//AAYA4AHgBqUAJgONAAABBgU4APMAEUAJAQAiFAwPQAEXAC81ASs1AP///88BJQIHBqUAJgOOJwABBgU4yfMAEUAJAQAkFgsPQAEZAC81ASs1AAACAF4A4AF0BwIAIAA0AT+5AB7//7MnKzQauP/oticrNMoqARy4//9AFiwtNBZALzs0FkAgJjQWFgAYQCktNBi6A0gAEAN8QAsFHwgQGSY0HwgHALwDRwAEA3sABwNHQBkFQBk0NAVACRg0BQVwMOAwAkAw4DDwMAMwuP/AsxEUNDC4A4SyJSUkuAOAsx8IABy6AyIAC//AQBEnKTQLQAsYNAsLBR8TARMTALsDegBAAAX/wLMiJDQFuP/AQA4RFzQgBTAFAgUFwDABMLj/wEAMICQ0MDAhLUANFDQtuwN/ACcAJAMwsyAlJSe6AzcAIQNzQAk2DzYBbzZ/NgK4ATqFXXEQ9P0yLxoZ7RgQ9CsZETkvK10yGC9dKysa/TIvcRI5Lysr7RI5OQA/My8/K11xMy8rK+307RE5OSsvEP39KxE5LysrACsxMAFdACsrAQYHBgcHNjY3JiY1NDY3NjMyFhUUBgcmIyIHBgcUFjMyExQGByc2NTQmJicmNTQ2NxMWFxYBcgsPCxfYFB4nHBkQDUFAExcJDjISEhIMCmAVDT0qPDwYFB4iDD44PCENCgZjHQ8LB0IkGwsSHw8NIRBXGRQQFxcZCQYKDTb79FmTfBiAUD3s56A4FR+Vav6eypRyAAL/+gElAeAHAgAVADYBMLkANP/4syctNDC4/+BAICctNAMQCQ40AiAWHTQsQC87NCxAICY0LCwWLkApLTQuugNIACYDfEALGzUeEBkmNDUeHRa8A0cAGgN7AB0DR0AOQBtAGTQ0G0AJGDQbGwq4A1VADiBwC+ALAkAL4AvwCwMLuP/AsxEUNAu8A4QAFQNuAAADB7M1HhYyugMiACH/wEAOJyk0IUALGDQhIRspKRa6A3oAG//AsxkgNBu4/8CzEhU0G7j/wLULDjQbGwu4/8CzExU0C7gDJ0ANCkANDjQKCtAF4AUCBbgDNrMQEDcAugNyADgBOoUQ9BE5L/1dMi8rGeQrMxgvKysr/TIvEjkvKyvtEjk5AD/tPytdcRoZ7DMYLysrGu307RE5OSsvEP39KxE5LysrMTABKysAKysBIyInJjURNCcmJzcWFxYVFRQXFjMzAwYHBgcHNjY3JiY1NDY3NjMyFhUUBgcmIyIHBgcUFjMyAeCMdTQ6Gw0vazsXGxwWMIzTCg8LF9gUHyUcGRANQUATFwkOMhISEgwKYBUNASVgavsBHWE2GjH5T05bjcXRUUEELh4PCwdCJBkOEh8PDSEQVxkUEBcXGQkGCg02//8ABv9uA5wFSQImA+0AAAAHBTkAsP4r//8ABv9uA5wFSQImA+0AAAAHBTkAsP4rAAIAXv9LAXIF4wAgADQBBbPKKgEauP/4syktNBq4//hAGicoNBZALzs0FkAgJjQWFhgfCBAZJjQfCAcAvgNHAAQDewAHA0cABQN8tRhAKS00GLgDSEAMABABABAQEAIQECQwuAOEsiUlJLgDgLMfCAAcugMiAAv/wEANJyk0C0ALGDQLCxMTBbgDekANQABAICQ0AAAhwDABMLj/wEAMICQ0MDAhLUANFDQtuwN/ACcAJAMwsyAlJSe6AzcAIQNzQAk2DzYBbzZ/NgK4ATqFXXEQ9P0yLxoZ7RgQ9CsZETkvK10RMxgvKxrtMy85Lysr7RI5OQA/My8/ETMvcV3tK/3t9O0ROTkrLxE5LysrACsrMTABXQUGBwYHBzY2NyYmNTQ2NzYzMhYVFAYHJiMiBwYHFBYzMhMUBgcnNjU0JiYnJjU0NjcTFhcWAXAJDwsX2BQeJRwZEA1BQBMXCQ4yEhISDApgFQ09Kjw8GBQeIgw+ODwhDQoyIA8LB0IkGw4SHw8NIRBXGRQQFxcZCQYKDTYCiVmTfBiAUD3s56A4FR+Vav6eypRyAAACABr/SwHgBeMAFQA2APNACwMQCQ40AiAWHTQwuP/4syktNDC4//hAGicoNCxALzs0LEAgJjQsLC41HhAZJjQ1Hh0WvgNHABoDewAdA0cAGwN8tS5AKS00LrgDSLRAJiYACr8DVQAgAAsDhAAVA24AAAMHszUeFjK6AyIAIf/AQA4nKTQhQAsYNCEhGykpFrgDerMbGwULuP/AsxMVNAu4AydADQpADQ40CgrQBeAFAgW4AzazEBA3ALoDcgA4ATqFEPQROS/9XTIvKxnkKxEzGC/9Mi8SOS8rK+0SOTkAP+0/GhnsETMYLxrtK/3t9O0ROTkrLxE5LysrACsrMTABKysBIyInJjURNCcmJzcWFxYVFRQXFjMzAwYHBgcHNjY3JiY1NDY3NjMyFhUUBgcmIyIHBgcUFjMyAeCMdTQ6Gw0vbDoXGxwWMIw0CQ8LF9gUHiUcGRANQUATFwkOMhISEgwKYBUNASVgavsBHWE2GjH6UE5bjcXRUUH9mSAPCwdCJBsOEh8PDSEQVxkUEBcXGQkGCg02AAACAJf/hQSZBF8APwBgAV5AFhwwCQ40Jhc3Okc6Vzn4FgWWGfQrAhK4/9pADBQoNDUYFBc0+F0BWrj/+LMrLTRauP/AsykqNFq4//hAFicoNFZALzs0VkAgJjRWVkBYQCktNFi6A0gAUAN8QAtFX0gQGR80X0hHQLwDRwBEA3sARwNHskVFIrgDUrQhIT0bM7gDX0AZDkAkKDQfDi8OXw5vDgQODicDQAoQNAMDBroDYgA9AwlACydAHiA0J0AKDTQnuANgtBteSEBcugMiAEv/wEAQJyk0S0ALGDRLSx9TAVNTRbgDerNAQCIJuAM1sjc3MLgDNEAJQBQDFAMAAGIhuAMksyAiIiW6AzMAHQE6hS/tMy8aGe0RMxgvMzMZLxgvGu0zL+0RMy/tMy9xOS8rK+0SOTkAL+0rKz/9Mi8rETkvcSvtERI5LxnkMxgv7fTtETk5Ky8Q/f0rETkvKysAKysrMTAAcSsrXQFdKwEUBgcmJiMiBhUUFxYzMjI3MhcWFRQHBgcGBCMgETQ3NjcXBgYVFDMyNjc2NzY3NjU0JiMiJyY1NDY3NjYzMhYlBgcGBwc2NjcmJjU0Njc2MzIWFRQGByYjIgcGBxQWMzIEmRYkGyUjNr0mGzkPHQ9tJB8oMl93/v9v/skjJ34uSkrVUJBKMD5jBi1hFJo0KjswSZJGOkT9NAkPCxfYFB4lHBkQDUFAExcJDjISEhIMCmAVDQMMN0g7Ryt7KhYJBgEWEzdsY301Q1IBF41mcsMefcNJvR0aERssAxgTCgUsJGEujEVpbFppIA8LB0IkGw4SHw8NIRBXGRQQFxcZCQYKDTYAAAIAEf84BJ4EMgAsAE0BYbkAKP/wQBsSFTQQGBQXNJspqSkCBgoNEBYKGhAoEIUKBh64/+hACgkONFcMAfhKAUe4/9CzLC00Sbj//7MqKzRJuP/4QBYnKTRDQC87NENAICY0Q0MtRUApLTRFugNIAD0DfEALMkw1EBkfNEw1NC28A0cAMQN7ADQDR7MyMhUGuP/osxofNAa4/+hADjdCNAYADyIfIgIiIgAcuP/AswkLNBy8A2MADgOIABYDU7IVFSy6A24AAAMHs0s1LUm6AyIAOP/AQBEnKTQ4QAsYNDg4Mh9AAUBALbgDekAMMjIWAwMIHyQBJCQfuAM1s0AICAC7A3IATwAVAySzIBYWGboDOAARATqFL+0zLxoZ7RgQ5DMvGv0yL10SOS8RMy/9Mi9xEjkvKyvtEjk5AD/9Mi8Z5Bg/7SsROS9dEjkrKxEzL+307RE5OSsvEP39KxE5LysrACsrKzEwAHFdKwFdcSsrASMiBhUeAhUUBgcGBCMiJjU0NzY3FwYGFRQWMzIkNTQmIyI1NDc2NzY2MzMBBgcGBwc2NjcmJjU0Njc2MzIWFRQGByYjIgcGBxQWMzIEnmctJx0zEFEnJf6ThLzoMz6nPGlRsblgAVSCTnIbExQl0XJt/S4JDwsX2BQeJRwZEA1BQBMXCQ4yEhISDApgFQ0BJQQLEQ0VF0fFGB9RnH56b4bNKn+gTWtnRhoMFDIXOykpU2YBXiAPCwdCJBsOEh8PDSEQVxkUEBcXGQkGCg02AAL/ugElAiwFSgALACwA6bkAJv/osyotNCa4//hAFicpNCJALzs0IkAgJjQiIgwkQCktNCS6A0gAHAN8QAsRKxQQGR80KxQTDLwDRwAQA3sAEwNHQAlAEUAJETQREQe/A1QAIAAIAwoAAwNuAAADB7MqFAwougMiABf/wEANJyk0F0ALGDQXFx8fEboDegAM/8CzGCI0DLj/wLYMETQMDAAIuAMmtQdACQs0B78DLAADAzMAAANyAC4AAQE6hS8Q9P30KxnkETMYLysr7TMvOS8rK+0SOTkAP+0/GhntMxgvKxrt9O0ROTkrLxD9/SsROS8rKwArKzEwASERISYnJic3FhYVAwYHBgcHNjY3JiY1NDY3NjMyFhUUBgcmIyIHBgcUFjMyAiz9jgIOCx0PN1BLNx4JDwsX2BQeJRwZEA1BQBMXCQ4yEhISDApgFQ0BJQEQRC8aQO5VurcCgSAPCwdCJBsOEh8PDSEQVxkUEBcXGQkGCg02AP///7oBJQIsBUoCBgOLAAAAAQCIAOABcgXjABMAY7PKCQEPuAOEsgQEA7gDgLPADwEPuP/AQAwgJDQPDwAMQA0UNAy7A38ABgADAzCzIAQEBroDNwAAA3NACRUPFQFvFX8VAl1xEPb9Mi8aGe0YEPQrGRE5LytdABg/My8/MTABXQEUBgcnNjU0JiYnJjU0NjcTFhcWAXIqPDwYFB4iDD44PCENCgJIWZN8GIBQPeznoDgVH5Vq/p7KlHIAAAEAGgElAeAF4wAVAGFACwMQCQ40AiAWHTQKQQoDVQAgAAsDhAAVA24AAAMHAAv/wLMTFTQLuAMnQA0KQA0ONAoK0AXgBQIFuAM2sxAQFgC5A3IAFxD0ETkv/V0yLysZ5CsAGD/tPxoZ7DEwASsrASMiJyY1ETQnJic3FhcWFRUUFxYzMwHgjHU0OhsNL2w6FxscFjCMASVgavsBHWE2GjH6UE5bjcXRUUH//wA5/3UFMgPqAiYFKAAAAAcFLQHl//b//wA5/3UFMgPqAiYFKAAAAAcFLQHl//b///+6/3UCLAPwAiYFKQAAAAYFLQD2////uv91AiwD8AImBSkAAAAGBS0A9gADADYBAgJuBhsABwAeACkBGLkABv/4QBwSGjQ2HUYd2SEDpw23DQIZEBgUFx4DxwzVHQIGuP/wsw8RNAW4//BAEQ8RNAEQDxE0AhAPETQGAgUHuANDs0ABAQG6A3UABQNDQBADAxkiJxVAExY0FUAJDjQVuANSQAxAPxZPFgIWQAoMNBa4A2C1IJ8ZARknvANuAA8DhQAEAxiyAgIAuAMYQBEGBhIIDyIBIiQLFSsVAhUWH7gDN0ANQCAIAQgIK8AZ0BkCGbgDM0APIBZAKis0FkAJDzQWFggkugM0ABIBGoUv7RI5LysrGhntXREzGC9dGu0ROXEROXEREjkv7TMv7QA/7S9dGhn9K3EaGPwrKxE5ETMv7fRd7RI5OTEwASsrKytdcgBdcSsBBycHJzcXNxMUBgcGBwYjIiY1NDY3JzY2NxcWFxYWBzQmJwYVFBYzMjYCPG6OULpolFToEw8cbmZaTlwvPSQROhdiQDpSPpSLQ0A1JTKCBbXMUJ5mwkqi/IE8eydMOjZsWlKeeBgugy06Jy0+baETeCtlQyAuLwAAAwADASUDUgb8AAcALQA8ASW5AAb/+EATEho0ahpqHwLJDNkMAhwIEBI0Brj/8LMPETQFuP/wQBYPETQBEA8RNAIQDxE0IS8uDyIiJygouAMSQAoPIhQPDyIGAgUHuANDs0ABAQG6A3UABQNDQBMDQAkRNAMDKC0iJyEuLw86GRkTugNkADr/wEAOHiA0MDoBcDqAOgI6Oi+4A1xACj8hASEhCJAnASe+AwwALQNuAAgDBwAEAxiyAgIAuAMYQBMGBiciDxkoJ0ALDTQnJwg5NwE3vQM8ABkACANyAD4BEYUQ5S/tXRkSOS8rORE5OREzGC/tMy/tAD/tP10SOS9d/TIvXXEr/Rk5LxE5EjkREjkROTIYLyvt9F3tEjk5hw4uK4cOfcSHDjzEPDEwASsrKysrXQBdKwEHJwcnNxc3ASMiJyYnJicGBwYjIicnJiY1NBI3Njc2NzcmJjU0NjcTFhcWMzMBJwYHBgcGBwYVFBYzMjYCa26OULpolFcBmoMkHjooNhBEJjclEx16TiSLHxlAJkY1AwMjLWAXJRgqg/57FCASNyEYEBRGIhYwBp+6UJ5msEqZ+ikPHU1quFQjMwYYEA4SGwEfIhsrGikfDh0NJnNV/ZCTNCIBJXgPCR0ZFBEWCw4QGf//ADkBJQUyBUACJgUoAAAABwUuAbUEZf//ADkBJQUyBUACJgUoAAAABwUuAbUEZf///7oBJQIsBbgCJgUpAAAABwUuAAAE3f///7oBJQIsBbgCJgUpAAAABwUuAAAE3f//ADkBJQUyBiECJgUoAAAABwUvAbMFRv//ADkBJQUyBiECJgUoAAAABwUvAbMFRv///7oBJQIsBp8CJgUpAAAABwUvAAAFxP///7oBJQIsBp8CJgUpAAAABwUvAAAFxP//ADT+YASABDgCJgOhAAAABwUtAXsBBP//ADD+ZASABDgCJgOiAAAABwUtAOMAtv///7r/awQwBAICJgOjAAAABwUtAPX/7P///7r/awQwBAICJgOjAAAABwUtAPX/7AABADT+YASABDgAHgCHuQAZ/9hAHQ4QNAgZExUrAzsWiQSoBgZUB2YHAiYWtwPGFgMUugNiABMDebMODAwIuwNkAA4AAANZsh4eGroDYwABAwNACywIPAgCFAgMAAATuAN3swUMDBe8AzYABQN2AB8BFYUQ9u0zLxD9Mi8ROTldAD/9Mi/tL/0yLxD07TEwAF1xAV0rBQUgJyYRNBI3IgcGBxIhMhYXFjMHBAAVFAQhMjc2MwSA/n7+nKispLJ3WyF1MAEyLtJQmJQ8/oH+bQFLATcIj09Asu6IjAEszwE9fiMNNgF0FQUK9jD+79XI1AkFAAEAMP5kBIAEOAAxAMO1AyANEDQOuP/YQBcOEDSLFqgYAlQZZhkCNQq2FsYKxgsEGbj/6EANGBo0IAgwCAIIKg8mMboDbgAAAwezPyYBJroDYgAlA3mzIB4eGrsDZAAgABIDWbIREQ+/A2MAFAMDAAADcgAzAC0DMUAQBAQMLBo8GkkaAyYaHhISJbgDd7MXHh4MvAM2ABcDdgAyARWFEPbtMy8Q/TIvETk5XRE5L+0Q5AA//TIv7S/9Mi8Q9O1dP+0REjk5XTEwACtdcQFdKysBIyImNTQ3NjcGBwYVFAQhMjcXBQcgABE0EjcjIgYHEiEyFhcWMwciBwYHBgYVFBYzMwR4nLCACAMN5IyQAVcBQ1+xEv6EYP7b/sO/lRZdeXotAT8l0FGYkjw7KjgtAwVef50BJWaNPzoUSzWChqvI2BIg9AIBKQET0QFlUCM/AXQXBgvyBwwJEzANRzYAAf+6ASUEMAQCABUAXbVZBOoFAg24A2GzBwoKB70DeAAVAAMDbgAAAwe12QPZEwITuP/gsxMVNBO4/+hADhgZNAMgGBk0EwMKCgEAuANysRcBLxDlETkvOTkrKytdAD/9PPYyLxDtMTAAXQEhESEmJyYjIgYHNjYzMhYXFhcWFhcEMPuKAsd5Z1tXGispN4dWQnpMPG5LT08BJQEQfTcxBQl+eEBHOHdUMhEA////ugElBDAEAgIGA6MAAP//ADT+YASABfcCJgOhAAAABwUtAQEFHP//ADD+ZASABfcCJgOiAAAABwUtAQEFHP///7oBJQQwBcoCJgOjAAAABwUtANcE7////7oBJQQwBcoCJgOjAAAABwUtANcE7wABAGkBJQK+BNYAFgBStrcUAQ8RARG4A2e0IBIICA1BDgNuAAADBwASAyUAEQMtAA0DMwAAA3IAGAAJAy63CAgFQAcJNAUvKzMv7RD0/fQZ5AAYP/0yLy8aGe1dMTABXQEhIicmNTQ2NzcWFjMhJicmJxMWFxYVAr7+O0IjKwkJJgg3JwFYFzkvVEiCNjIBJRwiTSxmNAIjIJNYSTUBOGGZjekA//8AaQElAr4E1gIGA6kAAP//AGkBJQK+BsMCJgOpAAAABwUtAEwF6P//AGkBJQK+BsMCJgOpAAAABwUtAEwF6AABAAr/bAN2A7AAGgBvt6gCqRC3AgMPuP/wswwONAm4A1pACSAKCm8Nfw0CDbgDXbJABRa9A1YAIAAXAwkACgMutk8JXwkCCRe4AySyFhYSvAMxAAADcgAcARiFEPT9Mi8Z5BgvXRnkABg/GhntGC8a/V0yLxoZ7TEwAStdARQGBwYjIicmJzcWFjMyNjc2NTQnJicTFhYVA3aMXmhKWGVYuypabkBFinemICQ0OERKAQ49yUpSMiuBPjwqTmqUUChBSjEBDka2dAD//wAK/2wDdgOwAgYDrQAA//8ACv9sA3YFiwImA60AAAAHBS0BfASw//8ACv9sA3YFiwImA60AAAAHBS0BfASwAAEAQP9+BzIDqgA+AQ9AHwkNBiIZDSYiBJkNAQ0YGRs0A0ANETQDJQYxNCwsJTu4/8C0DxE0OzS4A26yAAAlvQNuAEAABgMHABMDU7MSEgsfvQNWACAAIAMJABkDfrcLAwMvLCwxKLoDMgAv/8CzJy00L7j/wEAKFBs0AC8BLy83ILwDJgAfAywAHAMyQBYHECQvJAKwJNAk4CQDJCQOOzsANzc0QQwDNABAAAADcgBAABIDJAAgABMDKwAWAzW1DkAJDzQOuAEchS8r7f0aGe0YEPUa/TIvGRI5LxgROS9dXTP99BnkETMYL10rK+05GTkvETkvABgv7T8aGe0YEjkvGeQYPxrtMy/tLysSOS8SORESOSsxMAErXQBdASImJwYGIyMUBwYhIiQ1NDc2NxcGBhUUFjMyNjU0JicTFhcWFTMyNjU0Njc3FhYVFAcWFhc0JjU0Njc3FhYVBzJuXoA6W1ujlIH+/PP++SouhjxjPeG3tPYrR1hHFxRcl3cPHC8CAhAuXSkyBw1eGxcBJhQuKRroZlmxo4tzf8sqqZhRaYWKZD56hgEOeE5Ea0dcKCUUIRNBCjdbDxkGJGgQDBYShj9nTf//AED/fgcyA6oCBgOxAAAAAf+6ASUE3gOSADkAxrkAE//4QB4OEDT3NQEACgEKBhYWFRU2A0ANETQDHQYrLiYmHTa4/8C0DxE0Ni64A26zAAARHbsDbgAPAAYDB7IKCha4AzBADQAVARUVDwMDKSYmKyG6AzIAKf/AsyctNCm4/8BADxQbNAApASkpMTY2ADExLr0DNAAAA3IAOwAPARyFLxD1/TIvGRI5LxEzGC9dKyvtORk5LxE5LxgROS9d/TIZLwAYPzz9PDMv7S8rEjkvEjkREjkrETkvMy8ROV0xMABdKwEiJicGBiMjIiYnBgcGIyMRMzI3NjUXBgYVFBYzMzI3NjU0NzY3NxYWFRQHFhYXNCY1NDc2NzcWFhUE3nCUSDpbW6NDTh83RDpRj49pRltCAgRGLXt6ND8PCRwmAgIQJVwzMgcCFFUbFwElICMpGkZRVCQfARA7TZ0KIFIyM0QiKXAYEwsWHhNBCjdbEhoHImwTGg4FGnM/Z03///+6ASUE3gOSAgYDswAA//8AQP9+BzIGMQImA7EAAAAHBS8ExAVW//8AQP9+BzIGMQImA7EAAAAHBS8ExAVW////ugElBN4GMQImA7MAAAAHBS8CTgVW////ugElBN4GMQImA7MAAAAHBS8CTgVWAAIAQP9+CIAECAAsADUA1kAgJBgKCzQIBwYdJh2YMgR4JYglmQcDBxgZGzQqEBcaNCq4/+hACQoOND8wvzACMLgDZLWAKAEoHzS9A24AQAAAAwcADQNTswwMBRm9A1YAIAAaAwkAEwN+tQUzIC0fGrwDJgAZAywAFgMyQAoBDx8vHwIfHwgtQQwDNwBAAAADcgA3AAwDJAAgAA0DKwAQAzW1CEAJDzQIuAEchS8r7f0aGe0YEPQa7RI5L10z/fQZ5BESOTkAGC/tPxoZ7RgSOS8Z5Bg/Gv08L13tXTEwASsrK10AXSsBIRQHBiEiJDU0NzY3FwYGFRQWMzI2NTQmJxMWFxYWFTI3NjcBNjc2MzIXFhUHNCYjIgYHISAIgPvTlID++/P++SouhjxjPeG3tPYrR1g3Bx0XQTUGXQFmVCo6O3BASoR8V0KlnQEGAVEBJelmWLGji3N/yyqpmFFphYpkPnqGAQ5qED1qVCEEQgEAOxUcT1u6CSY6VXH//wBA/34IgAQIAgYDuQAAAAL/ugElBiwECAAjAC0AoEAXGxgKCzRXG5gqAngciByVBgMhEBcaNCG4/+hAFQoONANAEho0BAAQEA8PLD8ovygCKLgDZLaAHwEfChcsuwNuAAkAAAMHQAkrGCQUEAQQBA+4AzBADJ8UARRACQw0FBQJJL0DNwAAA3IALwAJARyFLxD07RE5Lytd7TMzGS8YLxESOTkAPzz9PDwvXe1dEjkvMy8ROTEwASsrK10AXSsBISImJwYHBiMHETcyNzY3FwYHBhUUFjMyNjcBNjc2MzIXFhUHNCcmIyIGByEgBiz73UdVHkA6NVePj3Q8RhREAwEEPDExU1kBZj8gSURwQ06MRztJQqWdAQYBSQElR1BZIB0BARABOkSmCiQWQig5Pig/AQAtEyxPXLkJLRwXVXEA////ugElBiwECAIGA7sAAP//AED/fgiABdMCJgO5AAAABwUtBLME+P//AED/fgiABdMCJgO5AAAABwUtBLME+P///7oBJQYsBdMCJgO7AAAABwUtAnME+P///7oBJQYsBdMCJgO7AAAABwUtAnME+AAC/7oBJQQwBoAALQA2AMS1BQgNDjQruP/4QAkNDjQGCiYKAh24//BADBgcNAwcDRcXEA0NG7gDfUAKEAcjAj8xvzECMbgDZLWAKQEpAjW6A24AAAMHQCY0LgQEBwIQQA0VNBAQFzYMNhwCHAwbDQ0/FwEXFxsbI9AH4AcCB7gDNrMgIAEuvQM3AAADcgA4AAEBDIUvEPTtETkv7V05MxkvMxgvcTMvEjk5XRkSOS8rERI5ERI5ABg//TwvXe1dEjk5L/0ZOS8ROS8ROTkxMAErcSsrASERMzI3Njc0JicmJyc2NjcXFAcUFxYXBgcGBycWFhUVFAYHNjc2NzYzMhcWFQc0JiMiBgchIAQw+4qFGG8lRhIUBTE6Fx4rLgRjIUIKFgsdJB8VAwc0NVFAVCx2R1CLlDhCpZ0BBgFKASUBEFMbOXuqXBbDJGlbYhIGFCMwEBlORCJIDI6HNQsdISMmJjkjLj1FgmkjPVVxAP///7oBJQQwBoACBgPBAAD///+6ASUEMAaAAgYDwQAA////ugElBDAGgAIGA8EAAP///7oBJQQwBoACJgPBAAAABwUtAc0E+P///7oBJQQwBoACJgPBAAAABwUtAc0E+P///7oBJQQwBoACJgPBAAAABwUtAc0E+P///7oBJQQwBoACJgPBAAAABwUtAc0E+AABADT+XgRIBMIAMQC0tSoIOggCELj/4LYQEzRpBAEfuP/gsxgbNB+4/+hAERwgNAkgDhE0CR8CDyYfJgImugN+ACL/wLYOEzQiIi8YuwNeABIAAANZsjExL7oDbgACAwNAFAkMHxsiJiYiIgAVFQwAMTEAADMbuAM5twxADhI0DAwpuAM0tQVADBM0BS8r7TMvK+0RMy8zLxESOS8SOS8zLxESORE5AD/9Mi/tL/0ROS8r7V0SOTkrKysxMABdKwFdBQUHICQ1NDc2NyYmNTQ2NzY2MzIWFyImJyIGFRQXFhc2NjcGBwYHBAAVFBcWITMyNjcESP6GZv7p/uMnLGEyTFYqIolPbrpAHjYez/8sNHSKlJwcDxIj/tD+nJmvAXYYOzdItuoC7+eVcoFgOZYvOeIvKzNlXwICQjYqKjIyPC8jVyguSUj+/pKJSVQDBwABAEb+agQgBEAALQCqtRkFGSYCBrj/6LMXGTQRuP/osxYZNCS4A1tAFn8HjwcCBwcKQBYcNAoKDg0NH/8ZARm4/+BACxQVNBkgEBE0GRIevQNuAB8DBwASAAADWbItLSq6A34AAQMDtgckGQMVFQ24Ay62Dg4vBAAAH70DcgAvACcDNAAEAXqFL+0Q5DMvERI5L+0zLxc5AD/9Mi/tLz/9ETkrK10SOS8zMy8rOS9d7TEwACsrAV0FBSAkETQSNyYjIgcGByc0NzYzMhYVFAcGBxYXFjMzESMiJyYnBgYVFAQhMjY3BCD+kP67/tuMlgwqEAkMCzA+Rn5wkh4hOTJIMSuMjI9WYE1wegE5AVE0dDC24PUBBbYBJoRKCQ8MCotbZnxiOzU6HDobEv7wOD6fSr9jsasCAgAB/7oBJQPeBJIAIgCnQBEGDgsSGBJ4EpQiBQ8BnwECAbgDZUAQAA4OlyIBIgkAAAEAABwJGLgDUkAJwBkBGRlfHAEcuANgtC8UARQJuwNuAEAACAMHtQ4RIgAgGbgDLkAQIBgYEQABAQBACRE0AAAkILgDN7YRQAkRNBEILy8r7REzLyszLxESOS8aGe0REjkSOQAYPxrtL139XTIvXRnkGBESOS9dEjldGTkvGBDtXTEwAV0BAwQHBgcGIyMRMzI3NjcmJjU0NjMyFxYXByYmIyIHBhUUBQPecP7zsJlpTU5abB0OHh0yIvelb2VdKypPXUR8W3MBFgMC/uRTLScPCwEQAQQCS106ld9JRGEkHhIUGS9FnwAAAf+6ASUC4gQKACMAjEAeAxgB8xgBSRhWG3cbAwQJHw4SQBgcNBISFUAWFzQVuP/AQAoJDDQVFRkjCgAKugNuAAkDB0AOgBnAGeAZAxkEBB8OHBW4Ay5ADwAWAfAWARZAEBQ0FhwcALgDcrElCS8Q5DMvLytdce0SOTkZOS8AGC9dP+08EDwROS8rKzMvKzk5ETkxMAFxAF1xASMiJicGBwYjIxEzMjY3JicmIyIGByc0NjMyFhUUBgcWFjMzAuKUT3glQWhFUWlpU0M5HhYbHQsTDCx9h4ufKjoOMBaUASVAR1AhFgEQER47Gh8PFQa1m21fM11QExYA//8ANP5eBEgGkwImA8kAAAAHBS0AkAW4//8ARv5qBCAGFQImA8oAAAAHBS0AwAU6////ugElA94GZgImA8sAAAAHBS0AgAWL////ugElAuIGDAImA8wAAAAHBS0AGgUx//8ALwEEBhAGPAImBboAAAAHBS0D+wVh//8ALwEEBhAGPAImBboAAAAHBS0D+wVh////ugElAnAGzAImBSoAAAAHBS0AGAXx////ugElApgGPAImBSsAAAAHBS0AbwVh//8AJ/72BOYFRAImBSwAAAAHBS4CogRp//8AJ/72BOYFRAImD/8AAAAHBS4CogRp////ugElAnAGwAImBSoAAAAHBS7/9gXl////ugElApgGPgImBSsAAAAHBS4AAAVjAAIAKQElBFQGMgAhAEQBbLkAAv/AQBAJDzQlMAkNNCYYFxk0MzIyuAMSQAxEQxREREOgFrAWAha4A0yyGRkfuP/AswkMNB+4A163DkAJDzQODge4A0i2AwYGIAMBA7j/wLYRFDQDAzIrugNTACr/wEAQCQ00Kio4MjNDND8/ODQ0Qr8DfQA4AxEARAAyA24AIgMHsxkZAB24AzNAGWAQcBACABAQEAIQBkAMDzQGQBETNAYGEAu4Aze2QCAAMAACALj/wLMUGDQAuP/AtwcRNAAALjQquAMktCBgKwErugMqAC4DNUAhJ0ALGDQnOEASGDQ4OD9DM0IyLzQBNEIgBws0QjRCPz9EugNyAEYBJIUQ9TIvMzMZLysYL105Ejk5GRI5LysYLyv99F0aGe0YERI5LysrcRrtMzMvKysvXXH9ETkvAD/9PD/9GTkvETkvETk5GBESOS8rGeQRMxgvK3EzLxDtMy8r/SsyL+RdhwUuKw59EMQxMAErKysBFAYjIiYnNzMyNjU0JiciNTQ2NzY2NwYGFQYHBhUUFzIWASEiJyY1NDY3FwYGFRQWMyEDJzQ3NjcXFAcUFxYXBgYHJxMC/Z2NJy82DBJjpxQeYC8rHDo6AgI2JCBEPjIBV/1h2F9VOUU8JxeOyAHheUASFzcuBColUQkjFiRtBA6FlQQKQDclDgsDVDyTSy4sEidcIw8bGBIVCTL820pCi12zfCpNSypgRwKnKjs8TGkYBhohHxwiQHowDv2V//8AKQElBFQGMgIGA9kAAP///7oBJQLiBaoCBgMvAAD///+6ASUC4gWqAgYDLwAAAAEAI/+2A5wGMAAvANpAEAUYCQw0BBgTFTRXAQEaHBy4AxK2Ki0UKiotC7gDU0APCgofGi0RKhwdJiYfHR0pvAN9AB8DEQARA25AIQMfQBIYNB8fJiocKS0AGi8dAR0pIAcLNG8pASkdKSYmFb4DNQBAAAADcgAxAAoDJLYgsAvACwILuP/AtQwONAsLDrgDNLUGQAocNAa4ASSFLyvtMy8rXRoZ7RgQ9RrtMy8zMxkvcSsYL105EjkSOTkZEjkvKwAYL+0/7Rk5LxE5LxE5ORE5ORgSOS8Z5IcOLhgrDn0QxDEwAV0rKwEUBCMiJjU0NzY3FwYGFRQWMzI2NTQ0NTQmJyYnJzQ3FwYVFBcWFwYGBycUEhcWFQOc/sDNq8EkKXc+TkKHe7DcDRsrKzJcLgQpPTYLFiMeORQcAT6a7q2bkWx6sSp1rFVbY4huExYGJ16T7e4kYsoWDhIoGSIfVkpKDA/+yXGiIwD//wAj/7YDnAYwAgYD3QAAAAH/ugElAeAGMgAVAIGyBAMDuAMSQA8VFBQVFRQUBAUQEAkFBRO/A30ACQMRABUAAwNuAAADB0AbCUASGDQJCRAUBBMDLwUBBRMgBws0EwUTEBAVuwNyABcAAQEkhS8Q9DIvMzMZLysYL105Ejk5GRI5LysAGD/9PD/tGTkvETkvETk5hwUuGCsOfRDEMTABIREhAyc0NzY3FxQHFBcWFwYGBycTAeD92gGueUASFzcuBColUQkjFiRtASUBEAKnKjs8TGkYBhohHxwiQHowDv2V////ugElAeAGMgIGA98AAAABACH+TgLiA3IAIwDEQCoiIA4PNBQYDQ80HigTFjR6E3chhyGaIcoh2SHoHuYhCAUTAXcVhhUCCh24A1JACRxAFx00HBwXILj/wLMXHTQguANhQBIZQBcdNBkZF0AJETQXFwEAACO7A24AQAABAwezFxcAHLgDLrcgHR0AEAoKB7gDNLIMDAS4AzS2EEAKHjQQALkDcgAlEOYvK+0zL+0ZOS8YERI5LxoZ/RgROS8APxrtMy8ZETkvKzMYLyvtKxI5LysZ5BgvMTAAcQFxXSsrKwEnIgQVFhYVFAYHJicmJyY1NDc2NzY2NyYjIgYHJzY2MzIWFwLigrf+5ic9GyULJg00IBoVGyCfo1A8Gi40MCyBTUOkbAElAT4oeNJeRFQyhJEzpGUhL0Y5LDI6EnAoRBiZpZqjAP//ACH+TgLiA3ICBgPhAAAAAv+6ASUDUgPGABcAIwB0QAsVGBEUNBAYERQ0E7gDYUARHEAmLzQcQBwhNBwcIgQKCSK4A26yAAAKugNuAAkDB7IEBA+6AzMAHv/AQAsVGjRgHnAeAh4eGLoDOgAAA3KxJQkvEPT9Mi9dK/0yGS8AGD/tMy/tERI5ETMvKyvtMTABKysBIicmJwYHBiMjETMyNzY3Njc2MzIXFhUnNCcmIyIHFhcWMzIDUmmOfV86VSlHxsZaNUQaOVlPNzNLT7srMCMnGzQbUQoWASYpJDFXGw0BEBYcRX9SSZqjiVQWNjxaFAoeAP///7oBJQNSA8YCBgPjAAD//wA+/34EVATlAiYGDwAAAAcFLQFEBAr//wA+/34EVATlAiYGDwAAAAcFLQFEBAr///+6ASUCMgXiAiYFKQAAAAcFLQBrBQf///+6ASUCMgXiAiYFKQAAAAcFLQBrBQcAAgBYAQICbgQmABYAIQC3QCU2FUYV2RkDpwW3BQIZCBgMFxYDxwTVFQIaHw1AExY0DUAJDjQNuANSQAxAPw5PDgIOQAoMNA64A2C1IJ8RAREfugNuAAcDhUANDxoBGhwLDSsNAg0OF7gDN0ANQCAAAQAAI8AR0BECEbgDM0APIA5AKis0DkAJDzQODgAcugM0AAoBGoUv7RI5LysrGhntXREzGC9dGu0ROXEROXEAP+0vXRoZ/StxGhj8KysROTEwAV1yAF1xARQGBwYHBiMiJjU0NjcnNjY3FxYXFhYHNCYnBhUUFjMyNgJuEw8cbmZaTlwvPSQROhdiQDpSPpSLQ0A1JTKCApw8eydMOjZsWlKeeBgugy06Jy0+baETeCtlQyAuLwD//wADASUDUgWOAgYDNwAAAAP/ugDwAzAFBAAfACwANgDCQBEpLkkuaS55LgQ2FkYWyBUDM7j/8EAVCQs0Myk7I0sjAiMgHSA0FyMwAzUYuAOMt4AbARsgNQE1uANmsgQEDroDbgANAwdAEggIDRcYG0AZITQbGxgYABMzMLj/wLMaHDQwuAM1syAgLSe4AzVADQATzxPvE/8TBBMTDS24AzRACQBACQ00AAA4DS8RMy8r7RI5L139ETkv/Ss5ERI5LzMZLysRMxE5LwAYP+0zL+1dL139ERc5K105OTEwAStdAHEBFAcGIyInJicGBwYjIxEzMjY3NTQ3NjcnNjY3FhcWEiU0JiMiBwYVFBc2NzYFNCYnBgYHFjMyAzAdIzAqYXB5Q15KTVpaHkUTIiZKMAwVG5Z9c4L+dh0bLR8aXBYLIQEUVz8GER+DNxIB+klXaiguTDscFgEQEg0keVplLiRRXFVpl4v+54IzOSEcHSgqCgcWoR57OzAyOkgAAAP/uv8yA5wEegApADIAOwD4uQAx/9izGiY0Mbj/2LMUFzQxuP/4QA0YGTRqEHoQmTapNgQauP/YswsONC+4//BAFR8mNAgMJzg2OAMIEJkRqREDLzoBOrj/wLMbHzQ6uANktQ83NwQAHbgDZkARUC3wLQItLaAwATAwJRQpEym6A24AAAMHtQQSCCUhMLoDMwAZ/8CzGSQ0Gbj/wLYPEzQZGSo3uP/AsxsfNDe4AzSzEhITKrgDOLIhITO4AzizCAgTALsDcgA9ABMBEoUvEOUSOS/tMy/9ETkv7SsSOS8rK+0SORESOQA/7TwQPDIyL10zL13tETMzLy/tK10xMAFdcSsrAF0rKysBIyIGBxYXFhUUBwYHBgYjIgI1IxEzMjc2NxI3NjMyFxYVFAcGBzY2MzMlNCYjIgYHNjYTNCcmJxYWMzIDnMwXMC8kJCILBhcqSDiLyeRaNjg/GW9VSz8zJSAuMmRJeDPM/mgmFBpFMXNXKkBNkRCYWB4BJQEEFRQaKScsGUB9WQElzgEQCg4FAS2GdWRWVHRSWioMB7kaTHF5KDn9hTgyPB5YggACAAb/bgOcA+AAGwAkAL25AA7/8LMKDDQXuP/wQB8dHzTUCOQIAgkZFgEmAVgNaA15AnoNB9cP5Q/5GQMZuP/oQAkJCzQSGA0RNBa4/+hADhIXNA8RPxwBHBwfEQERugMIAAYDWkAJIAcHC0AKDjQLuANftgM/Hk8eAh6+A2QAGAAHAy4ABgAUAza3jyEBISEPDxy8AzUAAANyACYBGIUQ9P0yLzIvXe0vGeQAGC/tXS/9KzIvGhntGD9dMy9dETMxMAErKytdcQBdKysBFAAjIiYnNxYXFjMyNzY3BiMiJjU0NzYzMhYVByYjIgYVFBYzA5z+3I5TxcwqbEU5SGFfcHgqHGN1RUtgUHB4HFYfJU9BAWqs/rBqnDpIGBQ2QI4GgW+Wi5famjehMR0kLwD//wAG/24DnAPgAgYD7QAAAAEAl/+FBJkDsQA/AMFAFhwwCQ40Jhc3Okc6Vzn4FgWWGfQrAhK4/9pACRQoNDUYFBc0IrgDUrQhIT0bM7gDX0AZDkAkKDQfDi8OXw5vDgQODicDQAoQNAMDBroDYgA9AwlACydAHiA0J0AKDTQnuwNgABsACQM1sjc3MLgDNEAJQBQDFAMAAEEhuAMksyAiIiW6AzMAHQEehS/tMy8aGe0RMxgvMzMZLxgvGu0zL+0AL+0rKz/9Mi8rETkvcSvtERI5LxnkMTAAKytdAV0rARQGByYmIyIGFRQXFjMyMjcyFxYVFAcGBwYEIyARNDc2NxcGBhUUMzI2NzY3Njc2NTQmIyInJjU0Njc2NjMyFgSZFiQbJSM2vSYbOQ8dD20kHygyX3f+/2/+ySMnfi5KStVQkEowPmMGLWEUmjQqOzBJkkY6RAMMN0g7Ryt7KhYJBgEWEzdsY301Q1IBF41mcsMefcNJvR0aERssAxgTCgUsJGEujEVpbFoAAAEACv6cBG8CQgAxALJACxEgCg00xiHWIQINuP/gswsNNCK4/+izCQ40Lrj/6EAJFxk0kAYBBgAmuP/AthIUNCYmAB67A2MAEAAYA1OyFxcxugNuAAADB0AQBAQHKUAKDTR/KY8pAikpI7oDNQAH/8C1CRU0BwcAuANysjNAF78DJAAgABgDKwAbAzUAEwEZhS/t/RoZ7RoYEOUzLyv9Mi9dKxI5LwA//TIvGeQYL+0ROS8rEjldMTAAKysrXQErASMiBhUUFhUUBgcGBwYHBiMiJjU0NzY3FwYGFRQWMzI3NjY1NCYjIiY1NDY3Njc2MzMEb1UlLWIhHRZlbImdjaKmJi6OOF5Gdmh/koS9cCxqPicbQlplUHABJQwLBiYoN5s+MD5CLDKWkJ50jOIqoL5cXGonI2MgCgQQHTZ4IFA4PwACAJf+cgSZA7EAPwBHAUxAFhwwCQ40Jhc3Okc6Vzn4FgWWGfQrAhK4/9pAExQoNDUYFBc0QkZBRUREQ0VAQEe6A0AAQf/AtRQXNEFBRboDQABD/8BAChocNDBDgEMCQyK4A1K0ISE9GzO4A19AGQ5AJCg0Hw4vDl8Obw4EDg4nA0AKEDQDAwa6A2IAPQMJQAsnQB4gNCdADA00J7gDYEAcDxsBG0AKCzQbQUFAQ0NCREdHQEZFRYBE70QCRLgDFrdGRo9A4EACQLgDFrRCQh0UCbgDNbI3NzC4AzRACUAUAxQDAABJIbgDJLMgIiIlugMzAB0BHoUv7TMvGhntETMYLzMzGS8YLxrtMy/tERI5L+1dMy/9XT05LxESOS8REjkvETkvGAAvK3HtKys//TIvKxE5L3Er7RESOS8Z5BgvXSvtMy8r/T05LxESOS8YERI5OTEwACsrXQFdKwEUBgcmJiMiBhUUFxYzMjI3MhcWFRQHBgcGBCMgETQ3NjcXBgYVFDMyNjc2NzY3NjU0JiMiJyY1NDY3NjYzMhYBBycHJzcXNwSZFiQbJSM2vSYbOQ8dD20kHygyX3f+/2/+ySMnfi5KStVQkEowPmMGLWEUmjQqOzBJkkY6RP73SppKmkyWSgMMN0g7Ryt7KhYJBgEWEzdsY301Q1IBF41mcsMefcNJvR0aERssAxgTCgUsJGEujEVpbFr72YhOhFKKToAAAgAR/k4EngKOACwANAEyuQAo//BAGxIVNBAYFBc0mympKQIGCg0QFgoaECgQhQoGHrj/6EAQCQ40VwwBLzMuMTEyMC0tNLgDP7IuLjK8Az8AMAOHAAb/6LMaHzQGuP/oQA43QjQGAA8iHyICIiIAHLj/wLMJCzQcvANjAA4DiAAWA1OyFRUsugNuAAADB0APLi4tMDAvMTQ0LTMyMjMxuAMVsi8vLbgDFUAWkDMBMzMRAwMIJEAKDTR/JI8kAiQkH7sDNQBAAAj/wLUJCzQICAC7A3IANgAVAySzIBYWGboDOAARAR+FL+0zLxoZ7RgQ5DMvKxr9Mi9dKxI5LxE5L13tMy/9GRE5LxESOS8REjkvETkvABg//TIvGeQYP+0rETkvXRI5Kys/7TMv7Rk5LxESOS8ROTkxMABdKwFdcSsrASMiBhUeAhUUBgcGBCMiJjU0NzY3FwYGFRQWMzIkNTQmIyI1NDc2NzY2MzMBBycHJzcXNwSeZy0nHTMQUScl/pOEvOgzPqc8aVGxuWABVIJOchsTFCXRcm3+YWJqTn5ebk4BJQQLEQ0VF0fFGB9RnH56b4bNKn+gTWtnRhoMFDIXOykpU2b8m3BCVEZ4RloA////uv9bAiwD8AImBSkAAAAGBS4AAP///7r/WwIsA/ACJgUpAAAABgUuAAD//wAQAJQENAaRACYD+3AAAQYFOArfABO5AAL/frZSUiMjQAJHAC81ASs1AP//ABAAwATEBpEAJgP8cAABBgU4Ct8AE7kAAv9etkZGEBBAAkIALzUBKzUA//8AIgCUA8QHAQImA/sAAAAGBTnf4///ABoAwARUBwECJgP8AAAABgU53+P//wAi/w0DxAXqAiYD+wAAAAcFOgEqAAD//wAa/w0EVAYgAiYD/AAAAAYFOjEAAAIAIgCUA8QF6gA8AEMA8EALDkMBhynHGMQtA0O4//BAHyIqNMcaAT4gKjA0PggWLgQdPQtB3x3vHQIdHQ8mASa4AwxACTIFBAAAOAQEOLgDhEAKExNBQU8SARISC7wDbgAPAwUAQf/AQBcqLDRBPT4WCC4GDBATIBMCExMMDCMABbgDNLQyMgQ1ObgDLkAcODgQNQE1BDUEcAABAABFwB0BHSYdJj8jTyMCI7gBCYUvcTMzGS8YL10RMy9xMzMZLxgvXTMv7RESOS/tERI5LzkvXRIXOSsAP+0zL105LzMvPzMvGRI5LxE5ORg/XTMvXRESOREXOSsxMABdKwFdcQEUBwYHJxQGBxYXFhUVFAcGBiMRNjY3JicmJwYGIyInLgI1NDYzMhcWFxYXFhc2NzY1JiY1NDY3FxQXFgMnBgYHNjYDxA4GFkg4PjcJGBBys7FlV0ZyNCpCEA8HGEI7QCENFSd3ZlA/My5iLREKJBoaHioeGH4wLC87TEEFTEZHHk8cdupyYxEuJR8ZszYgASg0R1eQOzA/IRUpJTqfezYqcGBgRUU9lVWEUG8RIRw8fEQOQBUR/HBKMSkqCBMAAgAaAMAEVAYgABYANwCtQBJGHVUEZxYDFRUBBxYXFkoUAxW4//CzEBM0Bbj/4EAQEBM0AwMSCQkSMAkJbxIBEroDDAAiA1qzICAcN7oDbgAXAwdAFgYGECAAAQAAKxAQIRwcNCswMDIuLiu4AzeyMjI0uP/AtRIUNDQ0F7oDcgA5ARWFEOUzLyszL/0yLxkSOS8REjkvGC8zLxI5L10SOS8AP/0yMy/tP10zLy8RMy8ROS8xMAArK11xAV0BFAYHJiYnFAYjIicmJyYmNTQzMhYXFgEjIicmNQIHBiEnNTY2NzY3Njc2NTQmJzQ3FhMWFxYzMwLMEhg7jmEUEh5QViYbGyY76mfoAYhJPzg8WJ6Z/sV0SI0jzEiAOUMdD3Q0DggJED5JAxoeMymFqjMrJzk9OCeUL0iLYdb9V2dujv75Yl8CQBkxEmcvU1trm12wV0TQq/7sw8OmAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAA//8ARgV2AZwGRQIGAvQAAP//AEYFdgGcBtwCBgLxAAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAD//wBGBXYBUQasAgYC+AAA//8ARgV2AbEGuAIGAvcAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAAACAQAAAAUABQAAAwAHAAAhESERJSERIQEABAD8IAPA/EAFAPsAIATAAP//AEgFdgGtBykCBgL1AAD//wBGBXYB5Qb5AgYC8gAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAAAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAA//8ARgV2AbEHVwImAvcAAAAHAvQABgES//8ARgV2AbEH9wImAvcAAAAnAvQAAAEaAAcC9AAAAbL//wBGBXcBsQdyAicC9wAAALoABwL2AAYF8v//AEYFbgGxB9ICJwL3AAABGgAnAvYABgZmAAcC9gAGBen//wBABXYBsQfLAgYDSgAA//8AMQV2AdAIFAImAvcAAAAHAvL/6wEbAAIBAAAABQAFAAADAAcAACERIRElIREhAQAEAPwgA8D8QAUA+wAgBMAA//8ARv+FAZwAVAIGAvYAAP//AEb+7wGcAFQCBgLzAAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgEAAAAFAAUAAAMABwAAIREhESUhESEBAAQA/CADwPxABQD7ACAEwAAAAgDKARgByQW3ABIAHgBHQQ4AEf/9ABADDgAHAAcDUQAZABwDawAWAwYABgMv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cTX//wCN/+gFywXTAiYEbQAAAQcAQwEPAAAAHUAPAR8nAZAnAScZHkgrAQEnuQI1ACkAKwErXXE1AP//AJP/5wajBz8CJgRsAAABBwR0A/IAAAAQQAoBADEBADE4FiBAAStdNf//AI3/6AXLBfcCJgRtAAABBwSFA44AAAAQQAoBsDoBADo5Eh5AAStdNf//AJP/5wajBwoCJgRsAAABBwDXAY8BVgAWQAoBACk2FSFAAQEpuQI0ACkAKwErNf//AI3/6AXLBbQCJgRtAAABBwDXAR0AAAAWQAoBACc0ER9AAQEnuQI1ACkAKwErNf//AJP+bwajBboCJgRsAAABBwR9A7YAAAALtgEAKSoXH0ABKzUA//8Ajf5vBcsEJgImBG0AAAEHBH0DKgAAAAu2AQAnKBMdQAErNQD////9/m8FWAW6AiYAPAAAAQcEfQN9AAAAEEAKAY8KAQAKCwAIQAErcTX//wAO/lEEUgQmAiYAXAAAAQcEfQR0AAAAEEAKAY8VAaEVFQcHQAErcTX////9AAAFWAc/AiYAPAAAAQcEdAPBAAAAGEARARASIBIwEgMAEgEAEhkDBUABK11xNf//AA7+UQRSBfcCJgBcAAABBwSFA0wAAAAYsQEouP/AQAtDNQAoAQAoJwICQAErcis1/////QAABVgHCgImADwAAAEHANcBfAFWABZACgEAChcDBUABAQq5AjQAKQArASs1//8ADv5RBFIFtAImAFwAAAEHANcA9wAAABZACgEAFSIBA0ABARW5AjUAKQArASs1//8AAAAABb8HPAImACQAAAEHAN8BggFpABZACgIACw8GB0ACARG5AjQAKQArASs1//8ASf/oBC4F0wImAEQAAAEHAN8A5AAAABZACgIAMzcEBEACATm5AjUAKQArASs1////ygAAAm8HPAImACwAAAEHAN//xwFpABZACgEABAgBAkABAQq5AjQAKQArASs1////ygAAAm8F0wImANUAAAEGAN/HAAAWQAoBAAQIAQJAAQEKuQI1ACkAKwErNf//AFn/5wXnBzwCJgAyAAABBwDfAccBaQAWQAoCABwgAApAAgEiuQI0ACkAKwErNf//AFL/6ASaBdMCJgBSAAABBwDfARwAAAAWQAoCABoeAAdAAgEguQI1ACkAKwErNf//AJP/5wUkBzwCJgA4AAABBwDf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Bz0CJgBLAAABBwDaAQYBagAcQA8BF0AHCTQoFxcAAEABARe5AjQAKQArASsrNf//AJb+bwUqBboCJgArAAABBwR9A7MAAAALtgEADQ4LCEABKzUA//8Akv5vBFkFugImAEsAAAEHBH0DSAAAAAu2AQAYGRQKQAErNQD//wCWAAAFKgc9AiYAKwAAAQcAjgGLAWoAGUAMAgEADBMBBkABAgIMuQI0ACkAKwErNTUA//8AkgAABFkHPQImAEsAAAEHAI4AyAFqABlADAIBExoaAABAAQICF7kCNAApACsBKzU1AP//AE7+aQUqBboCJgArAAABBgDcKAwAJ0APARAbIBswG4AbkBsFIBsBuP+yQAobGwsLQAEBGwgpACsBK11xNQD//wA7/mkEWQW6AiYASwAAAQYA3BUMAC1AFQEQJiAmMCaAJpAmBRAmICaQJqAmBLj/skAKJiYUFEABASYIKQArAStdcTUA//8Alv5sBSoFugImACsAAAEHCGsC4gAAAAu2AQASDAsIQAErNQD//wCS/mwEWQW6AiYASwAAAQcIawJ2AAAAC7YBAB0XFApAASs1AP///9L+bAKGBboCJgAsAAABBwhtASwAAAALtgEADwQAA0ABKzUA////0v5sAoYFugImAEwAAAEHCG0BLAAAAAu2AgATCAQHQAErNQD//wAbAAACMwc0AiYALAAAAQcFDQEiAAAAEEAJAwIBAA0IAQJAASs1NTX////OAAACbgc0AiYA1QAAACYAjskAAQcAjf/JAWEAQ7kAA//RQCgMDAYGQAIBAAcIAQJAAwxAHh80DIAYGTSvDAFfDAEMQAoMNAwBAgILuQI1ACkAKy8rXXErKzUBKzU1KzUA//8AmQAABcMHPQImAC4AAAEHAI0BcgFqADGxAQy4/8BAHAcINBAMIAwCIAwwDEAMkAzwDAVsDAwCAkABAQy5AjQAKQArAStdcSs1AP//AIkAAARfBz0CJgBOAAABBwCNANQBagAYuQAB/+23DAwCAkABAQy5AjQAKQArASs1//8Amf5vBcMFugImAC4AAAEHBH0DmAAAABS1AUANzw0CuP/CtA0OCwhAAStdNf//AIn+bwRfBboCJgBOAAABBwR9AyAAAAAbQAwBcA2ADdAN4A3wDQW4/+K0DQ4LCEABK101AP//AJn+1gXDBboCJgAuAAABBwhuAtoAAAAjQBMBAA4BIA4wDkAOcA6ADpAOwA4HuP/stA4PCwhAAStdcTUA//8Aif7WBF8FugImAE4AAAEHCG4COgAAAA65AAH/vrQODwAHQAErNf//AJ3+bwSlBa4CJgAvAAABBwR9A1IAAAALtgEABwgABUABKzUA//8Ak/5vAa0FugImAE8AAAEHBH0B9AAAAAu2AQAFBgADQAErNQD//wCd/m8EpQb4AiYALwAAACcEfQNSAAABBwDYAPUBagAosQIKuP/AQBMHCjRrCgoBAUABAAcIAAVAAgEKuQI0ACkAKwErNSsrNf///+v+bwJvBvgCJgBPAAAAJwR9AfQAAAEHANj/2AFqAB9AEQIACAsAA0ABAAUGAANAAgEIuQI0ACkAKwErNSs1AP//AJ3+1gSlBa4CJgAvAAABBwhuAnsAAAAOuQAB/7a0CAkABUABKzX////d/tYCYQW6AiYATwAAAQcIbgEeAAAAC7YBAAYHAANAASs1AP//AJ3+bASlBa4CJgAvAAABBwhqAmwAAAASswEACwG4/860CwwABUABK101////y/5sAnAFugImAE8AAAEHCGoBHQAAAAu2AQAJCgADQAErNQD//wCRAAAGGQc9AiYAMAAAAQcAjQIhAWoAQrEBDbj/wLMiJjQNuP/Asx0gNA24/8BADg4RNKANsA0C8A0B8A0BuP/ftw0QAQVAAQENuQI0ACkAKwErXXFyKysrNf//AH4AAAaYBdMCJgBQAAABBwCNAlgAAAAWQAoBEygoHR1AAQEouQI1ACkAKwErNf//AJEAAAYZBz0CJgAwAAABBwDaAgABagAWQAoBAA0QAQVAAQENuQI0ACkAKwErNf//AH4AAAaYBdMCJgBQAAABBwDaAjUAAAAWQAoBACgrHRpAAQEouQI1ACkAKwErNf//AJH+bwYZBboCJgAwAAABBwR9BCQAAAALtgEADg8KCUABKzUA//8Afv5vBpgEPgImAFAAAAEHBH0EYAAAABBACgHPKQEAKSocG0ABK101//8AmAAABSMHPQImADEAAAEHANoBhgFqABZACgEACg0BBUABAQq5AjQAKQArASs1//8AkQAABFkF0wImAFEAAAEHANoBJgAAABZACgETFxoNFkABARe5AjUAKQArASs1//8AmP5vBSMFugImADEAAAEHBH0DsQAAAAu2AQAL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NS9AODUvQB0kNC9ACg40Hy8BDy8Bny+vL98v/y8ELwEvK38rAgArUCtgK6Ar/ysFwCvwKwIruAI1AD5dcXI1L11xcisrKysrKzVdAStdcXI1KzUA//8ASv/mBPIHMwImADYAAAEHCX0CowAAAA23AgEANDEUFEABKzU1AP//ADD/6AQQBz0CJgBWAAAAJwDfAL8AAAEHANoAvwFqAI5ADALAMgEAMjUTE0ABK7j/wEBICw80ACsvExNALzIvNT8yPzVfMl81BgIyQF01MkBANTJAOzUyQDg1MoAkNTJACg40HzIBDzJPMp8yrzIEnzKvMt8y/zIEMgExuP/AQBIVGTQvMX8xAlAxYDGgMf8xBDG4AjUAPnFyKzUvXXFyKysrKysrNV0BKys1K3E1//8ASv5vBPIHPQImADYAAAAnANoBPwFqAQcEfQN6AAAAH0ARAgAyMyoqQAEALTAUFEABAS25AjQAKQArASs1KzUA//8AMP5vBBAF0wImAFYAAAAnANoAvwAAAQcEfQMBAAAAH0ARAgAwMSgoQAEAKy4TE0ABASu5AjUAKQArASs1KzUA//8ALAAABLkHPQImADcAAAEHANoBHAFqABZACgEACAsBBkABAQi5AjQAKQArASs1//8AH//oApEHPQImAFcAAAEHANr/2AFqABpADQEAGh0XGEAEGAEBARq5AjQAKQArXQErNf//ACz+bwS5BboCJgA3AAABBwR9A0cAAAALtgEACQoAB0ABKzUA//8AH/5vApEFnQImAFcAAAEHBH0CWAAAAA65AAH/7LQbHBIKQAErNf//ACz+1gS5BboCJgA3AAABBwhuAm8AAAALtgEACgsAB0ABKzUA//8AH/7WAskFnQImAFcAAAEHCG4BhgAAAA65AAH/77QcHRIKQAErNf//ACz+bAS5BboCJgA3AAABBwhqAnQAAAALtgEADQ4AB0ABKzUA//8AH/5sAtkFnQImAFcAAAEHCGoBhgAAAA65AAH/77QeGhIKQAErNf//AJP+bAUkBboCJgA4AAABBwhhAuwAAAANtwIBACAdGQ5AASs1NQD//wCN/mwEUwQmAiYAWAAAAQcIYQJvAAAADbcCAQAeGQgWQAErNTUA//8Ak/5sBSQFugImADgAAAEHCG0C7QAAAAu2AQAlGhkOQAErNQD//wCN/mwEUwQmAiYAWAAAAQcIbQJvAAAAC7YBACIXCBZAASs1AP//AJP+bAUkBboCJgA4AAABBwhqAuUAAAALtgEAHhoZDkABKzUA//8Ajf5sBFMEJgImAFgAAAEHCGoCcAAAAAu2AQAbFwgWQAErNQD//wCT/+cFJAc0AiYAOAAAAQcJegLcAAAADbcCAQAmHgANQAErNTUA//8Ajf/oBFMHJwImAFgAAAAnANcBIgAAAQcAjQEaAVQAZkBMAg8zAZ8zrzO/MwMXMzMJFUABABglCRVAAjBAHyE0MIAZNTBAEhY0MEAJDDRPMAG/MN8w7zADXzBvMP8wAzABUBdgF6AXA8AX8BcCF7gCNQA/XXE1L11xcisrKys1ASs1K11yNf//AJP/5wUkBzMCJgA4AAABBwl+AtwAAAAZQA0DAgEAIyIADUADAgEjAC81NTUBKzU1NQD//wCN/+gEUwb/AiYAWAAAACcA2AEbAAABBwCOARsBLABDQC0DAgAbIgkVQAEAFxoJFUADAg8fIB+fH68fvx8F/x8BH0APETQfQAgKNB8BARe5AjUAKQArLysrXXE1NQErNSs1NQD/////AAAFVAckAiYAOQAAAQcA1wGKAXAAFkAKAQAIFQEFQAEBCLkCNAApACsBKzX//wALAAAEWgW0AiYAWQAAAQcA1wDmAAAAFkAKAQANGgEKQAEBDbkCNQApACsBKzX//////m8FVAW6AiYAOQAAAQcEfQN8AAAAC7YBAAgJAAZAASs1AP//AAv+bwRaBCYCJgBZAAABBwR9AwkAAAALtgEADQ4AC0ABKzUA//8ABwAAB4sHPQImADoAAAEHANoCdgFqACBAEgEADRAEBUAGEAg1AxAINQEBDbkCNAApACsrKwErNf//AAkAAAY4BdMCJgBaAAABBwDaAcoAAAApQBABAA0QBAVAAxgHNQYYBzULuP/AtQcINAEBDbkCNQApACsrKysBKzUA//8AB/5vB4sFugImADoAAAEHBH0EnQAAABdADwYQCDUDEAg1AQAODwwKQAErNQArKwD//wAJ/m8GOAQmAiYAWgAAAQcEfQPzAAAAIUAJAxgHNQYYBzULuP/AQAoHCDQBAA4PDApAASs1ACsrKwD//wAAAAAFUwc9AiYAOwAAAQcA2gFVAWoAFkAKAQAMDwIGQAEBDLkCNAApACsBKzX//wAMAAAEYAXTAiYAWwAAAQcA2gDhAAAAFkAKAQAMDwIGQAEBDLkCNQApACsBKzX//wAAAAAFUwc9AiYAOwAAAQcAjgFVAWoAGUAMAgEADBMCBkABAgIMuQI0ACkAKwErNTUA//8ADAAABGAF0wImAFsAAAEHAI4A2AAAABlADAIBAAwTAgZAAQICDLkCNQApACsBKzU1AP////0AAAVYBz0CJgA8AAABBwDaAVIBagAWQAoBAAkMAgZAAQEMuQI0ACkAKwErNf//AA7+UQRSBdMCJgBcAAABBwDaANkAAAAcQA8BABQXAARAAkQHCDQBARS5AjUAKQArKwErNf//ABYAAAS9Bz0CJgA9AAABBwDWAUEBagAeuQAC//hADAc1AQAKDQQFQAEBCrkCNAApACsBKzUr//8AIgAAA9YF0wImAF0AAAEHANYAqgAAABZACgEAERQICUABARG5AjUAKQArASs1//8AFv5vBL0FugImAD0AAAEHBH0DPQAAABS5AAL/+EAJBzUBAAsMAAlAASs1K///ACL+bwPWBCYCJgBdAAABBwR9AtEAAAAQQAoBzxIBABITABBAAStdNf//ABb+1gS9BboCJgA9AAABBwhuAmgAAAAUuQAC//hACQc1AQAMDQAJQAErNSv//wAi/tYD1gQmAiYAXQAAAQcIbgH7AAAAC7YBABMUABBAASs1AP//AJL+1gRZBboCJgBLAAABBwhuAncAAAALtgEAGRoVCUABKzUA////3v/oApEHPQImAFcAAAEHAI7/2QFqABlADAIBABohFxhAAQICGrkCNAApACsBKzU1AP//AAkAAAY4BgICJgBaAAABBwDbAcsAAAAsQBECAQATDQQFQAMYBzUGGAc1C7j/wLYHCDQBAgIQuQI1ACkAKysrKwErNTX//wAO/lEEUgYCAiYAXAAAAQcA2wDfAAAAH0ARAgEAGhQABEACRAcINAECAhe5AjUAKQArKwErNTUA//8ASf/oBC4GAgImAEQAAAEHB44A2QAAACGxAjq4/8CyBwg0uP/ztzo6BARAAgE2uQI1ACkAKwErKzUA//8AjQAAAr8HPQImAdUAAAEHANoAcgFqABi5AAH/97cPEg0NQAEBD7kCNAApACsBKzX//wBO/+gEqAY3AiYBLgAAAQcKwwDwAGQAFkAKAjIuLxQUQAIBJ7kCNQApACsBKzX//wBO/+gEqAY3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FjQpQAcLNCkALisrK3JxXTU1ASsrXTU1////ugElAuIGpAImA8wAAAEHBTEAAAXJAExAJgIBUCtgKwIcKykWHEACATAqUCpvKp8qryq/KuAqB3AqgCqQKgMquP/Asy4wNCq4/8BACSgqNCpABwo0KgAuKysrcV01NQErcTU1//8AL/9bBiwEZAImBboAAAEHBS4EEAAAAAu2AgAsLAAAQAErNQD//wAv/1sGLARkAiYFugAAAQcFLgQQAAAAC7YCACwsAABAASs1AP///7r/WwJwBRgCJgUqAAABBgUuKAAAC7YCACUhKQBAASs1AP///7r/WwKYBKACJgUrAAABBgUuOAAAC7YCAB4aIgBAASs1AP//AC/+dAZABGQCJgW6AAABBwUvBCQAAAAZsgMCLLj/wLIHCTS4/260LCwAAEABKys1NQD//wAv/nQGQARkAiYFugAAAQcFLwQkAAAAGbIDAiy4/8CyBwk0uP9utCwsAABAASsrNTUA////uv50AnAFGAImBSoAAAEGBS9QAAANtwMCACUlAABAASs1NQD///+6/nQCmASgAiYFKwAAAQYFL3gAAA23AwIAHh4AAEABKzU1AP//ACkBJQYOBwcCJgMtAAABBwUtA0gGLABSsQE0uP/AQAsPFDRwNAHQNOA0Arj/30AtNDQhIUABNEAHCDQ0QBsjNA80TzRwNN807zQFHzQvNG80fzSPNKA0zzTfNAg0AC5dcSsrNQErXXErNf//ACkBJQcIBwcCJgMuAAABBwUtAvgGLABSsQFIuP/AQAsPFDRwSAHQSOBIArj/qUAtSEgVFUABSEAHCDRIQBsjNA9IT0hwSN9I70gFH0gvSG9If0iPSKBIz0jfSAhIAC5dcSsrNQErXXErNf///7oBJQLiBwcCJgMvAAABBwUtACgGLABSsQEnuP/AQAsPFDRwJwHQJ+AnArj/60AtJycVFUABJ0AHCDQnQBsjNA8nTydwJ98n7ycFHycvJ28nfyePJ6AnzyffJwgnAC5dcSsrNQErXXErNf///7oBJQRWBwcCJgMwAAABBwUtADwGLABNQA0BcDsBXzuAO5A70DsEuP+wQC07OxcXQAE7QAcINDtAGyM0DztPO3A73zvvOwUfOy87bzt/O487oDvPO987CDsALl1xKys1AStdcTUA//8AKQElBg4GfAImAy0AAAEH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Lj4jT16Vpx0bSksmkv2yAqGDtXEyloizCDdWcP//AAAAAATQBiMCJg2JAAABBwBDAPQAUAAWQAoCABcWBgdAAgEXuQOvACkAKwErNf//AAAAAATQBiMCJg2JAAABBwCNAS0AUAAWQAoCABYZBgdAAgEWuQOvACkAKwErNf//AAAAAATQBiACJg2JAAABBwDWAQsATQAWQAoCABYZBgdAAgEWuQOvACkAKwErNf//AAAAAATQBfoCJg2JAAABBwDXARIARgAWQAoCABckBgdAAgEXuQOvACkAKwErNf//AAAAAATQBesCJg2JAAABBwCOAQgAGAAZQAwDAgAWHQYHQAIDAha5A68AKQArASs1NQD//wAAAAAE0AW2AiYNiQAAAQcA2wEN/7QAGEALAwIAHBYGB0ADAiu4A64APzU1ASs1Nf//AFz+XQSBBIUCJg2LAAABBwDcATwAAAALtgEALykDA0ABKzUA//8AmAAABDoGIgImDY0AAAEHAEMA9ABPABZACgEADQwBAkABAQ25A68AKQArASs1//8AmAAABDoGIwImDY0AAAEHAI0BHABQABZACgEADA8BAkABAQy5A68AKQArASs1//8AmAAABDoGIgImDY0AAAEHANYBEQBPABZACgEADA8BAkABAQy5A68AKQArASs1//8AmAAABDoF7AImDY0AAAEHAI4BBwAZABlADAIBAAwTAQJAAQICDLkDrwApACsBKzU1AP////kAAAG+BiQCJg2RAAABBgBDz1EAFkAKAQAEBAICQAEBBbkDrwApACsBKzX//wCQAAACVQYkAiYNkQAAAQYAjdVRABZACgEABAQBAUABAQS5A68AKQArASs1////1wAAAnwGIAImDZEAAAEGANbUTQAWQAoBAAQHAQJAAQEEuQOvACkAKwErNf///94AAAJ+BeoCJg2RAAABBgCO2RcAGUAMAgEABAsBAkABAgIEuQOvACkAKwErNTUA//8AmAAABHQF+gImDZYAAAEHANcBRABGABZACgEADRoBBkABAQ25A68AKQArASs1//8AXP/uBO4GJAImDZcAAAEHAEMBNgBRABZACgIAKSgFBUACASm5A68AKQArASs1//8AXP/uBO4GJAImDZcAAAEHAI0BXwBRABZACgIAKCsFBUACASi5A68AKQArASs1//8AXP/uBO4GIgImDZcAAAEHANYBTgBPABZACgIAKCsFBUACASi5A68AKQArASs1//8AXP/uBO4F+gImDZcAAAEHANcBWQBGABZACgIAKTYFBUACASm5A68AKQArASs1//8AXP/uBO4F6gImDZcAAAEHAI4BTgAXABlADAMCACgvBQVAAgMCKLkDrwApACsBKzU1AP//AJD/7gRcBiQCJg2dAAABBwBDAQgAUQAWQAoBACcmABJAAQEnuQOvACkAKwErNf//AJD/7gRcBiQCJg2dAAABBwCNATEAUQAWQAoBACYpABJAAQEmuQOvACkAKwErNf//AJD/7gRcBiICJg2dAAABBwDWAR4ATwAWQAoBACYpABJAAQEmuQOvACkAKwErNf//AJD/7gRcBeoCJg2dAAABBwCOAR4AFwAZQAwCAQAmLQASQAECAia5A68AKQArASs1NQD//wAIAAAEmwYkAiYNoQAAAQcAjQEMAFEAFkAKAQAJDAIGQAEBCbkDrwApACsBKzX//wAAAAAE0AXHAiYNiQAAAQcA2AEQADkAFkAKAgAWGQYHQAIBFrkDrwApACsBKzX//wAAAAAE0AYdAiYNiQAAAQcA2QEMAEoAFkAKAgAdFwYHQAIBGrkDrwApACsBKzX//wAA/loE0ARyAiYNiQAAAQcA3gL8AAAAC7YCACwWAQBAASs1AP//AFz/7gSBBiQCJg2LAAABBwCNAT8AUQAWQAoBACIlDQ1AAQEiuQOvACkAKwErNf//AFz/7gSBBiICJg2LAAABBwDfATYATwAWQAoBACImDQ1AAQEouQOvACkAKwErNf//AFz/7gTGBgQCJg2PAAABBwDaAWkAMQAWQAoBACotEhJAAQEquQOvACkAKwErNf//AJgAAASTBiICJg2MAAABBwDfAOwATwAWQAoCACUpABxAAgEruQOvACkAKwErNf//ACQAAASTBHICAg2oAAD//wCYAAAEOgXHAiYNjQAAAQcA2AEIADkAFkAKAQAMDwECQAEBDLkDrwApACsBKzX//wCYAAAEOgYcAiYNjQAAAQcA2QEiAEkAFkAKAQATDQECQAEBELkDrwApACsBKzX//wCYAAAEOgYFAiYNjQAAAQcA2gELADIAFkAKAQAMDwECQAEBDLkDrwApACsBKzX//wCY/loEOgRyAiYNjQAAAQcA3gJnAAAAC7YBABgYCwtAASs1AP//AJgAAAQ6BiICJg2NAAABBwDfAQQATwAWQAoBAAwQAQJAAQESuQOvACkAKwErNf//AFz/7gTGBhwCJg2PAAABBwDZAWwASQAWQAoBADErEhJAAQEuuQOvACkAKwErNf//AFz+aATGBIUCJg2PAAABBwDcAXkACwALtgEANzEICEABKzUA//8AXP/uBIEGBAImDYsAAAEHANoBMgAxABZACgEAIiUNDUABASK5A68AKQArASs1//8AmAAABHoGIgImDZAAAAEHANYBLQBPABZACgEADA8BBkABAQy5A68AKQArASs1AAIANgAABMcEcgATABcAUkAeDg0LJhEIMBUBFRUBGRYSByYEAyABAQELBAgOARYSuAJ0txQUBhATCgkGuAOuAD/EP8QSOS/t3sTE3cTEAS9dzcT9xMQREjkvXcTE/c3EMTAzESM1MzUhFSE1IRUzFSMRIREhEQE1IRWYYmIBIAGiASBNTf7g/l4Bov5eA0uveHh4eK/8tQHd/iMCxoWFAP///9AAAAKEBfgCJg2RAAABBgDX3UQAFkAKAQAFEgECQAEBBbkDrwApACsBKzX////lAAACaQXGAiYNkQAAAQYA2NI4ABZACgEABAcBAkABAQS5A68AKQArASs1////8QAAAmEGHAImDZEAAAEGANnXSQAWQAoBAAsFAQJAAQEIuQOvACkAKwErNf//AFf+WgHKBHICJg2RAAABBgDeHgAAC7YBABoEAANAASs1AP//AJgAAAG4BgQCJg2RAAABBgDa0jEAFkAKAQAEBwECQAEBBLkDrwApACsBKzX//wCY/+4FSARyACYNkQAAAQcNkgIIAAAAC7YBeQ4OAgJAASs1AP//ACn/7gQEBiICJg2SAAABBwDWAVwATwAWQAoBABYZAAFAAQEWuQOvACkAKwErNf//AJj+WwTwBHICJg2TAAABBwHuAVwAAAALtgEADBoKB0ABKzUA//8AmAAAA/kGIwImDZQAAAEGAI0aUAAWQAoBAAYJAQJAAQEGuQOvACkAKwErNf//AJj+WwP5BHICJg2UAAABBwHuAPsAAAALtgEABhQABUABKzUA//8AmAAAA/kEcgImDZQAAAEHAA8CMwNZABJACgEABwcEBEABBgYAPzUBKzX//wCYAAAD+QRyAiYNlAAAAQcA2gGy/VYAC7YBAAgIBARAASs1AP//AJgAAAR0BiQCJg2WAAABBwCNAWgAUQAWQAoBAAwPAgVAAQEMuQOvACkAKwErNf//AJj+WwR0BHICJg2WAAABBwHuAUgAAAALtgEAFhALCEABKzUA//8AmAAABHQGIgImDZYAAAEHAN8BJQBPABZACgEADBABBkABARK5A68AKQArASs1AAEAmP/tBJIEhQApAERAFQwhHBwrKRcWAScmICkwKQIpKQoXGbgCdLMWFAsgvQJ0AAIABAOuAAADrQA/PzPtPzPtMj8BL139xM4yERI5L+0xMBMhFTYzMh4CFxYWFRQGBw4DIyInNxYzMjY1ECcmIyIOAgcGFREhmAEemMBEcVhAExETEhITOE9nQox6WVozNSg1NFgnSToqCRT+4gRyc4YnR2M9OqVnebQ0NlQ7HkHPJZChAQhBQBknMRkyav2U//8AXP/uBO4FxgImDZcAAAEHANgBTgA4ABZACgIAKCsFBUACASi5A68AKQArASs1//8AXP/uBO4GHAImDZcAAAEHANkBUgBJABZACgIALykFBUACASy5A68AKQArASs1//8AXP/uBO4GJgImDZcAAAEHAN0BGQBPABlADAMCACgvBQVAAgMCKLkDrwApACsBKzU1AP//AJgAAATtBiQCJg2aAAABBwCNATAAUQAWQAoCADAzASdAAgEwuQOvACkAKwErNf//AJj+WwTtBHICJg2aAAABBwHuAW8AAAALtgIAOTQgFUABKzUA//8AmAAABO0GIgImDZoAAAEHAN8BCwBPABZACgIAMDQBCkACATa5A68AKQArASs1//8ASv/tBCcGJAImDZsAAAEHAI0BBwBRABZACgEAODsYGEABATi5A68AKQArASs1//8ASv/tBCcGIgImDZsAAAEHANYA5QBPABZACgEAODsYGEABATi5A68AKQArASs1//8ASv5oBCcEhQImDZsAAAEHANwBAAALAAu2AQBESjQ0QAErNQD//wBK/+0EJwYiAiYNmwAAAQcA3wDZAE8AFkAKAQA4PBgYQAEBPrkDrwApACsBKzX//wAp/l0D8gRyAiYNnAAAAQcA3AC0AAAAC7YBABQaAAdAASs1AP//ACn9ygPyBHICJg2cAAABBwHtALoAAAALtgEACAkAB0ABKzUA//8AKQAAA/IGIgImDZwAAAEHAN8AuABPABZACgEACAwBBkABAQ65A68AKQArASs1AAEAKQAAA/IEcgAPADdACw4NCQsmBgQDAQsEuAJ0tQEODgAKBboCdAAHA62xAAoAPz/9xBI5L8T9xAEvzcTM/c7NxDEwIREjNTMRITUhFSERMxUjEQF+09P+qwPJ/qzOzgGmuQEq6en+1rn+WgD//wCQ/+4EXAX5AiYNnQAAAQcA1wErAEUAFkAKAQAnNAASQAEBJ7kDrwApACsBKzX//wCQ/+4EXAXGAiYNnQAAAQcA2AEhADgAFkAKAQAmKQASQAEBJrkDrwApACsBKzX//wCQ/+4EXAYeAiYNnQAAAQcA2QElAEsAFkAKAQAtJwASQAEBKrkDrwApACsBKzX//wCQ/+4EXAZkAiYNnQAAAQcA2wEjAGIAGUAMAgEALCYAEkABAgIpuQOvACkAKwErNTUA//8AkP/uBG0GJQImDZ0AAAEHAN0A6gBOABlADAIBACYtABJAAQICJrkDrwApACsBKzU1AP//AJD+WgRcBHICJg2dAAABBwDeAbsAAAALtgEAPCsdHUABKzUA//8AFAAABjwGIQImDZ8AAAEHANYB3wBOABZACgEAJikXGEABASa5A68AKQArASs1//8AFAAABjwGIgImDZ8AAAEHAEMBugBPABZACgEAJyYXGEABASe5A68AKQArASs1//8AFAAABjwGIgImDZ8AAAEHAI0B8wBPABZACgEAJikXGEABASa5A68AKQArASs1//8AFAAABjwF1gImDZ8AAAEHAI4B1wADABlADAIBACYtFxhAAQICJrkDrwApACsBKzU1AP//AAgAAASbBiICJg2hAAABBwDWAQIATwAWQAoBAAkMAgZAAQEJuQOvACkAKwErNf//AAgAAASbBewCJg2hAAABBwCOAQAAGQAZQAwCAQAJEAIGQAECAgm5A68AKQArASs1NQD//wAIAAAEmwYiAiYNoQAAAQcAQwDAAE8AFkAKAQAKCQIGQAEBCrkDrwApACsBKzX//wAfAAAD/AYkAiYNogAAAQcAjQD2AFEAFkAKAQAKDQQFQAEBCrkDrwApACsBKzX//wAfAAAD/AYDAiYNogAAAQcA2gDaADAAFkAKAQAKDQQFQAEBCrkDrwApACsBKzX//wAfAAAD/AYiAiYNogAAAQcA3wDcAE8AFkAKAQAQDwQFQAEBELkDrwApACsB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AiYNdgAAAQcA2gGWAWoAFkAKAgAnKgwMQAIBJ7kCNAApACsBKzX//wBZ/loFgQXTAiYNdgAAAQcA3gJhAAAAC7YCADosBARAASs1AP//AFn/5wWBBz0CJg12AAABBwDfAZQBagAWQAoCACcrDAxAAgEtuQI0ACkAKwErNf//AFn/5wWBBdMCBg12AAD//wBZ/+cFgQb/AiYNdgAAAQcAjgGZASwAGUAMAwIAJy4MDEACAwInuQI0ACkAKwErNTUA//8AlgAABU0HCgImDXcAAAEHANcBpwFWABZACgEAHywPHUABAR+5AjQAKQArASs1//8AlgAABU0HPQImDXcAAAEHAI0BvQFqABZACgEAHiEPHUABAR65AjQAKQArASs1//8Alv5bBU0F0wImDXcAAAEHAe4BuQAAAAu2AQAeLA0BQAErNQD//wCWAAAFTQc9AiYNdwAAAQcA3wGqAWoAFkAKAQAeIg8dQAEBJLkCNAApACsBKzX//wCM/+gFQwc9AiYNeQAAAQcAQwGWAWoAFkAKAQAfHgAOQAEBH7kCNAApACsBKzX//wCM/+gFQwc9AiYNeQAAAQcAjQG6AWoAFkAKAQAeIQAOQAEBHrkCNAApACsBKzX//wCM/+gFQwb/AiYNeQAAAQcAjgGOASwAGUAMAgEAHiUADkABAgIeuQI0ACkAKwErNTUA//8AjP/oBUMHCgImDXkAAAEHANcBkwFWABZACgEAHywADkABAR+5AjQAKQArASs1//8AjP/oBUMG+AImDXkAAAEHANgBjgFqABZACgEAHiEADkABAR65AjQAKQArASs1//8AjP/oBUMHPQImDXkAAAEHANkBjgFqABZACgEAJR8ADkABASK5AjQAKQArASs1//8AjP/oBUMHlAImDXkAAAEHANsBjQGSABlADAIBACQeAA5AAQICIbkCNAApACsBKzU1AP//AIz/6AVDB0MCJg15AAABBwDdAUoBbAAZQAwCAQAeJQAOQAECAh65AjQAKQArASs1NQD//wCM/loFQwW7AiYNeQAAAQcA3gN2AAAAC7YBADQeEA9AASs1AP//ADsAAALbBz0CJg16AAABBwBDACEBagAWQAoBAAwMBARAAQENuQI0ACkAKwErNf//ADsAAALbBz0CJg16AAABBwCNADkBagAWQAoBAAwMCwtAAQEMuQI0ACkA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//8AMP5kBIAHUwImA6IAAAEHBTMCMACgABVACwIBADMyHiVAAgEzAC81NQErNTUA////ugElBDAHUwImA6MAAAEHBTMB9ACgABVACwIBABcWCgNAAgEXAC81NQErNTUA////ugElBDAHUwImA6MAAAEHBTMB9ACgABVACwIBABcWCgNAAgEXAC81NQErNTUA////zADgAXIGRAImA40AAAEHDtwAMgK8ABO5AAH/5rYUFAwMQAEeAC81ASs1AP///2gBJQHgBkQCJgOOAAABBw7c/84CvAATuQAB//C2FhYKCkABIAAvNQErNQD////mAOABcgZFAiYDjQAAAQcO3QAyArwAEUAJAQAUFAwMQAEjAC81ASs1AP///4IBJQHgBkUCJgOOAAABBw7d/84CvAARQAkBABYWCgpAASUALzUBKzUA//8Al/+FBJkD7AImAzUAAAEHDtwCJgBkABFACQEAT0AiN0ABSgAvNQErNQD//wAK/pwEbwOIAiYDNgAAAQcO3AImAAAAEUAJAQBBMhgpQAE8AC81ASs1AP///7r/WwIsBOYCJgUpAAAAJgUuAAAABw7cAPABXv///7r/WwIsBOYCJgUpAAAAJgUuAAAABw7cAPABXv//AJf/hQSZA+0CJgM1AAABBw7dAiYAZAARQAkBAFRAIjdAAU8ALzUBKzUA//8ACv6cBG8DiQImAzYAAAEHDt0CJgAAABFACQEAMjIpKUABQQAvNQErNQD///+6/1sCLATnAiYFKQAAACYFLgAAAAcO3QDwAV7///+6/1sCLATnAiYFKQAAACYFLgAAAAcO3QDwAV7//wCX/jQEmQOxAiYDNQAAAQcO3gLQ+/AAEUAJAQBZWTc3QAFWAC81ASs1AP//AAr9qARvAkICJgM2AAABBw7eA1L7ZAARQAkBAEsyKQdAAUgALzUBKzUA////uv56AiwD8AImBSkAAAAmBm0AZAEHDt4BGPw2ADRAEQMALRQSDEACAQASDAEAQAMquP/AsxQcNCq4/8C2DQ00KgIBEQAvNTUvKys1ASs1NSs1////uv56AiwD8AImBSkAAAAmBm0AZAEHDt4BGPw2ADRAEQMALRQSDEACAQASDAEAQAMquP/AsxQcNCq4/8C2DQ00KgIBEQAvNTUvKys1ASs1NSs1//8ABv9uA5wEZAImA+0AAAEHDtwBhgDc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AMQCVP9MASsAD/8fASsAEf8fASsB+f8hASsB+/8hASsCAf8hASsCE/++ASsCGv++ASsCJwBeASwB+f/JASwB+//JASwCAf/JASwCCv/HASwCD//HAS0B+f/JAS0CCf/JAS0CCv/HAS0CD//HAS8BMv/HAS8CJP+2AS8CjP/HATIBLv/HATIBL//HATIBMf/HATIBM//HATICEP/HATICF//HATICIP/HATICIv/HATICJv/HATICK//HATMBMv/HATMCHP/nATMCJP+2ATMCjP/HAfEBLP/JAfEBLf/JAfECBf/JAfECCf9WAfECCv9GAfECD/9GAfECFv+0AfECHv+0AfECJP+0AfUCCv/HAfUCD//HAfYBLP+yAfYBLf+yAfYBLv9oAfYBL/+0AfYBMf9oAfYBM/9oAfYB+AEAAfYB+f9GAfYB+/9GAfYCAf9GAfYCBf+yAfYCDf+yAfYCEP9oAfYCEv+0AfYCE/+0AfYCGP+0AfYCGv+0AfYCG/+0AfYCHf+0AfYCIP9oAfYCJwBcAfYCKf9oAfcCCv/HAfcCD//HAfkAtv+PAfkBLP/JAfkBLf/JAfkCBf/JAfkCCf9WAfkCCv9GAfkCD/9GAfkCFv+0AfkCHv+0AfkCJP+0AfsBLP/JAfsCBf/JAfsCCf9WAfsCCv9GAfsCD/9GAgABLP+iAgABLf+iAgABLv/RAgABL//RAgABMf/RAgABM//RAgACBf+iAgACEP/RAgACF//RAgACGf/RAgACH//RAgACIP/RAgACJv/RAgACKf/RAgACK//RAgEBLP/JAgECBf/JAgECCf9WAgECCv9GAgECD/9GAgUB+f/JAgUB+//JAgUCAf/JAgUCCv/HAgUCD//HAgcAD/76AgcAEf76AgcB+f9oAgcB+/9oAgcCAf9oAggBMv/dAggCjP/dAgkAD/8fAgkAEP+PAgkAEf8fAgkAHf8fAgkAHv8fAgkBLP/bAgkBLf/JAgkBLv9oAgkBL/+sAgkBMP9oAgkBMf9oAgkBM/9oAgkB+ADyAgkB+f9oAgkB+/9cAgkCAf9oAgkCBf/bAgkCDf/bAgkCEP9oAgkCEf9oAgkCFv9oAgkCGP9oAgkCGv/bAgkCHf9oAgkCHv9oAgkCIP9oAgkCI/9oAgkCJP+FAgkCJf9oAgkCJwBcAgkCKP9oAgkCKf9oAgkCKv9oAgoAD/8fAgoAEP+PAgoAEf8fAgoAHf9oAgoAHv9oAgoBLP+yAgoBLf+yAgoBLv9oAgoBL/+0AgoBMf9oAgoBM/9oAgoB+AEAAgoB+f9GAgoB+/9GAgoCAf9GAgoCBf+yAgoCDf+yAgoCEP9oAgoCEv+0AgoCE/+0AgoCFv+sAgoCGP+0AgoCGv+0AgoCG/+0AgoCHf+0AgoCIP9oAgoCJwBcAgoCKf9oAgsCJv/lAgsCK//lAgwBLv/bAgwBL//bAgwBMf/bAgwBM//bAgwCEP/bAgwCIP/bAgwCJv/bAgwCKf/bAgwCK//bAg0CCv/HAg0CD//HAg8BLP+yAg8BLf+yAg8BLv9oAg8BL/+0Ag8BMf9oAg8BM/9oAg8B+AEAAg8B+f9GAg8B+/9GAg8CAf9GAg8CBf+yAg8CDf+yAg8CEP9oAg8CEv+0Ag8CE/+0Ag8CGP+0Ag8CGv+0Ag8CG/+0Ag8CHf+0Ag8CIP9oAg8CJwBcAg8CKf9oAhcBLv+NAhcBL/+0AhcBMf+NAhcBMv+0AhcBM/+NAhcCEP+NAhcCEv/PAhcCFv++AhcCGP/PAhcCGf+0AhcCGv/PAhcCG//PAhcCHv++AhcCIP+NAhcCJv+NAhcCKf+NAhcCK/+NAhcCjP+0AhsBLv+8AhsBL/+8AhsBMf+8AhsBM/+8AhsCEP+8AhsCF/+8AhsCGf/jAhsCH/+8AhsCIP+8AhsCIv+8AhsCJv+8AhsCKf+8AhsCK/+8AhwBLv/nAhwBL//nAhwBMf/nAhwBM//nAhwCEP/nAhwCFP/hAhwCF//nAhwCH//nAhwCIP/nAhwCIv/nAhwCI//hAhwCJv/nAhwCKP/hAhwCKf/nAhwCKv/hAhwCK//nAh8BLv/nAh8BL//nAh8BMf/nAh8BM//nAh8CEP/nAh8CF//nAh8CH//nAh8CIP/nAh8CIv/nAh8CKf/nAiABMv/HAiACJP+2AiACjP/HAiEBMv/HAiECjP/HAiQBLv+2AiQBL/+2AiQBMf+2AiQBM/+2AiQCEP+2AiQCF/+2AiQCIP+2AiQCIv+2AiQCJv/VAiQCKf+2AiQCK//VAiYBMv/HAiYCJP/VAiYCjP/HAikBMv/HAikCJP+2AikCjP/HAisBMv/HAisCJP/VAisCjP/HAi4AD/8ZAi4AEf8AAi4AHf/lAi4AHv/lAi4Aqf+yAi4Aqv+yAjQAtv8zAjUAtv8zAjoAtv+YAjoCPgBMAjoCRQAZAjoCSP/lAjoCSf/lAjoCS//NAjoCTP+aAjoCTf+yAjoCTv/NAjoCUf9kAjoCV//NAjoCWgAZAjoCW//lAjoCa//lAjoCbP/lAjoCdwAZAjsCOv+yAjsCQP/NAjsCQf/lAjsCRf/NAjsCS//lAjsCTP/NAjsCTf/NAjsCTv/lAjsCT//NAjsCUf+yAjsCVP+yAjsCV//NAjsCWf/NAjsCbf/lAjwCOv+aAjwCPv/lAjwCQP+yAjwCQf/lAjwCRf/NAjwCSP/NAjwCS/+yAjwCTP+yAjwCTf+yAjwCTv/NAjwCT/+yAjwCUf+yAjwCVP+aAjwCWf/NAjwCbP/lAjwCb//lAjwCcf+yAj0AD/8ZAj0AEf8AAj0AHf/lAj0AHv/lAj0Aqf+yAj0Aqv+yAj0COv9/Aj0CPv/NAj0CRf/NAj0CSP/lAj0CS//lAj0CWv/lAj0CXP/NAj0CXv+yAj0CX/+YAj0CYv/NAj0CZf+aAj0CZv+yAj0CZ//NAj0CaP+aAj0Cav+yAj0Cbf+yAj0Cdf+yAj0Cdv+yAj0CeP+yAj0Cef+yAj4CQQAZAj4CTQAZAj4CTv/lAj4CUf/lAj4CXwAZAj4CYQAzAj4CaAAZAj4CbQAZAkACQQAZAkACSP/lAkACS//NAkACTAAzAkACTQAzAkACUQAZAkACVABMAkACWgAZAkACaP/lAkECQP/NAkECRf/NAkECSP/lAkECS//NAkECTP+yAkECTf+yAkECTv/NAkECUf+yAkECWf/NAkQCQQBMAkQCS//lAkQCTAAzAkQCTQAzAkQCTv/lAkQCUQAzAkQCVwAZAkQCWgAZAkQCYQAZAkQCa//lAkUCWgAzAkYCWgAZAkYCa//lAkYCcf/lAkgCOv/NAkgCPv/lAkgCQP/lAkgCRf/NAkgCTf/NAkgCT/+yAkgCWf/lAkgCXv/NAkgCZf/lAkoAD/7lAkoAEf7NAkoAHf/lAkoAHv/lAkoCOv9MAkoCPv9/AkoCQP/lAkoCQf/lAkoCRf9/AkoCRv/lAkoCSP/lAkoCS//NAkoCTP/lAkoCTf/lAkoCTv/lAkoCT/+yAkoCWf/NAkoCWv/lAkoCXv9/AkoCX//NAkoCaP/NAkoCef/lAksCOv/NAksCPv/lAksCQf/lAksCRf/NAksCRv/lAksCSP/NAksCTP/NAksCTf/lAksCT/+yAksCUf/NAksCVP/lAksCV//lAksCWgAZAksCW//lAksCYAAZAksCa//lAksCbv/lAksCcf/lAkwAD/8zAkwAEf8ZAkwAHf/lAkwAHv/lAkwAqf/NAkwCOv9/AkwCPv/NAkwCQAAzAkwCRf/NAkwCSP/NAkwCTv+yAkwCWf/lAkwCWv/NAkwCXP+yAkwCX/+aAkwCYv+yAkwCZP+yAkwCZf9/AkwCZv+YAkwCaP9/AkwCaf/lAkwCav+yAkwCa/9/AkwCbf+yAkwCb/+yAkwCc//lAkwCdf/lAkwCdv/lAkwCeP/lAkwCef/NAk0AD/8ZAk0AEf8AAk0AHf/NAk0AHv/NAk0Aqf+yAk0Aqv+yAk0COv9mAk0CPv+YAk0CRf+yAk0CSP/NAk0CTv+yAk0CV//lAk0CWf/NAk0CW//NAk0CXP+yAk0CXf+yAk0CXv9/Ak0CX/9/Ak0CYP/lAk0CYf+aAk0CYv+yAk0CY/+yAk0CZP+yAk0CZf9/Ak0CZv+aAk0CZ/+yAk0CaP9/Ak0Caf+yAk0Cav+yAk0Ca/9/Ak0Cb//NAk0CcP+yAk0Ccv+yAk0Cc/+yAk0CeP+yAk0Cef+aAk4COv/NAk4CPv+YAk4CRf+yAk4CTP+yAk4CTf+yAk4CTv/lAk4CUf/lAk4CWf/LAk4CZf/NAk8CQf/lAk8CSP/LAk8CS/+yAk8CTv+yAk8CV//NAk8CaP/lAk8Cbf/lAlACWgBMAlACXwAZAlACaAAZAlMCWgAZAlQAtv8zAlQCWf+yAlYAtv9mAlYCOv/NAlYCPv/lAlYCQP+yAlYCQf/NAlYCRf+yAlYCRv/NAlYCSP/lAlYCS//NAlYCTP8xAlYCT/+YAlYCUf9mAlYCV/+yAlYCWf+yAlcCPv/NAlcCQP/NAlcCQf/lAlcCRf+yAlcCTv/lAlcCT//NAlcCWf/NAlcCXv/lAlcCYAAZAlcCZf/NAlgCOv/NAlgCPv/NAlgCQP/NAlgCRf+yAlgCS//lAlgCTP/NAlgCT/+yAlgCUf/lAlgCXv/NAlgCYAAZAlgCZf/NAloCYQAZAloCcf/NAlsCXv/NAlsCYP/lAlsCYf/lAlsCZf/NAlsCZv/lAlsCa//lAlsCbf/lAlsCb//NAlsCcf/NAlsCdP/lAlsCd//lAlsCef/lAlwCWv/lAlwCW//lAlwCX//lAlwCYP/lAlwCZf/lAlwCZv/lAlwCaP/lAlwCa//NAlwCbP/lAlwCbf/NAlwCbv/lAlwCcf+yAlwCdP/NAlwCef/lAl0AD/9MAl0AEf8zAl0CXv+yAl0CZf/NAl0CaP/lAl0Ca//lAl4CYQAZAl4Ca//lAl4CbQAZAl4CdP/lAl8CW//lAl8CYP/lAl8CZv/lAl8Ca//lAl8CbP/lAl8Cbf/lAl8Cb//lAl8Ccf/NAmACWgAZAmACX//lAmACYQAZAmACaP/NAmACa//lAmACcf/NAmECWv/lAmECW//NAmECX//lAmECYP/lAmECYf/lAmECZf/lAmECZv/NAmECaP/NAmECa//NAmECbf/NAmECbv/lAmECcf+yAmECdP/NAmQCZQAZAmQCaP/lAmQCa//lAmQCbv/lAmQCcf/lAmQCd//lAmUCW//lAmUCX//lAmUCaP/lAmUCa//lAmUCbf/lAmUCcf/NAmYCWv/lAmYCW//lAmYCYf/lAmYCaP/lAmYCa//lAmYCbf/lAmYCbv/lAmYCd//lAmgCXv/lAmgCYP/lAmgCYf/lAmgCZf/NAmgCZv/lAmgCa//lAmgCbP/NAmgCbf/lAmgCb//NAmgCcf/NAmgCd//lAmgCef/lAmoCXv/NAmoCYP/lAmoCYf/lAmoCZf/NAmoCZv/lAmoCbP/lAmoCbf/lAmoCb//lAmoCcf/NAmoCd//lAmoCef/lAmsCWgAZAmsCW//lAmsCb//lAmsCcf/LAmsCdP/lAmwAD/9mAmwAEf9MAmwCXv/lAmwCYAAZAmwCZf/lAmwCaP/lAmwCa//lAmwCbQAzAm0AD/9mAm0AEf9MAm0AHf/lAm0AHv/lAm0AqgAzAm0CWv/lAm0CXv/NAm0CX//lAm0CYAAZAm0CYf/lAm0CZf/lAm0CZv/lAm0CaP/NAm0Cav/lAm0Ca//NAm0CbAAZAm0Cbv/lAm0CbwAZAm0Cd//lAm0Cef/lAm4CW//lAm4CXv/lAm4CX//lAm4CZf/NAm4CZv/lAm4CaP/lAm4CbP/lAm4Cbf/lAm4Ccf/NAm4Cef/lAm8CW//lAm8CX//NAm8CYf/lAm8CaP/NAm8Ca//NAm8CbQAZAm8Cbv/lAm8Ccf/NAm8Cd//lAnACWgAZAnACYQAZAnACa//lAnMCWgAZAnMCaP/lAnYCbP9MAnYCcf9MAncCW//lAncCXv/lAncCYP/lAncCYf/lAncCZf/NAncCZv/lAncCa//lAncCbP/lAncCb//lAncCef/lAngCW//lAngCXv/lAngCYP/lAngCZf/NAngCZv/lAngCa//lAngCbP/NAngCb//NAngCcf+yAngCd//lAoYAD/9mAoYAEf9MAoYAHf/lAoYAHv/lAoYAqf/NAogAD/9/AogAEf9mAogAHf/lAogAHv/lAogAqf/NAogAqv/NAowBLv/HAowBL//HAowBMf/HAowBM//HAowCEP/HAowCF//HAowCHP+0AowCIP/HAowCIv/HAowCJv/HAowCK//HAAAAAABTA+oAAAADAAAAAAIaAAAAAAADAAAAAQAKAhoAAAADAAAAAgAIAiQAAAADAAAAAwA+AiwAAAADAAAABAAUAj4AAAADAAAABQAYAmoAAAADAAAABgAYAoIAAAADAAAABwBkApoAAAADAAAACAAwAA4AAAADAAAACQCKAv4AAAADAAAADQ4EA4gAAQAAAAAAAAENEYwAAQAAAAAAAQAFEpkAAQAAAAAAAgAEEp4AAQAAAAAAAwAfEqIAAQAAAAAABAAKEqsAAQAAAAAABQAMEsEAAQAAAAAABgAMEs0AAQAAAAAABwAxEtkAAQAAAAAACAAYEZMAAQAAAAAACQBFEwoAAQAAAAAADQcCE08AAwABBAMAAgAOGlEAAwABBAMABAAaGl8AAwABBAUAAgAKGnkAAwABBAUABAAWGoMAAwABBAYAAgAGGpkAAwABBAYABAASGp8AAwABBAcAAgAIGrEAAwABBAcABAAUGrkAAwABBAgAAgAMGs0AAwABBAgABAAYGtkAAwABBAkAAAIeGvEAAwABBAkAAQAKAhoAAwABBAkAAgAIAiQAAwABBAkAAwA+AiwAAwABBAkABAAUAj4AAwABBAkABQAYAmoAAwABBAkABgAYAoIAAwABBAkABwBiHQ8AAwABBAkACAAwAA4AAwABBAkACQCKAv4AAwABBAkADQ4UHXEAAwABBAoAAgAOK4UAAwABBAoABAAaK5MAAwABBAsAAgASK60AAwABBAsABAAeK78AAwABBAwAAgAIK90AAwABBAwABAAUK+UAAwABBA4AAgAQK/kAAwABBA4ABAAcLAkAAwABBBAAAgASLCUAAwABBBAABAAeLDcAAwABBBMAAgAGLFUAAwABBBMABAASLFsAAwABBBQAAgAOLG0AAwABBBQABAAaLHsAAwABBBUAAgAULJUAAwABBBUABAAgLKkAAwABBBYAAgAOLMkAAwABBBYABAAaLNcAAwABBBkAAgAULPEAAwABBBkABAAgLQUAAwABBBsAAgAKLSUAAwABBBsABAAWLS8AAwABBB0AAgAGGrEAAwABBB0ABAASGrkAAwABBB8AAgAKLUUAAwABBB8ABAAWLU8AAwABBCQAAgAMLWUAAwABBCQABAAYLXEAAwABBCoAAgAILYkAAwABBCoABAAULZEAAwABBC0AAgAKLaUAAwABBC0ABAAWLa8AAwABCAoAAgAOK4UAAwABCAoABAAaK5MAAwABCBYAAgAOLMkAAwABCBYABAAaLNcAAwABDAoAAgAOK4UAAwABDAoABAAaK5MAAwABDAwAAgAIK90AAwABDAwABAAUK+UAqQAgADIAMAAxADcAIABUAGgAZQAgAE0AbwBuAG8AdAB5AHAAZQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuACAADQANAEgAZQBiAHIAZQB3ACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABjAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAAzACAAJgAgADIAMAAwADcALAAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIAAmACAASgBvAGgAbgAgAEgAdQBkAHMAbwBuAC4AIABUAGgAaQBzACAAbABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAaQBzACAAbwBwAGUAbgAgAHMAbwB1AHIAYwBlACAAcwBvAGYAdAB3AGEAcgBlACAAdQBuAGQAZQByACAAdABoAGUAIABNAEkAVAAgAEwAaQBjAGUAbgBzAGUAOwAgAHMAZQBlACAAZQBtAGIAZQBkAGQAZQBkACAAbABpAGMAZQBuAHMAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAZABlAHQAYQBpAGwAcwAuAEEAcgBpAGEAbABCAG8AbABkAE0AbwBuAG8AdAB5AHAAZQA6AEEAcgBpAGEAbAAgAEIAbwBsAGQAIAAoAE0AaQBjAHIAbwBzAG8AZgB0ACkAVgBlAHIAcwBpAG8AbgAgADcALgAwADAAQQByAGkAYQBsAC0AQgBvAGwAZABNAFQAQQByAGkAYQBsACAAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABUAGgAZQAgAE0AbwBuAG8AdAB5AHAAZQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuAE0AbwBuAG8AdAB5AHAAZQAgAFQAeQBwAGUAIABEAHIAYQB3AGkAbgBnACAATwBmAGYAaQBjAGUAIAAtACAAUgBvAGIAaQBuACAATgBpAGMAaABvAGwAYQBzACwAIABQAGEAdAByAGkAYwBpAGEAIABTAGEAdQBuAGQAZQByAHMAIAAxADkAOAAyAE0AaQBjAHIAbwBzAG8AZgB0ACAAcwB1AHAAcABsAGkAZQBkACAAZgBvAG4AdAAuACAAWQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGkAcwAgAGYAbwBuAHQAIAB0AG8AIABjAHIAZQBhAHQAZQAsACAAZABpAHMAcABsAGEAeQAsACAAYQBuAGQAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABiAHkAIAB0AGgAZQAgAGwAaQBjAGUAbgBzAGUAIAB0AGUAcgBtAHMAIABvAHIAIAB0AGUAcgBtAHMAIABvAGYAIAB1AHMAZQAsACAAbwBmACAAdABoAGUAIABNAGkAYwByAG8AcwBvAGYAdAAgAHAAcgBvAGQAdQBjAHQALAAgAHMAZQByAHYAaQBjAGUALAAgAG8AcgAgAGMAbwBuAHQAZQBuAHQAIABpAG4AIAB3AGgAaQBjAGgAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAaQBuAGMAbAB1AGQAZQBkAC4AIABZAG8AdQAgAG0AYQB5ACAAbwBuAGwAeQAgACgAaQApACAAZQBtAGIAZQBkACAAdABoAGkAcwAgAGYAbwBuAHQAIABpAG4AIABjAG8AbgB0AGUAbgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABiAHkAIAB0AGgAZQAgAGUAbQBiAGUAZABkAGkAbgBnACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuAHMAIABpAG4AYwBsAHUAZABlAGQAIABpAG4AIAB0AGgAaQBzACAAZgBvAG4AdAA7ACAAYQBuAGQAIAAoAGkAaQApACAAdABlAG0AcABvAHIAYQByAGkAbAB5ACAAZABvAHcAbgBsAG8AYQBkACAAdABoAGkAcwAgAGYAbwBuAHQAIAB0AG8AIABhACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAG8AdABoAGUAcgAgAG8AdQB0AHAAdQB0ACAAZABlAHYAaQBjAGUAIAB0AG8AIABoAGUAbABwACAAcAByAGkAbgB0ACAAYwBvAG4AdABlAG4AdAAuACAAQQBuAHkAIABvAHQAaABlAHIAIAB1AHMAZQAgAGkAcwAgAHAAcgBvAGgAaQBiAGkAdABlAGQALgANAA0AVABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAGwAaQBjAGUAbgBzAGUALAAgAGIAYQBzAGUAZAAgAG8AbgAgAHQAaABlACAATQBJAFQAIABsAGkAYwBlAG4AcwBlACAAKABoAHQAdABwADoALwAvAGUAbgAuAHcAaQBrAGkAcABlAGQAaQBhAC4AbwByAGcALwB3AGkAawBpAC8ATQBJAFQAXwBMAGkAYwBlAG4AcwBlACkALAAgAGEAcABwAGwAaQBlAHMAIAB0AG8AIAB0AGgAZQAgAE8AcABlAG4AVAB5AHAAZQAgAEwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAZgBvAHIAIABCAGkAYgBsAGkAYwBhAGwAIABIAGUAYgByAGUAdwAgIBwATABhAHkAbwB1AHQAIABMAG8AZwBpAGMgHQAgAGEAcwAgAGoAbwBpAG4AdABsAHkAIABkAGUAdgBlAGwAbwBwAGUAZAAgAGIAeQAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIABhAG4AZAAgAEoAbwBoAG4AIABIAHUAZABzAG8AbgAuACAADQANAFAAZQByAG0AaQBzAHMAaQBvAG4AIABpAHMAIABoAGUAcgBlAGIAeQAgAGcAcgBhAG4AdABlAGQALAAgAGYAcgBlAGUAIABvAGYAIABjAGgAYQByAGcAZQAsACAAdABvACAAYQBuAHkAIABwAGUAcgBzAG8AbgAgAG8AYgB0AGEAaQBuAGkAbgBnACAAYQAgAGMAbwBwAHkAIABvAGYAIAB0AGgAZQAgAE8AcABlAG4AVAB5AHAAZQAgAEwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAZgBvAHIAIABCAGkAYgBsAGkAYwBhAGwAIABIAGUAYgByAGUAdwAgAGEAbgBkACAAYQBzAHMAbwBjAGkAYQB0AGUAZAAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAGkAbABlAHMAIAAoAHQAaABlACAgHABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZSAdACkALAAgAHQAbwAgAGQAZQBhAGwAIABpAG4AIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlACAAdwBpAHQAaABvAHUAdAAgAHIAZQBzAHQAcgBpAGMAdABpAG8AbgAsACAAaQBuAGMAbAB1AGQAaQBuAGcAIAB3AGkAdABoAG8AdQB0ACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAHQAaABlACAAcgBpAGcAaAB0AHMAIAB0AG8AIAB1AHMAZQAsACAAYwBvAHAAeQAsACAAbQBvAGQAaQBmAHkALAAgAG0AZQByAGcAZQAsACAAcAB1AGIAbABpAHMAaAAsACAAZABpAHMAdAByAGkAYgB1AHQAZQAsACAAcwB1AGIAbABpAGMAZQBuAHMAZQAsACAAYQBuAGQALwBvAHIAIABzAGUAbABsACAAYwBvAHAAaQBlAHMAIABvAGYAIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlACwAIABhAG4AZAAgAHQAbwAgAHAAZQByAG0AaQB0ACAAcABlAHIAcwBvAG4AcwAgAHQAbwAgAHcAaABvAG0AIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZgB1AHIAbgBpAHMAaABlAGQAIAB0AG8AIABkAG8AIABzAG8ALAAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAYwBvAG4AZABpAHQAaQBvAG4AcwA6AA0ADQBUAGgAZQAgAGEAYgBvAHYAZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACAAbgBvAHQAaQBjAGUAIABhAG4AZAAgAHQAaABpAHMAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAbgBvAHQAaQBjAGUAIABzAGgAYQBsAGwAIABiAGUAIABpAG4AYwBsAHUAZABlAGQAIABpAG4AIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwByACAAcwB1AGIAcwB0AGEAbgB0AGkAYQBsACAAcABvAHIAdABpAG8AbgBzACAAbwBmACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAuAA0ADQBUAEgARQAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFAAUgBPAFYASQBEAEUARAAgACcAQQBTACAASQBTACcALAAgAFcASQBUAEgATwBVAFQAIABXAEEAUgBSAEEATgBUAFkAIABPAEYAIABBAE4AWQAgAEsASQBOAEQALAAgAEUAWABQAFIARQBTAFMAIABPAFIAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEIAVQBUACAATgBPAFQAIABMAEkATQBJAFQARQBEACAAVABPACAAVABIAEUAIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBGACAATQBFAFIAQwBIAEEATgBUAEEAQgBJAEwASQBUAFkALAAgAEYASQBUAE4ARQBTAFMAIABGAE8AUgAgAEEAIABQAEEAUgBUAEkAQwBVAEwAQQBSACAAUABVAFIAUABPAFMARQAgAEEATgBEACAATgBPAE4ASQBOAEYAUgBJAE4ARwBFAE0ARQBOAFQALgAgAEkATgAgAE4ATwAgAEUAVgBFAE4AVAAgAFMASABBAEwATAAgAFQASABFACAAQQBVAFQASABPAFIAUwAgAE8AUgAgAEMATwBQAFkAUgBJAEcASABUACAASABPAEwARABFAFIAUwAgAEIARQAgAEwASQBBAEIATABFACAARgBPAFIAIABBAE4AWQAgAEMATABBAEkATQAsACAARABBAE0AQQBHAEUAUwAgAE8AUgAgAE8AVABIAEUAUgAgAEwASQBBAEIASQBMAEkAVABZACwAIABXAEgARQBUAEgARQBSACAASQBOACAAQQBOACAAQQBDAFQASQBPAE4AIABPAEYAIABDAE8ATgBUAFIAQQBDAFQALAAgAFQATwBSAFQAIABPAFIAIABPAFQASABFAFIAVwBJAFMARQAsACAAQQBSAEkAUwBJAE4ARwAgAEYAUgBPAE0ALAAgAE8AVQBUACAATwBGACAATwBSACAASQBOACAAQwBPAE4ATgBFAEMAVABJAE8ATgAgAFcASQBUAEgAIABUAEgARQAgAFMATwBGAFQAVwBBAFIARQAgAE8AUgAgAFQASABFACAAVQBTAEUAIABPAFIAIABPAFQASABFAFIAIABEAEUAQQBMAEkATgBHAFMAIABJAE4AIABUAEgARQAgAFMATwBGAFQAVwBBAFIARQAuqSAyMDE3IFRoZSBNb25vdHlwZSBDb3Jwb3JhdGlvbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gDQ1IZWJyZXcgT3BlblR5cGUgTGF5b3V0IGxvZ2ljIGNvcHlyaWdodCCpIDIwMDMgJiAyMDA3LCBSYWxwaCBIYW5jb2NrICYgSm9obiBIdWRzb24uIFRoaXMgbGF5b3V0IGxvZ2ljIGZvciBCaWJsaWNhbCBIZWJyZXcgaXMgb3BlbiBzb3VyY2Ugc29mdHdhcmUgdW5kZXIgdGhlIE1JVCBMaWNlbnNlOyBzZWUgZW1iZWRkZWQgbGljZW5zZSBkZXNjcmlwdGlvbiBmb3IgZGV0YWlscy5BcmlhbEJvbGRNb25vdHlwZTpBcmlhbCBCb2xkIChNaWNyb3NvZnQpVmVyc2lvbiA3LjAwQXJpYWwtQm9sZE1UQXJpYWwgaXMgYSB0cmFkZW1hcmsgb2YgVGhlIE1vbm90eXBlIENvcnBvcmF0aW9uLk1vbm90eXBlIFR5cGUgRHJhd2luZyBPZmZpY2UgLSBSb2JpbiBOaWNob2xhcywgUGF0cmljaWEgU2F1bmRlcnMgMTk4Mk1pY3Jvc29mdCBzdXBwbGllZCBmb250LiBZb3UgbWF5IHVzZSB0aGlzIGZvbnQgdG8gY3JlYXRlLCBkaXNwbGF5LCBhbmQgcHJpbnQgY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGxpY2Vuc2UgdGVybXMgb3IgdGVybXMgb2YgdXNlLCBvZiB0aGUgTWljcm9zb2Z0IHByb2R1Y3QsIHNlcnZpY2UsIG9yIGNvbnRlbnQgaW4gd2hpY2ggdGhpcyBmb250IHdhcyBpbmNsdWRlZC4gWW91IG1heSBvbmx5IChpKSBlbWJlZCB0aGlzIGZvbnQgaW4gY29udGVudCBhcyBwZXJtaXR0ZWQgYnkgdGhlIGVtYmVkZGluZyByZXN0cmljdGlvbnMgaW5jbHVkZWQgaW4gdGhpcyBmb250OyBhbmQgKGlpKSB0ZW1wb3JhcmlseSBkb3dubG9hZCB0aGlzIGZvbnQgdG8gYSBwcmludGVyIG9yIG90aGVyIG91dHB1dCBkZXZpY2UgdG8gaGVscCBwcmludCBjb250ZW50LiBBbnkgb3RoZXIgdXNlIGlzIHByb2hpYml0ZWQuDQ1UaGUgZm9sbG93aW5nIGxpY2Vuc2UsIGJhc2VkIG9uIHRoZSBNSVQgbGljZW5zZSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVRfTGljZW5zZSksIGFwcGxpZXMgdG8gdGhlIE9wZW5UeXBlIExheW91dCBsb2dpYyBmb3IgQmlibGljYWwgSGVicmV3INJMYXlvdXQgTG9naWPTIGFzIGpvaW50bHkgZGV2ZWxvcGVkIGJ5IFJhbHBoIEhhbmNvY2sgYW5kIEpvaG4gSHVkc29uLiANDVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIE9wZW5UeXBlIExheW91dCBsb2dpYyBmb3IgQmlibGljYWwgSGVicmV3IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSDSTGF5b3V0IExvZ2ljIFNvZnR3YXJl0yksIHRvIGRlYWwgaW4gdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOg0NVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTGF5b3V0IExvZ2ljIFNvZnR3YXJlLg0NVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICdBUyBJUycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgBOAGUAZwByAGUAdABhAEEAcgBpAGEAbAAgAE4AZQBnAHIAZQB0AGEAdAB1AQ0AbgDpAEEAcgBpAGEAbAAgAHQAdQENAG4A6QBmAGUAZABBAHIAaQBhAGwAIABmAGUAZABGAGUAdAB0AEEAcgBpAGEAbAAgAEYAZQB0AHQDiAO9A8QDvwO9A7EAQQByAGkAYQBsACADiAO9A8QDvwO9A7EAqQAgADIAMAAxADcAIABUAGgAZQAgAE0AbwBuAG8AdAB5AHAAZQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuACAADQAKAA0ACgBIAGUAYgByAGUAdwAgAE8AcABlAG4AVAB5AHAAZQAgAEwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAYwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADAAMwAgACYAIAAyADAAMAA3ACwAIABSAGEAbABwAGgAIABIAGEAbgBjAG8AYwBrACAAJgAgAEoAbwBoAG4AIABIAHUAZABzAG8AbgAuACAAVABoAGkAcwAgAGwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAZgBvAHIAIABCAGkAYgBsAGkAYwBhAGwAIABIAGUAYgByAGUAdwAgAGkAcwAgAG8AcABlAG4AIABzAG8AdQByAGMAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAHUAbgBkAGUAcgAgAHQAaABlACAATQBJAFQAIABMAGkAYwBlAG4AcwBlADsAIABzAGUAZQAgAGUAbQBiAGUAZABkAGUAZAAgAGwAaQBjAGUAbgBzAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAGQAZQB0AGEAaQBsAHMALgBBAHIAaQBhAGwAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABUAGgAZQAgAE0AbwBuAG8AdAB5AHAAZQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuAE0AaQBjAHIAbwBzAG8AZgB0ACAAcwB1AHAAcABsAGkAZQBkACAAZgBvAG4AdAAuACAAWQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGkAcwAgAGYAbwBuAHQAIAB0AG8AIABjAHIAZQBhAHQAZQAsACAAZABpAHMAcABsAGEAeQAsACAAYQBuAGQAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABiAHkAIAB0AGgAZQAgAGwAaQBjAGUAbgBzAGUAIAB0AGUAcgBtAHMAIABvAHIAIAB0AGUAcgBtAHMAIABvAGYAIAB1AHMAZQAsACAAbwBmACAAdABoAGUAIABNAGkAYwByAG8AcwBvAGYAdAAgAHAAcgBvAGQAdQBjAHQALAAgAHMAZQByAHYAaQBjAGUALAAgAG8AcgAgAGMAbwBuAHQAZQBuAHQAIABpAG4AIAB3AGgAaQBjAGgAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHcAYQBzACAAaQBuAGMAbAB1AGQAZQBkAC4AIABZAG8AdQAgAG0AYQB5ACAAbwBuAGwAeQAgACgAaQApACAAZQBtAGIAZQBkACAAdABoAGkAcwAgAGYAbwBuAHQAIABpAG4AIABjAG8AbgB0AGUAbgB0ACAAYQBzACAAcABlAHIAbQBpAHQAdABlAGQAIABiAHkAIAB0AGgAZQAgAGUAbQBiAGUAZABkAGkAbgBnACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuAHMAIABpAG4AYwBsAHUAZABlAGQAIABpAG4AIAB0AGgAaQBzACAAZgBvAG4AdAA7ACAAYQBuAGQAIAAoAGkAaQApACAAdABlAG0AcABvAHIAYQByAGkAbAB5ACAAZABvAHcAbgBsAG8AYQBkACAAdABoAGkAcwAgAGYAbwBuAHQAIAB0AG8AIABhACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAG8AdABoAGUAcgAgAG8AdQB0AHAAdQB0ACAAZABlAHYAaQBjAGUAIAB0AG8AIABoAGUAbABwACAAcAByAGkAbgB0ACAAYwBvAG4AdABlAG4AdAAuACAAQQBuAHkAIABvAHQAaABlAHIAIAB1AHMAZQAgAGkAcwAgAHAAcgBvAGgAaQBiAGkAdABlAGQALgANAAoADQAKAFQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABsAGkAYwBlAG4AcwBlACwAIABiAGEAcwBlAGQAIABvAG4AIAB0AGgAZQAgAE0ASQBUACAAbABpAGMAZQBuAHMAZQAgACgAaAB0AHQAcAA6AC8ALwBlAG4ALgB3AGkAawBpAHAAZQBkAGkAYQAuAG8AcgBnAC8AdwBpAGsAaQAvAE0ASQBUAF8ATABpAGMAZQBuAHMAZQApACwAIABhAHAAcABsAGkAZQBzACAAdABvACAAdABoAGUAIABPAHAAZQBuAFQAeQBwAGUAIABMAGEAeQBvAHUAdAAgAGwAbwBnAGkAYwAgAGYAbwByACAAQgBpAGIAbABpAGMAYQBsACAASABlAGIAcgBlAHcAICAcAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjIB0AIABhAHMAIABqAG8AaQBuAHQAbAB5ACAAZABlAHYAZQBsAG8AcABlAGQAIABiAHkAIABSAGEAbABwAGgAIABIAGEAbgBjAG8AYwBrACAAYQBuAGQAIABKAG8AaABuACAASAB1AGQAcwBvAG4ALgAgAA0ACgANAAoAUABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGgAZQByAGUAYgB5ACAAZwByAGEAbgB0AGUAZAAsACAAZgByAGUAZQAgAG8AZgAgAGMAaABhAHIAZwBlACwAIAB0AG8AIABhAG4AeQAgAHAAZQByAHMAbwBuACAAbwBiAHQAYQBpAG4AaQBuAGcAIABhACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAYQBuAGQAIABhAHMAcwBvAGMAaQBhAHQAZQBkACAAZABvAGMAdQBtAGUAbgB0AGEAdABpAG8AbgAgAGYAaQBsAGUAcwAgACgAdABoAGUAICAcAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlIB0AKQAsACAAdABvACAAZABlAGEAbAAgAGkAbgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAdABoAG8AdQB0ACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAHcAaQB0AGgAbwB1AHQAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAHQAbwAgAHUAcwBlACwAIABjAG8AcAB5ACwAIABtAG8AZABpAGYAeQAsACAAbQBlAHIAZwBlACwAIABwAHUAYgBsAGkAcwBoACwAIABkAGkAcwB0AHIAaQBiAHUAdABlACwAIABzAHUAYgBsAGkAYwBlAG4AcwBlACwAIABhAG4AZAAvAG8AcgAgAHMAZQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUALAAgAGEAbgBkACAAdABvACAAcABlAHIAbQBpAHQAIABwAGUAcgBzAG8AbgBzACAAdABvACAAdwBoAG8AbQAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABmAHUAcgBuAGkAcwBoAGUAZAAgAHQAbwAgAGQAbwAgAHMAbwAsACAAcwB1AGIAagBlAGMAdAAgAHQAbwAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABjAG8AbgBkAGkAdABpAG8AbgBzADoADQAKAA0ACgBUAGgAZQAgAGEAYgBvAHYAZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACAAbgBvAHQAaQBjAGUAIABhAG4AZAAgAHQAaABpAHMAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAbgBvAHQAaQBjAGUAIABzAGgAYQBsAGwAIABiAGUAIABpAG4AYwBsAHUAZABlAGQAIABpAG4AIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwByACAAcwB1AGIAcwB0AGEAbgB0AGkAYQBsACAAcABvAHIAdABpAG8AbgBzACAAbwBmACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAuAA0ACgANAAoAVABIAEUAIABTAE8ARgBUAFcAQQBSAEUAIABJAFMAIABQAFIATwBWAEkARABFAEQAIAAnAEEAUwAgAEkAUwAnACwAIABXAEkAVABIAE8AVQBUACAAVwBBAFIAUgBBAE4AVABZACAATwBGACAAQQBOAFkAIABLAEkATgBEACwAIABFAFgAUABSAEUAUwBTACAATwBSACAASQBNAFAATABJAEUARAAsACAASQBOAEMATABVAEQASQBOAEcAIABCAFUAVAAgAE4ATwBUACAATABJAE0ASQBUAEUARAAgAFQATwAgAFQASABFACAAVwBBAFIAUgBBAE4AVABJAEUAUwAgAE8ARgAgAE0ARQBSAEMASABBAE4AVABBAEIASQBMAEkAVABZACwAIABGAEkAVABOAEUAUwBTACAARgBPAFIAIABBACAAUABBAFIAVABJAEMAVQBMAEEAUgAgAFAAVQBSAFAATwBTAEUAIABBAE4ARAAgAE4ATwBOAEkATgBGAFIASQBOAEcARQBNAEUATgBUAC4AIABJAE4AIABOAE8AIABFAFYARQBOAFQAIABTAEgAQQBMAEwAIABUAEgARQAgAEEAVQBUAEgATwBSAFMAIABPAFIAIABDAE8AUABZAFIASQBHAEgAVAAgAEgATwBMAEQARQBSAFMAIABCAEUAIABMAEkAQQBCAEwARQAgAEYATwBSACAAQQBOAFkAIABDAEwAQQBJAE0ALAAgAEQAQQBNAEEARwBFAFMAIABPAFIAIABPAFQASABFAFIAIABMAEkAQQBCAEkATABJAFQAWQAsACAAVwBIAEUAVABIAEUAUgAgAEkATgAgAEEATgAgAEEAQwBUAEkATwBOACAATwBGACAAQwBPAE4AVABSAEEAQwBUACwAIABUAE8AUgBUACAATwBSACAATwBUAEgARQBSAFcASQBTAEUALAAgAEEAUgBJAFMASQBOAEcAIABGAFIATwBNACwAIABPAFUAVAAgAE8ARgAgAE8AUgAgAEkATgAgAEMATwBOAE4ARQBDAFQASQBPAE4AIABXAEkAVABIACAAVABIAEUAIABTAE8ARgBUAFcAQQBSAEUAIABPAFIAIABUAEgARQAgAFUAUwBFACAATwBSACAATwBUAEgARQBSACAARABFAEEATABJAE4ARwBTACAASQBOACAAVABIAEUAIABTAE8ARgBUAFcAQQBSAEUALgBOAGUAZwByAGkAdABhAEEAcgBpAGEAbAAgAE4AZQBnAHIAaQB0AGEATABpAGgAYQB2AG8AaQB0AHUAQQByAGkAYQBsACAATABpAGgAYQB2AG8AaQB0AHUARwByAGEAcwBBAHIAaQBhAGwAIABHAHIAYQBzAEYA6QBsAGsA9gB2AOkAcgBBAHIAaQBhAGwAIABGAOkAbABrAPYAdgDpAHIARwByAGEAcwBzAGUA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AAgAAV5MAAEACAABXmoAAQAIAAFeiAAJAAAABQAQABgAIAAoADAAAQAIAAFelgABAAgAAV60AAEACAABXtIAAQAIAAFe8AABAAgAAV8OAAkAAAAEAA4AFgAeACYAAQAIAAFfHgABAAgAAV8+AAEACAABX14AAQAIAAFffgAJAAAABAAOABYAHgAmAAEACAABX5AAAQAIAAFfsAABAAgAAV/QAAEACAABX/AACQAAAAQADgAWAB4AJgABAAgAAWACAAEACAABYCIAAQAIAAFgQgABAAgAAWBiAAkAAAAEAA4AFgAeACYAAQAIAAFgdAABAAgAAWCUAAEACAABYLQAAQAIAAFg1AAJAAEAAQAIAAEABAABYOwACQABAAEACAABAAQAAWGKAAkAAQABAAgAAQAIAAFntgAJAAEAAwAMABQAHAABAAgAAWfmAAEACAABaBYAAQAIAAFoTAAJAAEAAQAIAAEABAABaHoACQABAAQADgAWAB4AJgABAAgAAWoSAAEACAABaigAAQAIAAFqdAABAAgAAWrCAAkAAQAYADYAPgBGAE4AVgBeAGYAbgB2AH4AhgCOAJYAngCmAK4AtgC+AMYAzgDWAN4A5gDuAAEACAABatwAAQAIAAFrBAABAAgAAWsiAAEACAABa3YAAQAIAAFrlAABAAgAAWvoAAEACAABa/4AAQAIAAFsXAABAAgAAWy8AAEACAABbR4AAQAIAAFtcgABAAgAAW3IAAEACAABbh4AAQAIAAFudgABAAgAAW7OAAEACAABbygAAQAIAAFvfAABAAgAAW/SAAEACAABcCgAAQAIAAFwgAABAAgAAXDYAAEACAABcTIAAQAIAAFxfgABAAgAAXHMAAkAAQAiAEoAUgBaAGIAagByAHoAggCKAJIAmgCiAKoAsgC6AMIAygDSANoA4gDqAPIA+gECAQoBEgEaASIBKgEyAToBQgFKAVIAAQAIAAFx0gABAAgAAXJGAAEACAABcvAAAQAIAAFznAABAAgAAXPoAAEACAABdGoAAQAIAAF07gABAAgAAXUoAAEACAABdZgAAQAIAAF2CgABAAgAAXZMAAEACAABdsQAAQAIAAF3PgABAAgAAXeAAAEACAABd/gAAQAIAAF4cgABAAgAAXkcAAEACAABecgAAQAIAAF6dgABAAgAAXr4AAEACAABe3wAAQAIAAF8AgABAAgAAXxyAAEACAABfOQAAQAIAAF9WAABAAgAAX3SAAEACAABfk4AAQAIAAF+zAABAAgAAX9EAAEACAABf74AAQAIAAGAOgABAAgAAYCyAAEACAABgSwAAQAIAAGBqAAJAAEAAQAIAAEABAABgbYACQABAAEACAABAAgAAYvAAAkAAQAMAB4AJgAuADYAPgBGAE4AVgBeAGYAbgB2AAEACAABi+wAAQAIAAGMLAABAAgAAYyiAAEACAABjRoAAQAIAAGNMgABAAgAAY2AAAEACAABjdAAAQAIAAGN6AABAAgAAY42AAEACAABjoYAAQAIAAGOngABAAgAAY7sAAkAAQADAAwAFAAcAAEACAABjzAAAQAIAAGPigABAAgAAY+8AAkAAQALABwAJAAsADQAPABEAEwAVABcAGQAbAABAAgAAY/SAAEACAABkBIAAQAIAAGQmgABAAgAAZEkAAEACAABkaoAAQAIAAGSMgABAAgAAZK8AAEACAABkwIAAQAIAAGTkAABAAgAAZQgAAEACAABlGYACQABAAQADgAWAB4AJgABAAgAAZSeAAEACAABlOYAAQAIAAGVdgABAAgAAZYIAAkAAQA7AHwAhACMAJQAnACkAKwAtAC8AMQAzADUANwA5ADsAPQA/AEEAQwBFAEcASQBLAE0ATwBRAFMAVQBXAFkAWwBdAF8AYQBjAGUAZwBpAGsAbQBvAHEAcwB1AHcAeQB7AH0AfwCBAIMAhQCHAIkAiwCNAI8AkQCTAABAAgAAZYgAAEACAABlsQAAQAIAAGXcgABAAgAAZhMAAEACAABmSYAAQAIAAGaAgABAAgAAZreAAEACAABm7wAAQAIAAGcoAABAAgAAZ2EAAEACAABnmoAAQAIAAGfUAABAAgAAaA4AAEACAABoLQAAQAIAAGhOgABAAgAAaHsAAEACAABop4AAQAIAAGjUgABAAgAAaQGAAEACAABpLwAAQAIAAGleAABAAgAAaY0AAEACAABpvIAAQAIAAGnsAABAAgAAahwAAEACAABqOIAAQAIAAGpVAABAAgAAanQAAEACAABqkwAAQAIAAGq9AABAAgAAaucAAEACAABrEYAAQAIAAGs8AABAAgAAa2cAAEACAABrkQAAQAIAAGu7AABAAgAAa+WAAEACAABsEAAAQAIAAGw7AABAAgAAbGeAAEACAABslAAAQAIAAGzAgABAAgAAbO2AAEACAABtCoAAQAIAAG03AABAAgAAbWOAAEACAABtkIAAQAIAAG29gABAAgAAbdgAAEACAABt9QAAQAIAAG4dAABAAgAAbkUAAEACAABubYAAQAIAAG6WAABAAgAAbr8AAEACAABu6YAAQAIAAG8UAABAAgAAbz8AAEACAABvagACQABAAEACAABAAQAAb5OAAkAAQABAAgAAQAIAAHBygAJAAEAAQAIAAEACAABwdwACQABAAEACAABAAgAAcH0AAkAAAABAAgAAQAGAAHCCgAJAAEAAQAIAAEABgABwoIACQABAAEACAABAAYAAcPYAAkAAQADAAwAFAAcAAEACAABxOoAAQAIAAHFGAABAAgAAcVGAAkAAQABAAgAAQAGAAHFbAAJAAEAAwAMABQAHAABAAgAAcZaAAEACAABxpAAAQAIAAHG8AAJAAEABgASABoAIgAqADIAOgABAAgAAccUAAEACAABx0oAAQAIAAHHgAABAAgAAce2AAEACAABx+wAAQAIAAHIIgAJAAEABAAOABYAHgAmAAEACAAByEoAAQAIAAHIgAABAAgAAci2AAEACAAByOwACQABAAEACAABAAgAAckUAAkAAQABAAgAAQAGAAHJPgAJAAEABAAOABYAHgAmAAEACAABymAAAQAIAAHKvgABAAgAAcseAAEACAABy4AACQABAAEACAABAAQAAcvcAAkAAQABAAgAAQABAAHMAAAJAAEAAQAIAAEAAQABy/4ACQABAAEACAABAAEAAcv8AAkAAAABAAgAAQABAAHMBAAJAAAAAQAIAAEAAQABzAgACQAAAAEACAABAAEAAcwOAAkAAAABAAgAAQABAAHMFAAJAAAAAQAIAAEAAQABzBoACQAAAAEACAABAAEAAcwgAAkAAAABAAgAAQABAAHMJgAJAAAAAQAIAAEAAQABzCgACQAAAAEACAABAAEAAcwqAAkAAAABAAgAAQABAAHMLAAJAAAAAQAIAAEAAQABzC4ACQAAAAEACAABAAEAAcwwAAkAAAABAAgAAQABAAHMNAAJAAAAAQAIAAEAAQABzDoACQAAAAEACAABAAEAAcxAAAkAAAABAAgAAQABAAHMRgAJAAAAAQAIAAEAAQABzEwACQAAAAEACAABAAEAAcxOAAkAAAABAAgAAQABAAHMVAAJAAAAAQAIAAEAAQABzFoACQAAAAEACAABAAEAAcxgAAkAAAABAAgAAQABAAHMZgAJAAAAAQAIAAEAAQABzGgACQAAAAEACAABAAEAAcxuAAkAAAABAAgAAQABAAHMdAAJAAAAAQAIAAEAAQABzHoACQAAAAEACAABAAEAAcyAAAkAAAABAAgAAQABAAHMhAAJAAAAAQAIAAEAAQABzIoACQAAAAEACAABAAEAAcyQAAkAAAABAAgAAQABAAHMlgAJAAAAAQAIAAEAAQABzJwACQAAAAEACAABAAEAAcyeAAkAAAABAAgAAQABAAHMoAAJAAAAAQAIAAEAAQABzKIACQAAAAEACAABAAEAAcykAAkAAAABAAgAAQABAAHMpgAJAAAAAQAIAAEAAQABzKgACQAAAAEACAABAAEAAcyqAAkAAAABAAgAAQABAAHMrAAJAAAAAQAIAAEAAQABzK4ACQAAAAEACAABAAEAAcywAAkAAAABAAgAAQABAAHMsgAJAAAAAQAIAAEAAQABzLQACQAAAAEACAABAAEAAcy6AAkAAAABAAgAAQABAAHMwAAJAAAAAQAIAAEAAQABzMYACQABAAEACAABAAQAAczMAAkAAQABAAgAAQAEAAHRgAAJAAEAAQAIAAEABAAB0yoACQABAAEACAABAAQAAdQOAAkAAQABAAgAAQAEAAHVrAAJAAEAAQAIAAEABAAB1hoACQABAAEACAABAAQAAdjiAAkAAQABAAgAAQAEAAHapAAJAAEAAQAIAAEABAAB2xgACQABAAEACAABAAQAAdzUAAkAAQABAAgAAQAEAAHdQgAJAAEAAQAIAAEABAAB3gQACQABAAEACAABAAQAAd+6AAkAAQABAAgAAQAEAAHhZAAJAAEAAQAIAAEABAAB4xoACQABAAEACAABAAYAAeUSAAkAAQABAAgAAQAGAAHlbgAJAAEAAQAIAAEABgAB5coACQABAAEACAABAAQAAeYmAAkAAQABAAgAAQAEAAHofgACqOAABAAAqs6vjgCSAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAA/7T/tP+0AAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+0AAAAAAAAAAAAAAAAAAAAAP9o/2j/j/9EAAAAAAAAAAAAAAAAAAAAAAAAAAD/tP/b/7QAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/aP+P/0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8dAAD/HQAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAD/aP9o/4//RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+0AAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2j/j/9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/bAAD++AAA/vgAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2//b/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x3/j/8dAAD/Hf9o/9sAAAAAAAAAAP9o/2j/aP/b/2gAAAAA/4//aP9oAAD/aP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/b/2j/aP9o/9v/nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RP+P/0QAAP+P/2gAAAAAAAAAAAAA/48AAP+P/9v/aAAAAAD/jwAA/7QAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j/+0/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+P/9f/jwAA/9v/jwAAAAAAAAAAAAD/tAAA/9v/7v/bAAAAAP/bAAD/2wAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+0/9v/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAA/x3/j/8dAAD/aP9EAAAAAAAAAAAAAP+PAAD/j/+0/2j/j/9oAAAAAP+P/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/87/xAAA/2gAAP9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2gAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/4//RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xwAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5IAAAAAAAAAAAAAAAAAAP+SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/kgAAAAAAAAAAAAAAAAAA/5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tAAAAAAAAAAAAAAAAAAAAAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zv/EAAD/aAAA/0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zMAAAAAAAAAAAAAAAAAAAAAAAD/TAAAAAAAAP8x/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/b/2j/aP9o/9v/nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAA/x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8h/yH/IQAAAAAAAAAA/74AAAAAAAAAAAAA/74AAAAAAAAAAAAAAAAAAAAAAF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8n/yf/JAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8kAAAAA/8cAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yQAAAAD/yf/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yQAAAAAAAAAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8f/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xwAAAAAAAAAAAAAAAAAA/8cAAAAA/8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+cAAAAAAAAAAAAA/7YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tP/b/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yf/JAAAAAAAAAAAAAAAAAAAAAAAA/1b/RgAAAAAAAAAA/7QAAAAAAAAAAAAAAAD/tAAAAAAAAP+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yf9W/0b/yQAAAAD/RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yQAAAAD/xwAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7L/sv9o/7QAAAAAAAABAP9G/0b/RgAAAAD/sv+0/7QAAAAAAAD/tAAA/7QAAP+0AAAAAAAAAAAAAAAAAFz/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9G/7IAAAAA/7IAAP+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8cAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAP/J/8kAAAAAAAAAAAAAAAAAAAAAAAD/Vv9GAAAAAAAAAAD/tAAAAAAAAAAAAAAAAP+0AAAAAAAA/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/J/1b/Rv/JAAAAAP9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8kAAAAAAAAAAAAAAAAAAAAAAAAAAP9W/0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8n/Vv9G/8kAAAAA/0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ov+i/9H/0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/0QAA/9EAAAAAAAAAAP/RAAAAAAAA/9EAAP/RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/voAAP76AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8f/4//HwAA/x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2//J/2j/rP9oAAAAAADy/2j/XP9oAAAAAP/bAAAAAAAA/2gAAP9oAAD/2wAA/2j/aAAAAAD/aP+FAAAAXP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/2wAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x//j/8fAAD/aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+y/7L/aP+0AAAAAAAAAQD/Rv9G/0YAAAAA/7L/tP+0AAD/rAAA/7QAAP+0AAD/tAAAAAAAAAAAAAAAAABc/2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Rv+yAAAAAP+yAAD/sgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2P/Y/+L/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAP/bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jf+0AAD/tAAAAAAAAAAAAAAAAAAAAAD/zwAAAAD/vgAA/8//tP/PAAAAAP++AAAAAAAAAAD/jQAA/40AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+8/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7wAAP/jAAAAAAAAAAD/vP+8AAAAAP+8AAD/vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+f/5wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/hAAD/5wAAAAAAAAAAAAAAAP/n/+f/4QAA/+cAAP/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5//nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nAAAAAAAAAAAAAAAA/+f/5wAAAAAAAAAA/+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7b/tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tgAAAAAAAAAAAAAAAAAA/7YAAAAA/9UAAP+2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GQAA/wAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+y/7IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9tAAAAAAAAAAD/zQAA/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1/80AAP/lAAAAAP/l/+X/zQAA/+UAAP/a/83/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3f/5QAA/80AAAAA/+UAAAAAAAAAAAAAAAD/ygAA/+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM//lAAAAAAAAAAAAAAAzAAAAAABM/+UAAAAzAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5sAAAAAAAAAAP+yAAD/NAAA/+X/sgAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAABkAAP/l/+X/zf+a/7L/zQAA/2QAAP/NAAAAGf/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5f/lAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5r/zQAA/+UAAAAAAEz/sgAAAAD/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7IAAP/N/+X/zQAAAAAAAP/l/83/zf/l/83/sv+y/83/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zf/lAAAAAAAAAAD/zf/NAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/mv/l/7L/5f/NAAD/zQAA/7L/sv+y/83/sv+y/5oAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/5f+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+y/80AAAAAAAAAAAAA/7IAAP/NAAD/zf+y/7IAAP/NAAAAAAAA/xkAAP8AAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sv+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9//80AAAAA/80AAP/lAAD/5QAAAAAAAAAAAAAAAAAAAAD/5QAA/80AAP+y/5gAAAAAAAD/mv+y/83/mgAA/7IAAAAA/7IAAAAAAAAAAP+yAAD/sv+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/bQAAAAAAAAAA/80AAP8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAGf/lAAD/5QAAAAAAAAAAAAAAAAAAAAAAGQAAADMAAAAAAAAAAAAZAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAZ/+UAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAD/5QAA/80AMwAzAAAAAAAZAEwAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz/+UAAAAAAAAAAAAAADMAAAAAAEz/5QAAADMATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zQAA/80AAP/lAAD/zf+y/7L/zQAA/7IAAAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7L/zQAAAAAAAAAAAAD/sgAA/80AAP/N/7L/sgAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAP/lADMAM//lAAAAMwAAABkAAAAZAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM//lAAAAAAAAAAAAAAAzAAAAAABM/+UAAAAzAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/5f/lAAD/zQAAAAAAAAAAAAD/zQAA/7IAAAAAAAD/5QAAAAAAAAAA/80AAAAAAAAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAD/5P/N/83/zf/l/+X/sgAAAAD/zQAAAAAAAP7lAAD+zQAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/TP9//+X/5f9//+X/5QAA/83/5f/l/+X/sgAAAAAAAP/N/+UAAAAAAAD/f//NAAAAAAAAAAAAAAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/l/+UAAP/lAAAAAP9//+UAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/N/+UAAP/l/83/5f/NAAAAAP/N/+UAAP+y/83/5f/lAAAAGf/lAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/5QAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//X/zQAA/+UAAAAA/+X/5f/NAAD/5QAA/9r/zf/lAAAAAAAAAAD/MwAA/xkAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3//zQAzAAD/zQAA/80AAAAAAAAAAP+yAAAAAAAAAAD/5f/NAAD/sgAAAAD/mgAAAAD/sv9//5gAAP9//+X/sv9/AAD/sgAA/7IAAAAA/+UAAP/l/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/NAAAAAAAAAAD/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8ZAAD/AAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7L/sgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Zv+YAAAAAP+yAAD/zQAAAAAAAAAA/7IAAAAAAAD/5f/NAAD/zf+y/7L/f/9//+X/mv+y/3//mv+y/3//sv+y/38AAAAAAAD/zQAAAAAAAAAA/7L/mgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5sAAAAAAAAAAP+yAAD/NAAA/+X/sgAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/N/5gAAAAA/7IAAAAAAAAAAP+y/7L/5QAA/+UAAAAA/8sAAAAAAAAAAAAAAAAAAAAAAAD/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7IAAAAAAAAAAAAA/8r/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAA/8sAAP+yAAAAAP+yAAAAAAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/LAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAZAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAABn/5QAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAGf/lAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/d//lAAD/zQAAAAD/5QAAAAAAAAAAAAAAAP/KAAD/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zf/l/7L/zf+y/83/5QAA/83/MQAAAAD/mP9mAAD/sv+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP93/+UAAP/NAAAAAP/lAAAAAAAAAAAAAAAA/8oAAP/kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/zf/l/7IAAAAAAAAAAAAAAAD/5f/NAAAAAAAA/80AAAAAAAAAAP/lAAAAGQAAAAD/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAA/+T/zf/N/83/5f/l/7IAAAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/zf/NAAD/sgAAAAAAAP/l/80AAAAA/7L/5QAAAAAAAAAAAAAAAAAA/80AAAAZAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAAAAD/5P/N/83/zf/l/+X/sgAAAAD/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/NAAD/5f/lAAD/zf/lAAAAAAAAAAD/5QAA/+UAAP/N/83/5QAA/+UAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/l/+UAAAAAAAD/5f/lAAAAAP/l/+UAAP/lAAAAAP/N/+X/zf/lAAD/sv/NAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9MAAD/MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sgAAAAAAAAAA/80AAAAA/+UAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAAAAAAAAAD/5QAAABkAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAAAAAAAP/lAAAAAAAA/+UAAAAAAAAAAP/l/+X/5QAA/+X/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAP/lAAAAGQAAAAAAAAAA/80AAAAA/+UAAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5f/NAAAAAAAA/+X/5f/lAAD/5f/NAAD/zQAAAAD/zQAA/83/5QAA/7L/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAP/lAAAAAP/lAAAAAP/lAAD/5QAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAP/lAAAAAAAAAAAAAAAA/+UAAAAA/+UAAP/lAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5f/lAAAAAAAAAAAAAP/lAAAAAAAAAAD/5QAAAAD/5QAA/+X/5QAAAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAP/l/+UAAP/N/+UAAAAAAAAAAP/l/83/5QAA/83/zQAAAAD/5QAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zQAA/+X/5QAA/83/5QAAAAAAAAAAAAD/5f/lAAD/5f/NAAAAAP/lAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGf/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/l/8v/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZgAA/0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAZAAAAAP/lAAAAAP/lAAAAAP/lAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAAD/TAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAAAAD/zf/lABn/5QAA/+X/5QAA/80AAP/l/80AGQAA/+UAGQAAAAAAAP/lAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAP/l/+UAAAAAAAD/zf/lAAD/5QAAAAAAAP/l/+UAAAAA/80AAAAAAAAAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAAAAD/zQAA/+UAAAAAAAAAAP/NAAAAAP/NAAAAGf/lAAD/zQAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0wAAAAAAAD/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/5QAA/+X/5QAA/83/5QAAAAAAAAAA/+X/5QAAAAD/5QAAAAAAAAAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAP/lAAD/5QAAAAD/zf/lAAAAAAAAAAD/5f/NAAAAAP/N/7IAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZgAA/0wAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9/AAD/ZgAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/x//HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HAAAAAAAA/7QAAAAAAAD/xwAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAP/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/tP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9o/2j/j/9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HQAA/x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9v/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP9o/4//RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vgAAP74AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2//b/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8d/4//HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8d/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/aP/b/9sAAAAAAAAAAP+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0T/j/9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0T/jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAA/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j//X/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/j//XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAP8d/4//HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8d/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/RAAAAAAAAAAAAAAAAP9WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAP+mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/pgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/J/1b/Rv/JAAAAAP9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAA/x8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8kAAAAA/8cAAAAAAAD/xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD++gAA/voAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD++gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8f/4//HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8f/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2j/2wAAAAAAAAAA/9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x//j/8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/x//jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Rv+yAAAAAAAAAAD/sgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/JAAAAAAAAAAAAAAAA/8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8f/4//HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8f/48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/0b/sgAAAAD/sgAA/7IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7AAAAAAAAAAAAAAAAD/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GQAA/xkAAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAAAA/2r/zQAA/38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/r/80AAP/lAAAAAP/l/+X/zQAA/+UAAP/Q/9f/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8x/80AAP/NAAAAAP/l/7r/zf+yAAAAAAAA/5j/av+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/N/+wAAAAA/5z/3gAA/2YAAP/l/7IAAAAAAAD/zQAAAAD/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+a/+UAAAAAAAAAAABM/7IAAAAA/80AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/5QAAAAAAAAAA/83/zQAAAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sv/lAAAAAAAAAAD/5f+y/8L/zQAA/80AAP+y/5r/zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAABn/5QAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/83/5QAAAAAAAAAA/+X/zf/N/+X/5f/l/7IAAAAA/80AAAAAAAD+zQAA/s0AAP/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+zQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5f/lAAD/5QAAAAD/f//lAAAAAP/lAAAAAAAAAAAAAAAAAAAAAP8zAAD/MwAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/80AAAAAAAAAAP/NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AjwCPAA6Aj0CPQA7Aj4CPgA8AkACQAA9AkECQQA+AkQCRAA/AkUCRQBAAkYCRgBBAkgCSABCAkoCSgBDAksCSwBEAkwCTABFAk0CTQBGAk4CTgBHAk8CTwBIAlACUABJAlMCUwBKAlQCVABLAlYCVgBMAlcCVwBNAlgCWABOAloCWgBPAlsCWwBQAlwCXABRAl0CXQBSAl4CXgBTAl8CXwBUAmACYABVAmECYQBWAmQCZABXAmUCZQBYAmYCZgBZAmgCaABaAmoCagBbAmsCawBcAmwCbABdAm0CbQBeAm4CbgBfAm8CbwBgAnACcABhAnMCcwBiAnYCdgBjAncCdwBkAngCeABlAoYChgBmAogCiABnAowCjABoDXUNdQBpDXYNdgBqDYkNiQBrDY4NjgBsDZQNlABtDZgNmABuDZoNmgBvDZwNnABwDZ4NngBxDZ8NnwByDaENoQBzDaUNpQB0DacNpwB1DaoNrwBrDcMNwwBzDcQNxgBrDd4N3wBtDeAN4AB2DeEN4QB0DekN6wBvDfAN8wBwDfoN/QByDf4OAABzDgQOBABrDgcOBwB3DgkOCQB4DgoOCgB3Dg4ODgB5DhAOEAB6DhEOEQB3DhUOFQB5DhcOFwB7DhkOGQB8DhoOGgB9DhsOGwB+Dh4OHgARDh8OHwB3DiMOIwB5DiQOJAB/DiUOJQARDicOJwB/DikOKQCADioOKgCBDisOKwCCDiwOLACDDi4OLgCEDjAOMQCFDjIOMgCGDjMOMwA2DjQONACHDjYONgCIDjcONwCJDjgOOACKDjkOOQCBDjoOOgCLDjwOPAA2Dj0OPQCKDkAOQAA2DkQORACMDkYORgCNDkcORwCCDkgOSACODkkOSQCHDkoOSgCPDksOSwCQDkwOTACLDk8OTwCLDlAOUACFDlIOUgCFDlMOVACMDlYOVgCRDmQObgBpDm8OeQBqAAIA3gADAAMAAQAFAAUAAgAKAAoAAgAPAA8AAwAQABAABAARABEABQAUABQABgAdAB4ABwAkACQACAAyADIACQA3ADcACgA5ADkACwA6ADoADAA8ADwADQBEAEQADgBGAEYADwBIAEgAEABMAEwAEQBSAFIAEgBTAFMAEwBUAFQAFABVAFUAFQBWAFYAFgBYAFgAFwBZAFkAGABaAFoAGQBcAFwAGgCQAJAAGwCpAKkAHACqAKoAHQCrAKsAHgCxALIAHwC0ALQAAgC1ALUAIAC2ALYAIQC6ALoAIgDpAOkAIgEsASwAIwEtAS0AJAEuAS4AJQEvAS8AJgEwATAAJwExATEAJQEyATIAKAEzATMAJQHTAdMAIgHYAdgAGwHjAeMAIgHxAfEAKQH4AfgAKgH5AfkAKwH7AfsALAIBAgEALQIFAgUAIwIJAgkALgIKAgoALwINAg0AMAIPAg8ALwIQAhAAJQIRAhEAJwISAhIAMQITAhMAMgIUAhQAMwIWAhYANAIXAhcANQIYAhgANgIZAhkANwIaAhoAOAIbAhsAMQIcAhwAOQIdAh0AOgIeAh4AOwIfAh8APAIgAiAAJQIiAiIAPQIjAiMAPgIkAiQAPwIlAiUAJwImAiYAQAInAicAQQIoAigAPgIpAikAQgIqAioAPgIrAisAQAItAi0AQwI2AjYAQwI6AjoARAI+Aj4ARQJAAkAARgJBAkEARwJFAkUASAJGAkYASQJIAkgASgJJAkkASwJLAksATAJMAkwATQJNAk0ATgJOAk4ATwJPAk8AUAJRAlEAUQJUAlQAUgJXAlcAUwJZAlkAVAJaAloAVQJbAlsAVgJcAlwAVwJdAl0AWAJeAl4AWQJfAl8AWgJgAmAAWwJhAmEAXAJiAmIAVwJjAmMAWAJkAmQAXQJlAmUAXgJmAmYAXwJnAmcAYAJoAmgAYQJpAmkAYgJqAmoAYwJrAmsAZAJsAmwAZQJtAm0AZgJuAm4AZwJvAm8AaAJwAnAAWAJxAnEAaQJyAnIAWAJzAnMAYgJ0AnQAagJ1AnYAawJ3AncAbAJ4AngAbQJ5AnkAbgKMAowAKA11DXUAbw12DXYAcA18DXwAcQ19DX0Acg2BDYEAcg2DDYMAcw2JDYkAdA2LDYsAdQ2PDY8AdQ2XDZcAdg2ZDZkAdg2cDZwAdw2eDZ4AeA2fDZ8AeQ2hDaEAeg2jDaMAew2kDaQAdg2qDa8AdA2wDbAAdQ26Db4Adg3DDcMAeg3EDcYAdA3HDckAdQ3RDdMAdQ3mDegAdg3wDfMAdw36Df0AeQ3+DgAAeg4EDgQAdA4FDgUAew4HDgcAfA4KDgoAfA4ODg4AfQ4RDhEAfA4VDhUAfQ4ZDhkAfg4aDhoAfw4bDhsAgA4dDh0AgQ4eDh4Agg4fDh8AfA4jDiMAfQ4kDiQAgw4lDiUAgg4nDicAgw4pDikAhA4rDisAhQ4sDiwAhg4tDi0Ahw4uDi4AiA4vDi8AiQ4wDjAAig4xDjEAhw4yDjIAhA40DjQAiw41DjUAhw42DjYAjA43DjkAhw46DjoAig47DjsAhw48DjwAjQ49Dj0Ajg4+Dj4Ahw5ADkAAhw5BDkEAig5CDkMAhw5EDkQAhQ5FDkYAhw5HDkcAhQ5IDkgAhA5JDkkAiw5KDkoAjw5LDksAkA5MDkwAhw5NDk0AkQ5ODk8Ahw5QDlAAkg5RDlIAhw5TDlMAjg5UDlQAhw5VDlUAkw5WDlYAhw5kDm4Abw5vDnkAcA6qDqoAcg62DrkAcw68Dr0AdQABAAwAiAACARACsgACABQC8QL4AAADEgMSAAgDRwNLAAkFMwU0AA4FOAU7ABAGRQZLABQGTgZTABsGVgZXACEGWQZbACMLqAuvACYL+wwAAC4NVw1eADQPIg8mADwPPw8/AEEP0A/VAEIP3A/qAEgQBBAEAFcQexB7AFgQlRCVAFkRhhGTAFoAAgAWAu8C8AAAAx8DIgACAycDNgAGA4ED9AAWBSgFLACKBTwGOwCPBj4GQwGPBlwGZwGVBmkGaQGhBmsGbAGiBnIGcwGkC7ELuAGmDAIMbwGuDt8PGAIcDycPPgJWD6YPzwJuD/8P/wKYEGgQawKZEG0QegKdEI0QlAKrEWURggKzEZQRlALRAGgAAAzsAAAM8gABDPgAAAz+AAANBAABDQoAAA0QAAANFgAADRAAAA0cAAANIgAADRAAAA0QAAANKAAADS4AAA00AAANOgAADUAAAQ1GAAANTAAADVIAAA1SAAANWAAADV4AAA1kAAANZAAADWoAAA1wAAANcAAADWoAAA12AAENfAAADXAAAA1qAAANagABDYIAAA1qAAENiAAADY4AAA2UAAANmgAADaAAAA2mAAENrAAADbIAAA24AAANvgAADcQAAA3KAAEN0AAADdYAAA3EAAAN3AAADUAAAA1AAAANQAAADUAAAA1AAAENRgABDUYAAA3iAAAN6AAADe4AAA30AAEN+gABDgAAAA2CAAANggABDgYAAA2CAAANggABDgwAAA2CAAAOEgABDhgAAA4eAAANggAADYIAAQ4kAAANggAADYIAAQ2CAAENggAADYIAAA2CAAANggAADiQAAA4qAAAOMAABDYIAAA42AAANggAADYIAAA2CAAANggABDjwAAA2CAAANggAADYIAAA2CAAANggAADYIAAA2CAAANggLSDKAMpgysDLIMuAy+DLgMvgzEDMoMxAzKDNAM1gzcDOIM6AzuDOgM7gz0DPoM9Az6DQANBg0MDQYNEg0YDR4NGA0kDQYNKg0GDTANGA02DRgNPA1CDUgNTg1UDVoNYA1mDWwNWg1yDWYNeA1+DXgNfg2EDYoNkA2WDZwNQg2iDagNrg20Da4NtA2EDVoNkA1mDLgNugy4DboMxA3ADMQNwA3GDcwN0g3YDd4N5A3eDeQN6g20DeoNtA3wDfYN8A32DfwNtA38DbQM0AzWDNwM4gzoDgIM6A4CDNAM1gzcDOIM6A4IDOgOCA4ODNYOFAziDhoOCA4aDggOIA4mDiAOJg4sDiYOLA4mDjIM+g4yDPoOOAz6DjgM+g4+DkQOPg5EDkoNGA5KDlAOPg5EDj4ORA5WDRgOVg5QDlwORA5cDkQOYg5oDmIOaA5cDkQOXA5EDm4OaA5uDmgOdA56DnQOeg50DnoOdA56DnQOeg50DnoOdA56DnQOeg6ADoYOjA6SDpgNGA6eDRgOpA6GDqoOkg6wDRgOtg0YDrwOwg68DsIOyA20Ds4O1A7aDuAO2g7gDuYNtA7sDtQO8g74DvIO+A0SDRgNEg0YDv4PBA7+DwQPCg7UDwoO1A8QDxYPEA8WDxwPIg8cDyIPKA8uDygPLg8KDbQPCg20DzQPOg9ADdgPRg9MD1IPWA9eDX4PXg1+DTwNQg1IDU4NPA9kD2oPcAzED3YMxA92DLgN5AzEDbQPfA20D4IO1A+IDuAPjg1aD5QNZg+aDVoPoA1mDYQPpg2QD6YPrA1aD7INZg+4DX4PuA1+D74Nfg++DX4PxA1CD8oNTg/QDeQP0A3kD9YNtA/WDbQP3A3kD9wN5A38DbQN/A20DLgP4gy4D+IMxA/oDMQP6A3eD+4N3g/uDeoP9A3qD/QP+g3kD/oN5BAADbQQAA20EAYN5BAGDeQQDA20EAwNtAy4EBIMuBASDMQQGAzEEBgQHgzWECQM4hAqDggQKg4IEDAM1hA2DOIQPA4IEDwOCAzQDNYM3AziDOgQQgzoEEIM0AzWDNwM4gzoEEgM6BBIEE4M1hBUDOIQWg4IEFoOCAzQDNYM3AziDOgQYAzoEGAQZg4mEGYQbA4gEHIOIBByDiAQeA4gEHgQZhB4EGYQfhCEDiYQhA4mDiAQig4gEIoQkA4mEJAOJhCWDiYQlg4mEJwOJhCcDiYQogz6EKIM+hCoDPoQqAz6DjIQrg4yEK4OMhC0DjIQtA4yELoOMhC6DjIQtA4yELQQwAz6EMAM+hDGDPoQxgz6Dj4ORA4+DkQQzBDSEMwQ0g4+DkQOPg5EDkoQ2A5KENgOPg5EDj4ORA5WENgOVhDYDlwORA5cDkQOYhDeDmIQ3g5cDkQOXA5EEOQOaBDkDmgOdA56DnQOehDqDoYQ8A6SEPYNGBD8DRgOvA7CDrwOwg68DsIPfBECD4IRAg68DsIOvA7CDsgRAhEIEQIOvA7CDrwOwhEODbQRFA7UDrwOwg68DsIPfBEaD4IRIA68DsIOvA7CESYNtBEsDtQRMg7gETIO4BE4DuAROA7gET4RRBE+EUQRShFQEUoRUA0ADQYNDA0GDRINGBFWDRgRXA74EVwO+BFiDRgRYg0YEWgO+BFoDvgRbg0YEW4NGA7yEXQO8hF0DRIReg0SEXoNJA0GEYANBg0wDRgNNg0YEYYNBhGMDQYRkg0YEZINGA0kEZgRgBGYDTARng02EaQNJBGqEYARqg0wEbANNhG2EYYNBhGMDQYRvA0YEbwNGA7+DwQO/g8EEPYO1BD2DtQO/g8EDv4PBBD2DtQQ9g7UDv4PBA7+DwQQ9g7UEPYO1A7+EcIO/hHCDwoRGg8KERoPKBHIDygRyA8KDcAPCg3AEc4PLhHODy4R1A8uEdQPLg8oEdoPKBHaDwoP9A8KD/QR4A8uEeAPLg4ODNYOFAziDhoM7g4aDO4R5hHsEfIN2BH4Ef4SBBH+EgoR/g9eDX4PXg1+D14Nfg9eDX4SEA1+EhANfhIWDX4SFg1+EhwNfhIcDX4SIg1+EiINfhIoDX4SKA1+Ei4NfhIuDX4SNBI6EkASRhJMDUISUg1OElgNwBJYDcASXg1+El4NfhJkEmoNSBJwEmQSdg1IEnASfBKCEogSjhKUEoISmhKODj4ORA4+DkQOVhDSDlYQ0g5cDkQOXA5EDm4Q3g5uEN4OpA6GDqoOkg6wEqAOthKmDxASrBKyErgSvhLEEsoNBhLQDQYS1g4mEtYOJhLcDPoS3Az6EuIPTBLoD1gS4g9MEugPWAy4Eu4MuBLuDMQNwAzEDcAN8A26DfANug38DcAN/A3ADLgMvgy4DL4MxAzKDMQMyg3eDL4N3gy+DeoMyg3qDMoS9BL6EvQS+g8KDcAPCg3ADLgTAAy4EwAMxBMGDMQTBhMMDeQTDA3kExINtBMSDbQTGAzWEx4M4hMkDggTJA4IDNAM1gzcDOIM6AzuDOgM7hBmEyoQZhMqDiATMA4gEzAOMhM2DjITNg4+DkQOPg5EEzwNGBM8DlATQg6GE0gOkhNODRgTVA0YE1oOhhNgDpITZg0YE2wNGBDqDoYTcg6SE3gNGBN+DRgOvA7CDrwOwg98E4QPghGkDrwOwg68DsIPfBEgD4IRGhOKDQYTkA0GEWINGBFiDRgSyg0GEtANBhEODRgRDg0YDQATlg0ME5YNEhOcEVYTohOoDxYTqA8WE64PIhOuDyIPEBO0DxATtA8cE7oPHBO6DygTwA8oE8APCg3ADwoNwBPGDy4Txg8uE8wNtBPMDbQT0g8uE9IPLhPYDbQT2A20Dv4PBA7+DwQPCg7UDwoO1BPeDPoT3gz6E+QM+hPkDPoOPg5EDj4ORBPqDRgT6g5QDNAM1gzcDOIM6BPwDOgT8AzQDNYM3AziDOgT9gzoE/YOPg5EDj4ORBP8DRgT/A0YFAIM+hQCDPoUCAzWFA4M4hQUDggUFA4IFBoNWhQgFCYQAA1aFCwUJhQyDUIUOA1OFD4NwBQ+DcAURA1CFEoNThRQDcAUUA3AEmQUVg1IFFwMxBRiDMQUYhRoDX4UaA1+FG4NfhRuDX4UdBKCFHoSjhSAEoIUhhKODNAM1gzcDOIM6BSMDOgUjA4+DkQOPg5EFJINGBSSDRgOPg5EDj4ORBSYDRgUmA0YFJ4O+BSeDvgUpA0YFKQNGA08FKoNSBSwDMQUtgzEFLYTig0GE5ANBhSkDRgUpA0YDQAUvBTCFMgNEhTODR4U1BTaDUISUg1OFOANwBTgDcAU5g1CFOwNTg3qDcAN6g3AFPINQhT4DU4U/g3AFP4NwAy4DboMuA26DMQVBAzEFQQTGAzWEx4M4hUKFRAVChUQDnQOeg50DnoOdA56DnQOeg68DsIOvA7CEQ4RAhEUEQIO2hUWDtoVFg7mEQIO7BECDv4PBA7+DwQVHA7UFRwO1BUiDxYVIg8WFSgPIhUoDyIVLhU0FToPcA2uFQQNrhUEFS4VNBU6D3APChUEDwoVBA4yFUAOMhVAD14Nfg9eDX4VRhVM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BtEBWwbXBwYBZQcJBxcBlQcdBx4BpAchB38Bpgl/CYYCBQmJCZICDQmXCZoCFwmdCawCGwmvCcoCKwnTCdoCRwndCfYCTwn7ChQCaQsJCwkCgwsOCw8ChAsSCxcChgvfC+gCjAxwDJ4Clgz1DQICxQ0bDRsC0w0dDSMC1A0qDSoC2w0tDS0C3A9vD28C3QBsAAAS6AAAEu4AABL0AAAS+gACEwAAABMGAAATDAAAExIAABMYAAATHgAAEyQAABMqAAATMAAAEzYAABM8AAATPAAAE0IAABMYAAATSAAAE04AABNUAAATVAABE1oAAhNgAAITZgACE2wAAhNmAAATcgACE3gAAhN+AAITfgACE34AAhOEAAITigACE5AAAhOQAAITfgACE5YAAhOcAAITYAACE2AAAhOiAAITogACE4QAAhOoAAITrgACE64AAhO0AAITugACE5YAAhOcAAATPAAAEzwAABMSAAATwAAAE8YAABPMAAITYAAAE9IAAhOuAAITfgACE34AABPYAAATzAAAE8AAAhPeAAITfgAAE+QAABPkAAAT5AAAE+QAABPkAAAT5AAAE+QAABPkAAAT5AAAE+QAABPkAAAT5AAAE+QAABPqAAATGAAAExgAABMYAAAT8AAAE/AAABNIAAIT9gACE/wAAhP8AAIT/AAAE/AAAhP2AAIT9gAAE+oAABQCAAAUAgACE/YAABQIAAAUCAAAFAgAABQIAAAUCAAAFAgAABQIAAIT9gAAE+oAAhP2At4SXBJiEmgSbhJ0EnoSgBKGEowSbhKSEpgSXBKeEqQSqhKwErYSvBKSEsISXBKSEsgSzhLUEtoSvBLgEuYS7BKSEqQSqhLyEvgS4BL+EwQSgBMKEsgTEBKSExYSbhKeExwTEBKSEyISqhKeEygSbhJ0ExwTLhKeEzQSXBM6EsgSbhNAExwTRhNME1ITWBKSE14SbhNAE2QTahNwE3YTfBOCE4gTjhLyE5QTmhOgEvgTphJ0E6wTshO4E74TxBKqE8oTmhPQE9YT3BLyEvgT4hPoE+4T4hPoE/QTphLyE6wT+hQAFAYToBQMFBIUGBQeE3YUJBQeE3YUGBQqFDAUJBQ2FDwUQhRIFE4UVBRaFGAUZhRsFHIUJBQqExwUVBR4FH4USBQMExYUVBQqE4gUVBSEFIoUkBSWFJwUohSoEmgUrhS0EmgSgBKGFLoUohTAEqQUohTGEsgUzBTSExYUohTYEsgU3hTkE5QU3hTkE5QU3hTkE5QU3hTqE5QU3hTqE5QU8BTkE5QU9hOgFPwVAhUIFQ4VAhUIFQ4VAhUIFQ4VAhUIFQ4VFBUaFSAVJhUsE+4SzhUyFTgSzhU+FUQT3BVKExwTLhVQEnoTLhVQEnoTLhVQEnoTLhVQEnoTLhVQEnoTLhVWEnoTLhVWEnoTLhVWEnoTLhVWEnoVXBVKFQ4ShhViFWgTEBVuExYToBV0FXoVgBVKFYYS4BWMFZIUohWYEmgUohWeEmgVpBWqExYSdBWwFbYVvBXCFcgU3hVKFc4V1BXaFYYUohXgEmgV1BTAEqQUohWYEmgV1BTAEmgV1BTAEqQV5hXsE8oV8hXsFfgV/hYEFgoWEBYWFhwVpBWqExYVpBWqExYVpBWqExYUohYiEsgUohYoEsgUohYiEsgWLhY0FAYTphJiE14T+hPEFAYWOhZAE14WRhZMFGAWUhTAE5QWWBUIFl4SbhKeEpgVXBVKE5QWOhZkE14U3hVKFIoT3BZqExwWcBVKFnYWfBaCEwQTphaIE9YWjhaUFE4WmhKeFqAUVBOgFqYWrBayFrgWvhbEEvgWyhayFrgWvhbEEvgTLhKeE3YUohbQEsgVXBTqFtYSXBbcFuIW6BSEFu4WOhWqEpgTLhKSE3YSbhKSEqQSqhb0FvoW6BcAFu4UohcGEygXDBVWFxIWUhcYE14XHhckFyoTLhcwEpgT+haaE8oT3BLyEpgT4hZYFzYUohXaEsgTLhUIE3YWyhXaEsgTLhc8E3YXQhdIExYTLhdOE3YWOhXaFrgTxBdUFE4V1BXaFrgTxBUyFfgXWhTAF2AXZhdsFGAXchKGF3gUZhd+F4QXihTAF5AUZheWF5wXohXaEsgXqBeuE3YXohXaEsgTLhe0E3YXWhTAF5AXuhfAFl4XxhTAF5AWWBfAFl4SgBfMEpgX0hfYF94X5BfqEsIX8BWeEsgVAhVWFxIX9hXaEowVXBc8E3YX9hf8EowVXBc8E3YYAhgIEqQYDhTqE74WOhgIEqQYDhTqE74WOhgIEqQYDhTqE74VpBdIEwQTphVWGBQVpBXaEwQTphaIGBQTEBgaGCAYJheuGBQYLBXaEsgYMhg4E3YYPhgaEsgVXBhEE3YYShhQFzYYVhhcFE4WjhhiFE4YVhUyFE4WjhhoFE4YVhU+FE4YbhZYGHQYbhh6GHQYgBiGFl4YVhiMGJIYmBgaGJ4VXBikGKoYsBO4FxIYthLyFu4YvBh6GMIYPhgaGJ4UGBjIGBQSgBNAEygUJBR4GBQYzhXaExYTLhc8E3YVpBXaExYTLhjUE3YY2hKSFvoWNBjgGOYY7BTAEqQYDhTkFGAYthKSE3YT+hjyGPgXohXaEsgTLhjUE3YX8BXaEsgTLhVWE3YXohXaEsgTLhVQE3YY/hgaFuIUJBQqEvgZBBkKGRAZFhkcExYZIhXaFYYX0hjUGSgTxBOOFAYZBBkuE1IS7Bk0ExYZBBk6E1IS7BlAExYZBBkuE1IS7Bk0ExYZRhlME14ZUhR4GSgTEBlYGV4UJBlkEnoSXBlqEygZcBfqEnoSXBJiGXYU9hOCGXwX8BJiEsgZghmIFH4SqhmOGXYTshO4GZQZmhmOEsgZoBmmE74V1BmOEsgVXBO4E74ZrBmyE+4ZuBm+E+4T4hh6GcQYvBRCGcQTEBKSGcoUJBQeGdAZ1hKSGdwZ4hnoE3YZ7hM6GXYUJBSEGfQZ+hM6EygZ4hoAEvgY2hgaGgYUVBoMGhIaGBNAFYYaHhoAGhIaGBNAFYYWRhSEGhIUohokEsgU3hTqGioaMBo2FE4YvBo8FE4VpBpCExYaSBVKE3YXohpOEygTLhVKE3YSgBpUGloTshSEE74VXBpgGmYS4BgaGmwSqhMKGnIWWBp4ExwSqhp+GnIahBqKGmYSqhqQEyIalhqcEwQaohqoEnoSqhqQEygarhq0GroS7BrAGloTLhqKEnoUJBQqGsYWmhrMGnISbhrSGnIT3BrYGt4a5BrqGroa8Br2GvwXMBsCGwgYvBPEGPgT+hsOGPgbFBlMGxoTphsgExwYvBsmGywWRhquE6wSYhsyGzgSXBgaGz4TmhPQGsYTEBtEGV4bShtQG1YbXBtiExwS7BtoGroT3BsgGsYY2hmOG24TWBKeE14TfBRaFxIbdBKeGmYbehOmG4AT+hRUG4YYthMKEnoTxBJcG4wYthMKGJ4bkhq0EsIbmBNAG54bpBuqG7ATphlqG7Ya8BKGFQ4bvBSEG8ITphKGG8gT3BKeFqAWRhsgFGAUQhvOG9QZcBPQG9ob4BvmG+wb8hv4G/4ZWBwEHAocEBwWHBwcIhwoHC4TphLgGCAcNBw6G/4cQBxGHEwcUhxYHF4TshxkE74cahxwHHYcfBV0HIITEBfMEwQUVBPQGBQciByOEwQclBaIGBQV1BpOEqQcmhygFxITEBymGCAUJBQeFPwcrByyGCATLhVKFPwcuBy+HMQX0hzKGKoYVhzQGJIc1hzcG+wc4hv4HOgc7hwEHAoc9BpCEwQXDBaIGBQc+h0AFrgSqhKeHQYUohpOEmgTLhTqE3YUoh0MEsgU3hTqFH4Uoh0MEsgU3hTqHRIV1B0YEmgWRhVKE74V1B0YEmgWRhVKE74aMBYEHR4YVho8E8oaMBYEHR4YVhUaE+4VpBpCExYTLh0kE3YVpBpCExYTLh0kE3YV1B0qEygYeh0wHR4V1B0qEygYeh0wE+4V1B02EygTphVKEvgWyh02EygTLhVKEvgYth0YHTwT+hqiHUIclBJiG4AdSB1OGSgdVBf8HVodYB1mEvgc+hKSGJ4T3BJ0EpgT3BJiE3Ya8BKGHWwbvBSEHXIUohokEsgU3hTqGioSqhKGHXgTshO4HX4VpBpCExYTLhVQE3YdhB2KE14WRhTqGhITmhfqGioTmh2QHZYUJBPQHZYTLhPQFQ4UVBSEHZwdohSEHZYTphJ0FPwT3BlMFQ4Tsh2oE74Tsh2uE74UkB20HbodSB20HcAdSBSEHcATfBSEHcYdzB3SGMITLhqQHdgTmh3eHdgTmhSEEpgTfBPQG4Ad5B3qEvgUJBPQHdgTLhPQE3YTLhPQHdgT4h1IFzYd8BRCFzYd8BRCFzYT6BMuFTgYehMuHfYT+hZYHfwT3B4CFqAToB4IHg4ToB4IHhQToB4IHhQTmhPQHdgTmhPQHdgUJBxkE3YUJBPQE3YeGh4gFBIX5B4mEwQS7BLgHiwUQh4yF5wYehPcF5wUQhlwHjgePh5EG9oePh5EHfwePh5EFzYeShN8G8ITmhSEE3YUJBfqFxIUVB5QG4ATxBJuHlYTxBJcHlweYhPEG4wYthtKHmgebh50FHIYvB50Gt4Tmh3eE3YUJB56E3YTmhSEFxITfB1OE4gegB6GExYWRhquFxITfBPQFxIbvBSEHowbvBSEHpIUVBfqHpgUVBfqHpgenhquHZwenhJiHZYenhMQFJwepB5QGBQTEBVuExYUJB6qEvgTmh5QFGAesB62EpgTmhQqE6wTLhKAHrwUVB5QGKoewhQYHsgTphlMGBQWRhNGFGAWRhhEE74cph7OHtQSkh7aHuAe5h7sHvIarh62ExYe+B7+G4ASYh8EHwoSYh8QHxYTEB8cFBISgB8iEwQWRhsgFGAU8BsgFxISXBJiHygU9hOCHy4XxhJ0EzQXchLyEnoSXBJ0GXYTLhLyHzQSXBJ0HzoTLhLyH0AY7BKSErYXDBJ0HZwSXBKSH0YXDBJ0H0wSXBKSH1IXDBJ0H0wSXBKSH1gXDBJ0G4ASXBKSH14XDBJ0H2QTWBKeH2ofcBO4H2QTWBKeGJ4fcBO4H2QWUhKwErYfdhKqHR4crBlMH3wWRhPQG8gXohKSEygcuBLyE3Yc+hKSH4ITLhLyGdAfiBKSEsgfjhLyE3YSgBKSH5QTLhLyH5oc+hKSH6ATLhLyHdgYbhLUGOYYbhPoG9oWyhKSEqQfphLyFxISgBKSH6wVXBLyH0wSqhKSH7IVXBLyH0wT3BLyH5oSzhQAGcQfuBLyH5ofvhaaGcQT3BLyH8QYbhQAH8oT3BLyH9AYbhQAG9of1hsyH9warh/iHIIf1h/oH9warh/uHIIf9B/6IAAgBiAMIBIWyhlMEygTLhO4E3Yc+hlMGXYUJBO4GdAc+hlMGXYUJBO4GdAc+hlMHXgUJBO4HdgV1CAYExwTphQeGBQV1CAYExwTphQeGsYZRhKSEyggHh5EICQYmBKSICogMB5EIDYYmBKSIDwgMB5EIEIXWiBIEqQclBOgFGAWmiBIIE4YsBOgGZQgVCBIIFogYBquFGAgVCBIIFogYBquFGAgVCBIIE4gZhOgIGwgciB4EzQgfha+IIQYtiB4H8QT+hT2IEIYtiB4H0YT+hT2IDYYtiB4IIoT+hT2IJAglhqQIJwUJBR4HdgglhqQH6AUJBR4HdgglhqQH6AUJBR4HdgaGBlMFYYYDh5QFxISbhlMIKIgqB5QGZQZBBNME1IgriC0EowYpBNMILoUSCC0IMAWOhMKEmgX0hW8E4gWOhMKF2AX0hW8HRIZRhNAErYX0hW8GhIWUhKeExwWWBW8G8IT3BKeIMYdSBW8IMwT3BKeH0YdSBW8INIXDBquGdAV5iDYIN4g5CDqExYg8CD2GhIZgiD8GiohAhpIFzYhCCEOIRQhGiEgFzYhGiEgISYXDBsgGJ4YvBZYGOYUJBQeFqAT6BqiGPghLB62GCAhLB62GCAhMiE4IT4hRCFK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BooGvAFhBsAGwwGUBsgG0QGYBtcHBgGiBwkHFwHSBx0HHgHhByEHfwHjCX8KFAJCCwkLCQLYCw4LDwLZCxILFwLbC98L6ALhDHAMngLrDPUNAgMaDRsNGwMoDR0NIwMpDSoNKgMwDS0NLQMxD28PbwMyAAcAAAzsAAAM8gABDPgAAAz+AAANBAABDQoAAQ0QAzMM+Az+DPgM/gz4DP4M+Az+DQQNCg0QDRYNHA0iDPgM/g0oDS4NNA06DPgM/g0QDRYNQA1GDPgM/g0cDSINBA0KDRwNIgz4DP4NBA0KDRANFgz4DP4NBA0KDUwNUg0EDQoNBA0KDRANFg00DToNEA0WDTQNOg0QDRYNNA06DVgNXg0QDRYNEA0WDSgNLg0oDS4NNA06DSgNLg1kDWoNEA0WDRANFg0QDRYNEA0WDXANdg00DToNWA1eDRANFg00DToNHA0iDTQNOg00DToNfA2CDYgM/g2IDP4M+Az+DQQNCg2IDP4Njg0iDYgM/g00DToNNA06DTQNOg00DToNNA06DTQNOg00DToNNA06DTQNOg00DToNNA06DSgNLg0oDS4NKA0uDSgNLg0QDRYNEA0WDRANFg0QDRYNEA0WDRANFg0QDRYNEA0WDRANFg0QDRYNEA0WDZQNmg0cDSINZA1qDRANFg00DToNiAz+DYgM/g2ODSINlA2aDUwNUg00DToNBA0KDYgM/g2gDQoNiAz+DaANCg2gDQoNpg0uDaYNLg2mDS4Npg0uDY4NIg2ODSINjg0iDYgM/g2IDP4NiAz+DSgNLg0QDRYNKA0uDaANCg00DToNrA0WDXwNggz4DP4NEA0WDaANCg00DToNBA0KDRANFg2ODSINEA0WDSgNLg2yDbgNNA06DPgM/g00DToNiAz+DTQNOg0QDRYM+Az+DTQNOgz4DP4NNA06DYgM/g2+DcQM+Az+DQQNCg00DToNoA0KDTQNOg2sDRYNKA0uDRANFg3KDdANEA0WDdYN3A2IDP4NEA0WDYgM/g0QDRYNjg0iDRANFg2IDP4NcA12DYgM/g1wDXYNoA0KDTQNOg0QDRYNWA1eDawNFg3WDdwNiAz+DRANFg2IDP4NEA0WDawNFg18DYINrA0WDXwNgg3iDegNNA06De4N9Az4DP4NNA06DYgM/g00DToNiAz+DTQNOg0EDQoNNA06DaANCg00DToNoA0KDTQNOg2ODSINEA0WDY4NIg0QDRYNHA0iDRANFg2IDP4NrA0WDPgM/g0QDRYNKA0uDSgNLg0oDS4NKA0uDaYNLg0oDS4NKA0uDSgNLg00DToNKA0uDPgM/g00DToNNA06DRANFg0oDS4M+Az+DRANFg36DgANEA0WDRwNIg0QDRYNHA0iDRANFgz4DP4NcA12DaANCg00DToNEA0WDVgNXg2IDP4NEA0WDPgM/g0QDRYNiAz+DRANFgz4DP4NEA0WDUwNUg0cDSINoA0KDTQNOg0oDS4OBg1SDRwNIg4GDVINHA0iDgYNUg0cDSINoA0KDTQNOg4MDhIOGA4eDiQOKg4wDjYM+Az+DTQNOg2IDP4NNA06DYgM/g00DToNiAz+DTQNOg2IDP4NNA06DYgM/g48DToNiAz+DTQNOg2IDP4NNA06DYgM/g00DToNiAz+DjwNOg2IDP4OPA06DYgM/g00DToNoA0KDTQNOg2gDQoNNA06DaANCg00DToNoA0KDTQNOg2gDQoNNA06DaANCg00DToNoA0KDjwNOg2gDQoNNA06DaYNLg0oDS4NKA0uDSgNLg0cDSINEA0WDY4NIg0QDRYNjg0iDRANFg2ODSINEA0WDY4NIg0QDRYNjg0iDawNFg2ODSINEA0WDkIOEg4YDh4OQg4SDhgOHg5CDhIOGA4eDkIOEg4YDh4ODA4SDhgOHgz4DP4NEA0WDYgM/g0QDRYOSA4qDjAONg5IDioOMA42DkgOKg4wDjYOSA4qDjAONg5IDioOMA42DQQNCg00DToNoA0KDTQNOg2gDQoNNA06DYgM/g00DToNpg0uDSgNLg2ODSINEA0WDYgM/g0QDRYOTg5UDTQNOg0QDRYOWg5gDb4NxA0QDRYNvg3EDRANFgz4DP4M+Az+DTQNOgz4DP4OZg5sDb4NxA0QDRYOcg54DQQNCg5+DoQNEA0WDRwNIg6KDpAOlg6cDSgNLg0oDS4M+Az+DTQNOg0oDS4NNA06DqIOqAz4DP4NEA0WDRwNIg6uDrQOug7ADsYOzA0QDRYNBA0KDQQNCg00DToO0g7YDt4O5A1YDV4NEA0WDVgNXg0QDRYO6g7wDPgM/g72DvwNNA06DRANFg18DYINEA0WDRANFg00DToPAg8IDw4PFA0QDRYPGg8gDyYPLA8yDzgPPg9ED0oNag9QDToPVg9cDZQNmg9KDWoNNA06D2INmg1kDWoNHA0iDRANFg2ODSINEA0WDYgM/g48DToNHA0iDRANFg2ODSINEA0WDawNFg9oD24NKA0uD3QPIA8mDywPMg84DY4NIg0QDRYPeg+AD4YPjA2IDP4NEA0WDYgM/g00DToNiAz+DTQNOg2gDQoNNA06DaANCg00DToNpg0uDSgNLg2mDS4NKA0uDY4NIg0QDRYNjg0iDRANFg2IDP4NcA12DYgM/g1wDXYNiAz+DRANFg2IDP4NEA0WDRANFg1YDV4Pkg+YD54PpA2IDP4NrA0WD6oPsA+2D7wPtg+8DRANFg18DYINiAz+DTQNOg0EDQoNNA06DY4NIg0QDRYNoA0KDTQNOg00DToNEA0WDRANFg0QDRYNNA06DTQNOg0QDRYNEA0WDTQNOg7GDswPAg8IDwIPCA/CD8gPzg/UDVgNXg0QDRYNEA0WD9oP4A00DToP5g/sDRANFg0QDRYNEA0WDSgNLg0oDS4NKA0uD/IP+A/+EAQNKA0uEAoQEA1kDWoNZA1qDWQNag0QDRYNEA0WEBYQHA0QDRYQIg1GECgQLhA0EDoNcA12DXANdg1wDXYNcA12DXANdg1wDXYNcA12EEAQRhBAEEYNNA06DVgNXg1YDV4NWA1eEEwQUg1YDV4NWA1eDRANFhBYEF4QZBBqDTQNOg0cDSINNA06EHAQdg18DYIQfBCCD2gPbg9oD24NNA06DTQNOg00DToNNA06DRwNIhAWEBwPzg/UD9oP4BCIEBAQjhCUDTQNOhCaEKANEA0WDTQNOg00DToQphCsELIQuBC+EMQQyhDQENYQ3BDiEOgQ7hD0EPoRABEGEQwREhEYER4RJAz4DP4NNA06DYgM/g0QDRYM+Az+DRANFgz4DP4NEA0WDYgM/g00DToNiAz+DRANFgz4DP4NEA0WDPgM/g0QDRYM+Az+DRANFgz4DP4NEA0WDaANCg00DToNoA0KDTQNOg0EDQoNNA06DQQNCg00DToNoA0KDTQNOg2sDRYRKg1eDY4NIg0QDRYNiAz+DRANFgz4DP4NEA0WDYgM/g2sDRYM+Az+DRANFgz4DP4NEA0WDSgNLg0oDS4Npg0uDaYNLg2IDP4OPA06DPgM/g00DToM+Az+DTQNOg0QDRYNKA0uDawNFg2mDS4NEA0WDSgNLg0Q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BuQG6gbkBuoG5AbqBqIHVgbABywGcgcCBmwGwAZsBvYGbAb2BmwG9gZsBvYGbAb2BmwGwAZsBvYGbAb2BmwG9gZsBvYGbAbABoQIWAaEBwgGhAcIBoQHCAaEBwgGhAcIBoQHCAaECFgGnAaKBzIIXghkCGoGwAcsBsAHLAbABywGwAcsBsAHLAhkCGoGwAcsBsAHLAbABywGwAcsCGQIaghwCHYGcgcCBnIHAgZyBwIGcgcCBnIHAghwCHYIfAdWBqIHVgaiB1YGbAb2BpwGigbABywGcgcCBnIIggb8CIgGeAb8BngG/AdQBngGfgZ+CBwGbAiOCJQImgdQCKAGkAimCKwGnAacBqgHIAaKCLIIuAa6CL4GwAjECMoI0Ae8CNYGcgcsCNwI4gjoBtgI7gj0BsAG/AdcB1YG8AdcCKYI+gcIBqIJAAcyCQYJDAkSCRgJHgcUCSQJKgkwCIIJNgeMBpAHFAaQBxQGqAcgCTwJQgk8CUIIZAhwBxoJBgkMCRIGkAcUCUgJTga6BngGbAb2BmwG9gaEBwgGhAcIBpwGigacBooGwAcsBsAHLAbMBooGzAacBnIHAgZyBwIJVAlaCWAJZgaWBngJbAb8BvwHLAlyBmwG9gl4CX4GwAcsBqIHVgcsCYQG/AmKCZAJlgmcBsAIggiCCZAGogaiCaIJqAcUBxQG/AmuCbQJugZ4CcAGigaKBooJxgnMCdIJ2AneCeQJ6gZ4CZwGeAkAByYJ8An2CJoImghwB7wJ/AacCJoGxgkACgIJqAmoCggKDgoUChoHAgmiCIIGeAogBngHSgomBpAIcAosCjIKOAo+CkQGwAZyCZAG/AcgCgIKSgmQBzgKMgo4ClAKVgpcCmIKaApuCnQGhAbMCQAG0gZsBsAGcgb8CHAKegqACoYHYgdoBn4HAgqMCNwKgAqGB8gI3ApoCpIGhAcIBoQHCAhwCpIKmAqeB2IHaAaKBw4GkAcUBpYGeAaWCBwGlgZ4BpYGeAqkCqoKsAqwBpwGigaoByAGqAgcB4wKhgaWCF4GlgheCrYKvAh8CsIKyAcmCsgHJgrIByYGugZ4Cs4IHArUCtoIZArgBsAHLAbABywGwAcsBsAHLAaKBzIGigcyBswGnAbMCuYGzArmCuwK8gbSBz4K+Ar+BtIHPgbSBz4K+Ar+BtgHRAhqCwQK2gsKCxALFgj6Ca4LHAsiCPoJrgZyBwIGcgcCBt4HSgr4Cv4G5AbqBuQGqAbqB1AG6gdQBqIHVgbwB1wGlgcgCtoJZgqAB0QG6gdWBvYGnAsoBooHGgsuCzQLOgtAC0YLTAtSC1gGbAZ4C14GrgbYCHAJeAtkBvwHAgcOB54GeAcyBpwGnAc+B0QHXAcUC2oIpgtwBpwGnAcyC3YLfAuCC4gK5gcUC44LlAuaC6AHMgumC6wLsgcUC7gKSglsC74LxAvKC6AL0AcIC9YL3AviC+gHIAvuBnIGcgqkBoQHCAaiBxoL9Av6BswGnAaiB1YMAAauBooGrgaKBswG9giaCJoMBgABACj/9gABBOIAAAABA4QAAAABA7YAAAABAvgAAAABBGoAAAABAQQAAAABBAYAAAABBH4AAAABAPoAAAABAooAAAABBLAAAAABBCQAAAABBZYAAAABBGAAAAABA8oAAAABA9QAAAABBMQAAAABA3AAAAABAkQAAAABAmIAAAABBVAAAAABBFYAAAABBC4AAAABA3oAAAABAz4AAAABA8AAAAABAtAAAAABARgAAAABAyD+cAABAPr+egABA5gAAAABBdwAAAABAu4AAAABAPr+cAABA7b+cAABArIAAAABAZAAAAABAiYAAAABA2YAAAABAZr+cAABA0gAAAABAyD+jgABAor+jgABASwAAAABAL4AAAABAPAAAAABA44AAAABBxIAAAABBXgAAAABAcL+ogABBxwAAAABBfAAAAABAoAAAAABANIAAAABAIwAAAABAnYAAAABAPr+XAABAtD+hAABAlj+jgABBXj+hAABBAb+hAABBLX+hAABAwL+hAABAQ4AAAABAMgAAAABAlj92gABAYb9+AABAyD+egABBHQAAAABA1L+jgABAXz+jgABAYb+jgABBBoAAAABA6IAAAABArz+jgABAV7+jgABBOwAAAABBDgAAAABA2b+XAABAZr+jgABA6z+jgABBEL+jgABA4QAeAABAQT+cAABAwL+cAABAkT+cAABArz+cAABA/wAAAABAor+cAABAsYAAAABBHAAAAABA8UAAAABA4X+cAABAfQAAAABAMj+XAABAwz+cAABBaAAAAABA6wAAAABBrgAAAABA7b+XAABBb7+XAABBLD+XAABAeAAAAABBEz+1AABA+gAAAABArz+XAABAhL+ogABAcIAAAABA4T+XAABAwz+XAABAwwAAAABCdgAAAABCPwAAAABCCoAAAABB2IAAAABBdL+cAABCC4AAAABBqT+cAABBcj+cAABBwgAAAABA+j+hAABAzT+hAABBnIAAAABAPr+ZgABAor+SAABAbj+SAABAlj/BgABAib+1AABBGD+cAABAhwAAAABAu7+cAABAlj+cAABA8sAAAABA1IAAAABArwAAAABAwIAAAABBH7+cAABAxYAAAABATb+cAABAp7+XAABAtoAAAABA5j+cAABA3D+XAABAUAAAAABAaQAAAABAcL+cAABAyD+XAABBg4AAAABBfD+cAABBdz+cAABBSgAAAABAuT+cAABAaT+cAABAfT+XAABAlgAAAABAjr+cAABAYYAZAABAZD+cAABBYwAAAABA+j+cAABAp7+cAABAggAAAABAjoAAAABAqgAAAABAtD+XAABAzT+cAABB4AAAAABBfr+cAABCDQAAAABBIgAAAABAtD+cAABBTIAAAABBZb+cAABAhz+cAABArz+1AABAlj+1AABAk7+cAABAmz+cAABAu7+ogABAmz+ogABBQAAAAABAtr+hAABAV7+ogABAsb+1AABASz+1AABASz+cAABBYIAAAABBKYAAAABAu7+1AABAor+1AABApT+cAABAXz+cAABAyD+1AABAPr+1AABAoD+cAABAhL+cAABAWj+cAABAZD+1AABAoD+XAABAaT+XAABAyD+ogABAor+ogABBCsAAAABBNj+hAABAhz+hAABBMT+hAABAiYAKAABBI3+cAABBar+cAABBfoAAAABA6z+cAABAuQAAAABAk4AAAABAmwB2gABBcgAAAABAuAAAAABAwgAAAABA2v+cAABBBD+cAABA8r+cAABAV7+cAABBlT+cAABBBr+cAABAVT+cAABA3D+cAABAUD+cAABA9T+cAABBMT+cAABBIj+cAABBEz+cAABAtAAMgABAib+cAABAQ7+cAABAMj+cAABBM7+cAABAe8AAAABBhj+XAABBQD+XAABAzkAAAABA28AAAABAAwAFgACAQQBFgACAAELCgsNAAAAAgAnACQAPQAAAEQAXQAaAGIAgQA0AIkAiQBUAJAAkQBVAKAAoQBXAKYApgBZAKwAsABaALkAugBfAMYA1QBhAOAA5QBxAOcA7AB3APYA/wB9AQIBKgCHAYoBjACwAZYB1QCzAd0B5ADzBGoEbQD7BKQFAwD/BSQFJQFfBooGvAFhBsAGwwGUBsgG0QGYBtcHBgGiBwkHFwHSBx0HHgHhByEHfwHjCX8KFAJCCwkLCQLYCw4LDwLZCxILFwLbC98L6ALhDHAMngLrDPUNAgMaDRsNGwMoDR0NIwMpDSoNKgMwDS0NLQMxD28PbwMyAAQAAAzgAAEM5gAADOwAAQzyAzMM5gzsDOYM7AzmDOwM5gzsDPIM7Az4DOwM/gzsDOYM7A0EDOwNCgzsDOYM7Az4DOwNEAzsDOYM7Az+DOwM8gzsDP4M7AzmDOwM8gzsDPgM7AzmDOwM8gzsDRYM7AzyDOwM8gzsDPgM7A0KDOwM+AzsDQoM7Az4DOwNCgzsDRwM7Az4DOwM+AzsDQQM7A0EDOwNCgzsDQQM7A0iDOwM+AzsDPgM7Az4DOwM+AzsDSgM7A0KDOwNHAzsDPgM7A0KDOwM/gzsDQoM7A0KDOwNLgzsDOYM7AzmDOwM5gzsDPIM7AzmDOwM/gzsDOYM7A0KDOwNCgzsDQoM7A0KDOwNCgzsDQoM7A0KDOwNCgzsDQoM7A0KDOwNCgzsDQQM7A0EDOwNBAzsDQQM7Az4DOwM+AzsDPgM7Az4DOwM+AzsDPgM7Az4DOwM+AzsDPgM7Az4DOwM+AzsDTQM7Az+DOwNIgzsDPgM7A0KDOwM5gzsDOYM7Az+DOwNNAzsDRYM7A0KDOwM8gzsDOYM7AzyDOwM5gzsDPIM7AzyDOwNBAzsDQQM7A0EDOwNBAzsDP4M7Az+DOwM/gzsDOYM7AzmDOwM5gzsDQQM7Az4DOwNBAzsDPIM7A0KDOwM+AzsDS4M7AzmDOwM+AzsDPIM7A0KDOwM8gzsDPgM7Az+DOwM+AzsDQQM7AzsDOwNCgzsDOYM7A0KDOwM5gzsDQoM7Az4DOwM5gzsDQoM7AzmDOwNCgzsDOYM7A06DOwM5gzsDPIM7A0KDOwM8gzsDQoM7Az4DOwNBAzsDPgM7A1ADOwM+AzsDUYM7AzmDOwM+AzsDOYM7Az4DOwM/gzsDPgM7AzmDOwNKAzsDOYM7A0oDOwM8gzsDQoM7Az4DOwNHAzsDPgM7A1GDOwM5gzsDPgM7AzmDOwM+AzsDPgM7A0uDOwM+AzsDS4M7A1MDOwNCgzsDVIM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7Az+DOwM+AzsDP4M7Az4DOwM/gzsDPgM7AzmDOwM+AzsDOYM7Az4DOwNBAzsDQQM7A0EDOwNBAzsDQQM7A0EDOwNBAzsDQQM7A0KDOwNBAzsDOYM7A0KDOwNCgzsDPgM7A0EDOwM5gzsDPgM7A1YDOwM+AzsDP4M7Az4DOwM/gzsDPgM7AzmDOwNKAzsDPIM7A0KDOwM+AzsDRwM7AzmDOwM+AzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDRYM7Az+DOwM8gzsDQoM7A0EDOwNFgzsDP4M7A0WDOwM/gzsDRYM7Az+DOwM8gzsDQoM7A1eDOwNZAzsDWoM7A1wDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7AzmDOwNCgzsDOYM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDQQM7A0EDOwNBAzsDQQM7Az+DOwM+AzsDP4M7Az4DOwM/gzsDPgM7Az+DOwM+AzsDP4M7Az4DOwM/gzsDPgM7Az+DOwM+AzsDV4M7A1kDOwNXgzsDWQM7A1eDOwNZAzsDV4M7A1kDOwNXgzsDWQM7AzmDOwM+AzsDOYM7Az4DOwNagzsDXAM7A1qDOwNcAzsDWoM7A1wDOwNagzsDXAM7A1qDOwNcAzsDPIM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDOYM7A0KDOwNBAzsDQQM7Az+DOwM+AzsDOYM7Az4DOwNdgzsDQoM7Az4DOwNfAzsDToM7Az4DOwNOgzsDPgM7AzmDOwM5gzsDQoM7AzmDOwNggzsDToM7Az4DOwNiAzsDPIM7A2ODOwM+AzsDP4M7A2UDOwNmgzsDQQM7A0EDOwM5gzsDQoM7A0EDOwNCgzsDaAM7AzmDOwM+AzsDP4M7A2mDOwNrAzsDbIM7Az4DOwM8gzsDPIM7A0KDOwNuAzsDb4M7A0cDOwM+AzsDRwM7Az4DOwNxAzsDOYM7A3KDOwNCgzsDPgM7A0uDOwM+AzsDPgM7A0KDOwN0AzsDdYM7Az4DOwN3AzsDeIM7A3oDOwN7gzsDfQM7A36DOwOAAzsDTQM7A30DOwNCgzsDTQM7A0iDOwM/gzsDPgM7Az+DOwM+AzsDOYM7A0KDOwM/gzsDPgM7Az+DOwM+AzsDPgM7A4GDOwNBAzsDdwM7A3iDOwN6AzsDP4M7Az4DOwODAzsDhIM7AzmDOwM+AzsDOYM7A0KDOwM5gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwNBAzsDQQM7A0EDOwNBAzsDP4M7Az4DOwM/gzsDPgM7AzmDOwNKAzsDOYM7A0oDOwM5gzsDPgM7AzmDOwM+AzsDPgM7A0cDOwOGAzsDh4M7AzmDOwM+AzsDiQM7A4qDOwOKgzsDPgM7A0uDOwM5gzsDQoM7AzyDOwNCgzsDP4M7Az4DOwM8gzsDQoM7A0KDOwM+AzsDPgM7Az4DOwNCgzsDQoM7Az4DOwM+AzsDQoM7A2yDOwN0AzsDdAM7A4wDOwONgzsDRwM7Az4DOwM+AzsDjwM7A0KDOwOQgzsDPgM7Az4DOwM+AzsDQQM7A0EDOwNBAzsDkgM7A5ODOwNBAzsDlQM7A0iDOwNIgzsDSIM7Az4DOwM+AzsDloM7Az4DOwOYAzsDmYM7A5sDOwNKAzsDSgM7A0oDOwNKAzsDSgM7A0oDOwNKAzsDnIM7A5yDOwNCgzsDRwM7A0cDOwNHAzsDngM7A0cDOwNHAzsDPgM7A5+DOwOhAzsDQoM7Az+DOwNCgzsDooM7A0uDOwOkAzsDgYM7A4GDOwNCgzsDQoM7A0KDOwNCgzsDP4M7A5aDOwONgzsDjwM7A6WDOwOnAzsDQoM7A6iDOwM+AzsDQoM7A0KDOwOqAzsDq4M7A60DOwOugzsDsAM7A7GDOwOzAzsDtIM7A7YDOwO3gzsDuQM7AzmDOwNCgzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDOYM7A0KDOwM5gzsDPgM7AzmDOwM+AzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDPIM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7Az4DOwNHAzsDP4M7Az4DOwM5gzsDPgM7AzmDOwM+AzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDQQM7A0EDOwNBAzsDQQM7AzmDOwNCgzsDOYM7A0KDOwM5gzsDQoM7Az4DOwNBAzsDPgM7A0EDOwM+AzsDQQM7Az4DOwNBAzsDRAM7A0iDOwNEAzsDSIM7A0QDOwNIgzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDOYM7Az4DOwM/gzsDPgM7Az+DOwM+AzsDP4M7Az4DOwM/gzsDPgM7AzyDOwM+AzsDPIM7Az4DOwM5gzsDSgM7AzmDOwNKAzsDOYM7A0oDOwM5gzsDSgM7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7AzyDOwNCgzsDPIM7A0KDOwM+AzsDRwM7Az4DOwNHAzsDPgM7A0cDOwM+AzsDRwM7AzmDOwM+AzsDOYM7Az4DOwM5gzsDPgM7AzmDOwM+AzsDOYM7Az4DOwM8gzsDQoM7AzyDOwNCgzsDRYM7Az+DOwNFgzsDP4M7AzyDOwNCgzsDPIM7A0KDOwM8gzsDQoM7Az4DOwNLgzsDPgM7A0uDOwM+AzsDS4M7Az4DOwNHAzsDP4M7A0KDOwNCgzsDQQM7A7qDOwNBAzsDQQM7A2CDOwO8AzsDmAM7A72DOwO/AzsDvwM7A8CDOwPAgzsDOYM7AzmDOwNCgzsDPgM7Az4DOwNCgzsDS4M7A8IDOwM+AzsDPgM7A0cDOwNIgzsDPgM7Az4DOwNKAzsDSgM7A0KDOwNHAzsDS4M7Az4DOwPDgzsDxQM7A8aDOwNBAzsDQQM7Az4DOwOhAzsDn4M7Az4DOwM+AzsDRwM7A8gDOwNCgzsDQQM7A0iDOwM+AzsDPgM7A0oDOwNCgzsDyYM7A0KDOwNCgzsDS4M7A0KDOwM+AzsDPgM7A0KDOwN0AzsDdAM7A8sDOwNBAzsDQoM7A0cDOwM+AzsDgYM7A8yDOwM5gzsDOYM7AzyDOwM8gzsDQoM7A0KDOwNBAzsDzgM7Az4DOwM5gzsDSgM7AzyDOwNCgzsDz4M7Az4DOwNBAzsDPgM7AzyDOwM5gzsDQoM7A0cDOwNCgzsD0QM7A0EDOwAAQJYBaAAAf9bBaAAAQJYBcEAAf9bBcEAAQXHCDQAAQAACDQAAQVWCDQAAQTjCDQAAQY5CDQAAQI5CDQAAQRzCDQAAQaqCDQAAQeNCDQAAQKqCDQAAQcdCDQAAQMdCDQAAQQACDQAAQgACDQAAQXACDQAAQMVCDQAAQPVCDQAAQZHCDQAAQWrCDQAAQXJCDQAAQbT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AAABZgArAMoA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADWANAA0ADQANAA0ADWANAA0ADQANAA0ADQANAA0ADQANAA0ADcANwAAf0S/34AAQAA/4gAAQAA/84AAQAA/5wAAQAA/7AAAQAA/5IAAQAA/10AAQAA/9kAAQAA/7UAAQAF/2oAAQAA/5MAAQAA/48AAQAA/2oAAQAA/yEAAQAA/8QAAQAA/34AAQAAAAAAAQAA/9gAAQAA/6YAAf0S/gwAAQAA/gwAAQAA/K4AAQAA/fgAAgF4AAUAXAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIAAIABQIsAjAAAAIyAjIABQI0AlkABgKIAogALA4oDlYALQACARAABQBCACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIAAIABAErAS0AAAHxAfcAAwH5Ag8ACg4HDicAIQACBAgABQEAACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAACAE4AJAA9AAAAYgBoABoAkACRACEArACvACMAugC6ACcAxgDUACgA4ADgADcA4gDiADgA5ADkADkA5wDnADoA6QDpADsA6wDrADwA9gD2AD0A+AD5AD4A+wD7AEAA/QD9AEEBAgECAEIBBAEEAEMBBgEGAEQBCAEJAEUBCwELAEcBDQENAEgBDwEPAEkBEQERAEoBEwETAEsBFQEVAEwBFwEXAE0BGQEZAE4BGwEbAE8BHQEdAFABHwEfAFEBIQEhAFIBIwEjAFMBJQElAFQBJwEnAFUBKQEpAFYBigGKAFcBlgGWAFgBmAGYAFkBmgGaAFoBnAGcAFsBngGeAFwBoAGgAF0BogGiAF4BpAGkAF8BpgGmAGABqAGoAGEBqgGqAGIBrAGsAGMBrgGuAGQBsAGwAGUBsgGyAGYBtAG0AGcBtgG2AGgBuQG5AGkBuwG7AGoBvQG9AGsBvwG/AGwBwQHBAG0BwwHDAG4BxQHFAG8BxwHHAHAByQHJAHEBywHLAHIBzQHNAHMBzwHPAHQB0QHRAHUB0wHTAHYB1gHWAHcB2AHYAHgB2gHaAHkB3QHdAHoB3wHfAHsB4QHhAHwB4wHjAH0NRw1HAH4NiQ4GAH8Ouw69AP0AAwABABIAAQAYAAAAAQAAAEEAAQABBkwAAgABDsgO1gAAAAMAAQAcAAEAEgAAAAEAAABCAAIAAQ7IDtYAAAABAAERlAADAAEAEgABABgAAAABAAAAQwABAAELoQACAAEOyA7WAAAAAwABABIAAQAYAAAAAQAAAEQAAQABC6IAAgABDsgO1gAAAAMAAQASAAEAGAAAAAEAAABFAAEAAQukAAIAAQ7IDtYAAAADAAEAHAABABIAAAABAAAARgACAAEOyA7WAAAAAQABD0gAAwABABQAAQAaAAEAGgABAAAARwABAAEGTAACAAEOyA7WAAAAAwABABQAAQAaAAEAGgABAAAASAABAAELoQACAAEOyA7WAAAAAwABABQAAQAaAAEAGgABAAAASQABAAELogACAAEOyA7WAAAAAwABABQAAQAaAAEAGgABAAAASgABAAELpAACAAEOyA7WAAAAAwABAB4AAQAUAAEAFAABAAAASwACAAEOyA7WAAAAAQABD0gAAwACABoAFAABABoAAAABAAAATAABAAEGTAACAAEOyA7WAAAAAwACABoAFAABABoAAAABAAAATQABAAELoQACAAEOyA7WAAAAAwACABoAFAABABoAAAABAAAATgABAAELogACAAEOyA7WAAAAAwACABoAFAABABoAAAABAAAATwABAAELpAACAAEOyA7WAAAAAwACABQAHgABABQAAAABAAAAUAACAAEOyA7WAAAAAQABD0gAAwABABYAAQAcAAIAHAAcAAEAAABRAAEAAQZMAAIAAQ7IDtYAAAADAAEAIAABABYAAgAWABYAAQAAAFIAAgABDsgO1gAAAAEAAQ7XAAMAAQAgAAEAFgACABYAFgABAAAAUwACAAEOyA7WAAAAAQABDtgAAwABACAAAQAWAAIAFgAWAAEAAABUAAIAAQ7IDtYAAAABAAEO2gADAAEAIAABABYAAgAWABYAAQAAAFUAAgABDsgO1gAAAAEAAQ90AAMAAgAcABYAAQAcAAEAHAABAAAAVgABAAEGTAACAAEOyA7WAAAAAwACABYAIAABABYAAQAWAAEAAABXAAIAAQ7IDtYAAAABAAEO1wADAAIAFgAgAAEAFgABABYAAQAAAFgAAgABDsgO1gAAAAEAAQ7YAAMAAgAWACAAAQAWAAEAFgABAAAAWQACAAEOyA7WAAAAAQABDtoAAwACABYAIAABABYAAQAWAAEAAABaAAIAAQ7IDtYAAAABAAEPdAADAAMAHAAcABYAAQAcAAAAAQAAAFsAAQABBkwAAgABDsgO1gAAAAMAAwAWABYAIAABABYAAAABAAAAXAACAAEOyA7WAAAAAQABDtcAAwADABYAFgAgAAEAFgAAAAEAAABdAAIAAQ7IDtYAAAABAAEO2AADAAMAFgAWACAAAQAWAAAAAQAAAF4AAgABDsgO1gAAAAEAAQ7aAAMAAwAWABYAIAABABYAAAABAAAAXwACAAEOyA7WAAAAAQABD3QAAwABACIAAQAYAAMAGAAYABgAAQAA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BM4AAQTOAAQEzgABBM4AAwTOAAIEzgABBM4AAQTOAAAEzgABBM4AAQTOAAUEzgABBM4AAQTOAAEEzgBRBHYEfASCBHwEiASOBJQEmgSgBKYEoASsBLIEuAS+BMQEygTEBNAE1gTcBOIE6ATuBOgE9AT6BQAFBgUMBRIFDAUYBR4FJAUqBTAFNgUwBTwFQgVIBU4FVAT0BVQFWgVgBWYFbAUMBXIFDAV4BX4FhAWKBZAFlgWQBZwFogWoBSoFMAU2BTAFPAVCBUgFrgW0BboFtAXABcYFPAWuBcwF0gXMBdgFxgXeBeQF6gXwBfYF/AYCBggGDgR8BXIEfAV4BX4FhAYUBhoFlgYaBiAFxgYmBSoFMAU2BTAFPAVCBUgFTgSUBiwElAYyBjgGPgZEBkoEggZKBXgFHgWoBlAGVgZcBlYGYgZoBm4GdAZ6BoAGVgaGBowGkgaYBp4GXAakBqoGsAa2BrwGwgbIBsIGzgbUBtoG4AbmBuwG5gSsBtQG2gbyBhoE7gb4Bv4FogcEBwoExAW6BxAFwAVCBTwGUAcWBxwHFgciBygHLgZQBzQHOgc0B0AGaAdGBSoGVgdMBlYHUgVCBYQFKgZWB0wGVgdSBUIFhAUqBlYHTAZWB1IFQgWEBa4FtAW6BbQFwAXGBTwFrgW0BboFtAXABcYFPAdYBeoF8AX2BfwHXgdkB1gF6gXwBfYF/AdeB2QHagb4B3AG+Ad2B3wHggZQBxYHiAeOB5QHKAcuB5oHFgccB6AHIgemB6wGUAcWB4gHjgeUBygHLgeaBxYHHAegByIHpgesBHYEfASCBHwEiASOBJQEmgSgBKYEoASsBLIEuAS+BMQEygTEBNAE1gTcBOIE6ATuBOgE9AT6BQAFBgUMBRIFDAUYBR4FJAeyB7gHvge4B8QHygfQB9YH3AfiB9wH6AfuB9AFigWQBZYFkAWcBaIFqAeyB7gHvge4B8QHygfQBa4FtAW6BbQFwAXGBTwFrgXMBdIFzAXYBcYF3gXkBeoF8AX2BfwGAgYIBhQGGgWWBhoGIAXGBiYFTgSUBiwElAYyBjgGPgZEBkoEggZKBXgFHgWoBnQGegaABlYGhgaMBpIGmAaeBlwGpAaqBrAGtgbgBuYG7AbmBKwG1AbaBvIGGgTuBvgG/gWiBwQHCgTEBboHEAXABUIFPAZQBxYHHAcWByIHKAcu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Ae4B9AH6AgACBgIMAhICGAIeAiQCKgN6A4ADhgOMA5IDmAJmAmwCcgN6A4ADhgJ4An4ChAKKAkgCkAKWApwCogKoAq4CcgLGAswC0gIeAiQCKgJyAuoC8AKWAvYC/AMUAxoDIAMmAywDLAMyAzgDPgNEA0oDUANWA1wDYgIwAjYCPAHoAe4B9AKKAkgCkAKWAvYC/AOeAzgDpALYAt4C5AOqA7ADtgO8A8IDyAPOA9QD2gPgA+YD7APyA/gCGAP+BAQECgQQBBYEHAQiBCgELgQ0BDoEQAH6AgACBgIMAhICGAIeAiQCKgNWA1wDYgABAAAAAAABAtoAAAABAlcAAAABAfcAAAABAjAAAAABAa0AAAABAU0AAAABA1IAAAABAp0AAAABAdkAAAABAwIAAAABAn8AAAABAh8AAAABAZ0AAAABAQYAAAABAKYAAAABAhwAAAABAZkAAAABATkAAAABAvgAAAABAnUAAAABAhUAAAABAxYAAAABApMAAAABAjMAAAABAZ4AAAABAJgAAAAB/9gAAAABAggAAAABASUAAAABAp4AAAABAekAAAABAXUAAAABAyoAAAABAqcAAAAB/48AAAAB/okAAAAB/ckAAAABAfQAAAABAXEAAAABAP0AAAABArIAAAABAi8AAAABAc8AAAABAS0AAAABAG0AAAABAhsAAAABAbsAAAABAFQAAAAB/04AAAAB/o4AAAABAnYAAAABAfMAAAABAZMAAAABA6EAAAABA40AAAABA4QAAAABAokAAAABAe0AAAABA1wAAAABAtkAAAABAnkAAAABAz4AAAABArsAAAABAlsAAAABAqgAAAABAiUAAAABAcUAAAABAgMAAAABAWwAAAABAQwAAAABAj0AAAABAboAAAABAVoAAAABAwwAAAABAikAAAABAukAAAABAmYAAAABAgYAAAABA0gAAAABAsUAAAABAmUAAAABBIMAAAABA84AAAABAwoAAAABA5gAAAABAxUAAAABArUAAAABArwAAAABAjkAAAABA8UAAAABAxAAAAABAiQAAAABA44AAAABAwsAAAABAqsAAAABBLAAAAABA7UAAAABAyMAAAABA+gAAAABA2UAAAABAwUAAAABAAwAFAABAEIATAABAAICjQKRAAIABwKgAr0AAALCAsoAHgLNAucAJwZ3BncAQgsJ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AAEA5gCgAAEAWgDcAAEArgDcAAEAZADcAAEBGACgAAH/LgD6AAH/wgC0AAEAqgDcAAEBQACgAAH/egDcAAEBGAC0AAEA0ADcAAEBYQCgAAEAoQDcAAEBTACgAAEAVwDcAAEA0gDcAAEBkACgAAEA5gDcAAEBaACgAAEADAAUAAEAQgBMAAEAAglaCXAAAgAHAqACvQAAAsICygAeAs0C5wAnBncGdwBCCwkLCQBDC7kLwABED+4P8QBMAAIAAACsAAAArABQAKgArgC0ALoAwADGAMwAwADSAMYA2ADeAOQAqADqAMYA8AD2APwBAgEIAQ4BFADqALQBGgEgAPwA/AD8ANgA2ADkAOQBJgEaARoBGgEaAKgArgC0ALoAwAEsATIA0gEsANgA3gDkAOoA8AD2AQIBCAEUAOoAtAEaASABOAE+AUQBSgFQAPwA5AFWAVwBYgC6AWgBbgD8AVYBRAF0AXoBgAABAAAAAAABAlgAAAABAdYAAAABAcIAAAABAiYAAAABAmwAAAABARUAAAABAdEAAAABAooAAAABAa4AAAABAZoAAAABAmIAAAABAjoAAAABAWgAAAABAoAAAAABAjAAAAABAhIAAAABAggAAAABAfQAAAABAf4AAAABAu4AAAABAqgAAAABAk4AAAABAXwAAAABAfYAAAABAF8AAAABAfQAtAABAcIAtAABAhwAtAABAsEAAAABAyAAAAABArwAAAABAwIAAAABAuQAAAABAvgAAAABAiYAtAABAlgAtAABAnYAtAABAAwAFAABADAAOgABAAIJWglwAAEADAKiAqUCpgKpAq8CsALPAtIC0wLVAtoP7gACAAAAJAAAACQADAAgACYALAAmACYAMgAgADgAPgA4ADIARAABAAAAAAABAlkAAAABAckAAAABAh8AAAABAhMAAAABAi8AAAABAkAAAAABAcIAtAABAAwAEgABAEAARgABAAEJaAACAAcCoAK9AAACwgLKAB4CzQLnACcGdwZ3AEILCQsJAEMLuQvAAEQP7g/xAEwAAQAAAKgAUACoAK4AtAC6AMAAxgDMAMAA0gDGANgA3gDkAKgA6gDGAPAA9gD8AQIBCAEOARQA6gC0ARoBIAD8APwA/ADYANgA5ADkASYBGgEaARoBGgCoAK4AtAC6AMABLAEyANIBLADYAN4A5ADqAPAA9gECAQgBFADqALQBGgEgATgBPgFEAUoBUAD8AOQBVgFcAWIAugFoAW4A/AFWAUQBdAF6AYAAAQAAAAAAAQJYAAAAAQHWAAAAAQHCAAAAAQImAAAAAQJsAAAAAQEVAAAAAQHRAAAAAQKKAAAAAQGuAAAAAQGaAAAAAQJiAAAAAQI6AAAAAQFoAAAAAQKAAAAAAQIwAAAAAQISAAAAAQIIAAAAAQH0AAAAAQH+AAAAAQLuAAAAAQKoAAAAAQJOAAAAAQF8AAAAAQH2AAAAAQCRAAAAAQH0AKAAAQHCAKAAAQIcAKAAAQLBAAAAAQMgAAAAAQK8AAAAAQMCAAAAAQLkAAAAAQL4AAAAAQImAKAAAQJYAKAAAQJ2AKAAAQAMABIAAQAuADQAAQABCWgAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2g/uAAEAAAAgAAwAIAAmACwAJgAmADIAIAA4AD4AOAAyAEQAAQAAAAAAAQIvAAAAAQGVAAAAAQHrAAAAAQHfAAAAAQH7AAAAAQIMAAAAAQHCAKAAAQAMAC4AAQBKAIgAAQAPBnUJWwlcCV0JXwlgCWQJZglpCW8JcglzCXYP8g/zAAEADAKiAqUCpgKpAq8CsALPAtIC0wLVAtoP7gAPAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAwAIAAmACwAJgAmADIAIAA4AD4AOAAyAEQAAQAAAAAAAQI9AAAAAQGtAAAAAQI1AAAAAQH3AAAAAQITAAAAAQJaAAAAAQHCALQAAQAMABQAAQBCAEwAAQACApkL9gACAAcCoAK9AAACwgLKAB4CzQLnACcGdwZ3AEILCQsJAEMLuQvAAEQP7g/xAEwAAgAAAKwAAACsAFAAqACoAK4AtAC6AMAAxgDMANIAwADYAN4A5ADMAOoA8AD2ALoA/AECAQIBCAEOARQBGgEgASYA/AD8APwA2ADYAOQA5AEsASABIAEgASAAqACoAK4AtAC6ATIBOADSATIA2ADeAOQA6gD2ALoBAgECAQ4BFAEaASABJgDAAKgA3gECAT4A/AFEAUoBUAFWAPwBXAFiAWgBbgCuAXQAugEmAAEAAAAAAAEC1AAAAAECKgAAAAEDfQAAAAEC/AAAAAEBlwAAAAECFgAAAAEC8gAAAAEDEAAAAAEB6QAAAAECAgAAAAECygAAAAEDJAAAAAEABQAAAAEB7gAAAAECrAAAAAECmAAAAAEAygAAAAECcAAAAAEDagAAAAEDpgAAAAEDVgAAAAEDOAAAAAECogAAAAEB/QAAAAECNwAAAAEDBgAAAAEC4wAAAAEDQgAAAAEErwAAAAEDkgAAAAED8QAAAAEDiAAAAAEE0gAAAAED4gAAAAEDfgAAAAEADAAUAAEAQgBMAAEAAgKZC/YAAgAHAqACvQAAAsICygAeAs0C5wAnBncGdwBCCwkLCQBDC7kLwABED+4P8QBMAAIAAACsAAAArABQAKgAqACuALQAugDAAMYAzADSAMAAwADYAN4AzADkAOoA8AC6APYA/AECAQgBDgEUARoAtAEgAPYA9gD2AMAAwADeAN4BJgC0ALQAtAC0AKgAqACuALQAugEsATIA0gEsAMAA2ADeAOQA8AC6APwBAgEOARQBGgC0ASAAwACoANgBAgE4APYBPgFEAUoBUAD2AVYBXAFiAWgArgC0ALoBIAABAAAAAAABA1EAAAABAqcAAAABA9MAAAABA3kAAAABAhQAAAABApMAAAABA28AAAABA40AAAABAn8AAAABA0cAAAABA6EAAAABAAUAAAABAmsAAAABAykAAAABAqkAAAABAxUAAAABAMoAAAABAu0AAAABBAYAAAABA/sAAAABA7UAAAABAx8AAAABAnoAAAABArQAAAABA4MAAAABA2AAAAABA78AAAABBQQAAAABBA8AAAABBG4AAAABBAUAAAABBScAAAABBF8AAAABAAwAFAABAEIATAABAAICmQv2AAIABwKgAr0AAALCAsoAHgLNAucAJwZ3BncAQgsJCwkAQwu5C8AARA/uD/EATAACAAAArAAAAKwAUACoAKgArgC0ALoAwADGAMwA0gDAANgA3gDkAMwA6gDwAPYAugD8AQIBCAEOARQBGgEgASYBLAD8APwA/ADYANgA5ADkATIBJgEmASYBJgCoAKgArgC0ALoBOAE+ANIBOADYAN4A5ADqAPYAugECAQgBFAEaASABJgEsAMAAqADeAQgBRAD8AUoBUAFWAVwA/AFiAWgBbgF0AK4AtAC6ASwAAQAAAAAAAQOwAAAAAQMGAAAAAQPQAAAAAQPYAAAAAQJzAAAAAQLyAAAAAQPOAAAAAQPs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AAASGAAHAAkABwAUABwAJAAsADQAPABEAAEABgAAEhIAAQAGAAASOgABAAYAABJuAAEABgAAEqQAAQAGAAAS0gABAAYAABMMAAEABgAAE0gABwABAAIACgASAAEABgAAE3wAAQAGAAATogAHAAEAAgAKABIAAQAGAAATygABAAYAABPyAAcACQABAAgAAQABAAAUEgAHAAkAAQAIAAEAAQAAFBgABwAJAAEACAABAAEAABeOAAcACQABAAgAAQABAAAZ7AAHAAkAAQAIAAEAAQAAHEoABwAJAAEACAABAAQAABxsAAcAAQABAAgAAQAEAAAdrAAHAAkAAQAIAAEABAAAHcgABwABAAEACAABAAQAAB3kAAcACQABAAgAAQAEAAAeNAAHAAEADAAeACYALgA2AD4ARgBOAFYAXgBmAG4AdgABAAYAAB6AAAEABgAAHxoAAQAGAAAfOgABAAYAAB/wAAEABgAAICwAAQAGAAAg4AABAAYAACEaAAEABgAAIf4AAQAGAAAiaAABAAYAACNiAAEABgAAI+IAAQAGAAAk0AAHAAEAAgAKABIAAQAGAAAlOgABAAYAACVMAAcACQACAAoAEgABAAYAACVQAAEABgAAJXQABwAJAAEACAABAAEAACWSAAcAAAABAAgAAQABAAAlsAAHAAAAAQAIAAEAAQAAJawABwAAAAEACAABAAEAACYQAAcAAAABAAgAAQABAAAmXgAHAAAAAQAIAAEAAQAAKFwABwAAAAEACAABAAEAACjAAAcAAAABAAgAAQABAAApFgAHAAAAAQAIAAEAAQAAKxgABwAAAAEACAABAAYAACsUAAcAAAABAAgAAQABAAArMAAHAAAAAQAIAAEAAQAAK0QABwAAAAEACAABAAEAACtEAAcAAAABAAgAAQABAAArWAAHAAAAAQAIAAEAAQAAK6IABwAAAAEACAABAAEAACxQAAcAAAABAAgAAQABAAAuzgAHAAAAAQAIAAEAAQAALs4ABwAAAAEACAABAAEAAC7OAAcAAAABAAgAAQABAAAuzgAHAAAAAQAIAAEAAQAALs4ABwAAAAEACAABAAEAAC7OAAcAAQABAAgAAQAEAAAuzgAHAAEAAQAIAAEABAAALtYABwABAAQADgAWAB4AJgABAAYAAC7aAAEABgAALxwAAQAGAAAvUAABAAYAAC9uAAcAAQAdAEAASABQAFgAYABoAHAAeACAAIgAkACYAKAAqACwALgAwADIANAA2ADgAOgA8AD4AQABCAEQARgBIAABAAYAAC9MAAEABgAAL9oAAQAGAAAwagABAAYAADECAAEABgAAMZwAAQAGAAAx9AABAAYAADKUAAEABgAAMvoAAQAGAAAzYgABAAYAADOQAAEABgAANAYAAQAGAAA0LgABAAYAADSeAAEABgAANPYAAQAGAAA1XAABAAYAADWKAAEABgAANbgAAQAGAAA2WAABAAYAADbAAAEABgAANzYAAQAGAAA3rAABAAYAADf6AAEABgAAOFAAAQAGAAA4pgABAAYAADk8AAEABgAAOdQAAQAGAAA6cgABAAYAADsSAAEABgAAO7AABwAAAAEACAABAAEAADxIAAcAAQABAAgAAQAEAAA8RAAHAAEAAQAIAAEABAAAPFAABwABAAEACAABAAQAADx0AAcAAQABAAgAAQAEAAA8ngAHAAEAAQAIAAEABgAAPk4ABwABAAEACAABAAQAAD6cAAcAAQABAAgAAQAEAAA+rAAHAAEAAQAIAAEABAAATa4ABwABAAEACAABAAQAAE5WAAcAAQABAAgAAQAEAABPyAAHAAEAAQAIAAEABAAAT+4ABwABAAEACAABAAEAAE/2AAcAAQAYADYAPgBGAE4AVgBeAGYAbgB2AH4AhgCOAJYAngCmAK4AtgC+AMYAzgDWAN4A5gDuAAEABgAAT8QAAQAGAABQHgABAAYAAFCuAAEABgAAUUAAAQAGAABR1AABAAYAAFIGAAEABgAAUm4AAQAGAABS2AABAAYAAFNEAAEABgAAU2QAAQAGAABTugABAAYAAFQSAAEABgAAVGwAAQAGAABUlAABAAYAAFS8AAEABgAAVRoAAQAGAABVeAABAAYAAFXYAAEABgAAVjgAAQAGAABWmgABAAYAAFb8AAEABgAAVxwAAQAGAABXhAABAAYAAFekAAcAAQABAAgAAQAGAABYBAAHAAEAAQAIAAEABAAAWCIABwABABQALgA2AD4ARgBOAFYAXgBmAG4AdgB+AIYAjgCWAJ4ApgCuALYAvgDGAAEABgAAWAwAAQAGAABYjAABAAYAAFjkAAEABgAAWWQAAQAGAABZvAABAAYAAFo8AAEABgAAWpQAAQAGAABbFAABAAYAAFtsAAEABgAAW+wAAQAGAABcRAABAAYAAFzEAAEABgAAXRwAAQAGAABdnAABAAYAAF30AAEABgAAXnQAAQAGAABezAABAAYAAF9MAAEABgAAX6QAAQAGAABgJAAHAAEAAQAIAAEABgAAYHQABwABAAEACAABAAQAAGDKAAcAAQALABwAJAAsADQAPABEAEwAVABcAGQAbAABAAYAAGDoAAEABgAAYbAAAQAGAABieAABAAYAAGMSAAEABgAAY6wAAQAGAABkRgABAAYAAGTgAAEABgAAZXoAAQAGAABmFAABAAYAAGauAAEABgAAZ0gABwEAAAEACAABAAEAAGfaAAcACQABAAgAAQABAABn5AAHAAEAAQAIAAEAAgAAaA4ABwABAAEACAABAAIAAGiSAAcAAQABAAgAAQAEAABpFgAHAAEAAQAIAAEABAAAaSIABwABAAEACAABAAQAAGlKAAcAAQABAAgAAQAEAABpbgAHAAEAAQAIAAEABAAAafYABwABAAEACAABAAQAAGp6AAcAAQABAAgAAQACAABqpAAHAAkAAQAIAAEAAQAAaq4ABwAAAAEACAABAAEAAGq4AAcAAQABAAgAAQABAABquAAHAAEAAQAIAAEAAQAAarQABwABAAEACAABAAEAAGqwAAcAAQABAAgAAQAEAABqrAAHAAEAAQAIAAEABAAAasIABwABAAEACAABAAIAAGrKAAcAAQABAAgAAQACAABrPAAHAAEAAQAIAAEAAgAAa8IAAwAAAAEAEgABAB4AAQAAAEYAAQAEAEwATQGzBzoAAgASBHQEdAAABHoEegABBJIEkwACCEIIUgAECFgIWAAVCHoIfAAWCH8IgQAZCIMIgwAcCIcIiQAdCJAInAAgCO8I8gAtCykLKwAxCzALMAA0C+wL7AA1DMQMxQA2DMcMxwA4DRENFgA5DRgNGAA/AAEAEAAFABoAVACOAMgBAgACAAEHrAewAAAAHAEiASoBMgE6AUIBSgFSAVoBYgFqAXABeAGAAYgBkAGYAZ4BpgGuAbYBvgHGAcwB1AHcAeQB7AH0ABwBwAHIAdAB2AHgAegB7gH2Af4CBgIOAhYCHgImAi4CNgI8AkQCTAJUAlwCZAJqAnICegKCAooCkgAcAl4CZgJuAnYCfgKGAowClAKcAqQCrAK0AroCwgLKAtIC2gLiAuoC8gL6AwIDCAMQAxgDIAMoAzAAHAL8AwQDDAMUAxwDJAMqAzIDOgNCA0oDUgNYA2ADaANwA3gDgAOGA44DlgOeA6YDrAO0A7wDxAPMABwDmgOiA6oDsgO6A8IDyAPQA9gD4APoA/AD9gP+BAYEDgQWBB4EJAQsBDQEPAREBEwEUgRaBGIEage2AAMHrAetB7cAAwesB64HuAADB6wHrwe5AAMHrAewB7oAAwetB6wHuwADB60HrQe8AAMHrQeuB70AAwetB68HvgADB60HsAe/AAIHrQfAAAMHrgesB8EAAweuB60HwgADB64HrgfDAAMHrgevB8QAAweuB7AHxQACB64HxgADB68HrAfHAAMHrwetB8gAAwevB64HyQADB68HrwfKAAMHrwewB8sAAgevB8wAAwewB6wHzQADB7AHrQfOAAMHsAeuB88AAwewB68H0AADB7AHsAfRAAIHsAfSAAMHrAesB9MAAwesB60H1AADB6wHrgfVAAMHrAevB9YAAwesB7AH1wACB6wH2AADB60HrAfZAAMHrQeuB9oAAwetB68H2wADB60HsAfcAAMHrgesB90AAweuB60H3gADB64HrgffAAMHrgevB+AAAweuB7AH4QACB64H4gADB68HrAfjAAMHrwetB+QAAwevB64H5QADB68HrwfmAAMHrwewB+cAAgevB+gAAwewB6wH6QADB7AHrQfqAAMHsAeuB+sAAwewB68H7AADB7AHsAftAAIHsAfuAAMHrAesB+8AAwesB60H8AADB6wHrgfxAAMHrAevB/IAAwesB7AH8wACB6wH9AADB60HrAf1AAMHrQetB/YAAwetB64H9wADB60Hrwf4AAMHrQewB/kAAgetB/oAAweuB6wH+wADB64HrQf8AAMHrgevB/0AAweuB7AH/gADB68HrAf/AAMHrwetCAAAAwevB64IAQADB68HrwgCAAMHrwewCAMAAgevCAQAAwewB6wIBQADB7AHrQgGAAMHsAeuCAcAAwewB68ICAADB7AHsAgJAAIHsAgKAAMHrAesCAsAAwesB60IDAADB6wHrggNAAMHrAevCA4AAwesB7AIDwACB6wIEAADB60HrAgRAAMHrQetCBIAAwetB64IEwADB60HrwgUAAMHrQewCBUAAgetCBYAAweuB6wIFwADB64HrQgYAAMHrgeuCBkAAweuB68IGgADB64HsAgbAAIHrggcAAMHrwesCB0AAwevB60IHgADB68HrggfAAMHrwewCCUAAgewCCAAAwewB6wIIQADB7AHrQgiAAMHsAeuCCMAAwewB68IJAADB7AHsAgmAAMHrAesCCcAAwesB60IKAADB6wHrggpAAMHrAevCCoAAwesB7AIKwACB6wILAADB60HrAgtAAMHrQetCC4AAwetB64ILwADB60HrwgwAAMHrQewCDEAAgetCDIAAweuB6wIMwADB64HrQg0AAMHrgeuCDUAAweuB68INgADB64HsAg3AAIHrgg4AAMHrwesCDkAAwevB60IOgADB68Hrgg7AAMHrwevCDwAAwevB7AIPQACB68IPgADB7AHrAg/AAMHsAetCEAAAwewB64IQQADB7AHrwABAAwAAwAWACgAQgABAAMBLgIaAiMACABGAFAAWgBkAG4AeACCAIwADACEAI4AmACiAKwAtgDAAMoA1ADeAOgA8gAMAOIA7AD2AQABCgEUAR4BKAEyATwBRgFQDNMABAhDCFEEkgzUAAQIQwhRBJMM1QAECEMIUgSSDNYABAhDCFIEkwzXAAQIRQhRBJIM2AAECEUIUQSTDNkABAhFCFIEkgzaAAQIRQhSBJMM2wAECEMIUQSSDOAABAhDCFEEkwzdAAQIQwhSBJIM3AAECEMIUgSTDN8ABAhFCFEEkgzeAAQIRQhRBJMM4QAECEUIUgSSDOIABAhFCFIEkwzrAAQIRwhDBJIM7AAECEcIQwSTDO0ABAhHCEUEkgzuAAQIRwhFBJMM4wAECEMIUQSSDOQABAhDCFEEkwzlAAQIQwhSBJIM5gAECEMIUgSTDOcABAhFCFEEkgzoAAQIRQhRBJMM6QAECEUIUgSSDOoABAhFCFIEkwzvAAQIRwhDBJIM8AAECEcIQwSTDPEABAhHCEUEkgzyAAQIRwhFBJMAAQAGDMAAAQABAHQAAQAcAAsALAAyADgAPABCAEgATABYAFwAaABuAAIAAgLxAvgAAAU5BTsACAACAEYATAACAEwAUgABAFIAAgBUAFoAAgBaAGAAAQBgAAUAYgBoAG4AdAB6AAEAdAAFAHYAfACCAIgAjgACAIgAjgABAI4DEgACAvcNWQACBTkDRwACAvcNWwACBTkNXgACBToDSQACAvcNWAACBTkDSgACAvcNWgACBTkNXQACBToDSQACAvQDEgACAvENVwACBTsDSgACAvUDRwACAvINXAACBTkNWAACAvQNWQACAvENWgACAvUNWwACAvINXAACAvgNXQACAvYNXgACAvMNVwACAvcAAgAMAAMGhwaGAv8AAQADAwADCgMMAAEABg0IAAEAAgLsAu0AAgAMAAMQAhABEAMAAQADAwQLphAAAAMAAQAoAAEAEgAAAAEAAABHAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAIGTBGUAAMAAgAyACoAAQAUAAAAAQAAAEcAAgADAvkDAgAAAwoDDAAKBoYGhwANAAEAAgZMEZQAAgABDsgO1gAAAAMAAwA0ADQALAABABYAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQACBkwRlAACAAEOyA7WAAAAAwABACgAAQASAAAAAQAAAEcAAgADAvkDAgAAAwoDDAAKBoYGhwANAAEABQuhC6ILpA7YD0gAAwACADgAKgABABQAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQAFC6ELogukDtgPSAACAAEOyA7WAAAAAwADADoAOgAsAAEAFgAAAAEAAABHAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAULoQuiC6QO2A9IAAIAAQ7IDtYAAAADAAQAPAA8ADwALgABABgAAAABAAAARwACAAMC+QMCAAADCgMMAAoGhgaHAA0AAQAFC6ELogukDtgPSAACAAEOyA7WAAAAAwABACgAAQASAAAAAQAAAEgAAgADAvkDAgAAAwoDDAAKBoYGhwANAAEAAQujAAMAAgAqADQAAQAUAAAAAQAAAEgAAgADAvkDAgAAAwoDDAAKBoYGhwANAAIAAQ7IDtYAAAABAAEO2QADAAIAFAAqAAEAFAAAAAEAAABJAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAEQZgADAAIAFAAqAAEAFAAAAAEAAABJAAIAAwL5AwIAAAMKAwwACgaGBocADQABAAEQZwACAAwAAwPpBh0DkwABAAMGHwYgBiEAAgHEAN8D6gMfAygDKwMuAzIDNgOCA4QDhQOIA4oDjgOPA5QDlQOZA54DogOmA6kDqwOtA68DsQO1A7kDvQPBA8UDygPOA9ED1gPZA90D4QPlA+oD7APtA/AD8gUoD/8FPQU/BUEFQwVEBUYFSQVKBU4FUgVWBVoFXgViBWcFawVvBXMFdwV7BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwFngWgBaQFqAWsBbAFtAW3BboFuwW/BcMFxwXLBdAF0gXUBdgF2wXfBeMF6AXsBfAF9AX4BfsF/wYDBgcGCwYPBhEGEwYXBhoGHgYfBiAGIQYiBiQGJgYoBioGLAYuBjAGMwY1BjgGOwY/BkEGQwZcBmAGZQZzC7ILtAu2DAIMBgwKDA4MEgwWDBoMHwwjDCYMKAwqDCwMMQw1DDkMPAxADEUMSQxNDFAMVAxYDFwMYAxkDGwO4A7kDugO7A7uDvIO9A72DvoO/g8CDwQPBg8IDwoPDg8SDxYPKA8sDzAPNA84DzwPpw+rD68Psw+3D7sPvw/DD8cPyw/ND88QaRBuEHAQdBB4EHoQjhCSEWYRahFuEXIRdBF4EXwRgAABAN8DCAMfAycDKwMtAzEDNQOBA4MDhQOHA4kDjQOPA5MDlQOZA50DoQOlA6kDqwOtA68DsQO1A7kDvQPBA8UDyQPNA9ED1QPZA90D4QPlA+kD6wPtA+8D8QUoBSwFPAU+BUAFQgVEBUYFSAVKBU4FUgVWBVoFXgViBWYFagVuBXIFdgV6BX4FgAWCBYQFhgWIBYoFjAWOBZAFkgWUBZYFmAWaBZwFngWgBaQFqAWsBbAFtAW2BboFuwW/BcMFxwXLBc8F0QXTBdcF2wXfBeMF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXBhkGHQYfBiAGIQYiBiQGJgYoBioGLAYuBjAGMgY0BjgGOgY+BkAGQgZcBmAGZAZyC7ELswu1DAIMBgwKDA4MEgwWDBoMHgwiDCYMKAwqDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGwO3w7jDucO6w7tDvEO8w71DvkO/Q8BDwMPBQ8HDwkPDQ8RDxUPJw8rDy8PMw83DzsPpg+qD64Psg+2D7oPvg/CD8YPyg/MD84QaBBtEG8QcxB3EHkQjRCREWURaRFtEXERcxF3EXsRfwACATgAmQMhAykDMAM0A/MDiwORA5cDmwOfA6MDpwOzA7cDuwO/A8EDxQPMA9AD1APYA9sD4APjA+cD7APsBSkD8wUpBSsDiwVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BaIFpgWqBa4FsgW0BbkFKwW+BcIFxgXKBc4D1AXGBdYF2gXdBeEF5QXqBe4F8gX2BfoF/gYCBgYGCgYNA+cFTAYVAyIGGwZsBjYFVAMiBl4GYgZnBeELuAwEDAgMDAwQDBQMGAwcDCAMJAwuDDMMNww7DD8MQwxHDEsMTwxSDFYMWgxeDGIMZgxuDuIO5g7qDvAO+A78DwAPDA8QDxQPGA8qDy4PMg82DzoPPg+pD60PsQ+1D7kPvQ/BD8UPyRBrEHIQdhCQEJQRaBFsEXARdhF6EX4RggABAJkDHwMnAy0DMQM1A4kDjwOVA5kDnQOhA6UDsQO1A7kDvQPBA8UDyQPNA9ED1QPZA90D4QPlA+kD6wPvA/EFKAUsBUgFSgVOBVIFVgVaBV4FYgVmBWoFbgVyBXYFegWgBaQFqAWsBbAFtAW2BboFuwW/BcMFxwXLBc8F0QXTBdcF2wXfBeMF5wXrBe8F8wX3BfsF/wYDBgcGCwYPBhEGEwYXBhkGHwY0BjoGPgZcBmAGZAZyC7UMAgwGDAoMDgwSDBYMGgweDCIMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMbA7fDuMO5w7tDvUO+Q79DwkPDQ8RDxUPJw8rDy8PMw83DzsPpg+qD64Psg+2D7oPvg/CD8YQaBBvEHMQjRCREWURaRFtEXMRdxF7EX8AAgE4AJkDIQMpAy8DMwPzA4sDkQOXA5sDnwOjA6cDswO3A7sDvwPBA8UDywPPA9MD1wPbA98D4wPnA+sD6wUpA/MFKQUqA4sFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWiBaYFqgWuBbIFtAW4BSoFvQXBBcUFyQXNA9MFxQXVBdkF3QXhBeUF6QXtBfEF9QX5Bf0GAQYFBgkGDQPnBUwGFQMhBhsGawY2BVQDIQZeBmIGZgXhC7cMBAwIDAwMEAwUDBgMHAwgDCQMLgwyDDYMOgw+DEIMRgxKDE4MUgxWDFoMXgxiDGYMbg7hDuUO6Q7vDvcO+w7/DwsPDw8TDxcPKQ8tDzEPNQ85Dz0PqA+sD7APtA+4D7wPwA/ED8gQahBxEHUQjxCTEWcRaxFvEXUReRF9EYEAAQCZAx8DJwMtAzEDNQOJA48DlQOZA50DoQOlA7EDtQO5A70DwQPFA8kDzQPRA9UD2QPdA+ED5QPpA+sD7wPx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ASMBJQEnASkBigGWAZgBmgGcAZ4BoAGiAaQBpgGoAaoBrAGuAbABsgG0AbYBuQG7Ab0BvwHBAcMBxQHHAckBywHNAc8B0QHTAdYB2AHaAd0B3wHhAeMHBw1HAAIAZAAvDjYONw44DjkOOg47DjwOPQ4+Dj8OQA5BDkIOQw5EDkUORg5HDkgOSQ5KDksOTA5NDk4OTw5QDlEOUg5TDlQOVQ4oDikOKg4rDiwOLQ4uDi8OMA4xDjIOMw40DjUOVgACAAICWgKHAAACiQKJAC4AAgBKACIOBw4KDgsOGA4ZDhsOHw4gDiEOIg4IDgkODA4NDg4ODw4QDhEOEg4TDhQOFQ4XDhgOGg4cDh0OHg4mDicOIw4kDiUOFgACAAQBLgEzAAACEAITAAYCFQIrAAoCjAKMACEAAgEKAIIOug2JDYoNiw2MDY0Njg2PDZANkQ2SDZMNlA2VDZYNlw2YDZkNmg2bDZwNnQ2eDZ8NoA2hDaINqw2qDawNrg2tDa8NsA2yDbENsw20DbYNtQ23DbgNuQ27DboNvA2+Db0NwA2/DcENwg2pDaMNpg2kDf8NkQ2lDe8OAw2oDcMNpw3RDe4Nxw3IDcsNxQ3GDcoNzw3QDd4N4A3hDeIN5A3oDekN6w3sDfAN8g33DfgOAQ4CDdsNxA68DdMNzA3NDc4OvQ3JDdIN1A3VDdYN1w3YDdkN3A3dDd8N4w3lDeYN5w3qDe0N8w30DfUN9g35DfoN/g4EDgUOBg37DfwN/Q4ADrsN2gABAIIACQBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIAAgQCJAKAAoQCwALkA1QDhAOMA5QDoAOoA7AD3APoA/AD+AP8BAwEFAQcBCgEMAQ4BEAESARQBFgEYARoBHAEeASABIgEkASYBKAEqAYsBlwGZAZsBnQGfAaEBowGlAacBqQGrAa0BrwGxAbMBtQG3AboBvAG+AcABwgHEAcYByAHKAcwBzgHQAdIB1AHXAdkB2wHeAeAB4gHkBwgNiAABAAYAqQABAAEAEgADAAEAHAABABIAAAABAAAAUgACAAEAEwAcAAAAAgACALsAuwAADlcOYAABAAIAGgAKDmMA7wDwAPEOvg6/DmEOwA7BDmIAAgABABMAHAAAAAEABg5EAAIAAQATABwAAAACABoACg5jAO8A8ADxDr4Ovw5hDsAOwQ5iAAIAAQATABwAAAACAC4AFA2GDYcOiA6JDooOhw6YDo4OlA6WDpcOiw6MDo0OlQ6QDo8OkQ6SDpMAAQAUACwATwDLAMwAzQDOAOEA+AEOARABEgGsAbABsgG6AfQB/wIOAjECMgACAGAALQ2EDYUNeg17DXwNfQ1+DX8NgA2BDYINgw6jDqIOpA6mDqUOpw64DpoOmw6cDpkOsQ62DqAOqQ6qDq0Orw6wDrIOtA6oDp0Ong6fDqsOoQ6sDq4OtQ63DrkOswABAC0AGQAcACwALgA0AEQATQBOAE8AVABXAFwAaQBqAGsAbABtAG4AuQDLAMwAzQDOAOEA6gD4AQMBBQEOARABEgEgASIBlwGsAbABsgG1AbYBtwG6AcgB1AHkBwoAAgFIAKENdQ12DXgNdw15DXUAJQAmACcNdgApACoAKwAsAC0ALgAvDXgNdwAyADMANAA1ADYANw15ADkAOgA7ADwAPQ5oDmkOcA56DoAOZQ5kDmYOaA5nDmkAZA5wDm8OcQ5yAM4AzADNDnoAzwDRANAAZwCuDn8Ofg6AAJAAkQ5kDmcArwC6DmYOcQ5lDnIObw5/Dn4A4ADiAOQA5wDpAOsA9gD5APsA/QEIDmsOaw5sDmwBBg52DnYOdw53AQ0BDwERDnsOew59Dn0BFwEZARsBHQEfASEOhA6EDoUOhQEnASkBig5qDmoBmAGaDnMOcw50DnQOdQ51AaIBpAGmAagBqgGsAa4BsAGyAbQBtgG5DnwOfAG9Ab8BwQHDAcUBxw6BDoEOgg6CDoMOgw6GDoYB0QHTDm0ObQHYAdoB3QHfAeEB4wcHAAEAoQAkACgAMAAxADgARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAGIAYwBlAGYAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdQB2AHcAeAB5AHoAewB8AH0AfgB/AIEAoAChAKwArQCwALkAxgDHAMgAyQDKANIA1ADhAOMA5QDoAOoA7AD3APoA/AD+AP8BAgEDAQQBBQEHAQkBCgELAQwBDgEQARIBEwEUARUBFgEYARoBHAEe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ABEL9Av0ADAL9gv2ADEL+Av4ADIP7Q/tADMP8g/zADQAAQABApgAAQABAp4AAgAHAqACvQAAAsICygAeAs0C5wAnBncGdwBCCwkLCQBDC7kLwABED+4P8QBMAAEAAQK5AAEAAQlhAAMABAAaAGAAZgCaAAEAoAABAGwAAQAAAFQAAgALAo0CmQAAApsCmwANBJUElQAOBnUGdQAPCEYIRgAQCVkJdwARC/QL9AAwC/YL9gAxC/gL+AAyD+0P7QAzD/IP8wA0AAEAAQKYAAEAAQKeAAIABwKgAr0AAALCAsoAHgLNAucAJwZ3BncAQgsJCwkAQwu5C8AARA/uD/EATAABAAECuQABAAEJYQADAAUAHAAcAGIAaACcAAEAogABAG4AAQAAAFQAAgALAo0CmQAAApsCmwANBJUElQAOBnUGdQAPCEYIRgAQCVkJdwARC/QL9AAwC/YL9gAxC/gL+AAyD+0P7QAzD/IP8wA0AAEAAQKYAAEAAQKeAAIABwKgAr0AAALCAsoAHgLNAucAJwZ3BncAQgsJCwkAQwu5C8AARA/uD/EATAABAAECuQABAAEJYQABAAb9fQABAAEL9AABAAgAAQAOAAEAAQKpAAEABAZ3AAQC6QKpApQAAQAMAAMAFgAaAB4AAQADAo4CjwKQAAEADAABAA4AAQAQC8IAAgKZC8MAAgKZC8QAAgKZAAEADAADABYAGgAeAAEAAwKOAo8CkAABAAwAAQAQAAEAFAvCAAMC6QKZC8MAAwLpApkLxAADAukCmQABAAgAAQAOAAEAAQsJADYAbgB0AHoAgACGAIwAkgCYAJ4ApACqALAAtgC8AMIAyADOANQA2gDgAOYA7ADyAPgA/gEEAQoBEAEWARwBIgEoAS4BNAE6AUABRgFMAVIBWAFeAWQBagFwAXYBfAGCAYgBjgGUAZoBoAGmAawCjQACAo0CjgACAo4CjwACAo8CkAACApACkQACApECkgACApICkwACApMClAACApQClQACApUClgACApYClwACApcCmAACApgCmQACApkCmwACApsElQACBJUGdQACBnUIRgACCEYJWQACCVkJWgACCVoJWwACCVsJXAACCVwJXQACCV0JXgACCV4JXwACCV8JYAACCWAJYQACCWEJYgACCWIJYwACCWMJZAACCWQJZQACCWUJZgACCWYJZwACCWcJaAACCWgJaQACCWkJagACCWoJawACCWsJbAACCWwJbQACCW0JbgACCW4JbwACCW8JcAACCXAJcQACCXEJcgACCXIJcwACCXMJdAACCXQJdQACCXUJdgACCXYJdwACCXcL9AACC/QL9gACC/YL+AACC/gP7QACD+0P8gACD/IP8wACD/MAAwAAAAEAEgABABgAAQAAAFUAAQABAAMAAgALAo0CmQAAApsCmwANBJUElQAOBnUGdQAPCEYIRgAQCVkJdwARC/QL9AAwC/YL9gAxC/gL+AAyD+0P7QAzD/IP8wA0AAEACAABAA4AAQABArAAAgAGAAwL9wACCIwL9wACAukAAQESAIYBdgF+AYYBjgGWAZ4BpgGuAbYBvgHGAc4B1gHeAeYB7gH2Af4CBgIOAhYCHgImAi4CNgI+AkYCTgJWAl4CZgJuAnYCfgKGAo4ClgKeAqYCrgK2Ar4CxgLOAtYC3gLmAu4C9gL+AwYDDgMWAx4DJgMuAzYDPgNGA04DVgNeA2YDbgN2A34DhgOOA5YDngOmA64DtgO+A8YDzgPWA94D5gPuA/YD/gQGBA4EFgQeBCYELgQ2BD4ERgROBFYEXgRmBG4EdgR+BIYEjgSWBJ4EpgSuBLYEvgTGBM4E1gTeBOYE7gT2BP4FBgUOBRYFHgUmBS4FNgU+BUYFTgVWBV4FZgVuBXYFfgWGBY4FlgWeAAIAEAKNApkAAAKbApsADQKgAr0ADgLCAsoALALNAucANQSVBJUAUAZ1BnUAUQZ3BncAUghGCEYAUwlZCXcAVAsJCwkAcwu5C8AAdAv0C/QAfAv2C/YAfQv4C/gAfg/tD/MAfwADBDAENgQ8AAMEOgRABEYAAwREBEoEUAADBE4EVARaAAMEWAReBGQAAwRiBGgEbgADBGwEcgR4AAMEdgR8BIIAAwSABIYEjAADBIoEkASWAAMElASaBKAAAwSeBKQEqgADBKgErgS0AAMEsgS4BL4AAwS8BMIEyAADBMYEzATSAAME0ATWBNwAAwTaBOAE5gADBOQE6gTwAAME7gT0BPoAAwT4BP4FBAADBQIFCAUOAAMFDAUSBRgAAwUWBRwFIgADBSAFJgUsAAMFKgUwBTYAAwU0BToFQAADBT4FRAVKAAMFSAVOBVQAAwVSBVgFXgADBVwFYgVoAAMFZgVsBXIAAwVwBXYFfAADBXoFgAWGAAMFhAWKBZAAAwWOBZQFmgADBZgFngWkAAMFogWoBa4AAwWsBbIFuAADBbYFvAXCAAMFwAXGBcwAAwXKBdAF1gADBdQF2gXgAAMF3gXkBeoAAwXoBe4F9AADBfIF+AX+AAMF/AYCBggAAwYGBgwGEgADBhAGFgYcAAMGGgYgBiYAAwYkBioGMAADBi4GNAY6AAMGOAY+BkQAAwZCBkgGTgADBkwGUgZYAAMGVgZcBmIAAwZgBmYGbAADBmoGcAZ2AAMGdAZ6BoAAAwZ+BoQGigADBogGjgaUAAMGkgaYBp4AAwacBqIGqAADBqYGrAayAAMGsAa2BrwAAwa6BsAGxgADBsQGygbQAAMGzgbUBtoAAwbYBt4G5AADBuIG6AbuAAMG7AbyBvgAAwb2BvwHAgADBwAHBgcMAAMHCgcQBxYAAwcUBxoHIAADBx4HJAcqAAMHKAcuBzQAAwcyBzgHPgADBzwHQgdIAAMHRgdMB1IAAwdQB1YHXAADB1oHYAdmAAMHZAdqB3AAAwduB3QHegADB3gHfgeEAAMHggeIB44AAweMB5IHmAADB5YHnAeiAAMHoAemB6wAAweqB7AHtgADB7QHugfAAAMHvgfEB8oAAwfIB84H1AADB9IH2AfeAAMH3AfiB+gAAwfmB+wH8gADB/AH9gf8AAMH+ggACAYAAwgECAoIEAADCA4IFAgaAAMIGAgeCCQAAwgiCCgILgADCCwIMgg4AAMINgg8CEIAAwhACEYITAADCEoIUAhWAAMIVAhaCGAAAwheCGQIagADCGgIbgh0AAMIcgh4CH4AAwh8CIIIiAADCIYIjAiSAAMIkAiWCJwAAwiaCKAIpgADCKQIqgiwAAMIrgi0CLoAAwi4CL4IxAADCMIIyAjOAAMIzAjSCNgAAwjWCNwI4gADCOAI5gjsAAMI6gjwCPYAAwj0CPoJAAADCP4JBAkKAAMJCAkOCRQAAwkSCRgJHgADCRwJIgkoAAMJJgksCTIAAwkwCTYJPAADCToJQAlGAAMJRAlKCVAAAwlOCVQJWgADCVgJXglkAAMJYgloCW4CjQACCIwCjQACAukCjQACAugCjgACCIwCjgACAukCjgACAugCjwACCIwCjwACAukCjwACAugCkAACCIwCkAACAukCkAACAugCkQACCIwCkQACAukCkQACAugCkgACCIwCkgACAukCkgACAugCkwACCIwCkwACAukCkwACAugClAACCIwClAACAukClAACAugClQACCIwClQACAukClQACAugClgACCIwClgACAukClgACAugClwACCIwClwACAukClwACAugCmAACCIwCmAACAukCmAACAugCmQACCIwCmQACAukCmQACAugCmwACCIwCmwACAukCmwACAugCoAACCIwCoAACAukCoAACAugCoQACCIwCoQACAukCoQACAugCogACCIwCogACAukCogACAugCowACCIwCowACAukCowACAugCpAACCIwCpAACAukCpAACAugCpQACCIwCpQACAukCpQACAugCpgACCIwCpgACAukCpgACAugCpwACCIwCpwACAukCpwACAugCqAACCIwCqAACAukCqAACAugCqQACCIwCqQACAukCqQACAugCqgACCIwCqgACAukCqgACAugCqwACCIwCqwACAukCqwACAugCrAACCIwCrAACAukCrAACAugCrQACCIwCrQACAukCrQACAugCrgACCIwCrgACAukCrgACAugCrwACCIwCrwACAukCrwACAugCsAACCIwCsAACAukCsAACAugCsQACCIwCsQACAukCsQACAugCsgACCIwCsgACAukCsgACAugCswACCIwCswACAukCswACAugCtAACCIwCtAACAukCtAACAugCtQACCIwCtQACAukCtQACAugCtgACCIwCtgACAukCtgACAugCtwACCIwCtwACAukCtwACAugCuAACCIwCuAACAukCuAACAugCuQACCIwCuQACAukCuQACAugCugACCIwCugACAukCugACAugCuwACCIwCuwACAukCuwACAugCvAACCIwCvAACAukCvAACAugCvQACCIwCvQACAukCvQACAugCwgACCIwCwgACAukCwgACAugCwwACCIwCwwACAukCwwACAugCxAACCIwCxAACAukCxAACAugCxQACCIwCxQACAukCxQACAugCxgACCIwCxgACAukCxgACAugCxwACCIwCxwACAukCxwACAugCyAACCIwCyAACAukCyAACAugCyQACCIwCyQACAukCyQACAugCygACCIwCygACAukCygACAugCzQACCIwCzQACAukCzQACAugCzgACCIwCzgACAukCzgACAugCzwACCIwCzwACAukCzwACAugC0AACCIwC0AACAukC0AACAugC0QACCIwC0QACAukC0QACAugC0gACCIwC0gACAukC0gACAugC0wACCIwC0wACAukC0wACAugC1AACCIwC1AACAukC1AACAugC1QACCIwC1QACAukC1QACAugC1gACCIwC1gACAukC1gACAugC1wACCIwC1wACAukC1wACAugC2AACCIwC2AACAukC2AACAugC2QACCIwC2QACAukC2QACAugC2gACCIwC2gACAukC2gACAugC2wACCIwC2wACAukC2wACAugC3AACCIwC3AACAukC3AACAugC3QACCIwC3QACAukC3QACAugC3gACCIwC3gACAukC3gACAugC3wACCIwC3wACAukC3wACAugC4AACCIwC4AACAukC4AACAugC4QACCIwC4QACAukC4QACAugC4gACCIwC4gACAukC4gACAugC4wACCIwC4wACAukC4wACAugC5AACCIwC5AACAukC5AACAugC5QACCIwC5QACAukC5QACAugC5gACCIwC5gACAukC5gACAugC5wACCIwC5wACAukC5wACAugElQACCIwElQACAukElQACAugGdQACCIwGdQACAukGdQACAugGdwACCIwGdwACAukGdwACAugIRgACCIwIRgACAukIRgACAugJWQACCIwJWQACAukJWQACAugJWgACCIwJWgACAukJWgACAugJWwACCIwJWwACAukJWwACAugJXAACCIwJXAACAukJXAACAugJXQACCIwJXQACAukJXQACAugJXgACCIwJXgACAukJXgACAugJXwACCIwJXwACAukJXwACAugJYAACCIwJYAACAukJYAACAugJYQACCIwJYQACAukJYQACAugJYgACCIwJYgACAukJYgACAugJYwACCIwJYwACAukJYwACAugJZAACCIwJZAACAukJZAACAugJZQACCIwJZQACAukJZQACAugJZgACCIwJZgACAukJZgACAugJZwACCIwJZwACAukJZwACAugJaAACCIwJaAACAukJaAACAugJaQACCIwJaQACAukJaQACAugJagACCIwJagACAukJagACAugJawACCIwJawACAukJawACAugJbAACCIwJbAACAukJbAACAugJbQACCIwJbQACAukJbQACAugJbgACCIwJbgACAukJbgACAugJbwACCIwJbwACAukJbwACAugJcAACCIwJcAACAukJcAACAugJcQACCIwJcQACAukJcQACAugJcgACCIwJcgACAukJcgACAugJcwACCIwJcwACAukJcwACAugJdAACCIwJdAACAukJdAACAugJdQACCIwJdQACAukJdQACAugJdgACCIwJdgACAukJdgACAugJdwACCIwJdwACAukJdwACAugLCQACCIwLCQACAukLCQACAugLuQACCIwLuQACAukLuQACAugLugACCIwLugACAukLugACAugLuwACCIwLuwACAukLuwACAugLvAACCIwLvAACAukLvAACAugLvQACCIwLvQACAukLvQACAugLvgACCIwLvgACAukLvgACAugLvwACCIwLvwACAukLvwACAugLwAACCIwLwAACAukLwAACAugL9AACCIwL9AACAukL9AACAugL9gACCIwL9gACAukL9gACAugL+AACCIwL+AACAukL+AACAugP7QACCIwP7QACAukP7QACAugP7gACCIwP7gACAukP7gACAugP7wACCIwP7wACAukP7wACAugP8AACCIwP8AACAukP8AACAugP8QACCIwP8QACAukP8QACAugP8gACCIwP8gACAukP8gACAugP8wACCIwP8wACAukP8wACAugAAQAgAA0ANgA6AD4AQgBGAEoATgBSAFYAWgBeAGIAZgACAAMCjQKXAAAL9Qv1AAsL+Av4AAwAAQA0AAEANgABADgAAQA6AAEAPAABAD4AAQBAAAEAQgABAEQAAQBGAAEASAABAEoAAQBMAo0AAgKNAo4AAgKOAo8AAgKPApAAAgKQApEAAgKRApIAAgKSApMAAgKTApQAAgKUApUAAgKVApYAAgKWApcAAgKXC/UAAgv1C/gAAgv4AAEAMgAWAFoAXgBkAGoAcAB2AHoAfgCCAIYAigCQAJQAmACcAKAApACqAK4AsgC2AL4AAgAGAqACpgAAAqgCrAAHAq4CrgAMArACsQANArMCtAAPArYCugARAAEAagACAGwAcgACAHIAeAACAHgAfgACAH4AhAABAIQAAQCGAAEAiAABAIoAAQCMAAIAjgCUAAEAlAABAJYAAQCYAAEAmgABAJwAAgCeAKQAAQCkAAEApgABAKgAAwCqALAAuAACALgAvgLNAAICmALOAAICmALkAAICmwLPAAICmA/uAAICmwLQAAICmA/vAAICmwLRAAICmA/wAAICmwLSAAICmALTAAICmALUAAICmALVAAICmALWAAICmALXAAICmALlAAICmwLYAAICmALZAAICmALaAAICmALbAAICmALcAAICmALdAAICmALmAAICmwLeAAICmALfAAICmALgAAICmALhAAICmALJAAMCnQKYAsoAAwKeApgC4gACApgP8QACApsAAQAKAAIAEgAYAAEAAgK5AuEAAgAMABIAAgASABgCxwACAp0CyAACAp4CyQACAp0CygACAp4AAQAIAAEADgABAAECpQABAAQC4wACApYAAQAG9qEAAQABC/UAAwAAAAIAWgAUAAEAGgABAAAAVgABAAEClgACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsGdAZ0AD8GdwZ3AEALCQsJAEELuQvAAEIP7g/xAEoAAQACAqwC2AADAAAAAgCQABYAAgAcAFAAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAIACgKhAr0AAALCAsoAHQLNAtYAJgLYAuIAMALkAucAOwZ0BnQAPwZ3BncAQAsJCwkAQQu5C8AAQg/uD/EASgABAAICrALYAAMAAAACAJIAGAADAB4AHgBSAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsGdAZ0AD8GdwZ3AEALCQsJAEELuQvAAEIP7g/xAEoAAQACAqwC2AADAAAAAgCUABoABAAgACAAIABUAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsGdAZ0AD8GdwZ3AEALCQsJAEELuQvAAEIP7g/xAEoAAQACAqwC2AADAAAAAgAyACYAAgAsABYAAQAAAFYAAgACAo0ClwAAC/gL+AALAAEAAQKWAAEAAQKgAAEAAgKsAtgAAwAAAAIAaAAoAAMALgBiABgAAQAAAFYAAgACAo0ClwAAC/gL+AALAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAMAAAACAGoAKgAEADAAMABkABoAAQAAAFYAAgACAo0ClwAAC/gL+AALAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAMAAAACAGwALAAFADIAMgAyAGYAHAABAAAAVgACAAICjQKXAAAL+Av4AAsAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAQKgAAEAAgKsAtgAAwAAAAIAGgAUAAEAIgABAAAAVgABAAEClgABAAICrALYAAEAAQLNAAMAAAACAFAAFgACABwAWAABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQACAqwC2AABAAECzQADAAAAAgBSABgAAwAeAB4AWgABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQACAqwC2AABAAECzQADAAAAAgBUABoABAAgACAAIABcAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAICrALYAAEAAQLNAAMAAAACACIAFgACABwAKgABAAAAVgABAAEClgABAAECoAABAAICrALYAAEAAQLjAAMAAAACACIAFgACABwAKgABAAAAVgABAAEClgABAAECoAABAAICrALYAAEAAQLSAAMAAAACAFgAGAADAB4AUgBgAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAEAAQLjAAMAAAACAFgAGAADAB4AUgBgAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAEAAQLSAAMAAAACAFoAGgAEACAAIABUAGIAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAQKgAAEAAgKsAtgAAQABAuMAAwAAAAIAWgAaAAQAIAAgAFQAYgABAAAAVgABAAEClgACAAgCmQKZAAAElQSVAAEGdQZ1AAIIRghGAAMJWQl2AAQL9Av0ACIL9gv2ACMP8g/zACQAAQABAqAAAQACAqwC2AABAAEC0gADAAAAAgBcABwABQAiACIAIgBWAGQAAQAAAFYAAQABApYAAgAIApkCmQAABJUElQABBnUGdQACCEYIRgADCVkJdgAEC/QL9AAiC/YL9gAjD/IP8wAkAAEAAQKgAAEAAgKsAtgAAQABAuMAAwAAAAIAXAAcAAUAIgAiACIAVgBkAAEAAABWAAEAAQKWAAIACAKZApkAAASVBJUAAQZ1BnUAAghGCEYAAwlZCXYABAv0C/QAIgv2C/YAIw/yD/MAJAABAAECoAABAAICrALYAAEAAQLSAAMAAAACABoAFAABACIAAQAAAFYAAQABApYAAQACAqwC2AABAAEJYQADAAAAAgBiAFwAAgAWAGoAAQAAAFYAAgALAo0CmQAAApsCmwANBJUElQAOBnUGdQAPCEYIRgAQCVkJdwARC/QL9AAwC/YL9gAxC/gL+AAyD+0P7QAzD/IP8wA0AAEAAQKWAAEAAgKsAtgAAQABCWEAAwAAAAIAGgAUAAEAIgABAAAAVgABAAEClgABAAICrALYAAEAAQl1AAMAAAACAGIAXAACABYAagABAAAAVgACAAsCjQKZAAACmwKbAA0ElQSVAA4GdQZ1AA8IRghGABAJWQl3ABEL9Av0ADAL9gv2ADEL+Av4ADIP7Q/tADMP8g/zADQAAQABApYAAQACAqwC2AABAAEJdQADAAIAFgAiAAIAKAAcAAAAAQAAAFcAAQABAo0AAQABApEAAQABArYAAQABCwkAAQAIAAEADgABAAECqgACAAYADALCAAICjQLDAAIClQADAAIALgBgAAEARAACAGYAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAECogABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAwACABYASAABACwAAQBOAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQABAqIAAQAHAqoCrwKzAsICwwLWAtwAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQLPAAMAAgAWAFoAAQAsAAEASAABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEABwKqAq8CswLCAsMC1gLcAAEAAQLPAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAECpQADAAIAFgBIAAEALAABAE4AAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAECpQABAAcCqgKvArMCwgLDAtYC3AADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAtIAAwACABYAWgABACwAAQBIAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAHAqoCrwKzAsICwwLWAtwAAQABAtIAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQKpAAMAAgAWAEgAAQAsAAEATgABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEAAQKpAAEABwKqAq8CswLCAsMC1gLcAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAEC1QADAAIAFgBaAAEALAABAEgAAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAcCqgKvArMCwgLDAtYC3AABAAEC1QADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABArAAAwACABYAWgABACwAAQBIAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAHAqoCrwKzAsICwwLWAtwAAQABArAAAwACAC4AggABAEQAAgBgABgAAQAAAFgAAgADAo0ClQAAApcClwAJC/gL+AAKAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQLaAAMAAgAWAFoAAQAsAAEASAABAAAAWAABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEABwKqAq8CswLCAsMC1gLcAAEAAQLaAAMAAgAuAIIAAQBEAAIAYAAYAAEAAABYAAIAAwKNApUAAAKXApcACQv4C/gACgABAAkCjgKPApACkgKTApQClQKXC/gAAQAMApkJWQleCWMJaglrCWwJbQluCXEL9Av2AAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAECpgADAAIAFgBIAAEALAABAE4AAQAAAFgAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAAECpgABAAcCqgKvArMCwgLDAtYC3AADAAIALgCCAAEARAACAGAAGAABAAAAWAACAAMCjQKVAAAClwKXAAkL+Av4AAoAAQAJAo4CjwKQApICkwKUApUClwv4AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAtMAAwACABYAWgABACwAAQBIAAEAAABYAAEACQKOAo8CkAKSApMClAKVApcL+AABAAwCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAHAqoCrwKzAsICwwLWAtwAAQABAtMAAwACABQAFAABAEYAAAABAAAAWQABABcCjQKOAo8CkAKRApICkwKUApUClwKZCVkJXgljCWoJawlsCW0JbglxC/QL9gv4AAEADgKNApQCmQlZCV4JYwlqCWsJbAltCW4JcQv0C/YAAQAOAAQAGgAeACQAKAABAAQElQhGCEcJdwABABIAAgASABgAAQAWAAEAFgv2AAEP8wACCEYP8gABD/MAAQ/yAAEAAwAAAAEAGAAEAK4AfAB8AMoAAQAAAFoAAgAQAo0CmQAAApsCmwANAqACvQAOAsICygAsAs0C5wA1BJUElQBQBnUGdQBRBncGdwBSCEYIRgBTCVkJdwBUCwkLCQBzC7kLwAB0C/QL9AB8C/YL9gB9C/gL+AB+D+0P8wB/AAEAFwKNAo4CjwKQApECkgKTApQClQKXApkJWQleCWMJaglrCWwJbQluCXEL9Av2C/gAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2g/uAAEAAQl0AAMAAAABABgABACuAHwAfADKAAEAAABaAAIAEAKNApkAAAKb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AAEADAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gACApkL2AACCVkL2AACCV4L2AACCWML2AACCWoL2AACCWsL2AACCWwL2AACCW0L2AACCW4L2AACCXEL2AACC/QL2AACC/YL2AABACIADgBCAEgATgBUAFoAYABmAGwAcgB4AH4AhACKAJAAAQAOAo0ClAKZCVkJXgljCWoJawlsCW0JbglxC/QL9gACAo0L1wACApQL1wACApkL1wACCVkL1wACCV4L1wACCWML1wACCWoL1wACCWsL1wACCWwL1wACCW0L1wACCW4L1wACCXEL1wACC/QL1wACC/YL1wABARIAhgF2AXwBggGIAY4BlAGaAaABpgGsAbIBuAG+AcQBygHQAdYB3AHiAegB7gH0AfoCAAIGAgwCEgIYAh4CJAIqAjACNgI8AkICSAJOAlQCWgJgAmYCbAJyAngCfgKEAooCkAKWApwCogKoAq4CtAK6AsACxgLMAtIC2ALeAuQC6gLwAvYC/AMCAwgDDgMUAxoDIAMmAywDMgM4Az4DRANKA1ADVgNcA2IDaANuA3QDegOAA4YDjAOSA5gDngOkA6oDsAO2A7wDwgPIA84D1APaA+AD5gPsA/ID+AP+BAQECgQQBBYEHAQiBCgELgQ0BDoEQARGBEwEUgRYBF4EZARqBHAEdgR8BIIEiASOBJQAAgAQAo0CmQAAApsCmwANAqACvQAOAsICygAsAs0C5wA1BJUElQBQBnUGdQBRBncGdwBSCEYIRgBTCVkJdwBUCwkLCQBzC7kLwAB0C/QL9AB8C/YL9gB9C/gL+AB+D+0P8wB/AAICjQvXAAICjgvXAAICjwvXAAICkAvXAAICkQvXAAICkgvXAAICkwvXAAIClAvXAAIClQvXAAIClgvXAAIClwvXAAICmAvXAAICmQvXAAICmwvXAAICoAvXAAICoQvXAAICogvXAAICowvXAAICpAvXAAICpQvXAAICpgvXAAICpwvXAAICqAvXAAICqQvXAAICqgvXAAICqwvXAAICrAvXAAICrQvXAAICrgvXAAICrwvXAAICsAvXAAICsQvXAAICsgvXAAICswvXAAICtAvXAAICtQvXAAICtgvXAAICtwvXAAICuAvXAAICuQvXAAICugvXAAICuwvXAAICvAvXAAICvQvXAAICwgvXAAICwwvXAAICxAvXAAICxQvXAAICxgvXAAICxwvXAAICyAvXAAICyQvXAAICygvXAAICzQvXAAICzgvXAAICzwvXAAIC0AvXAAIC0QvXAAIC0gvXAAIC0wvXAAIC1AvXAAIC1QvXAAIC1gvXAAIC1wvXAAIC2AvXAAIC2QvXAAIC2gvXAAIC2wvXAAIC3AvXAAIC3QvXAAIC3gvXAAIC3wvXAAIC4AvXAAIC4QvXAAIC4gvXAAIC4wvXAAIC5AvXAAIC5QvXAAIC5gvXAAIC5wvXAAIElQvXAAIGdQvXAAIGdwvXAAIIRgvXAAIJWQvXAAIJWgvXAAIJWwvXAAIJXAvXAAIJXQvXAAIJXgvXAAIJXwvXAAIJYAvXAAIJYQvXAAIJYgvXAAIJYwvXAAIJZAvXAAIJZQvXAAIJZgvXAAIJZwvXAAIJaAvXAAIJaQvXAAIJagvXAAIJawvXAAIJbAvXAAIJbQvXAAIJbgvXAAIJbwvXAAIJcAvXAAIJcQvXAAIJcgvXAAIJcwvXAAIJdAvXAAIJdQvXAAIJdgvXAAIJdwvXAAILCQvXAAILuQvXAAILugvXAAILuwvXAAILvAvXAAILvQvXAAILvgvXAAILvwvXAAILwAvXAAIL9AvXAAIL9gvXAAIL+AvXAAIP7QvXAAIP7gvXAAIP7wvXAAIP8AvXAAIP8QvXAAIP8gvXAAIP8wvXAAEAAAABYXJhYgAMAAYAAAAAAAUC8AMbBGcEaARpAAAAAAABAAAAAAAAACgAAAACZGxuZwAAACgAAAAWc2xuZwAAAD4AAAAiQXJtbiwgQ3lybCwgR3JlaywgTGF0bkFyYWIsIEFybW4sIEN5cmwsIEdyZWssIEhlYnIsIExhdG4=';\r\n","export const arialItalic =\r\n 'AAEAAAAYAQAABACARFNJR4ior6IACtTAAAAdtEdERUbg3N9RAAlAzAAAAepHUE9TIBwlhAAJQrgAATAMR1NVQvBD708ACnLEAABhnkxUU0inwY7fAAA1pAAADNNPUy8y9AB9sQAAAggAAABgUENMVCbQPkQACUCUAAAANlZETVhQf2rwAABCeAAAEZRjbWFwPtTsvwABh/QAAB3KY3Z0IEdNLLoAAbLEAAAFZmZwZ236bC7wAAGlwAAABjVnYXNwABgACQAJQIQAAAAQZ2x5Zlfk/qcAAetsAAcO8mhkbXgo6lEvAABUDAABM+hoZWFk596/zAAAAYwAAAA2aGhlYQ5HEDoAAAHEAAAAJGhtdHjHZ/DDAAACaAAAMzxrZXJu5svgIQAI+mAAABQobG9jYS20b/AAAbgsAAAzQG1heHAQCwPiAAAB6AAAACBtZXRhyz9uxwAK1GQAAABabmFtZf0+gUIACQ6IAAAx2XBvc3T/HgCWAAlAZAAAACBwcmVwlGI4xQABq/gAAAbLAAEAAAAHAAAcCcMlXw889QgZCAAAAAAAo3LCvwAAAADWe7Ks+939ZwrfB/sAAgAJAAEAAQAAAAAAAQAABz7+TgBDCqr73fpSCt8AIQAHAAAAAAAAAAAAAAAADM8AAQAADM8A8gA8AG4ABQACABAALwBWAAACkAJNAAQABAADA4gBkAAFAAgFmgUzAB4BGwWaBTMAWgPRAGYCEggFAgsGBAICAgkCBOAADv8AAHhbAAAAAQAAAABUTUMgAAEAIP/8BdP+VwEzBz4BskAAAb/f9wAABCYFugAAACAABAYAAQAAAAAAAjkAAAI5AAACOQBzAtcBFQRzAF8EcwBpBx0AxwVWAKEBhwEEAqoArQKq/5MDHQDsBKwAuAI5ADECqgBfAjkAdgI5/5gEcwCRBHMBLwRzAHgEcwBwBHMAXQRzAI4EcwCrBHMA+ARzAJkEcwCKAjkAdQI5ADEErAC4BKwAuASsALgEcwEECB8AbwVW/9cFVgBZBccAugXHAFsFVgBcBOMAXQY5AMcFxwBWAjkAdQQAAEQFVgBbBHMAUgaqAFoFxwBkBjkAuwVWAFgGOQC9BccAYAVWAJAE4wD/BccAxgVWAP4HjQEABVb/vwVWAO8E4wAyAjkADQI5AK4COf+IA8EAkARz/34CqgEqBHMAWgRzAEQEAABzBHMAbARzAGoCOQBdBHMANQRzAEQBxwA9Acf/CAQAAEYBxwA2BqoAQwRzAEQEcwBkBHP/6wRzAGkCqgBEBAAATgI5AHMEcwCABAAAogXHAJ8EAP/9BAAAAAQAACgCrABrAhQAvAKs/1QErACkBVb/1wVW/9cFxwC6BVYAXAXHAGQGOQC7BccAxgRzAFoEcwBaBHMAWgRzAFoEcwBaBHMAWgQAAHMEcwBqBHMAagRzAGoEcwBqAjkAfQI5AH0COQB9AjkAfQRzAEQEcwBkBHMAZARzAGQEcwBkBHMAZARzAIAEcwCABHMAgARzAIAEcwC6AzMBEQRzAJoEcwBABHMAPgLNAG0ETACOBOMASgXlAFMF5QBTCAABGAKqAVoCqgDtBGQAfAgA/60GOQCuBbQAmgRkAHwEZAB8BGQAfARzAEsEnAAMA/QAOAW0AHoGlgDxBGQAAAIxAAAC9gCnAuwAjwYlALsHHQBXBOMAmQTjAKwCqgB2BKwAuARkAFQEcwAuBGQAfATlABoEcwChBHMAUwgAASYFVv/XBVb/1wY5ALsIAACkB40AgQRz//wIAAAAAqoA2AKqANYBxwEIAccBAARkAIAD9AB4BAAAAAVWAO8BVv3oBHMAUQKqAGECqgAhBAAAbwQAAG8EcwALAjkAuQHH//ECqv/YCAAAiAVW/9cFVgBcBVb/1wVWAFwFVgBcAjkAdQI5AHUCOQB1AjkAdQY5ALsGOQC7BjkAuwXHAMYFxwDGBccAxgI5AH0CqgDNAqoAwAKqAMkCqgDbAqoBjgKqAUgCqgBNAqoAsAKqAEACqgEIBHMAGAHHACYFVgCQBAAATgTjADIEAAAoAhQAvAXHAFsEcwBkBVYA7wQAAAAFVgBYBHP/6wSsALgErAEFAqoBFwKqAJgCqgCpBqwAewasAKsGrACpBHP/6AY5AMcEcwA1AjkAdQVWAJAEAABOBccAugQAAHMFxwC6BAAAcwRzAGwEawC1AqoBNgVW/9cEcwBaBVb/1wRzAFoFxwBbBQAAcAXHAFsFVgBcBHMAagVWAFwEcwBqBHMAUgHHADYEcwBSAkAAOARzAFIDMwA2BccAZARzAEQFxwBkBHMARAY5ALsEcwBkBccAYAKqAEQFxwBgAqoARAVWAJAEAABOBOMA/wI5ABsE4wD/AtUAbQXHAMYEcwCABccAxgRzAIAE4wAyBAAAKATjADIEAAAoBJAAVwY5ALsGsgC0BJAAZgRyAGIDhABFBNMAZAL+ALAFOABvBGv/fgQAAHMC6wB3CMAAGQgAAE8EAACZCAAATwQAAJkIAABPBAAAmAQAAJgH1QFqBcAA7gSsALgE1QCdBKwAcQTVAiIE1QEFBav/6QUAAckFqwJ+Bav/6QWrAn4Fq//pBasCfgWr/+kFq//pBav/6QWr/+kFq//pBasBwAWrAn4FqwHABasBwAWr/+kFq//pBav/6QWrAn4FqwHABasBwAWr/+kFq//pBav/6QWrAn4FqwHABasBwAWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFq//pBav/6QWr/+kFqwLWBasAZgWr/+oF1f//BNUAkggAAAAH6wEwB+sBIAfrATAH6wEgBNUAsgTVAIAE1QAqCCsBmAhrAbgHVQAQBgAA9AYAAG8EQAA6BUAANwTAAD8EFQBABAAAJQYAAFUF3gB1A40AOwTrAGUBgAEEAtUBFQcVALgClgAZBNUAkgLWAIMC1gCDBNUAsgLWAHAFVv/XBHMAWgXHALoEAABzBccAugQAAHMFVgBcBHMAagVWAFwEcwBqBVYAXARzAGoGOQDHBHMANQY5AMcEcwA1BjkAxwRzADUFxwBWBHMARAXHAFYEcwBEAjkAdQHHAD0COQB1AccAPQI5AHUBxwA9Ajn/3AHH/5YEAABEAcf/CAVWAFsEAABGBAAARgRzAFIBx/+kBccAZARzAEQFyQBiBHMASQY5ALsEcwBkBjkAuwRzAGQFxwBgAqr/rgVWAJAEAABOBOMA7AI5ABgFxwDGBHMAgAXHAMYEcwCABccAxgRzAIAFxwDGBHMAgAeNAQAFxwCfBVYA7wQAAAABxwA2BVb/1wRzAFoIAP+tBx0AVwY5AK4E4wCZAjkBKAeNAQAFxwCfB40BAAXHAJ8HjQEABccAnwVWAO8EAAAAAccBMwKqAJkEcwBABM0AWgasAHsGrACUBqwAkwasAGMCqgAmAqr/4AKqAXsCqgBhBVb/1AZPAGMGxQBoAxwAYgZaAFcG7ABgBjMAGwHH/+4FVv/XBVYAWQVe/+wFVgBcBOMAMgXHAFYCOQB1BVYAWwVW/+wGqgBaBccAZAUwAAgGOQC7BcwAVwVWAFgEzAAtBOMA/wVWAO8FVv+/BqUA/QYWAAcCOQB1BVYA7wSQAGYDhABFBHEARQHHAD0EZgCWBJL/6QQAAJ4DtQBkBHEARQRXAIIBxwA9BAAAPAPw/80EYv/oBAAAogOTAHMEcwBkBJX/5APkAG8EZgCWBF7/bQXSAJwGOwBkAccAPQRmAJYEcwBkBGYAlgY7AGQFVgBcBr4A5wRaAFcFqQC7BVYAkAI5AHUCOQB1BAAARAiH/+oH3ABXBsEA5QS3AFcFHQDnBcoAVwVW/9cFNQBXBVYAWQRaAFcFov9/BVYAXAdW/7cE6QBjBbkAVwW5AFcEtwBXBXz/6waqAFoFxwBWBjkAuwXMAFcFVgBYBccAugTjAP8FHQDnBlwApAVW/78F0QBXBWMA2wddAFcHYgBXBnEA5wcXAFcFNQBXBY0AWgguAFcFdP/KBHMAWgSAAHYELQBkA/IATgRsAGQEcwBqBYH/xQO4AB8EcwCABHMAgAPHAD8Eg//YBXwAPwRnAD8EcwBkBGcAPwRz/+sEAABzBqoAQwQAAAAGrwBfBAD//QSTAH0EJACXBqQAeQbPAHkE+AB5BeMAPwQ1AD8D7wA1BgQAPwRG/+gEcwBqBHMARQMGAD8D9wBhBAAATgHHAD0BxwA9Acf/CAdI/9gGnwA/BHMARQPHAD8EAAAABHMAfQPwAFcCtwA/CAAAUQiqAFsFXACsAAD/ZwAA/5QAAP+TAAD/kwAA/5QAAP+UAAD/lAAA/5MAAP+TAAAAYwAA/5QAAAEgAAD/KAMQAPEAAP/jAjMAggAAA90AAP/WAjkAbQSBAB0EVv/mAzH/zQQRAKEE0QBWAfkATwMPALMEygBPBLgAiwH5ALwEEwCpA7AABwO0ALAEygBPBM8AIwH5//gC0v/wBJgAbAQ8/9MEiACcBF8AMwOxAK8D1P/zBGYAAwQTAKkFjgCiBST/4QPyAE8D8gC8A/IAvAHjAJ4DVgCeBoYATwH5AJsEEwCpBBMAjwO0/+UDtP/lBEj/4QWOAKIFjgCiBY4AogWOAKIEgQAdBIEAHQSBAB0EVv/mAzH/zQQRAKEE0QBWAksALgNKADoEuACLAksATwQTAKkDsAAHA7QAsATPACMC0v/wBJgAbASIAJoEXwAzA9T/8wRmAAMEEwCpBY4AogUk/+EB+QBPBFb/5gOwAAcEXwAzBJsANwAA/9wAAP8lAAD/3AAA/lEAAP/cAAD+UQAA/xYAAP8WAAD/FgAA/xYAAP8WAAD/FgAA/xYAAP8WAAD/FgAA/9wAAP8WAAD/3AAA/yAAAP/cBHMApAgAAAAGfgC7BNYAZAZZAMYFEgCAAAD+9AAA/UEAAP23AAD/WAAA/ewAAP47AAD/LgAA/zgAAP4JAAD9dgAA/rMAAP0OAAD9ZgAA/+wAAP/EAAD+RAQbAFYGrAB7BqwAewAA/2oAAP24AAD+ygAA/cgAAP8tAAD9xwAA/O0AAPwOAAD8DgAA/RQAAPyRAAD8fAAA/JIAAPxGAAD8AAAA/EYAAPvdAAD+9AAA/1AAAP5+AAD8agAA/JUAAP33AAD+MwAA/JkAAPz5AAD87wAA/J8AAPyLAAD73gAA/SwAAP1LAAD8eAAA/GgBxwA9BVb/1wRzAFoFVv/XBHMAWgVW/9cEcwBaBVb/1wRzAFoFVv/XBHMAWgVW/9cEcwBaBVb/1wRzAFoFVv/XBHMAWgVW/9cEcwBaBVb/1wRzAFoFVv/XBHMAWgVW/9cEcwBaBVYAXARzAGoFVgBcBHMAagVWAFwEcwBqBVYAXARzAGoFVgBcBHMAagVWAFwEcwBqBVYAXARzAGoFVgBcBHMAagI5AHUBxwA9AjkAOAHH/+gGOQC7BHMAZAY5ALsEcwBkBjkAuwRzAGQGOQC7BHMAZAY5ALsEcwBkBjkAuwRzAGQGOQC7BHMAZAZ+ALsE1gBkBn4AuwTWAGQGfgC7BNYAZAZ+ALsE1gBkBn4AuwTWAGQFxwDGBHMAgAXHAMYEcwCABlkAxgUSAIAGWQDGBRIAgAZZAMYFEgCABlkAxgUSAIAGWQDGBRIAgAVWAO8EAAAABVYA7wQAAAAFVgDvBAAAAAVW/9cEcwBaAjkAdQHHAD0GOQC7BHMAZAXHAMYEcwCABccAxgRzAIAFxwDGBHMAgAXHAMYEcwCABccAxgRzAIAAAAAwAAAAMAAAADAAAAAwBFoAPgMGADwHVv+3BYH/xQS3AFcDxwA/BLcAVwPHAD8FxwBWBGcAPwRzAOoEAACiBHMAhwQA//QFVv+/BAD//QVjAMYEJACBBWMAdQRzAEQGOQDBBHMAdgY5ALsEcwBkAfkAogAA/7gCvAAAA/IAjARzAEQF2ACMBTUAVwRzAEQFNQBXBHMARAXHAKAFxwC6BAAAcwXHAFsGRgCMBTUAOwRzAGwEcgAABVYARATpAGYE4/8qBjkAxwP5AIkHCQBEAccANgI5AGIFVgBbBAAARgHHADYD8P/NBsUAcAXH/zAEcwBEBjkAuwbyALsFVwBkBdgAjARz/+sFVgBYBVYAggQAAFcEzAAtAqoAyAI5/+QE4wCgAjkAcwTjAP8GFgC/BccAxgW9ANEEAAAABOMAMgQAACgE4/+6BOMAMwQAABEEAP/6BHMAeAQVAEkDgQAKBAAAawRz/+sCFAC8A04AvASsAHICOQBzCqoAWwnHAFsIcwBsCHMAUgY6AFIDjgA2CccAZAeOAGQGOgBEBHMAdgVW/9cEcwBaAAD/+QVW/9cEcwBaCAD/rQcdAFcGOQDHBHMABgY5AMcEcwA1BVYAWwQAAEYGOQC7BHMAZAY5ALsEcwBkBOP/ugQA/64Bx/8ICqoAWwnHAFsIcwBsBjkAxwRzADUIRgBWBPEABAXHAGQEcwBEBVb/1wRzAFoFVv/XBHMAWgVWAFwEcwBqBVYAXARzAGoCOQB1AjkANgI5AHUCOQB9BjkAuwRzAGQGOQC7BHMAZAXHAGACqgBEBccAYAKqAEQFxwDGBHMAgAXHAMYEcwCABVYAkAQAAE4E4wD/AjkAYQRc/9YDfv+1BccAVgRzAEQFWgBWBNYAZATWAGQE4wAyBAAAKAVW/9cEcwBaBVYAXARzAGoGOQC7BHMAZAAAADUGOQC7BHMAZAY5ALsEcwBkBjkAuwRzAGQFVgDvBAAAAARzAIgEcwBsBHMARARzAEQEAAA8BAAAEARzAGwEcwBsBHMAcQWiAHYDhABFA7gAHwTtAB8EEgBkAjn/OARzADUEcwA1BGcAZAQCAKYE7wB8BHMAfARzAEQEcwBEAccAHwHHAD4C2QAAAcf/zwHH//ABxwAHBIIAMAaqAG0GqgBtBqoAQwRz/xAEcwBEBKkAPwRzAGQGIABkBjsAZARzAGQCqv+wAqr/sAKq/7ACqv/tAqoAFQKqAEQCqgB1BEYARARGAEEEAP/XAlP/OAJx/zgCUQBZAsj/MwI5ACsCOQAcBHMAQgSBAFsEZgCWBAD/0wXH/9MEAP/dBB4AlQQAACgEYQAoBAD/rgQA/8wEAADKBAAAxwQAADcEAAAjBjkAuwQYAEQEEgBZBGcAZARnAD8CWP8fBAD/1wOVAEQEcwBpBAAAPQQAAIMHawBsBz4AbAfHAGwFXgB2A7AAcwWrAHMGAgBdBSIANgS/ADYD4gBkBDgAEwJ3ADoCdwA6APr/ogHBADoBwQAeAcEAJwKdADoEFADTAskATwGHAQQC1wEVAccBCAHHAQABxwEzAqoBwAKqAa0C2QDeAtkA1QSsALgErAC4BKwArQSsAK0CqgHZAqoBWgKqASoCqgEhAqr/lQKqAF4Cqv/7AjkAcAI5AVICqgD7AqoA+wKqAKYCqgCmAqoApgKqABACqgACAqoAogLrANYAvgBAApkAYwKxAEAC2QDVAxAAlgMQAJYDEACWAxAAlgMQAJYCqgBiAqoAYgKq/8cCqgDJAqoA1gRXAJYEVwCWBFcAlgRXAJYEVwBDBFcAQwRXAEMEVwBDBFcAQwMQAEMEVwAvBFcALwRXAC8EVwAvBFcALwMQAC8EVwAlBFcAJQRXACUEVwAlBFcAJQMQAC8EVwAaBFcAGgRXABoEVwAaBFcAGgMQABoEVwBCBFcAQgRXAEIEVwBCBFcAQgMQAEIEVwCWBFcAlgRXAJYEVwCWBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcALwRXAC8EVwAvBFcALwRXAC8DEAAvBFcALwRXAC8EVwAvBFcALwRXAC8DEAAvBFcAJgRXACYEVwAmBFcAJgRXACYDEAAmBFcAQgRXAEIEVwBCBFcAQgRXAEIDEABCBFcAlgRXAJYEVwCWBFcAlgRXAEIEVwBCBFcAQgRXAEIEVwBCAxAAQgRXACYEVwAmBFcAJgRXACYEVwAmAxAAJgRXACMEVwAjBFcAIwRXACMEVwAjAxAAIwRXAC8EVwAvBFcALwRXAC8EVwAvAxAALwRXAEsEVwBLBFcASwRXAEsEVwBLAxAASwRXAJYEVwCWBFcAlgRXAJYEVwBCBFcAQgRXAEIEVwBCBFcAQgMQAEIEVwAaBFcAGgRXABoEVwAaBFcAGgMQABoEVwAkBFcAJARXACQEVwAkBFcAJAMQACQEVwAvBFcALwRXAC8EVwAvBFcALwMQAC8EVwBOBFcATgRXAE4EVwBOBFcATgMQAE4EVwCWBFcAlgRXAJYEVwCWAAD/eAAA/2oAAP6iAAD/swAAAD8AAP+bAAAAFQAA/6wAAP/QAAAAkQAAACUAAP8UAAD/swAA/7MAAAAgAAAAEQAAAEUAAADfAAD+3AAA/qcAAP7i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BJAAZgSQAGYEkABmBJAAZgVW/9cFVv/XBoIAuAaCANIGggC4BoIA0gaCAOMGggDjA4QARQOEAEUDhABFA4QARQOEAEUDhABFBh4AggYeAKsHrgClB64AvweuAKUHrgC/BHEARQRxAEUEcQBFBHEARQRxAEUEcQBFBHEARQRxAEUGjwCCBo8AqwgfAKUIHwC/CB8ApQgfAL8IHwDQCB8A0AHHAD0BxwA9AccAPQHHAD0BxwA9AccAPQHHAD0BxwA9AwEAggMBAKsEkQClBJEAvwSRAKUEkQC/BJEA0ASRANAEcwBkBHMAZARzAGQEcwBkBHMAZARzAGQGnQCCBp0AqwgtAKUILQC/B8kApQfJAL8EZgCWBGYAlgRmAJYEZgCWBGYAlgRmAJYEZgCWBGYAlgaCAKsHrgC/CBIAvweuAOMGOwBkBjsAZAY7AGQGOwBkBjsAZAY7AGQGOwBkBjsAZAZ6AGsGegBrCAoApQgKAL8HpgClB6YAvwemANwHpgDcBJAAZgSQAGYDhABFA4QARQRxAEUEcQBFAccAPQHHAD0EcwBkBHMAZARmAJYEZgCWBjsAZAY7AGQEkABmBJAAZgSQAGYEkABmBJAAZgSQAGYEkABmBJAAZgVW/9cFVv/XBoIAuAaCANIGggC4BoIA0gaCAOMGggDjBHH/6wRx/+sEcf/rBHH/6wRx/+sEcf/rBHH/6wRx/+sGjwCCBo8AqwgfAKUIHwC/CB8ApQgfAL8IHwDQCB8A0AY7AGQGOwBkBjsAZAY7AGQGOwBkBjsAZAY7AGQGOwBkBnoAawZ6AGsICgClCAoAvwemAKUHpgC/B6YA3AemANwEkABmBJAAZgSQAGYEkABmBJAAZgSQAGYEkABmBVb/1wVW/9cFVv/XBVb/1wVW/9cCqgFnAqoATwKqAWcCqgDAAqoA7QRx/+sEcf/rBHH/6wRxAEUEcf/rBoIA0QaCAHwG8wDRBvMAfAXHAFYCqgC4AqoAuAKqAOMBxwA9AccAPQHHAD0BxwA9AccAPQHHAD0COQB1AjkAdQNlANEDZQB8AqoA0gKqANICqgDjBGYAlgRmAJYEZgCWBGYAlgSV/+QElf/kBGYAlgRmAJYFVgDvBVYA7waCAKkG5gB8Bh4AqwKqAGECqgBhAqoBKgY7AGQGOwBkBjsAZAY7AGQGOwBkB2UA0QadAHwHQgDR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AjkBKgI5ASwCOQDQAqr/iATjAMQEcwCtBHMAeQMSAFcEUAADBEYAEQRzACMEUAA2BHMApAQnAJMEcwCSBHkAWQRzAJEDGQCLBHMAeARzAHAEcwB1BHMAjgR+AMAELwDiBHMAmQR7AIoFxQBkBgwAtwX4AFgJVgBXBfgAswMC/+wFQQBbBjkAuwRzAGwBx//kA/gARQIKAG8EcwBpAlAAfwRzACYEcwB6BHMAoQMC/+wCCgBvAccAPQRx/7kEiQBOBMMAfQTnAE8EbwBOBAgATgUvAHoE8ABOAeoATgNzACoEiQBPA7wATwXHAE4E7ABOBTEAewRtAE4FMQB7BNsATgRtADYEEACrBN0AggRoAIYGWQCiBG//lgRsAI4EDv+5BpH/rwaqAHsDvAA1BTEABARvAE4E5wA2BMMAMwRx/7kEcf+5BHH/uQRx/7kEcf+5BHH/uQTDAH0EbwBOBG8ATgRvAE4EbwBOAeoATgHqAE4B6gBOAeoATgTsAE4FMQB7BTEAewUxAHsFMQB7BTEAewTdAIIE3QCCBN0AggTdAIIEbACOBHH/uQRx/7kEcf+5BMMAfQTDAH0EwwB9BMMAfQTnAE8E5wA2BG8ATgRvAE4EbwBOBG8ATgRvAE4FLwB6BS8AegUvAHoFLwB6BPAATgTyAE4B6gBOAeoATgHqAE4B6v+1AeoATgVDAE4DcwAqBIkATwO8AE8DvABPA7wATwO8AE8E7ABOBOwATgTsAE4E9QBOBTEAewUxAHsFMQB7BNsATgTbAE4E2wBOBG0ANgRtADYEbQA2BG0ANgRtADYEEACgBBAAqwQQAKsEDgCrBN0AggTdAIIE3QCCBN0AggTdAIIE3QCCBlkAogZZAKIGWQCiBlkAogRsAI4EbACOBGwAjgQO/7kEDv+5BA7/uQRx/7kGkf+vBTEABARx/7kEiQBOA64ATwRx/7oEbwBOBA7/uQTwAE4FMQB7AeoATgSJAE8EWv+5BccATgTsAE4EL//oBTEAewTmAE8EbQBOBCUAIgQQAKsEbACOBUYATgRv/5YFQwB9BTEAIARx/7kEbwBOBPAATgHqAE4FMQB7BGwAjgUxACAB6gBOBGwAjgRvAE4FrwCqA64ATwTHAH0EbQA2AeoATgHqAE4DcwAqBvT/5ga2AE4F2gD5BBYATwRjAGoE5gBPBHH/uQSGAE0EiQBOA64ATwRp/5AEbwBOBlT/1QQfAEcE5QBOBOUATgQWAE8EiP/mBccATgTwAE4FMQB7BOYATwRtAE4EwwB9BBAAqwRjAGoFDQBuBG//lgTcAE4EfQCXBigATQYeAE0FaQClBecATQRVAE0ExgBPBq8ATwTb/8gDIwBPAqoALQKqAJ0CqgAJAqoAJAKqAAkCqgAhAqoANgKqAGoCqgAiAqoAGgKqAKECqgCOAqoAqAXFAGQFxQBkBcUAZAXFAGQFxQBkBcUAZAXFAGQFxQBkBcUAZAXFAGQFxQBkBgwAtwYMALcGDAC3BgwAtwYMALcGDAC3BgwAtwYMALcGDAC3BgwAtwYMALcF+ABYBfgAWAX4AFgF+ABYBfgAswX4ALMF+ACzBfgAswX4ALMF+ACzBfgAswX4ALMF+ACzAwL/7AMC/+wDAv/sAwL/7AMC/+wDAv/sAwL/7AMC/+wDAv/sA9oAKAMC/+wDAv/sAwL/7AIKAG8CCv/DAlcAbwKlAG8CCgAeAwL/7AMC/+wDAv/sAwL/7AMC/+wDAv/sAwL/7AMC/+wFQQBbBHMAbARzAGwEcwBsBHMAbARzAGwEcwBsBHMAbARzAGwEcwBsAcf/4wP4AEUCCgBvAgr/wwJpAG8CpQBvAgoAHgJQ/6wCUP+YAwAAfwJQAFMEcwAmBHMAJgRzACYEcwAmBKAASwKqAIACqgCTAqoA2AKqALQE0ABWA78AegTjAKIDqgC0BbkAVwTQAD8FVgBbBHMA4wRzAMwFVgASB7r/6wYI/9gGoQBYBbz/6Qeb/80HJf/oBVYAWwQAADwIjP/rBsb/2AjNAFYGpQA/BcwAVwRnAD8FYwBWBHMARAI5ADsCOQBdBHQAUAYhAHUDLwA2BOUAuwR+AGQFkf/tBHz/RQaqAFoFVgDwBgoAVwVpAGoCqv+qBHMAZAPrAB0A+v8RAtwA/AVWAJAE4wAyAjn/5gRzAEoAAP8/AzH/zQQRAKEE0QBWBST/4QAAAGMAAP/iBgQAygXHAGEFugDCBaMAoAXIAMsFzgBYBRQAZgXGAGEGdQBhBboAbAVIAGkEOQBhB1UAZgYRALgFlwEQBMkAYwWmAHoFpQCgBbUAYQYFAMkFuwCjBaoAvAWLAKAFxwBhBZgA5QZqALYF+ABlBhgAYQXHAMsFggCpBUcAjAVoAGEFawCGBCAAZgYYAKgFfQATBjkAuwZNAHsCMQF0AccBEAF4ADABmgBBAh8BFwHaAFcEHAFUBrMAfAR4/+8EowBpBKEARAR9AIIEowBpBCAAQwRz/+8Fk//vBLoAbQRz/+0B3v/sBrf/8QSBAGQEcwCBBHIARAQvAFoEdABGBGIAcQRyAIEB0/8QBHEAgQPb/7wEaABEAtD/owazAHwELv/1BJoARARzAIoEcQCBBrIAfARz/+4EaQAeAyEAQgayAHwElP98BHQAZAXzAFkFwACBAjkAdQKYAEcIAgCACAIAgwXQAKAI4wCBCOMAgQjjAIEI4wCBCqoAYwRzABsEAABEBcf/IQRn/woKRv9/CCIAZAXW/2YEc/9gBXz/6wSD/9gGggCTBeX/2AQ+AF0F8wBdBfoAXQRPAF0GHwBIBnYAdgI5ABYBrABbAjkA5AGsAPEFxwBWBHMARAajAP8FBQBzBGsAWARrAAgEIQBABCEABASxAEAEsQBABAgATgRtADYJPv/XBzgAWglX/9cHYABaCCn/1wcWAFoHiv/XBeAAWgeK/9cF4ABaB4r/1wXgAFoFxwBtBAAAIwVWAFsEAABGBVYAWwQAAEYFVgBbBAAARgU1ANACewC9BHMAUgHHADYGawA5BOMAFwcGALsFNgBkCqoAnweeAGQFVv/1BHP/hgaXAA8Flf+RB3IAzgZxAK8GOQC9BHMAaQfWAL0F+wBpBKYAtgNIAHAEpwAYBKf/1wVWAEwEAP9qB40BAAXHAJ8EZAAqA/P/zQVWAFgEc//rBVb/1wRz/4YEEwAYA0T/4AOQ//8DkP/XBAP/xAQD/24EfQB6BH0AIAKdAMAFagBsAsIAMwexAEMFcQBEAqoARAYAAE4FYQBzA87/ugY5ALsEcwBkAz0AGAKq/94EuABUBLgAVAS4ACwEcwELAccAMwZmAAgEyv/yAz0AGAKq/94FJgCKBAAAVgXHAOYDjgCIBiMAZATPAEQFxwAzBAAAFAQAAHMEcwBEBlAAGgVt/+wE4/96AjkASAVaAFoEMwAtBbcAWgRkAC0FWgBaBDMALQY5ABkEc//kBVb/6gQA/90FxwAcBHP/9QXHAGACqv/1BVYAkAQAAEwGTACMBOkAYwYKAJ4FeQBlBVYAPQTj/+cEMQAeBeL/qwVWAAMEkv/pCAYAiwY7AGQGKABuA5YAsgUdAJkGqgBhBOMBBgVWANoGqgBI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AQEBAQEBLgEBAQEBAQEBAQEBAQEBJwEBAQETAQEYASkBLgEuARwWAQEBHQEBAQErAQEBAQEBLgEuAQEdFgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBIQEBAQEBDgEOAQ4BHRcBAQEBAQklAQEbASgBAQEsAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgEOAQ4uAS4BLgEuAS4BLgEBAQEBAQEBAQEBHAEBHS4BLgEuAS4BLgErOSsjAQ8BDwEPATABMAEwATBzvXO9c70uAS4BLgEuAQEhASEBIQEhAQEBAS4BLgEuAS4BAQEBAQEBAQEBARwWHBYcFhwWLgEuAS4BLgEuAQESARKPnY+dGTwZPAEOHJcclxyXARadDgEMAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBGhoiIiIiIiInJycnJycnJwEBAQEBAQEBISEhISEhGxsBAQEBHx8fHx8fHx8BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAScnISEfHwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBGhoiIiIiIiIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEuAQEBJycnJycnKysBAQEBAR8fHx8xMR8fAQEBKQEBAQEBAQEBAQEbHAEYAQEBLi4WLgEKARwBAQEBAQEBAQEBAQEBIAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARABAQEBAQEBAQEkATEBASEBAQEcCgEBAQ8BAQEfATEBEp2XAQEPKgEBDwEBARgBASwBAQEBHQELAS8BAQISAQEeAQEBASoBCR4BARQUAQ0BEAEUARQUARgqAQEBAQEBAQEBDQEqAQEBAQEBAQEDAQEBEQEBAQEBAQEZAQEBAQEBLgEBAQEBAS4WAQEfFgEuAQEcAQEBAQEBAQExLi4uIwEBAQEBAQEBARYBAQEBAQEBAS8tAQEBAR8BAQEBAQEBFgEBAQEBAQEBAQEBAQEBAQEBLAEBAQgIARQSEgEBDQ0NDQENDQEQEAEBARQUAQEYAQEBAQEBAQEUAQEBAQEBAQEUAQEBAQEuAQEBAQEBAQEBJycnJycnJycfHx8fHx8fHycnJycfHx8fAQEuAQEBAQEBAS4BAQEBAQEwIyoBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEuAQEuAQEBHAEBAQEBAQEBAQEBOQEuAQEBAQEBAQEBAQEBATSPnRsBAQEBFwEBAQEBAQEBAQEcAQEBAQEBAQEbAQEBAQEBAQEJAQEBAQEDAQMBAQEBAQIBARQBAQEBATkBARYBLwEcEgEBAQEuATABMA8BASYBLy8BAQEWATAvARYBAQEBAQEWLy8vLwEBAQEBMDAwMDAmJiYmAQEBARYWFhYBAS8vLy8vHBwcHBIBAQEBAQEUAQEBAQEBAQEBATAwMA8PDwEBAQEBAQEBASYmJiYmJi8vLy8BAQEBAQEBATABARoBLwESMAEBIy4BATApAQEBAQEvFDABLxIBMAEwAQEvFBolAQEBAQEBAS8BKQEBARooLw0BAQEvEC4SMCkBFgEBAS8BAQEBEhYlIAEPAQH2AfwBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwMDAwMDAwMDAwMDAwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAQEBAQEUFAEUAQEBAQEBAQEBAREcDQEBAQEBAS0BAQEBAQEBAQEBARUBAQEBAS0BMgEJASIWAQESAQEBLgEBHCMBAQEBARYBAQEuLQEBIAEKDi0BASsBBgEBAQEBAQ0BLgYBAwEuAQEBAQEBLAEBAQEBAQEBJSkSAQEBAQEBASIBAQEBAQEBLQEBAQEdARwpFwEBAS8BKAEvAS0BAQEBAQEBAQEBAQEBAS4BAR8BAQEBAQEiAQMBASgBAQEBLgEBARQUAQEBAQEBAQEBAQEBAQEBAQEBLgEBAQEBAQEBAQEBLBwBIgEBAQEBMQETAQEBAyYBMjIBAQouAQIBAQEBAQEBAQEBAQEbAQEoAQEBHioBAQEBAQEBAQEBAQEBAQEuAQEBLgEBAQEPHAEBFQEBARUBAQEBLgEuAQEBAQEBAQEcAQEBAQEBAQEBFhwBFgEBAQEBAQEBAQEBAQEBAQEBHAoKCgEBCw8BAQsBARosAQEWFgEBFwEZARkBAQEfAQMBAQEKAQEwARwAAAAAAwADAQEBAQEFAwMBAgEBABgF7AvAAPgI/wAIAAj//QAJAAn//QAKAAr//QALAAv//QAMAAz//QANAA3//QAOAA3//QAPAA7//QAQABD//QARABD//AASABH/+wATABL/+wAUABP/+wAVABP/+wAWABT/+gAXABb/+gAYABb/+gAZABf/+gAaABj/+gAbABn/+gAcABn/+gAdABv/+QAeABz/+QAfAB3/+QAgAB3/+AAhAB7/+AAiAB//+AAjACD/+AAkACH/+AAlACL/9wAmACP/9wAnACT/9wAoACT/9wApACX/9gAqACb/9gArACj/9gAsACj/9gAtACn/9QAuACr/9QAvACv/9QAwACz/9QAxAC3/9QAyAC7/9QAzAC//9QA0ADD/8wA1ADD/8wA2ADH/8wA3ADL/8wA4ADP/8wA5ADP/8wA6ADT/8wA7ADX/8gA8ADb/8gA9ADb/8gA+ADf/8gA/ADj/8gBAADv/8QBBADv/8QBCADz/8ABDAD3/8QBEAD7/8QBFAD7/8QBGAD//8ABHAED/8ABIAEH/8ABJAEH/7wBKAEL/7wBLAEP/7wBMAEX/7wBNAEb/7wBOAEb/7wBPAEf/7wBQAEj/7wBRAEn/7gBSAEn/7gBTAEr/7QBUAEv/7QBVAEz/7QBWAE3/7ABXAE7/7ABYAE//7ABZAFD/7ABaAFD/7ABbAFH/7ABcAFP/7ABdAFT/7ABeAFT/7ABfAFX/6gBgAFf/6gBhAFj/6gBiAFj/6gBjAFn/6QBkAFr/6QBlAFv/6QBmAFz/6QBnAFz/6QBoAF3/6QBpAF7/6QBqAGD/6QBrAGD/6QBsAGH/6QBtAGL/6QBuAGP/6ABvAGP/6ABwAGT/5wBxAGX/5wByAGb/5wBzAGb/5wB0AGj/5wB1AGn/5wB2AGv/5wB3AGv/5wB4AGz/5gB5AG3/5gB6AG7/5gB7AG7/5gB8AG//5gB9AHD/5QB+AHH/5QB/AHL/5ACAAHP/5ACBAHT/5ACCAHX/5ACDAHb/5ACEAHb/5ACFAHf/4wCGAHj/4wCHAHn/4wCIAHn/4wCJAHv/4wCKAHz/4gCLAH3/4gCMAH3/4gCNAH7/4gCOAH//4QCPAID/4QCQAID/4QCRAIL/4QCSAIP/4ACTAIX/4ACUAIX/4ACVAIb/4ACWAIf/4ACXAIf/3wCYAIf/3wCZAIn/3wCaAIr/3wCbAIv/3wCcAIz/3wCdAIz/3wCeAI3/3gCfAI//3gCgAJD/3gChAJD/3QCiAJH/3QCjAJL/3QCkAJP/3AClAJP/3ACmAJT/3ACnAJb/3ACoAJf/3ACpAJf/3ACqAJj/3ACrAJn/2wCsAJr/2wCtAJr/2wCuAJv/2wCvAJ3/2wCwAJ7/2wCxAJ7/2wCyAJ//2QCzAKD/2QC0AKL/2QC1AKP/2QC2AKP/2QC3AKT/2QC4AKX/2AC5AKb/2AC6AKb/2AC7AKf/2AC8AKj/2AC9AKn/2AC+AKr/2AC/AKv/1wDAAKz/1wDBAK3/1wDCAK3/1wDDAK7/1gDEAK//1QDFALD/1QDGALH/1QDHALL/1QDIALP/1QDJALT/1QDKALX/1QDLALb/1QDMALf/1ADNALj/1ADOALn/1ADPALn/1ADQALr/1ADRALv/0wDSALz/0wDTALz/0wDUAL3/0gDVAL//0gDWAMD/0gDXAMD/0gDYAMH/0gDZAML/0QDaAMP/0QDbAMP/0QDcAMX/0QDdAMb/0QDeAMf/0ADfAMf/0ADgAMj/0ADhAMr/0ADiAMv/0ADjAMv/0ADkAMz/0ADlAM3/zwDmAM7/zgDnAM//zgDoAM//zgDpAND/zgDqANH/zQDrANP/zQDsANP/zQDtANT/zQDuANX/zQDvANb/zQDwANb/zQDxANf/zQDyANn/zQDzANr/zAD0ANr/zAD1ANv/zAD2ANz/ywD3AN3/ygD4AN7/ygD5AN//ygD6AOD/ygD7AOH/ygD8AOH/ygD9AOL/ygD+AOP/ygD/AOT/ygD4CP8ACAAI//0ACQAJ//0ACgAK//0ACwAL//0ADAAM//0ADQAN//0ADgAN//0ADwAO//0AEAAQ//0AEQAQ//wAEgAR//sAEwAS//sAFAAT//sAFQAT//sAFgAU//oAFwAW//oAGAAW//oAGQAX//oAGgAY//oAGwAZ//oAHAAZ//oAHQAb//kAHgAc//kAHwAd//kAIAAd//gAIQAe//gAIgAf//gAIwAg//gAJAAg//gAJQAh//cAJgAi//cAJwAj//cAKAAk//cAKQAl//cAKgAm//cAKwAn//cALAAn//cALQAo//YALgAq//UALwAr//UAMAAs//UAMQAs//UAMgAt//UAMwAu//UANAAv//QANQAv//QANgAw//QANwAx//QAOAAz//QAOQAz//MAOgA0//MAOwA1//IAPAA2//IAPQA2//IAPgA3//IAPwA4//IAQAA6//IAQQA6//IAQgA8//EAQwA9//EARAA+//EARQA+//EARgA///EARwBA//EASABB//EASQBB//AASgBC//AASwBD//AATABF//AATQBG/+8ATgBG/+8ATwBH/+8AUABI/+8AUQBJ/+4AUgBJ/+4AUwBK/+4AVABL/+4AVQBM/+4AVgBN/+0AVwBO/+0AWABP/+0AWQBQ/+0AWgBQ/+0AWwBR/+0AXABT/+0AXQBU/+wAXgBU/+wAXwBV/+sAYABX/+sAYQBY/+sAYgBY/+sAYwBZ/+oAZABa/+oAZQBb/+oAZgBc/+oAZwBc/+oAaABd/+oAaQBe/+oAagBg/+oAawBg/+kAbABh/+kAbQBi/+kAbgBj/+gAbwBj/+gAcABk/+cAcQBl/+cAcgBm/+cAcwBm/+cAdABo/+cAdQBp/+cAdgBq/+cAdwBq/+cAeABr/+YAeQBs/+YAegBt/+YAewBu/+YAfABv/+YAfQBw/+UAfgBx/+UAfwBy/+QAgABy/+QAgQBz/+QAggB0/+QAgwB2/+QAhAB2/+QAhQB3/+MAhgB4/+MAhwB5/+MAiAB5/+MAiQB6/+MAigB8/+IAiwB9/+IAjAB9/+IAjQB+/+IAjgB//+EAjwCA/+EAkACA/+EAkQCC/+EAkgCD/+AAkwCE/+AAlACE/+AAlQCF/+AAlgCG/+AAlwCH/98AmACH/98AmQCJ/98AmgCK/98AmwCL/98AnACM/98AnQCM/98AngCN/94AnwCP/94AoACQ/94AoQCQ/90AogCR/90AowCS/90ApACT/9wApQCT/9wApgCU/9wApwCW/9wAqACX/9wAqQCX/9wAqgCY/9wAqwCZ/9sArACa/9sArQCa/9sArgCb/9sArwCd/9sAsACe/9sAsQCe/9sAsgCf/9kAswCg/9kAtACi/9kAtQCj/9kAtgCj/9kAtwCk/9kAuACl/9gAuQCm/9gAugCm/9gAuwCn/9gAvACo/9gAvQCp/9gAvgCq/9gAvwCr/9cAwACs/9cAwQCt/9cAwgCt/9cAwwCu/9YAxACv/9UAxQCw/9UAxgCx/9UAxwCy/9UAyACz/9UAyQC0/9UAygC1/9UAywC2/9UAzAC3/9QAzQC4/9QAzgC5/9QAzwC5/9QA0AC6/9QA0QC7/9MA0gC8/9MA0wC8/9MA1AC9/9IA1QC//9IA1gDA/9IA1wDA/9IA2ADB/9IA2QDC/9EA2gDD/9EA2wDD/9EA3ADF/9EA3QDG/9EA3gDH/9AA3wDH/9AA4ADI/9AA4QDK/9AA4gDL/9AA4wDL/9AA5ADM/9AA5QDN/88A5gDO/84A5wDP/84A6ADP/84A6QDQ/84A6gDR/80A6wDT/80A7ADT/80A7QDU/80A7gDV/80A7wDW/80A8ADW/80A8QDX/80A8gDZ/80A8wDa/8wA9ADa/8wA9QDb/8wA9gDc/8sA9wDd/8sA+ADe/8sA+QDf/8sA+gDg/8sA+wDh/8sA/ADh/8sA/QDi/8sA/gDj/8sA/wDk/8oA+Aj/AAgACP/9AAkACf/9AAoACv/9AAsAC//9AAwADP/9AA0ADf/9AA4ADf/9AA8ADv/9ABAAEP/9ABEAEP/8ABIAEf/7ABMAEv/7ABQAE//7ABUAE//7ABYAFP/6ABcAFv/6ABgAFv/6ABkAF//6ABoAGP/6ABsAGf/6ABwAGf/6AB0AG//5AB4AHP/5AB8AHf/5ACAAHf/4ACEAHv/4ACIAH//5ACMAIP/4ACQAIP/4ACUAIf/3ACYAIv/3ACcAI//3ACgAJP/3ACkAJf/3ACoAJv/3ACsAJ//3ACwAJ//3AC0AKP/2AC4AKv/1AC8AK//1ADAALP/1ADEALP/1ADIALf/1ADMALv/1ADQAL//0ADUAL//0ADYAMP/0ADcAMf/0ADgAM//0ADkAM//0ADoANP/0ADsANf/zADwANv/yAD0ANv/yAD4AN//yAD8AOP/yAEAAOv/yAEEAOv/yAEIAPP/xAEMAPf/xAEQAPv/xAEUAPv/xAEYAP//xAEcAQP/xAEgAQf/xAEkAQf/wAEoAQv/wAEsAQ//wAEwARf/vAE0ARv/vAE4ARv/vAE8AR//vAFAASP/vAFEASf/uAFIASf/uAFMASv/uAFQAS//uAFUATP/uAFYATf/tAFcATv/tAFgAT//tAFkAUP/tAFoAUP/tAFsAUf/tAFwAU//tAF0AVP/sAF4AVP/sAF8AVf/rAGAAV//rAGEAWP/rAGIAWP/rAGMAWf/qAGQAWv/qAGUAW//qAGYAXP/qAGcAXP/qAGgAXf/qAGkAXv/qAGoAYP/qAGsAYP/pAGwAYf/pAG0AYv/pAG4AY//oAG8AY//oAHAAZP/nAHEAZf/nAHIAZv/nAHMAZv/nAHQAaP/nAHUAaf/nAHYAav/nAHcAav/nAHgAa//mAHkAbP/mAHoAbf/mAHsAbv/mAHwAb//mAH0AcP/lAH4Acf/lAH8Acv/kAIAAcv/kAIEAc//kAIIAdP/kAIMAdv/kAIQAdv/kAIUAd//jAIYAeP/jAIcAef/jAIgAef/jAIkAev/jAIoAfP/iAIsAff/iAIwAff/iAI0Afv/iAI4Af//hAI8AgP/hAJAAgP/hAJEAgv/hAJIAg//gAJMAhP/gAJQAhP/gAJUAhf/gAJYAhv/gAJcAh//fAJgAh//fAJkAif/fAJoAiv/fAJsAi//fAJwAjP/fAJ0AjP/fAJ4Ajf/eAJ8Aj//eAKAAkP/eAKEAkP/dAKIAkf/dAKMAkv/dAKQAk//cAKUAk//cAKYAlP/cAKcAlv/cAKgAl//cAKkAl//cAKoAmP/cAKsAmf/bAKwAmv/bAK0Amv/bAK4Am//bAK8Anf/bALAAnv/bALEAnv/bALIAn//ZALMAoP/ZALQAov/ZALUAo//ZALYAo//ZALcApP/ZALgApf/YALkApv/YALoApv/YALsAp//YALwAqP/YAL0Aqf/YAL4Aqv/YAL8Aq//XAMAArP/XAMEArf/XAMIArf/XAMMArv/WAMQAr//VAMUAsP/VAMYAsf/VAMcAsv/VAMgAs//VAMkAtP/VAMoAtf/VAMsAtv/VAMwAt//UAM0AuP/UAM4Auf/UAM8Auf/UANAAuv/UANEAu//UANIAvP/UANMAvP/UANQAvf/TANUAv//TANYAwP/TANcAwP/TANgAwf/SANkAwv/RANoAw//RANsAw//RANwAxf/RAN0Axv/RAN4Ax//RAN8Ax//RAOAAyP/RAOEAyv/RAOIAy//QAOMAy//QAOQAzP/QAOUAzf/PAOYAzv/OAOcAz//OAOgAz//OAOkA0P/OAOoA0f/OAOsA0//OAOwA0//OAO0A1P/OAO4A1f/OAO8A1v/OAPAA1v/NAPEA1//NAPIA2f/NAPMA2v/MAPQA2v/MAPUA2//MAPYA3P/LAPcA3f/LAPgA3v/LAPkA3//LAPoA4P/LAPsA4f/LAPwA4f/LAP0A4v/LAP4A4//LAP8A5P/KAAAAGAAADNQLDwgAAwMDBAYGCgcCBAQEBgMEAwMGBgYGBgYGBgYGAwMGBgYGCwcHCAgHBwkIAwYHBgkICQcJCAcHBwcLBwcHAwMDBQYEBgcGBgYDBgYDAwYDCQYGBgYEBgMGBQcGBQYEAwQGBwcIBwgJBwYGBgYGBgYGBgYGAwMDAwYGBgYGBgYGBgYGBAYGBgQGBwgICwQEBgsJCAYGBgYGBQgJBgMEBAgKBwcEBgYGBgcGBgsHBwkLCgYLBAMCAwYFBQcCBgQEBgYGAwIECgcHBwcHAwMDAwkJCQcHBwMDBAMEAwQEBAQDBgMHBgcGAwgGBwUHBgYGBAQDCQkJBgkGAwcGCAYIBgYGBAcGBwYIBwgHBgcGBgMGAwYECAYIBgkGCAQIBAcGBwMHBAcGBwYHBgcGBgkJBgYFBwQHBgYEDAsGCwYLBgYLCQYHBgcHCAcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwsLCwsLBwcHCwwKCAgGBwcGBggIBQcCBAoEBwQEBwQHBggGCAYHBgcGBwYJBgkGCQYIBggGAwMDAwMDAwMGAgcGBgYDCAYIBgkGCQYIBAcGBwMHBgcGBwYHBgsHBwUBBwYLCgkHAwsHCwcLBwcFAgQGBwkJCQkEBAQEBwkJBAkKCQMHBwcHBwgDBwcJCAcJCAcHBwcHCQgDBwYFBgMGBgYFBgYDBgUGBQUGBgUGBggJAwYGBgkHCQYIBwMDBgwLCQYHCAcHBwYIBwoHCAgGCAkICQgHCAcHCQcIBwoKCQoHCAsIBgYGBQYGCAUGBgUGCAYGBgYGCQUJBgYGCQkHCAYFCAYGBgQFBgMDAwoJBgUFBgUECwwHAAAAAAAAAAAAAAAAAAQAAwAAAwYGBAYHAwQHBgMGBQUHBwMEBgYGBgUFBgYIBwUFBQMFCQMGBgUFBggICAgGBgYGBAYHAwUGAwYFBQcEBgYGBQYGCAcDBgUGBgAAAAAAAAAAAAAAAAAAAAAAAAAABwsJBwkHAAAAAAAAAAAAAAAAAAAAAAYJCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgcGBwYHBgMDAwMJBgkGCQYJBgkGCQYJBgkHCQcJBwkHCQcHBgcGCQcJBwkHCQcJBwcFBwUHBQcGAwMJBgcGBwYHBgcGBwYAAAAABgQKCAYFBgUIBgYGBgYHBgcGBwYJBgkGAwAEBQYIBwYHBggIBggJBwYGBwcHCQUKAwMHBgIFCQgGCQoHCAYHBwYHBAMHAwcICAgGBwYHBwYGBgYFBgYDBQYDDw0MDAkFDQoJBgcGAAcGCwoJBgkGBwYJBgkGBwYCDw0MCQYLBwgGBwYHBgcGBwYDAwMDCQYJBggECAQHBgcGBwYHAwYFCAYHBwcHBgcGBwYJBgAJBgkGCQYHBQYGBgYGBgYGBggFBQcGAwYGBgYHBgYGAgIEAgICBgkJCQYGBgYICQYEBAQEBAQEBgYGAwMDBAMDBgYGBggGBgYGBgYGBgYGCQYGBgYDBgUGBgYKCgsHBQgIBwcFBgMDAQICAgQGBAIEAgMCBAQEBAYGBgYEBAQEBAQEAwMEBAQEBAQEBAQBBAQEBAQEBAQEBAQEAwYGBgYGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYEBgYGBgYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBAYGBgYGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGBgQGBgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAYGCAoIBgkGCQYIBgcEBwYIBgkJBwYHBgcHBwcIBgUEBgYGAwkFBQcIBgYOBwgJCggHBgoHCQgLCQcFCQgJBggGCAYMCgkHDgoADgcIBgYAAAAAAAAIBgcGBwYHBgcFBgUIBgoIDAkIBggGBwkKBgcGCQcJBwMKCAcGCAYIBggGBwYJCAQHBgcGCwoHBgkGCggHBQcGCAYIBgkGCQYIBQcFBwUHBQcGCggHBgoJCggHBQsJCwkJBggMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBgcHBwcHBwgGCAYIBggGCAYIBgcGBwYHBgcGBwYHAwkGCAYIBggGCAYIBgMDAwMHBgcGBwYGAwYDBgMGAwkJCQkJCQgGCAYIBggGCQYJBgkGCQYHBgcGCAQIBAgECAQHBgcGBwYHBgcGBwMHAwcDBwMHBgcGBwYHBgcGBwUHBQsHCwcHBgcGBwUHBgcGBwYGAwcFBgEGBgYGBgYGBgcHCQkJCQkJBQUFBQUFCAgLCwsLBgYGBgYGBgYJCQsLCwsLCwMDAwMDAwMDBAQGBgYGBgYGBgYGBgYJCQsLCwsGBgYGBgYGBgkLCwsJCQkJCQkJCQkJCwsLCwsLBgYFBQYGAwMGBgYGCQkGBgYGBgYGBgcHCQkJCQkJBgYGBgYGBgYJCQsLCwsLCwkJCQkJCQkJCQkLCwsLCwsGBgYGBgYGBwcHBwcEBAQEBAYGBgYGCQkKCggEBAQDAwMDAwMDAwUFBAQEBgYGBgYGBgYHBwkJCAQEBAkJCQkJCgkKCQgEBAYICAkIDAoHBwsGBwAAAAACAgYHBwMHBAcHBAQEBAQEBAQEAwQEBAQEBAQAAAAAAAAAAAAAAAcGBggKBgYGBgUFAgUGBQgGBgYGBgcKBQYGBgYGBgYGCAYFBwYFBQcEBgYGCAYFCAUFBQUFBQUCBAUEBgUFBQQFBQQFBwQEBAcDBAQEAwMEAQMGAwQEBAQEAgQFBgQFBAQEBQQBAgQEBAQEBQQIBwgHBwgHCQYAAAAGBAQGCwYLBAMCBgMCAQAICAkICgoKBwgGBgcGBgYAAAAAAAYICAgGBgAAAAQABgYDCQYGBAQGAwYGBAYIAgIGBgYGBgMIBgIJBgYEBgQGBgYGBgYGBQUHAgYDBgYEBAQEAwICBAQBAQEBAwEBAwYGAwMEBAQEAgIDBAMDBAQEBAQEAAAAAAMEBAQEBAkHBwgEBgYGBgYGBgYDAwMDAwMDAwYGBgYGBgYGAwMDAwYGBgYFBwgHBwYGAggGCAQHBgYGBgMGBAcGBwYHBQgGAAAAAAAAAAAACgUGBgIGBwgGAwgGBwYHBgYHBQcAAAAAAAADCAgIAAAAAAAAAAAAAAAJBgsHBwAIBwsJAwUCAgYGAwMDBAcGBgQGBgYGBgYGBgYEBgYGBgYGBgYICAgNCAQHCQYCBQMGAwYGBgQDAwYGBwcGBgcHAwUGBQgHBwYHBwYGBwYJBgYGCQkFBwYHBwYGBgYGBgcGBgYGAwMDAwcHBwcHBwcHBwcGBgYGBwcHBwcHBgYGBgYHBwcHBwcDAwMDAwcFBgUFBQUHBwcHBwcHBwcHBgYGBgYGBgYGBwcHBwcHCQkJCQYGBgYGBgYJBwYGBQYGBgcHAwYGCAcGBwcGBgYGBwYHBwYGBwMHBgcDBgYIBQcGAwMFCgkIBgYHBgYGBQYGCQYHBwYGCAcHBwYHBgYHBgcGCAgHCAYHCQcEBAQEAwQEBAQEBAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBAQEBAQEBAQEBQQEBAMDAwQDBAQEBAQEBAQHBgYGBgYGBgYGAgUDAwMEAwMDBAMGBgYGBgQEBAQHBQcFCAcHBgYHCwgJCAoKBwYMCQwJCAYHBgMDBggEBwYIBgkHCAcEBgUBBAcHAwYABAYHBwAACAgICAgIBwgJCAcGCggIBwgICAgICAgICAkICAgIBwcHBggICQkDAgICAwMGCQYGBgYGBgYIBwYDCQYGBgYGBgYDBgUGBAkGBgYGCQYGBAkGBggIAwQLCwgMDAwMDwYGCAYOCwgGCAYJCAYICAYICQMCAwIIBgkHBgYGBgYGBgYNCg0KCwoKCAoICggIBgcGBwYHBgcDBgIJBwoHDwoHBgkICgkJBgsIBgUGBgcGCggGBQcGBwYGBAUFBgYGBgQHBAsHBAgHBQkGBAQGBgYGAgkHBAQHBggFCAcIBgYGCQcHAwcGCAYHBgkGBwYIBggEBwYJBwgIBwcGCAcGCwkIBQcJBwcJAw0GCgUGBwMGBAQDCQYGBgYHCgoKCgoGBwQGBQcFCAMGBgkJBwYHBwcGBwYGBAQDAwUICAoKBgcHBwAAAAwQCQADAwMEBwcLCAIEBAUHAwQDAwcHBwcHBwcHBwcDAwcHBwcMCAgJCQgHCQkEBggHCQkJCAkJCAcJCAsICAcDAwMGBwQHCAYHBwMHBwMDBwMLBwcHBwQGAwcGCAYGBwQDBAcICAkICQkJBwcHBwcHBgcHBwcDAwMDBwcHBwcHBwcHBwcFBwcHBAYHCQkMBAQHDAkJBwcHBwcGCQoHAwQECQsHBwQHBwcHBwcHDAgICQwLBwwEBAMCBwYGCAIHBAQGBgcDAwQOCAgICAgEBAQECQkJCQkJAwQDBAQEBAQEBAQHAwgGBwcDCQcIBggHBwcFBAQKCgoHCQcECAYJBgkGBwcECAcIBwkICQgHCAcHAwcDBwUJBwkHCQcJBAkECAYHAwcECQcJBwcHBwcHCQoHBwUHBAgHBgUNDAYMBgwGBgwJBwcHBwcJCAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkHDAwMDAwHBwcMDQsJCQYIBwYGCQkFBwIECwQHBAQHBAgHCQYJBggHCAcIBwkHCQcJBwkHCQcEAwQDBAMEAwYDCAcGBwMJBwkHCQcJBwkECAYHAwkHCQcJBwkHCwgIBgMIBwwLCQcDCwgLCAsICAYDBAcHCgoKCgQEBAQICQoFCgoJAwgICAgHCQQICAkJCAkJCAcHCAgKCQQIBwUHAwcHBgYHBwMGBgcGBQcHBgcHCQkDBwcHCQgKBwgIBAQGDQwKBwgJCAgIBwgICwcJCQcICQkJCQgJBwgKCAkICwsKCwgIDAgHBwYGBwcIBgcHBgcIBwcHBwYLBgoGBwYKCgcJBgYJBgcHBQYGAwMDCwoHBgYHBgQMDQgAAAAAAAAAAAAAAAAABQADAAADBwcFBgcDBQcHAwYGBgcHAwQHBgcHBgYHBggIBgYGAwUKAwYGBgYGCAgICAcHBwcFBgcDBQcDBgYGBwQHBwcGBwYICAMHBgcHAAAAAAAAAAAAAAAAAAAAAAAAAAAIDAoHCggAAAAAAAAAAAAAAAAAAAAABgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMIBwgHCAcIBwgHCAcIBwgHCAcIBwgHCAcIBwgHCAcIBwgHCAcIBwgHBAMEAwkHCQcJBwkHCQcJBwkHCgcKBwoHCgcKBwkHCQcKCAoICggKCAoICAYIBggGCAcEAwkHCQcJBwkHCQcJBwAAAAAHBQsIBwYHBgkHBwYHBggGCAYIBwkHCQcDAAQGBwkIBwgHCQkGCQkIBwcIBwcJBgsDAwgGAwYKCQcJCggJBwgIBgcEAwcDBwkJCQYHBgcHBgYHBgUGBwMFBwMQDw0NCQUPCwkHCAcACAcMCwkHCQcIBwkHCQcHBgMQDw0JBwwHCQcIBwgHCAcIBwQDBAMJBwkHCQQJBAkHCQcIBgcDBwUJBwgHBwcGCAcIBwkHAAkHCQcJBwgGBwcHBwYGBwcHCAUGBwYDBwcHBgcHBwcDAwQDAwMHCgoKBwcHBwkJBwQEBAQEBAQGBgYDBAMEAwMHBwcGCQYGBgcGBgYGBgYJBgYHBwQGBQcGBgsLDAgGCQkIBwYGBAQBAwMDBAYEAgQDAgMEBAQEBwcHBwQEBAQEBAQDAwQEBAQEBAQEBAEEBAQFBQUFBQQEBAQEBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBgcJCwkHCQcJBwkGBwUIBgkHCgoIBwgGCAgHBwkHBQQHBwYDCQUFCAkHBxAHCQkLCAgGCwgKCAwKBwYKCQkHCQcJBw0LCgcPCwAQBwkGBwAAAAAAAAkHCAYIBwgGBwYHBgkHCwgNCgkGCQYHCgsHCAYKCAoIBAsICAYIBwkHCQcIBgoIBAgHCAcMCwgHCQcLCAcGBwYJBwkHCQcJBwgGCAYIBggGCAYLCQgHCwoLCQcGDAoMCgkHCQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHCAgICAgICQYJBwkHCQcJBwkHCAcIBwgHCAcIBwcDCQcJBwkHCQcJBwkHBAMEAwgHCAcIBwcDBwMHAwcDCQsJCwkLCQcJBwkHCQcJBwkHCQcJBwgHCAcJBAkECQQJBAgGCAYIBggGCAYHAwcDBwMHAwkHCQcJBwkHCQcIBggGCwgLCAgGCAYIBgcHBwcHBwcDCAYHAwcHBwcHBwcHCAgKCgoKCgoFBQUFBQUJCQwMDAwHBwcHBwcHBwoKDAwMDAwMAwMDAwMDAwMFBQcHBwcHBwcHBwcHBwoKDAwMDAcHBwcHBwcHCgwMDAkJCQkJCQkJCgoMDAsLCwsHBwUFBwcDAwcHBwcJCQcHBwcHBwcHCAgKCgoKCgoHBwcHBwcHBwoKDAwMDAwMCQkJCQkJCQkKCgwMCwsLCwcHBwcHBwcICAgICAQEBAQEBwcHBwcKCgoKCQQEBAMDAwMDAwQEBQUEBAQHBwcHBwcHBwgICgoJBAQECQkJCQkLCgsKCQQEBwkJCgkOCwgHDAYHAAAAAAMDBggIBAgECAgEBAQEBAQEBAQDBAQEBAUFBAAAAAAAAAAAAAAACAcGCQsGBgcHBgYDBQYFCAcHBgcGBwsFBwcGBgYGBwcIBwYIBwYGBwUGBwYJBwYJBQUGBQUGBgIEBQUHBgYGBQUFBQUIBAQEBwQFBQUDAwUCBAYEBQQFBQQCBAYGBAUFBAUFBQICBAQFBAUFBQkICQcHCQgJBwAAAAcEBAYMBgwEAwIHAwIBAAkJCggLCwsICQYHBwYGBwAAAAAABwkJCQcGAAAABAAHBwMKBwcEBAYDBgcFBwkDAwcHBwcHAwgGAwoHBwQGBQYGBgcHBwcFBggDBgMHBwUEBAUDAgIFBAICAgIDAgIEBgYEBAQFBQQCAgQFBAQEBAQEBAUAAAAAAwQFBQUFCQgICQQHBwcHBwcHBwMDAwMDAwMDBwcHBwcHBwcDAwMDBwcHBwUICQgIBwYDCQcJBAgGBgYGAwcFCAYIBgcFCAcAAAAAAAAAAAALBgYHAwcICQcDCQcIBgcGBgcFCAAAAAAAAAMJCQkAAAAAAAAAAAAAAAkHCwgIAAkHDAoDBQICBgYDAwMEBwcHBQYGBwYHBgcHBwUHBwcHBwYHBwkJCQ4JBQgJBwMGAwcDBwcHBQMDBwcHBwcGCAcDBQcGCQcIBwgHBwYHBwoHBwYKCgYIBwcHBwcHBwcHBwcHBwcDAwMDBwgICAgIBwcHBwcHBwcHBwcHBwcHBwcHBwgICAgHBwMDAwMDCAUHBgYGBgcHBwcICAgHBwcHBwcHBwYGBgYHBwcHBwcKCgoKBwcHBgYGBwoIBwcGBwcGBwgDBwcJBwYIBwcGBgcIBwgIBwcHAwgHCAMHBwkGBwcDAwUKCgkGBwcHBwcGBwcKBgcHBgcJBwgHBwcGBwgHBwcJCQgJBwcKBwUEBQQEBAQEBAQEBAQECQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFBQUFBQUFBQUGBQUFAwMEBAMFBQUFBQUFBQgHBwcHBwcHBwcDBgMDBAQDAwMFAwcHBwcHBAQEBAcGBwYJBwgHBwgMCQoJCwsIBg0KDQoJBwgHAwMHCQUHBwgHCggJCAQHBgEECAcDBwAFBgcIAAAJCQkICQkICQoJCAYLCQgHCAgJCQkJCAkICgkJCQgICAgGCQgJCQMDAgIDAwYKBwcHBwcGBwgHBwMKBwcHBgcHBwMHBgcECgYHBwcKBwcFCgcHCQkDBAwMCQ0NDQ0QBwYJBw8MCQcIBwoJBgkJBgkKAwMDAwkHCggHBwYGBwcGBw4LDgsMCwsJCwkLCQkGCAYIBggGCAQHAwoHCwgQCwgHCggLCgkHDAkHBQcHCAYLCQcGCAcIBwYFBQUGBgcHBAgEDAgECQgGCQcFBAcHBwcDCgcFBAgGCQUJBwkGBgcJCAcDCAYJBwgGCQcIBgkHCQQIBgkHCQgIBwYJCAcMCQkFCAoHCAoDDgcLBgcIAwcEBAMKBwcHBwcLCwsLCwcHBAYFCAYIAwcHCgoHBwcHBwYHBgYEBQMDBQkJCwsHCAgHAAAADREKAAQEBAUHBwwJAgQEBQgEBAQEBwcHBwcHBwcHBwQECAgIBw0JCQkJCQgKCQQHCQcKCQoJCgkJCAkJDQkJCAQEBAYHBAcIBwcHBAcHAwMIAwsHBwcHBAcEBwYIBgYHBAMECAkJCQkJCgkHBwcHBwcHBwcHBwMDAwMHBwcHBwcHBwcHBwUHBwcEBwgKCg0EBAcNCgkHBwcHBwYJCwcEBQUKDAgIBAgHBwcIBwcNCQkKDQwHDQQEAwIHBgYJAgcEBAcHBwQDBA4JCQkJCQQEBAQKCgoJCQkDBAMEBAQEBAMEBQcDCQcIBwMJBwkGCQcICAUEBAsLCwcKBwQJBwkHCQcHBwQJBwkHCQgJCQcJBwcDBwQHBQkHCQcKBwkECQQJBwgECAUJBwkHCAcIBwcKCwcHBggFCAcHBQ4NBw0HDQcHDQoICAgICAkICQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQgNDQ0NDQgICA0ODAoKBwkIBwcKCgYIAgULBAgFBQgFCQcJBwkHCQcJBwkHCgcKBwoHCQcJBwQDBAMEAwQDBwMJCAcHAwkHCQcKBwoHCQQJBwgECQcJBwkHCQcNCAkGAwkHDQwKCAQNCA0IDQgJBgMEBwgLCwsLBAQEBAkKCwUKCwoDCQkJCQgJBAkJCgkICgkJCAgJCQsKBAkHBgcDBwcHBgcHAwcGBwYGBwcGBwcJCgMHBwcKCQsHCQkEBAcODQsICAkJCAkHCQkMCAkJCAkKCQoJCQkICAoJCQkMDAoMCAkNCQcHBwYHBwkGBwcGBwkHBwcHBwsGCwYHBwsLCAoHBgoHBwcFBgcDAwMMCwcGBgcGBA0OCQAAAAAAAAAAAAAAAAAFAAQAAAQHBwUHCAMFCAgDBwYGCAgDBQcHBwcGBgcHCQgGBgYDBQsDBwcGBgcJCQkJBwcHBwUHCAQFCAQHBgYIBQcHBwYHBwkIAwcGBwcAAAAAAAAAAAAAAAAAAAAAAAAAAAgNCwgKCAAAAAAAAAAAAAAAAAAAAAAHCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCQcEAwQDCgcKBwoHCgcKBwoHCgcLCAsICwgLCAsICQcJBwoICggKCAoICggJBgkGCQYJBwQDCgcJBwkHCQcJBwkHAAAAAAcFDAkIBggGCQcHBwcHCQcJBwkHCgcKBwMABAYHCggHCAcJCQcJCggHBwkICAoGCwMECQcDBgsJBwoLCQoHCQkHCAQECAQICgkJBwgHCAgHBwcHBgcHAwUIBBEQDg4KBhAMCgcJBwAJBw0MCgcKBwkICgcKBwgHAxEQDgoHDQgJBwkHCQcJBwkHBAMEAwoHCgcJBAkECQcJBwkHCAQHBgkHCQgICAcJBwkHCgcACgcKBwoHCQYHBwcHBwcHBwcJBgYIBwQHBwcHCAcHBwMDBQMDAwcLCwsHBwgHCgoHBAQEBAQEBAcHBwQEBAUEBAcHBwcJBwcHBwcHBwcHBwoHBwcHBAcGBwcHDAwNCQYJCggIBgcEBAIDAwMEBwUCBQMCAwQEBQUICAgIBAQEBAQEBAQEBAQEBAQEBAQFAQQEBQUFBQUFBAQEBAQHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBQcHBwcHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwUHBwcHBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwcFBwcHBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQHBwkLCQcKBwoHCQcIBQgHCggLCwkHCQcJCQgICgcFBQcIBwMKBgYJCQcHEQgKCgwJCQcLCQsJDQsIBgsJCgcKCAoIDgwLCBELABEICQcHAAAAAAAACQcIBwkHCAcIBggGCgcMCQ4LCQcJBwgLDAcJBwsICwgEDAkIBwkHCQcJBwkHCwkECQcJBw0MCQcKBwwJCAYIBwkHCQcKBwoHCQYIBggGCAYJBwwKCQcMCwwKCAYNCw0LCgcKDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQcJCAkICQgJBwkHCQcJBwkHCQcJBwkHCQcJBwkHCAQKBwkHCQcJBwkHCQcEAwQDCQgJCAkIBwMHAwcDBwMKCwoLCgsJBwkHCQcJBwoHCgcKBwoHCQcJBwkECQQJBAkECQcJBwkHCQcJBwgECAQIBAgECQcJBwkHCQcJBwkGCQYNCA0ICQYJBgkGCAcIBwgHBwQIBgcDBwcHBwcHBwcJCQsLCwsLCwYGBgYGBgoKDAwMDAcHBwcHBwcHCwsNDQ0NDQ0DAwMDAwMDAwUFBwcHBwcHBwcHBwcHCwsNDQ0NBwcHBwcHBwcLDA0MCgoKCgoKCgoLCw0NDAwMDAcHBgYHBwMDBwcHBwoKBwcHBwcHBwcJCQsLCwsLCwcHBwcHBwcHCwsNDQ0NDQ0KCgoKCgoKCgsLDQ0MDAwMBwcHBwcHBwkJCQkJBAQEBAQHBwcHBwsLCwsJBAQEAwMDAwMDBAQGBgQEBAcHBwcHBwcHCQkLCwoEBAQKCgoKCgwLDAsKBAQHCQkLCQ8MCQgNBwgAAAAAAwMHCQgECAUJCQQEBAQEBAQEBAQEBAQEBQUEAAAAAAAAAAAAAAAJBwcJDAcHBwcGBgMFBwYJCAcHBwcIDAYHBwcHBwcHBwkHBggHBgYIBQcHBwkHBgkGBgYGBgYGAgQGBQcGBgYFBgYFBggFBQUIBAUFBQQEBQIEBwQFBQUFBQMFBgcFBgUFBQYFAgIFBQUFBQYFCQkKCAgKCQoIAAAABwQFBw0HDQQDAgcEAwEACgkLCQwLCwkJBwcIBwcIAAAAAAAHCQkJBwcAAAAFAAcHBAsHBwQEBwQHBwUHCgMDBwcHBwcECQcDCwcHBAcFBwcHBwcHBwYGCAMHBAcHBQUFBQQDAwUFAgICAgMCAgQHBwQEBQUFBAIDBAUEBAUEBAUEBQAAAAAEBQUFBQUKCQkJBAcHBwcHBwcHAwMDAwMDAwMHBwcHBwcHBwMDAwMHBwcHBgkJCQkHBwMKBwkECQcHBwcDBwUJBwkHCAYJCAAAAAAAAAAAAAwGBwcDBwkJBwQJBwkHCAcHCAYIAAAAAAAAAwkJCQAAAAAAAAAAAAAACgcNCAkACggNCwQGAgIHBwQEBAQIBwcFBwcHBwcHBwcHBQcHBwcHBwcHCQoKDwoFCQoHAwYDBwQHBwcFAwMHBwgIBwcICAMGBwYJCAgHCAgHBwgHCgcHBwsLBggHCAgHBwcHBwcIBwcHBwMDAwMICAgICAgICAgIBwcHBwgICAgICAcHBwcHCAgICAgIAwMDAwMJBgcGBgYGCAgICAgICAgICAcHBwcHBwcHBwgICAgICAoKCgoHBwcHBwcHCwgHBwYHBwcICAMHBwkIBwgIBwcHBwkHCQgHBwgDCAcIAwcHCQYIBwMDBgsLCgcHCAcHBwYHBwoHCAgHBwkICAgHCAcHCAcIBwoKCQoHCAsIBQQFBAQEBAQEBAQEBAQJCQkJCQkJCQkJCQoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgUFBQUFBQUFBQYFBQUDAwQEAwUFBQUFBQUFCQcHBwcHBwcHBwMGAwMEBAMEBAUEBwcHBwgEBAQECAYIBgkICQcHCQ0KCwkMDAkHDgsOCwkHCQcEBAcKBQgHCQcLCQoJBAcGAgUJCAMHAAUHCAgAAAoJCQkJCQgJCwkJBwwKCQgJCQkKCQkJCQkKCgoJCQkJCQcKCQoKBAMCAwMDBwsHCAgHCAcHCQgHAwsHBwcHBwcHAwcGBwULBwcHBwsHBwULBwcKCQQEDQ0JDg4ODhEHBwkHEQ0JBwkHCwoHCgoHCgsEAwQDCQcLCAcHBwcICAcHDwwPDA0MDAoMCgwKCQcJBwkHCQcIBAcDCggLCBEMCQcLCQwKCgcNCggFCAgJBwwJBwYJBwkHBwUGBgcHBwcECQQNCQQKCQYKBwUECAgIBwMKCAUECAcJBgoICQcHBwoJCAQJBwkHCQcKBwkHCQcJBAkHCggKCQkIBwoJBw0KCgYICwgJCwQPBwwGBwkEBwUFAwsHBwcHCAwMDAwMBwgEBwYIBgkEBwcLCwgHCAgIBwgHBwQFBAMFCQoMDAcICQgAAAAPFAsABAQEBQgIDQoDBQUGCQQFBAQICAgICAgICAgIBAQJCQkIDwoKCwsKCQwLBAgKCA0LDAoMCwoJCwoPCgoJBAQEBwgFCAgICAgECAgDAwgDDQgICAgFCAQICAkICAcFBAUJCgoLCgsMCwgICAgICAgICAgIAwMDAwgICAgICAgICAgIBggICAUICQsLDwUFCA8MCggICAgJBwsMCAQGBQwNCQkFCQgICAkICA8KCgwPDggPBQQDAggHCAoDCAUFCAgIBAMEDgoKCgoKBAQEBAwMDAsLCwMFBAQFBAUFAwUFCAMKCAkHBAsICggKCAkJBQUFDQ0NCAwIBAoICwgLCAgIBQoICggLCQsKCAoICAMIBAgGCwgLCAwICwULBQoICQQJBQsICwgJBwkHCQwNCQgHCQYKCAgFEA8IDwgPCAgPCwkJCQkJCwkLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCQ8PDw8PCQkJDxAOCwsICgkICAsLBwkDBQwFCQUFCQUKCAsICwgKCAoICggMCAwIDAgLCAsIBAMEAwQDBAMIAwoICAgDCwgLCAwIDAgLBQoICQQLCAsICwgLCA8JCggDCggPDQwJBA8JDwkPCQoIAwUICQ0NDQ0FBQUFCgwNBgwNDAMKCgoKCQsECgoNCwoMCwoJCQoKDAsECgkHCAMICQgHCAgDCAcICAcICQcICAsMAwgICAwKDQgLCgQECBAPDQkKCwoKCggLCg4JCwsJCg0LDAsKCwkKDAoLCg4ODA0KCg8KCAgIBwgICgcICAcICggICAgIDQgNCAkIDA0JCwgHCwgICAYHCAMDAw4MCAcICAcFDxAKAAAAAAAAAAAAAAAAAAYABAAABAgIBggJBAYJCQQIBwcJCQQFCQgJCAcHCAgKCgcHBwQGDAQICAcHCAoKCgoICAgIBggJBAYJBAgHBwkFCQkIBwgICgoECAcICQAAAAAAAAAAAAAAAAAAAAAAAAAACQ8MCQwKAAAAAAAAAAAAAAAAAAAAAAgNDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCggKCAoICggKCAoICggKCAoICggKCAoICggKCAoICggKCAoICggKCAQDBAMMCAwIDAgMCAwIDAgMCAwJDAkMCQwJDAkLCAsIDAoMCgwKDAoMCgoICggKCAoIBAMMCAsICwgLCAsICwgAAAAACAYOCgkHCQcLCAgICAgKCAoICggMCAwIBAAFBwgLCggKCAsLCAsMCggICgkJDAcNAwQKCAMHDQsIDA0KCwgKCggJBQQJBAkLCwsICQgJCQgICAgHCAgEBgkEFBIQEAwHEg4MCAoIAAoIDw0MCAwICggMCAwICQgDFBIQDAgQCQsICggKCAoICggEAwQDDAgMCAsFCwULCAsICggJBAgHCwgKCQkJCAoICggMCAAMCAwIDAgKCAgICAgICAgICAsHBwkIBAgICAgJCAgIAwMFAwMDCA0NDQgICQgLDAgFBQUFBQUFCAgIBAUEBQQECAgICAsICAgICAgICAgIDAgICAgECAcICAgODg8KBwsLCgkHCAUFAgMDAwUIBQMFAwIDBQUFBQkJCQkFBQUFBQUFBAQFBQUFBQUFBQUBBQUFBgYGBgYFBQUFBAgICAgICAgICAYICAgICAYICAgICAYICAgICAYICAgICAYICAgICAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgGCAgICAgICAgIBggICAgIBggICAgIBggICAgIBggICAgIBggICAgICAgICAYICAgICAYICAgICAYICAgICAYICAgICAYICAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQgICw0LCAwIDAgLCAkGCQgLCQ0NCggKCAoKCQkLCAYFCAkIAwwHBwoLCAgUCQsMDgoKCA0KDAoPDQkHDAsMCAsJCwkRDgwJEw0AFAkLCAgAAAAAAAALCAoICggKCAkHCQcLCQ0LEA0LCAsICQ0NCQoIDQoNCgQOCgkICggLCAsICggNCgUKCAoIDw0KCAwIDgoJBwkICwgLCAwIDAgKBwoICggKCAoIDQsKCA4NDgsJBw8NDwwMCAsRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCAoICggKCAsICwgLCAsICwgLCAoICggKCAoICggJBAwICwgLCAsICwgLCAQDBAMKCAoICggIAwgDCAMIAw0NDQ0NDQsICwgLCAsIDAgMCAwIDAgKCAoICwULBQsFCwUKCAoICggKCAoICQQJBAkECQQLCAsICwgLCAsICggKCA8JDwkKCAoICggJBwkHCQcIBAkICAMJCQkJCQkJCQoKDAwMDAwMBwcHBwcHCwsODg4OCAgICAgICAgMDA8PDw8PDwMDAwMDAwMDBgYJCQkJCQkICAgICAgMDA8PDw8ICAgICAgICAwODw4MDAwMDAwMDAwMDw8ODg4OCQkHBwgIAwMICAgIDAwJCQkJCQkJCQoKDAwMDAwMCAgICAgICAgMDA8PDw8PDwwMDAwMDAwMDAwPDw4ODg4JCQkJCQkJCgoKCgoFBQUFBQgICAgIDAwNDQsFBQUDAwMDAwMEBAYGBQUFCAgICAkJCAgKCgwNCwUFBQwMDAwMDgwODAsFBQgLCw0LEQ4KCQ8ICQAAAAADAwgKCQQJBQoKBQUFBQUFBQUFBAUFBQUGBgUAAAAAAAAAAAAAAAoICAsNCAgICAcHAwYIBwoJCAgICAkOBwgICAgICAgICggICQcHBwkGCAgICwgHCwcHBwcHBwcCBQcGCAcHBwYHBwYHCgUFBQkFBgYGBAQGAgUIBQYFBgYGAwUHCAUHBgYGBwYCAwUFBgYGBwYLCgsJCQsKDAkAAAAIBQUIDwgPBQQDCAQDAQALCw0KDg0NCgsICAkICAkAAAAAAAkLCwsICAAAAAUACAgEDQgIBQUIBAgIBggLAwMICAgICAQKCAMNCAgFCAYICAgICAgIBwcKAwgECAgGBQUGBAMDBgUCAgICBAICBQgIBQUFBgYFAwMFBgUFBQUFBgUGAAAAAAQFBgYGBgwKCgsFCQkJCQkJCQkDAwMDAwMDAwgICAgICAgIAwMDAwgICAgHCgsKCggIAwsICwUKCAgICAMIBgoICggJBwoJAAAAAAAAAAAADgcICAMICgsIBAsICggJCAgJBwoAAAAAAAADCwsLAAAAAAAAAAAAAAAMCA8JCgALCRANBAcDAwgIBAQEBQkICAYICAgICAgICAgGCAgICAgICAgLCwsSCwYKDAgDBwQIBAgICAYEAwgJCQkICAoJBAYJBwsJCggKCQgICQgMCAgIDA0HCggJCQgICAgICAkICAgIBAQEBAkKCgoKCgkJCQkICAgICQkJCQkJCAgICAgKCgoKCQkEBAQEBAoGCQcHBwcJCQkJCgoKCQkJCAgICAgICAgICQkJCQkJDAwMDAgICAgICAgMCggJBwgICAkKBAkICwkICgkICAgICggKCggICQQKCAoECAgLBwkIBAQGDQ0LCAgJCAgJBwgIDAgJCQgJCwkKCQgJCAgJCAkIDAsKCwgJDQkGBQUFBQUFBQUFBQUFBQsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLBgYGBgYGBgYGBwYGBgQEBAUEBgYGBgYGBgYKCAgICAgICAgIAwcEBAUFBAQEBgQICAgICQUFBQUJBwkHCwkKCAgKDgsMCw4NCggQDREMCwgKCAQECAsGCQgKCA0KCwoFCAcCBQoJAwgABggJCgAACwsLCwsLCgsMCwoIDgsKCQsLCwsLCwoLCgwLCwsKCgoKCAsKDAwEAwMDBAMIDQgJCQgJCAgKCQgEDQgICAgICAgDCAcIBQ0ICQgIDQgIBg0JCAsLBAUPDwsRERERFAgICwgTDwsICggMCwgLCwgLDAQDBAMLCAwJCAgICAkJCAgRDhIODw0OCw4LDgsLCAoICggKCAoFCAMMCQ0KFA4KCAwKDgwMCA8LCQYJCQoIDgsIBwoICggIBgcHCAgICAUKBQ4KBQsKBwwIBgUJCQkIAwwJBgUKCAsHDAkLCAgIDAoJBAoICwgKCAwICggLCAsFCggMCQsKCgkICwoJDwwMBwoNCQoNBBIJDQcICgQIBgUEDQgICAgJDg4ODg4ICQUIBwkHCwQICA0NCQgJCQkICQgIBQYEBAYLCw4OCAoKCQAAABAVDAAEBAQGCQkOCwMFBQYJBAUEBAkJCQkJCQkJCQkEBAkJCQkQCwsMDAsKDAwECAsJDgwMCwwMCwoMCw8LCwoEBAQICQUJCQgJCQQJCQQECAQOCQkJCQUIBAkICQgIBwUEBQkLCwwLDAwMCQkJCQkJCAkJCQkEBAQECQkJCQkJCQkJCQkGCQkJBgkKDAwQBQUJEAwMCQkJCQgICw0JBAYGDA4KCgUJCQkJCgkJEAsLDBAPCRAFBAMCCQgICwMJBQUICAkEBAQRCwsLCwsEBAQEDAwMDAwMBAUEBQUEBQUEBQUJBAsICgcEDAkLCAsJCQkFBQUNDQ0JDAkECwgMCAwICQkFCwkLCQwKDAsJCwkJBAkFCQYMCQwJDAkMBQwFCwgKBAoGDAkMCQoHCgcJDA0JCQcKBgoJCAYSEAgQCBAICBALCQoJCgoLCgsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwwKEBAQEBAKCgoQEQ8MDAkLCggIDAwHCgMGDAUKBgYKBgsJDAgMCAsJCwkLCQwJDAkMCQwJDAkEBAQEBAQEBAgECwgICQQMCQwJDAkMCQwFCwgKBAwJDAkMCQwJDwkLCAQLCRAODAoEDwkPCQ8JCwgEBQkKDQ0NDQUFBQULDQ4GDQ4MBAsLCwsKDAQLCw4MCgwMCwoKCwsNDAQLCQcJBAkJCAcJCQQICAkIBwkJCAkJDAwECQkJDAsNCQsLBAQIERAOCQoMCwoLCQsLDwoLCwkLDgwMDAsMCgoNCwwLDw8NDgoLEAsJCQgICQkLBwkJCAkLCQkJCQgOCA0ICQgNDgoMCAgMCQkJBggIBAQEDw0JCAgJCAUQEQsAAAAAAAAAAAAAAAAABgAEAAAECQkGCAoEBgoJBAgHBwoKBAYJCAkJBwgJCAsKCAgIBAcNBAgIBwcJCwsLCwkJCQkGCAoFBwkFCAcHCgYJCQkICQgLCgQJBwkJAAAAAAAAAAAAAAAAAAAAAAAAAAAKEA0KDQoAAAAAAAAAAAAAAAAAAAAACA0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJBAQEBAwJDAkMCQwJDAkMCQwJDQoNCg0KDQoNCgwJDAkNCg0KDQoNCg0KCwgLCAsICwkEBAwJDAkMCQwJDAkMCQAAAAAJBg8LCQgJCAwJCQgJCAsICwgLCQwJDAkEAAUICQwKCQoJDAwIDA0KCQkLCgoMCA4EBAsIBAgODAkMDgsMCQsLCAoFBAoECgwMCwgKCAoKCAgJCAcICQQHCQQVFBERDAcUDwwJCwkACwkQDgwJDAkLCAwJDAkKCAQVFBEMCREKDAkLCQsJCwkLCQQEBAQMCQwJDAUMBQwJDAkLCAoECQcMCQsKCgoICwkLCQwJAAwJDAkMCQsICQkJCQgICQkJCwcHCggECQkJCAoJCQkEBAYEBAQJDQ0NCQkJCQwMCQUFBQUFBQUJCQgFBQUGBAQJCQkIDAgICAkICAgICAgMCAgJCQUIBwkICA8OEAsHCwwKCggIBQUCBAQEBQgGAwYDAgQFBQYGCQkJCQUFBQUFBQUEBAUFBQUFBQUFBgEFBQYGBgYGBgUFBQUECQkJCQkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQYJCQkJCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkGCQkJCQkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkJBgkJCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFCAkLDgsJDAkMCQwICgYKCAwJDg0LCQsICwsKCgwJBwYJCQgEDAcHCwsJCRUKDAwOCwsIDgsNCxAOCgcNDAwJDAkMCRIPDQoVDgAVCgwICQAAAAAAAAsJCggLCQoICgcJCAwJDgsRDQwIDAgKDQ4JCwgOCg4KBA8LCggLCQwJDAkLCA0LBQsJCwkQDgsJDAkPCwoHCggLCQsJDAkMCQsICggKCAoICwgODAsJDw0PDAoHEA4QDQwJDBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJCwkLCQsJDAgMCQwJDAkMCQwJCwkLCQsJCwkLCQoEDAkMCQwJDAkMCQwJBAQEBAsICwgLCAkECQQJBAkEDg4ODg4ODAkMCQwJDAkMCQwJDAkMCQsJCwkMBQwFDAUMBQsICwgLCAsICwgKBAoECgQKBAwJDAkMCQwJDAkLCAsIDwkPCQsICwgLCAoHCgcKBwkECQgJBAkJCQkJCQkJCwsNDQ0NDQ0HBwcHBwcMDA8PDw8JCQkJCQkJCQ0NEBAQEBAQBAQEBAQEBAQGBgkJCQkJCQkJCQkJCQ0NEBAQEAkJCQkJCQkJDQ8QDwwMDAwMDAwMDQ0QEA8PDw8JCQcHCQkEBAkJCQkMDAkJCQkJCQkJCwsNDQ0NDQ0JCQkJCQkJCQ0NEBAQEBAQDAwMDAwMDAwNDRAQDw8PDwkJCQkJCQkLCwsLCwUFBQUFCQkJCQkNDQ4ODAUFBQQEBAQEBAQEBwcFBQUJCQkJCQkJCQsLDQ4MBQUFDAwMDAwPDQ8NDAUFCQwMDQwSDwsKEAgKAAAAAAQECAsKBQoGCwsFBQUFBQUFBQUEBQUFBQYGBQAAAAAAAAAAAAAACwkICw4ICAkJCAcEBwgHCwkJCAkICg8HCQkJCQkICQkLCQgJBwcHCgYICQkMCQgLBwcIBwcICAMFBwYJCAgIBgcHBgcKBgYGCQUGBgYFBQYCBQgFBgYGBgYDBgcIBgcGBgYHBgIDBgYGBgYHBgsKDAoKDAsNCQAAAAkFBggQCBAFBAMJBAMBAAwMDQsPDg4LDAgJCggICQAAAAAACQwMDAkIAAAABgAJCQQNCQkFBQgECAkGCQwEBAkJCQkJBAsIBA0JCQUIBggICAkJCQkHBwoECAUJCQYGBgYFAwMGBgICAgIEAgIFCAgFBQYGBgYDAwUGBQUGBQUGBQYAAAAABAYGBgYGDAsLDAUJCQkJCQkJCQQEBAQEBAQECQkJCQkJCQkEBAQECQkJCQcLDAsLCQgEDAkMBQsICAgIBAkGCwgLCAoHCwkAAAAAAAAAAAAPCAgJBAkLDAkEDAkLCAoICAoHCgAAAAAAAAQMDAwAAAAAAAAAAAAAAAwJDwkLAAwKEQ0EBwMDCAgEBAQFCgkJBgkJCQkJCAkJCQYJCQkJCQgJCQwMDBMMBgsMCQQIBAkFCQkJBgQECQkKCgkICgoEBwkHDAoKCQoKCQgKCQ0JCQgNDQcKCQoKCQkJCQkJCgkJCQkEBAQECgoKCgoKCgoKCgkJCQkKCgoKCgoJCQkJCQoKCgoKCgQEBAQECwcJBwcHBwoKCgoKCgoKCgoJCQkJCQgICAgKCgoKCgoNDQ0NCQkJCAgICQ0KCQkHCQkICgoECQkMCggKCgkICAkLCQsKCQkKBAoJCgQJCQsHCgkEBAcODQwICQoJCQkHCQkNCAoKCAkMCgoKCQoICQoJCgkMDAsMCQoNCgYFBQUFBQUFBQUFBQUFDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwGBgYGBgYGBgYIBgYGBAQFBQQGBgYGBgYGBgsJCQkJCQkJCQkECAQEBQUEBQUGBQkJCQkJBQUFBQoICgcLCgsJCQsPDA0LDw4LCBEOEg0MCQsJBAQJDAYKCQsJDQsMCwUJCAIGCwoECQAGCAoKAAAMDAsLDAwKDA0LCwgPDAsKCwsLDAsLCwwLDQwMDAsLCwsIDAsMDQQEAwMEBAgNCQkJCQkICQsJCQQNCQkJCAkJCQQJCAkGDQgJCQkNCQkGDQkJDAwEBRAQDBISEhIVCQgMCRUQDAkLCQ0MCAwMCQwNBAMEAwwJDQoJCQgICQkICRIOEw8QDg8MDwwPDAwICwgLCAsICgUJBA0KDgoVDwsJDQsPDQwJEAwJBwkJCwgPDAkICwkLCQgHBwcICAkJBQsGDwsFDAsIDAkGBQkJCQkEDQoGBQoIDAcMCgwICAkNCwoECwgLCQsIDAkLCAwJDAULCA0KDAsLCggMCwkQDAwHCg0KCw0EEwkOCAkLBAkGBgQOCQkJCQoPDw8PDwkKBQgHCggLBQkJDQ0KCQoKCggKCAgFBgQEBwwMDw8JCgsKAAAAERcNAAUFBQYJCQ8LAwYGBwoFBgUFCQkJCQkJCQkJCQUFCgoKCRELCwwMCwoNDAUJCwkODA0LDQwLCgwLEQsLCgUFBQgJBgkJCQkJBQgJBAQJBA4JCQkJBgkFCQgMCQkIBgQGCgsLDAsMDQwJCQkJCQkJCQkJCQQEBAQJCQkJCQkJCQkJCQcJCQkGCQoNDREGBgkRDQ0JCQkJCwgMDgkFBgYNDwoKBgoJCQkKCQkRCwsNERAJEQYEAwMJCAkLAwkGBgkJCQUEBBELCwsLCwUFBQUNDQ0MDAwEBQYFBgUGBgQGBgkECwkKCAQMCQsJCwkKCgYGBQ4ODgkNCAULCQwJDAkJCQYLCQsJDAsMCwkLCQkECQUJBwwJDAkNCQwGDAYLCQoFCgYMCQwJCggKCAoNDgoJBwoGCwkJBxMRCREJEQkJEQwKCgoKCgwLDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAoREREREQoKChESEA0NCQsKCQkNDAgKAwYPBgoGBgoGCwkMCQwJCwkLCQsJDQgNCA0JDAkMCQUEBQQFBAUECQQLCQkJBAwJDAkNCQ0JDAYLCQoFDAkMCQwJDAkRDAsJBAsJEQ8NCgURDBEMEQwLCQQGCQoODg4OBgYGBgsNDgcODw0ECwsLCwoMBQsLDgwLDQwLCgoLCw4NBQsKBwkECQoJCAkJBAkICQgICQoICQkMDQQJCQkNCw4JDAsFBQkSEQ4KCwwLCwsJDAsQCgwMCgwODA0MCwwKCw4LDAsQEA4PCwwRDAkKCQgJCQwICQkICgwJCQkJCQ4JDgkKCQ4OCw0JCA0JCQkGCAkEBAQPDgkICQkIBhESCwAAAAAAAAAAAAAAAAAHAAUAAAUKCQcJCgQHCgoECQgICgoEBgoJCgkICAkJDAsICAgEBw4ECQkICAkMDAwMCgoKCQcJCgUHCgUJCAgKBgoKCQgJCQwLBAkICQoAAAAAAAAAAAAAAAAAAAAAAAAAAAoRDgoNCwAAAAAAAAAAAAAAAAAAAAAJDg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkLCQsJCwkFBAUEDQkNCQ0JDQkNCQ0JDQkOCg4KDgoOCg4KDAkMCQ0LDQsNCw0LDQsLCQsJCwkLCQUEDQkMCQwJDAkMCQwJAAAAAAkGEAwKCAoIDAkJCQkJCwkLCQsJDQkNCQQABggJDAsJCwkMDAkMDQsJCQsKCg0IDwQFCwkECA4MCQ0PCwwJCwsJCgYFCgUKDQwMCQoJCgoJCQkJBwkJBAcKBRcVEhINCBUQDQkLCQALCREPDQkNCAsJDQkNCQoJBBcVEg0IEgsMCQsJCwkLCQsJBQQFBA0JDQkMBgwGDAkMCQsJCgUJBwwJCwoKCgkLCQsJDQkADQkNCQ0JCwkJCQkJCQkJCQkMBwgKCQUJCAkJCgkJCQQEBgQEBAoODg4JCQoJDQ0JBgYGBgYGBgkJCQUFBQYFBQkKCQkMCQkJCQkJCQkJCQ0JCQkJBQkICQkJEA8RCwgMDQsKCAkFBQIEBAQGCQYDBgMDBAYGBgYKCgoKBgYGBgYGBgUFBgYGBgYGBgYGAgYGBgcHBwcHBgYGBgQJCQkJCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJBwkJCQkJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQcJCQkJCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQkHCQkJCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYJCQwPDAkNCg0JDAkKBgsJDQoODgsJCwkLCwoKDQkHBgoKCQQNCAgLDAkJFgoNDQ8MCwkPDA4MEQ8KCA4MDQkNCg0KExAOChYPABYKDAkJAAAAAAAADAkLCQsJCwkKCAoIDQoPDBIODAkMCQoODwoLCQ4LDgsFEAwLCQwKDAkMCQsJDgwGCwkLCREPCwkNCRAMCggKCQwJDAkNCQ0JDAgLCQsJCwkLCQ8NCwkQDhANCggRDhEODQkMEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwkLCQsJCwkMCQwJDAkMCQwJDAkLCQsJCwkLCQsJCgUNCAwJDAkMCQwJDAkFBAUECwkLCQsJCQQJBAkECQQODg4ODg4MCQwJDAkMCQ0JDQkNCQ0JCwkLCQwGDAYMBgwGCwkLCQsJCwkLCQoFCgUKBQoFDAkMCQwJDAkMCQsICwgRDBEMCwkLCQsJCggKCAoICQUMCQkECgoKCgoKCgoLCw4ODg4ODgcHBwcHBw0NEBAQEAkJCQkJCQkJDg4REREREREEBAQEBAQEBAYGCgoKCgoKCQkJCQkJDg4RERERCQkJCQkJCQkOEBEQDQ0NDQ0NDQ0ODhEREBAQEAoKBwcJCQQECQkJCQ0NCgoKCgoKCgoLCw4ODg4ODgkJCQkJCQkJDg4RERERERENDQ0NDQ0NDQ4OEREQEBAQCgoKCgoKCgsLCwsLBgYGBgYJCQkJCQ4ODw8MBgYGBAQEBAQEBQUHBwYGBgkJCQkKCgkJCwsODw0GBgYNDQ0NDRAODw4NBgYJDAwODBMQCwoRCQoAAAAABAQJCwsFCwYLCwYGBgYGBgYGBgUGBgYGBwcGAAAAAAAAAAAAAAALCQgMDwkJCQkICAQHCQgMCgkJCQkKEAgJCQkJCQkJCQwJCAwICAgKBgkJCQwKCAwICAgICAgIAwYIBgkICAgHBwgHCAsGBgYKBQcHBwUFBwIFCAUHBgcHBgMGCAkGCAcGBgcGAgMGBgcGBgcGDAsNCgoNCw0KAAAACQYGCREJEQYEAwkFAwEADQwODBAPDwsMCQkKCQkKAAAAAAAKDAwMCQkAAAAGAAkJBQ4JCQYGCQUJCQYJDQQECQkKCQkFDAkEDgkJBgkHCQkJCQkJCQcICwQJBQkJBgYGBwUEBAcGAgICAgQCAgUICAUFBgcHBgMDBQcFBQYGBgYGBwAAAAAFBgcHBgcNCwsMBgoKCgoKCgoKBAQEBAQEBAQJCQkJCQkJCQQEBAQJCQkJCAsMCwsJCQQNCQwGCwkJCQkECQYLCQsJCgcMCgAAAAAAAAAAABAICQkECQsMCQUMCQsJCgkJCgcLAAAAAAAABAwMDAAAAAAAAAAAAAAADQkRDAsADQoSDgUHAwMJCQUFBQYKCQkHCQkJCQkJCQoJBwkJCQkKCQkKDA0NFA0GCw0JBAgECQUJCQkGBAQJCgoKCQkLCwQHCggMCgsJCwoJCQoJDQkJCQ4OCAsJCgoJCQkJCQkKCQkJCQQEBAQKCwsLCwsKCgoKCQkJCQoKCgoKCgkJCQkJCwsLCwsLBAQEBAQLBwoICAgICgoKCwsLCwoKCgkJCQkJCQkJCQoKCgoKCg0NDQ0JCQkJCQkJDgsJCggJCQkLCwQKCQwKCQsKCQkJCQsJCwsJCQsECwkLBAkJDAgKCQQEBw8ODAkJCgkKCggJCQ0JCgoJCgwLCwoJCgkJCwkKCg0NDA0JCg4KBwYGBgUGBgYGBgYGBgYMDAwMDAwMDAwMDA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQYGBgYGBgYGBggGBgYEBAUGBAYGBgYGBgYGCwkJCQkJCQkJCQQIBAQFBgQFBQYFCQkJCQoGBgYGCggKCAwKCwkJCxANDgwQDwsJEg4TDgwJCwkFBQkNBwoKDAoOCw0MBgkIAgYLCgQJAAcJCgsAAA0MDAwMDAsMDgwLCRANDAoMDAwNDAwMDAwODQ0MDAsLDAkNDA0NBQQDAwUECQ4KCgoKCgkJDAoJBA4KCQkJCQkJBAkICQYOCQoJCQ4JCQcOCgkNDAUGEREMExMTExcJCQwJFhEMCQwKDg0JDQ0JDQ4FBAUEDAkOCwkJCQkKCgkJFA8UEBEPEAwQDBAMDAkLCQsJCwkLBQkEDgoPCxcQCwkODBAODQkRDQoHCgoLCRAMCQgLCQsJCQcICAkJCgoGDAYQDAYNCwgNCQcGCgoKCQQOCgcGCwkMCA0KDAkJCQ0MCgULCQwJCwkNCQsJDAkMBgsJDQoNDAsKCQ0LChENDQgLDgoLDgUUCg8ICQsFCQYGBA4JCQkJChAQEBAQCQoGCQgLCAwFCQkODgoJCgoKCQoJCQYHBQQHDA0QEAkLCwoAAAATGQ4ABQUFBwsLEQ0EBgYHCwUGBQULCwsLCwsLCwsLBQULCwsLFA0NDg4NDA8OBQoNCxAODw0PDg0MDg0SDQ0MBQUFCQsGCwsKCwsFCwsFBAoFEQsLCwsGCgULCg4KCgoGBQYLDQ0ODQ4PDgsLCwsLCwoLCwsLBQUFBQsLCwsLCwsLCwsLCAsLCwcKDA4OEwYGChMPDgoKCgsKCQ4QCgUHBw8RDAwGCwoLCgwLCxMNDQ8TEgsTBgYEBAoJCg0DCwYGCgoLBQQGFA0NDQ0NBQUFBQ8PDw4ODgUHBgcGBgYGBgYGCwQNCgwKBQ4LDQoNCwsLBgYGEBAQCw8LBQ0KDgoOCgsLBg0LDQsODA4NCw0LCwULBQsIDgsOCw8LDgYOBg0KDAUMBw4LDgsMCgwKCw8QCwsICwcMCwoHFRMKEwoTCgoTDwsLCwsLDQwNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0OCxMTExMTCwsLExQRDg4KDAsKCg4OCAwEBxMGCwcHCwcNCw4KDgoNCw0LDQsPCw8LDwsOCw4LBQUFBQUFBQUKBA0KCgsFDgsOCw8LDwsOBg0KDAUOCw4LDgsOCxIODQoEDQsTEQ8MBRIOEg4SDg0KBAYLCxAQEBAGBgYGDQ8QBw8QDwUNDQ0NDA4FDQ0QDgwPDg0LDA0NEA4FDQsICwUKCwoJCwoFCgkKCggLCwkKCg4PBQoLCg8NEAoNDQUFChQTEAsMDg0MDQoNDREMDg4LDRAODw4NDgwMDw0ODRESDxEMDRMNCwsKCQsLDQkLCwkLDQoLCgsKEQoQCgsKEBAMDgoJDgoLCwcJCgUFBBEQCwkKCwkGExUNAAAAAAAAAAAAAAAAAAcABQAABQsKCAoLBQcLCwUKCQkLCwUHCwoLCgkJCgoNDAkJCQQIEAUKCgkJCg0NDQ0LCwsKCAoLBQgLBQoJCQsHCwsKCQoKDQwFCgkKCwAAAAAAAAAAAAAAAAAAAAAAAAAADBMPCw8MAAAAAAAAAAAAAAAAAAAAAAoQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCw0LDQsNCwUFBQUPCw8LDwsPCw8LDwsPCw8LDwsPCw8LDwsOCw4LDwwPDA8MDwwPDA0KDQoNCg0LBQUPCw4LDgsOCw4LDgsAAAAACgcRDQsJCwkOCgsKCwoNCg0KDQsPCw8LBQAHCQsODAsMCw4OCg4PDAsLDQwMDwkRBQUNCgQJEA4LDxENDgsNDQoLBgUMBQwODg4KDAoMDAoKCwoICgsFCAsFGRcUFA8IFxIPCw0LAA0LExEPCw8LDQoPCw8LDAoEGRcUDwsUDA4LDQsNCw0LDQsFBQUFDwsPCw4GDgYOCw4LDQoMBQoIDgsNCwsMCg0LDQsPCwAPCw8LDwsNCgsLCwsKCgsLCw0ICQwKBQsLCgoMCwsLBAQHBAQECxAQEAsLCwsPDwsGBgYGBgYGCgoKBgYGBwUFCwsKCg4KCgoKCgoKCgoKDwoKCgoGCgkLCgoSERINCQ0ODAsJCgYGAgQEBAYKBwQHBAQEBgYHBwsLCwsGBgYGBgYGBQUGBgYGBgYGBgcCBgYHBwcHBwcGBgYGBgoKCgoKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoHCgoKCgoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKBwoKCgoKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKCgcKCgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgoKDhEOCw8LDwsOCgwHDAoOCxAQDQsNCg0NDAsOCwgHCwsKBA8ICA0OCwsZCw4PEQ0NChENEA0TEAwJEA4PCw4LDgsVERALGBEAGQsOCgsAAAAAAAAOCwwKDQsMCgwJCwkOCxENFRAOCg4KDBARCw0KEAwQDAURDQwKDQsOCg4KDQoQDQYNCw0LExENCw8LEQ0MCQwKDgsOCw8LDwsNCQwKDAoMCg0KEQ4NCxIQEg8MCRMQExAPCg4VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCw0LDQsNCw4KDgsOCw4LDgsOCw0LDQsNCw0LDQsMBQ8LDgsOCw4LDgsOCwUFBQUNCg0KDQoLBQsFCwULBRAREBEQEQ4LDgsOCw4LDwsPCw8LDwsNCw0LDgYOBg4GDgYNCg0KDQoNCg0KDAUMBQwFDAUOCw4LDgsOCw4LDQoNChIOEg4NCg0KDQoMCgwKDAoLBQ4KCwQLCwsLCwsLCw0NDw8PDw8PCAgICAgIDw8SEhISCwsLCwsLCwsQEBMTExMTEwUFBQUFBQUFBwcLCwsLCwsLCwsLCwsQEBMTEhIKCgoKCgoKCg8SExIPDw8PDw8PDw8PExMSEhISCwsICAsLBQULCwoKDw8LCwsLCwsLCw0NDw8PDw8PCwsLCwsLCwsQEBMTExMTEw8PDw8PDw8PDw8TExISEhILCwsLCwsLDQ0NDQ0GBgYGBgsLCwsLDw8REQ4GBgYFBQUFBQUFBQgIBgYGCgoKCgsLCgoNDQ8QDwYGBg8PDw8PEhARDw4GBgsODhAOFRINDBMKCwAAAAAEBAoNDAYMBw0NBgYGBgYGBgYGBQYGBgYICAYAAAAAAAAAAAAAAA0LCQ4RCgoLCwkJBAgKCQ0LCwoLCgwSCQsLCgoKCgoLDQsKDgoJCQwHCgoKDgsJDgkJCQkJCQkDBgkHCwkJCQcICQgIDAcHBwsGCAcHBgYHAgYJBggHCAgHBAcJCgcICAcHCAcCBAcHCAcHCAcNDA4MDA4MDwsAAAALBgcKEwoTBgUDCwUEAgAODhANERERDQ4KCwwKCgsAAAAAAAsODg4KCgAAAAcACwsFEAsLBgYKBQoLBwsOBAQLCgsLCwUNCgQQCwsGCgcKCgoLCwsLCAkMBAoGCwoHBwcIBgQEBwcCAgICBAICBgkJBgYHCAgHBAQGCAYGBwYGBwcIAAAAAAUHBwgHBw8NDQ4GCwsLCwsLCwsFBQUFBQUFBQoKCgoKCgoKBQUFBQoKCgoJDQ4NDQsKBA4LDgYNCgoKCgUKBw0KDQoMCA0LAAAAAAAAAAAAEgkKCwQLDQ4LBQ4LDQoMCgoLCAwAAAAAAAAFDg4OAAAAAAAAAAAAAAAPCxIODQAOCxQQBQgEBAoKBQUFBgwLCwcKCgsKCwoLCwsHCwsLCwsKCwsODg4WDgcMDwsECQULBgsLCwcFBQsLCwwLCgwMBQgLCQ4MDAsMDAsKDAoPCwsKEBAJDAsMCwsLCwsLCwsLCwsLBQUFBQwMDAwMDAwMDAwLCwsLCwsLCwwMCwsLCwsMDAwMDAwFBQUFBQ0ICwkJCQkMDAwMDAwMDAwMCwsLCwsKCgoKDAwMDAwMDw8PDwsLCwoKCgsQDAsLCQsLCgwMBQsKDgwKDAwLCgoLDQsNDAsLDAUMCwwFCwsOCQsLBQUIERAOCgoMCwsLCQoLDwoMDAoLDgwMDAsLCgoMCwwLDw8NDgoLEAwHBgYGBgYGBgYGBgYGBg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OBwcHBwcHBwcHCQcHBwUFBgYFBwcHBwcHBwcMCwsLCwsLCwsLBAkFBQYGBQYGBwYLCwsLCwYGBgYLCQwJDgsNCwsNEg4QDhIRDQoUEBUQDgoNCwUFCw8IDAsNCxANDg0GCwkCBw0MBQsACAoLDAAADg4ODQ4ODA4PDg0KEQ4NCw0NDg4ODQ0ODQ8ODg4NDQ0NCg4NDw8FBAMEBQQKEAsLCwsLCgsNCwsEEAsLCwoLCgsECwkKBxAKCwsLEAsKBxALCw4OBQYTEw4VFRUVGQsKDgoYEw4LDQsPDgoODgoPDwUEBQQOCxAMCwsKCgsLCgsWERYSExESDhIOEg4OCg0KDQoNCgwGCwQPDBEMGRINCxANEg8PCxMOCwgLCw0KEg4KCQ0LDQsKCAgICgoLCwYNBxINBg4NCQ8LCAYLCwsLBA8LCAYMCg4IDwsOCgoLDw0MBQ0KDgoNCg8LDQoOCw4GDQoPDA4NDQwKDg0LEw8PCQwQDA0QBRcLEQkLDQULBwcFEAsLCgoMEhISEhIKDAYKCQwJDQYLCxAQDAoMCwsKCwoKBgcFBQgODxISCwwNDAAAABUcEAAGBgYHDAwTDgQHBwgMBgcGBgwMDAwMDAwMDAwGBgwMDAwVDg4PDw4NEA8FCw4MEQ8QDhAPDg0PDhUODg0GBgYKDAcMDAsMDAYMDAUFCwURDAwMDAcLBQwLDgsLCgcFBwwODg8ODxAPDAwMDAwMCwwMDAwFBQUFDAwMDAwMDAwMDAwIDAwMBwsNDw8VBwcMFRAPDAwMDAsKDxEMBggIEBMNDQcMDAsLDQwMFQ4OEBUUDBUHBwQEDAoLDgQMBwcLCwwGBQYUDg4ODg4FBQUFEBAQDw8PBQcHBwcHBwcGBwcMBQ4LDQoFDwwOCw4MDAwHBwcSEhIMEAwFDgsPCw8LDAwHDgwODA8NDw4MDgwMBQwGDAgPDA8MEAwPBw8HDgsNBQ0HDwwPDA0KDQoMEBIMDAkNCA4MCwcXFQsVCxULCxUQDA0MDQ0PDQ8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8NFRUVFRUNDQ0VFhMQEAsODAsLEA8JDQQHFQcNBwcNBw4MDwsPCw4MDgwODBAMEAwQDA8MDwwFBQUFBQUFBQsFDgsLDAUPDA8MEAwQDA8HDgsNBg8MDwwPDA8MFQ4OCwUODBUTEA0GFQ4VDhUODgsFBwwNEhISEgcHBwcOERIIERIQBQ4ODg4NDwUODhEPDhAPDg0NDg4REAUODAkMBQwMCwoMCwULCgwLCQwMCgwLDxAFDAwMEA4SCw8OBQULFhUSDA0PDg4OCw8OEw0PDwwOEQ8QDw4PDQ0RDg8OExMREw4PFQ4MDAsKDAwOCgwMCgwODAwMDAsRCxILDAsREg0PCwoQCwwMCAoLBQUFExEMCgsMCgcVFw4AAAAAAAAAAAAAAAAACAAGAAAGDAsICw0FCA0MBQsKCg0NBQcMCwwLCgoMCw8OCgoKBQkRBQsLCgoLDw8PDwwMDAsICw0GCQwGCwoKDQcMDAsKDAsPDgULCgsMAAAAAAAAAAAAAAAAAAAAAAAAAAANFRENEQ0AAAAAAAAAAAAAAAAAAAAACxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MBQUFBRAMEAwQDBAMEAwQDBAMEQ0RDRENEQ0RDQ8MDwwRDRENEQ0RDRENDgsOCw4LDgwFBRAMDwwPDA8MDwwPDAAAAAALCBMODAoMCg8MDAsMCw4LDgsODBAMEAwFAAcKDA8ODA4MDw8LDxAODAwODQ0QChIFBg4LBQoSDwwQEg4PDA4OCw0HBg0GDRAPDwsNCw0NCwsMCwkLDAUJDAYcGhYWEAkaFBAMDgwADgwVExAMEAwOCxAMEAwNCwUcGhYQDBYNDwwODA4MDgwODAUFBQUQDBAMDwcPBw8MDwwOCw0GCwkPDA4NDQ0LDgwODBAMABAMEAwQDA4LDAwMDAsLDAwMDwkKDQsGDAwMCw0MDAwFBQcFBQUMEhISDAwMDBAQDAcHBwcHBwcLCwsGBgYHBgYMDAwLDwsLCwwLCwsLCwsQCwsMDAYLCQwLCxMTFA4KDxANDAoLBgYDBQUFBwsHBAcEBAUHBwcHDAwMDAcHBwcHBwcGBgcHBwcHBwcHCAIHBwcICAgICAcHBwcHCwsLCwsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwgLCwsLCwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsICwsLCwsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsLCAsLCwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCwwPEw8MEAwQDA8LDQgNCxAMEhIODA4LDg4NDRAMCQgMDAsFEAkJDg8MDBsMEBATDw4LEg4RDhYSDQoRDxAMEAwQDBcTEQ0bEgAbDA8LDAAAAAAAAA8MDgsODA4LDQoMChAMEw8XEg8LDwsNEhMMDgsSDRINBRMODQsODA8MDwwOCxIOBw4MDgwVEw4MEAwTDg0KDQsPDA8MEAwQDA8KDQsNCw0LDgsTDw4MFBIUEA0KFRIVERAMDxcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4MDgwODA4MDwsPDA8MDwwPDA8MDgwODA4MDgwODA0GEAwPDA8MDwwPDA8MBQUFBQ4LDgsOCwwFDAUMBQwFERERERERDwwPDA8MDwwQDBAMEAwQDA4MDgwPBw8HDwcPBw4LDgsOCw4LDgsNBQ0FDQUNBQ8MDwwPDA8MDwwOCw4LFQ4VDg4LDgsOCw0KDQoNCgwFDgsMBQwMDAwMDAwMDg4REREREREJCQkJCQkQEBQUFBQMDAwMDAwMDBERFRUVFRUVBQUFBQUFBQUICAwMDAwMDAwMDAwMDBERFRUUFAwMDAwMDAwMERQVFBAQEBAQEBAQEREVFRQUFBQMDAkJDAwFBQwMDAwQEAwMDAwMDAwMDg4REREREREMDAwMDAwMDBERFRUVFRUVEBAQEBAQEBARERUVFBQUFAwMDAwMDAwODg4ODgcHBwcHDAwMDAwRERISDwcHBwUFBQUFBQUFCQkHBwcMDAwMDAwMDA4OERIQBwcHEBAQEBATERMREAcHDA8PEg8YFA4NFQsMAAAAAAUFCw4NBg0HDg4HBwcHBwcHBwcGBwcHBwgIBwAAAAAAAAAAAAAADgwKDxMLCwwMCgoFCQsJDgwMCwwLDRQKDAwLCwsLDAwPDAsOCgoKDQgLDAsPDAoPCgoKCQkKCgMHCQgMCgoKCAkKCAkNCAgHDAcICAgGBggDBwoGCAcICAgEBwoLCAkICAgJCAMEBwgICAgJCA8OEA0NEA4RDAAAAAwHBwsVCxUHBQQMBgQCAA8PEg4TExMODwsMDQsLDAAAAAAADA8PDwsLAAAABwAMDAYSDAwHBwsGCwwIDBAFBQwMDAwMBg4LBRIMDAcLCAsLCwwMDAwJCg0FCwYMCwgHBwgGBAQIBwMDAwMFAwMGCgoGBgcICAcEBAYIBgYIBwcIBwgAAAAABggICAgIEA4ODwcMDAwMDAwMDAUFBQUFBQUFDAwMDAwMDAwFBQUFDAwMDAoODw4ODAsFEAwPBw4LCwsLBQsIDgsOCw0JDgwAAAAAAAAAAAAUCgsMBQwODwwGDwwOCw0LCw0JDgAAAAAAAAUPDw8AAAAAAAAAAAAAABAMFQ4OABANFhIGCQQECwsGBgYHDQwMCAsLDAsMCwwMDAgMDAwMDAsMDA8QEBkQCA4QDAUKBQwGDAwMCAUFDAwNDQwLDg0FCQwKDw0ODA4NDAsNDBEMDAsREgoODA0NDAwMDAwMDQwMDAwFBQUFDQ4ODg4ODQ0NDQwMDAwNDQ0NDQ0MDAwMDA4ODg4NDQUFBQUFDgkMCgoKCg0NDQ0ODg4NDQ0MDAwMDAsLCwsNDQ0NDQ0RERERDAwMCwsLDBEODAwKDAwLDQ4FDAsPDQsODQwLCwwODA4ODAwNBQ4MDgUMDA8KDQwFBQkSEg8LDA0MDAwKDAwRCw0NCwwPDQ4NDA0LDA0MDQwQEA4QCw0SDQgHBwcHBwcHBwcHBwcHDw8PDw8PDw8PDw8QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAICAgICAgICAgKCAgIBQUGBwUICAgICAgICA4MDAwMDAwMDAwFCgUFBgcFBgYIBgwMDAwMBwcHBw0KDQoPDQ4MDA4UEBEPFBMOCxYSFxEPDA4MBgYMEAgNDA8MEg4QDgcMCgMIDg0FDAAICw0OAAAQDw8PDw8NDxEPDgsTEA8NDw8PEA8PDw8PERAQDw4ODg4LEA4QEQYFBAQGBQsSDAwMDAwLDA8MDAUSDAwMCwwMDAUMCgwHEgsMDAwSDAwIEgwMEA8GBxUVDxcXFxccDAsPDBsVDwwODBEPCxAQCxARBgQGBA8MEQ0MDAsLDAwLDBgTGRMVExQPFA8UDw8LDgsOCw4LDgcMBRENEg4cFA4MEQ8UERAMFRAMCQwMDgsUDwwKDgwODAsJCQkLCwwMBw4HFA4HEA4KEAwJBwwMDAwFEQ0JBw4LDwkQDQ8LCwwRDg0GDgsPDA4LEAwOCw8MDwcOCxENEA4ODQsPDgwVEBAJDRINDhIGGQwTCgwOBgwIBwUSDAwMDA0UFBQUFAwNBwsJDQoPBgwMEhINCw0MDQsNCwsHCAYFCQ8QFBMMDg4NAAAAGCASAAcHBwkNDRUQBQgICQ4HCAcHDQ0NDQ0NDQ0NDQcHDg4ODRgQEBEREA8TEQYMEA0UERMQExEQDxEQGBEQDwcHBwsNCA0NDA0NBw0NBgUMBhQNDQ0MCAwHDQwQDAwLCAYIDhAQERARExENDQ0NDQ0MDQ0NDQYGBgYNDQ0NDQ0NDQ0NDQoNDQ0IDQ8SEhgICA0YExINDQ0NDQwRFA0HCQkSFQ8PCA4NDQ0PDQ0YEBATGBcNGAgHBQUNDAwQBA0ICAwMDQcFBhcQEBAQEAYGBgYTExMREREGCAcICAcICAYICA0FEAwPCwYRDRAMEA0ODgcICBQUFA0TDQYQDBEMEQwNDQgQDRANEQ8REA0QDQ0GDQcNChENEQ0TDREIEQgQDA8HDwkRDRENDwsPCw4TFA4NCw4JEA0MCRoYDBgMGAwMGBEODw4PDxEPEREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREg8YGBgYGA8PDxkZFhISDRAODAwSEgsPBQkWCA8JCQ8JEA0RDBEMEA0QDRANEw0TDRMNEQ0RDQYGBgYGBgYGDAUQDAwNBhENEQ0TDRMNEQgQDA8HEQ0RDRENEQ0YEBAMBRANGBUTDwcYEBgQGBAQDAUIDQ4UFBQUCAgICBATFAkTFRMGEBAQEA8RBhAQFBEQExEQDg8QERQSBhAOCw0GDQ4MCw0NBgwMDQwLDQ4MDQ0REwYNDQ0TEBQNERAGBgwaGBQODxEQEBANERAWDxERDhAUERMREBEPDxMRERAWFhMVEBEZEA0ODQwNDRELDQ0LDhANDQ0NDBQMFAwODBQUDxINDBINDQ0JDAwGBgUWFA0LDA0MCBgaEAAAAAAAAAAAAAAAAAAJAAcAAAcODQoMDgYJDg4GDAsLDg4GCA4NDg0LCw0MEQ8MDAwGChQGDAwLCw0RERERDg4ODQoMDgcKDgcMCwsOCA4ODQsNDBEPBg0LDQ4AAAAAAAAAAAAAAAAAAAAAAAAAAA0YEw8TDwAAAAAAAAAAAAAAAAAAAAAMFBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0QDRANEA0GBgYGEw0TDRMNEw0TDRMNEw0TDxMPEw8TDxMPEQ0RDRMPEw8TDxMPEw8QDBAMEAwQDQYGEw0RDRENEQ0RDRENAAAAAA0JFhEOCw4LEQ0NDA0MEAwQDBANEw0TDQYACAwNEhANEA0REQwRExANDRAPDxMMFQYHEAwFDBQRDRMVEBINEBAMDggHDwcPEhERDA8MDw8MDA0MCwwNBgoOByAdGRkTCx0XEw0QDQAQDRgVEw0TDRAMEw0TDQ8MBSAdGRMNGQ8RDRANEA0QDRANBgYGBhMNEw0RCBEIEQ0RDRAMDwcNChENEA8PDwwQDRANEw0AEw0TDRMNEAwNDQ0NDAwNDQ0RCwsPDAcNDQ0MDw0NDQUFCQUFBQ4UFBQNDQ4NEhMNCAgICAgICA0NDAcHBwgHBw0ODQwRDAwMDQwMDAwMDBMMDA0NBwwLDQwMFhYXEAsREg8ODA0HBwMFBQUIDAgFCQUFBQgICQkODg4OCAgICAgICAcHCAgICAgICAgJAggICQkJCQkJCAgICAcNDQ0NDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NCQ0NDQ0NDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQkNDQ0NDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQ0JDQ0NDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgMDREVEQ0TDhMNEQwPCQ8NEg4UFBANEAwQEA8OEg0KCQ4ODAUTCwsQEQ0NHw4SExYREAwVEBQQGRUPCxQREw0SDhIOGxYUDh8VAB8OEQwNAAAAAAAAEQ0QDRANDw0PCw4LEg4VERoUEQwRDA8UFg4QDBQPFA8GFhEPDBAOEQ0RDRAMFBAIEA0QDRgVEA0TDRYRDwsPDBENEQ0TDRMNEQwPDA8MDwwQDBUSEA0XFBYSDwsYFBgUEw0SGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA0QDRANEA0RDBENEQ0RDRENEQ0QDRANEA0QDRANDwcTDRENEQ0RDRENEQ0GBgYGEAwQDBAMDQYNBg0GDQYUFBQUFBQRDRENEQ0RDRMNEw0TDRMNEA0QDREIEQgRCBEIEAwQDBAMEAwQDA8HDwcPBw8HEQ0RDRENEQ0RDRAMEAwYEBgQEQwRDBAMDwsPCw8LDQcQDA0FDg4ODg4ODg4QEBQUFBQUFAsLCwsLCxISFxcXFw0NDQ0NDQ0NFBQYGBgYGBgGBgYGBgYGBgkJDg4ODg4ODQ0NDQ0NFBQZGRcXDQ0NDQ0NDQ0UFxgXExMTExMTExMTExgYFxcXFw4OCwsNDQYGDQ0NDRMTDg4ODg4ODg4QEBQUFBQUFA0NDQ0NDQ0NFBQYGBgYGBgTExMTExMTExMTGBgXFxcXDg4ODg4ODhAQEBAQCAgICAgNDQ0NDRQUFRURCAgIBgYGBgYGBgYKCggICA0NDQ0ODg0NEBAUFRIICAgTExMTExYUFhMSCAgNEREUERsXEA8YDA4AAAAABQUNEA8HDwgQEAgICAgICAgICAcICAgICgoIAAAAAAAAAAAAAAAQDQwRFQwMDQ0LCwUKDAsQDg0MDQwPFwsNDQ0NDQwNDRENDBALCwsPCQwNDREODBELCwsLCwwLBAgLCQ0LCwwJCwsKCw8JCQgOBwoJCQcHCQMIDAcJCQkJCQUICw0JCwoJCQsJAwUICQoJCQsJERASDw8SEBMOAAAADQgJDBgMGAgGBA0HBQIAEhEUEBYVFRARDA0PDAwOAAAAAAAOERERDQwAAAAIAA0NBxQNDQgIDAcMDQkNEgUFDQ0ODQ0HEQwFFA0NCAwJDAwMDQ0NDQsLDwUMBw0NCQkJCQcFBQkJAwMDAwYDAwcMDAcHCAkJCAUFBwoHBwkICAkICQAAAAAHCQkJCQkTEBARCA4ODg4ODg4OBgYGBgYGBgYNDQ0NDQ0NDQYGBgYNDQ0NCxAREBANDAUSDREIEAwMDAwGDQkQDBAMDwsQDgAAAAAAAAAAABcMDA0FDRARDQcRDRAMDwwMDgsQAAAAAAAABhEREQAAAAAAAAAAAAAAEwwYEBAAEg4ZFAcLBQUMDAcHBwgPDQ0JDQ0NDQ0MDQ0NCQ0NDQ0NDQ0NERISHBIJEBMNBQwGDQcNDQ0JBgYNDg4PDQwQDwYK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FRUVFhYbGxoaGhoPDw8PDw8PEhISEhIJCQkJCQ8PDw8PFhYXFxQJCQkGBgYGBgYHBwsLCQkJDw8PDw8PDw8SEhYXFQkJCRUVFRUVGRYZFhUJCQ8UFBYUHxkSERsOEAAAAAAGBg4SEQgRCRISCQkJCQkJCQkJCAkJCQkLCwkAAAAAAAAAAAAAABIPDRMYDg4PDw0NBgsODBMQDw4PDhEZDA8PDg4ODg8PEw8OEw0NDRAKDg8OFA8NEwwMDQwMDQ0ECQwKDw0NDQoMDAsMEQoKChAICwoKCAgLAwkNCAsKCwsKBQoNDgoMCwoKDAoDBQoKCwoKDAoTEhQQEBQSFRAAAAAPCQoOGw4bCQcFDwgFAgAUFBYTGRgYEhQODxEODhAAAAAAAA8UFBQPDgAAAAoADw8IFg8PCQkOCA4PCg8VBgYPDw8PDwgTDgYWDw8JDgoODg4PDw8PDA0RBg4IDw8KCgoLCAYGCwoDAwMDBgMDCA0NCAgKCwsJBQUICwgICgkJCgkLAAAAAAgKCgsKChUSEhQJDw8PDw8PDw8GBgYGBgYGBg8PDw8PDw8PBgYGBg8PDw8MEhQSEg8OBhQPFAkSDg4ODgYPChIOEg4RDBMQAAAAAAAAAAAAGQ0ODwYPEhQPCBQPEg4RDg4QDBIAAAAAAAAGFBQUAAAAAAAAAAAAAAAVDhkTEgAUEBwXCAwFBQ4OCAgICREPDwoPDg8PDw4PDw8KDw8PDw8ODw8TFBQgFAoSFQ8GDQcPCA8PDwoHBg8PEBEPDhIRBgwPDRQREg8SEA8OEA8VDw8OFhYNEg8REA8PDw8PDxAPDw8PBgYGBhESEhISEhAQEBAPDw8PEBAQEBERDw8PDw8SEhISEREGBgYGBhIMDw0NDQ0REREREhISEBAQDw8PDw8ODg4OEBAQEBAQFRUVFQ8PDw4ODg8WEg8PDA8PDhESBg8PFBEOEhEPDg4PEg8SEg8PEQYSDxIGDw8TDBAPBgYMFxcUDg8RDw8PDA8PFQ4REQ4PFBESEQ8QDg8RDxAPFRUSFA8QFxALCQgJCgkJCQkJCQkJCRMTExMTExMTExMTFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUCgoKCgoKCgoKDQoKCgcHCAkHCgoKCgoKCgoSDw8PDw8PDw8PBg0HBwgJBwgICggPDw8PEAkJCQkQDREMExASDw8SGhQW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FRIVEhUSFRIVEhUSFRIIBwgHGREZERkRGREZERkRGREaExoTGhMaExoTFxIXEhkUGRQZFBkUGRQVEBUQFRAVEggHGREXEhcSFxIXEhcSAAAAABEMHRYTDxMPFxISEBIQFRAWERYSGRIZEggACxASFxUSFRIXFxAXGRUSEhUUFBkQHAcJFRAHEBsXEhkcFRcSFRUQEwsJFAkUGBcXEBQQFBQQEBIQDhASCA0TCSsnIiIZDiceGRIVEgAVEiAcGRIZEhUQGREZERQQBysnIhkSIRQXEhUSFRIVEhUSCAkICRkRGREXCxcLFxIXEhUQFAkRDhcSFRMTFBAVEhUSGREAGREZERkRFRASEhISEBASEhIXDg8UEAkSEhIQFBISEgcHCwcHBxIbGxsSEhMSGRkSCwsLCwsLCxEREAkKCQsJCRISEhAXEBAQEhAQEBAQEBkQEBISCRAOEhAQHh0fFQ8XGBUTEBEKCgQHBwcKEAsGCwcGBwsLCwsTExMTCwsLCwsLCwkJCwsLCwsLCwsMAwoLCwwMDAwMCwsLCwoREREREREREREMEREREREMEREREREMEREREREMEREREREMERERERERERERDBERERERDBERERERDBERERERDBERERERDBEREREREREREQwREREREQwREREREQwREREREQwREREREQwREREREREREREMEREREREMEREREREMEREREREMEREREREMEREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCwsQEhccFxIZEhkSFxAUDBQRGBIbGxYSFhAVFRQTGBINCxITEAcZDg4VFxISKhMYGR0WFRAcFhsWIRsUDxsXGRIYExgTIx0aEykcACoTFxASAAAAAAAAFxIVERUSFREUDxMPGBIdFiMbFxAXEBQbHRIWERsUGxQIHRYUERYSFxIXEhYRGxYLFRIVEiAcFRIZEh0WFA8UEBcSFxIZERkSFhAUEBQQFBAWERwYFRIeGx4YFA8fGyAbGRIXJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRIVEhUSFRIXEBcSFxIXEhcSFxIVEhUSFRIVEhUSFAkZ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CwkJEhMSERgRERESERERERERGhEREhIKEQ8SEREfHiAWDxcZFRQQEQoKBAcHBwsRCwYMBwYHCwsMDBMTExMLCwsLCwsLCQkLCwsLCwsLCwwDCwsMDQ0NDQ0LCwsLChISEhISEhISEg0SEhISEg0SEhISEg0SEhISEg0SEhISEg0SEhISEhISEhINEhISEhINEhISEhINEhISEhINEhISEhINEhISEhISEhISDRISEhISDRISEhISDRISEhISDRISEhISDRISEhISEhISEg0SEhISEg0SEhISEg0SEhISEg0SEhISEg0SEhISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLCxESGB0YEhoTGhIYERQMFREZExwbFhIWERYWFBQZEg4MExMRBxoPDxYYEhIrFBkaHhcWER0WGxciHBQPGxgaEhkTGRMlHhsUKh0AKxQYERIAAAAAAAAYEhURFhIVERQPExAZEx0XJBwYERgRFBseExYRHBUcFQgeFxURFxMYEhgSFhEbFwsWEhYSIR0WEhoSHhcUDxQRGBIYEhoSGhIXEBURFREVERYRHRgWEh8cHxkUDyAcIRsaEhglAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEhYSFhIWEhgRGBIYEhgSGBIYEhYSFhIWEhYSFhIUCRoSGBIYEhgSGBIYEggGCAgWERYRFhESBhIGEgYSBhwbHBscGxgSGBIYEhgSGhIaEhoSGhIWEhYSGAsYCxgLGAsWERYRFhEWERYRFAkUCRQJFAkYEhgSGBIYEhgSFhEWESAYIBgWERYRFhEUERQRFBESCRgREgcTExMTExMTExYWGxsbGxsbDw8PDw8PGRkgICAgEhISEhISEhIbGyIiIiIiIgYGBgYGBgYGDAwTExMTExMSEhISEhIbGyIiICASEhISEhISEhsgISAaGhoaGhoaGhsbISEgICAgExMPDxISBgYSEhISGhoTExMTExMTExYWGxsbGxsbEhISEhISEhIbGyIiIiIiIhoaGhoaGhoaGxshISAgICATExMTExMTFhYWFhYLCwsLCxISEhISGxsdHRgLCwsGBgYGBgYICA4OCwsLEhISEhMTEhIWFhscGQsLCxoaGhoaHxseGxkLCxIYGBsYJR8WFCERFAAAAAAHBxEWFQoVCxYWCwsLCwsLCwsLCQsLCwsNDQsAAAAAAAAAAAAAABYSEBgdERESEhAPBw4RDxcTEhESERQfDxISEhISERISFxIRGBEPDxQMERISGBMQGA8PEA8PEBAFCw8MEhAQEA0ODw0PFQwMDBQKDQ0NCgoNBAoQCg0MDQ0MBgwPEQwPDQwNDg0EBgwMDQwNDg0XFhkUFBkWGhMAAAASCwwRIREhCwgGEgkHAwAYGBsXHh0dFhgREhQRERMAAAAAABMYGBgSEQAAAAwAEhIJGxISCwsRCRESDRIZBwcSEhMSEgkXEQcbEhILEQ0RERESEhISDw8VBxEKEhINDAwNCgcHDQwEBAQECAQEChAQCgoMDQ0LBgYKDQoKDAsLDAsNAAAAAAkMDQ0NDRoWFhgLExMTExMTExMGBgYGBgYGBhISEhISEhISBgYGBhISEhIPFhgWFhIRBxkSGAsWEREREQYSDBYRFhEUDxcTAAAAAAAAAAAAHxAREgcSFhgSCRgSFhEUEREUDhYAAAAAAAAGGBgYAAAAAAAAAAAAAAAaEiAYFgAZFCIcCQ4GBhERCQkJCxQSEg0SEhISEhESEhINEhISEhMREhIYGRknGQwWGhIHEAgSChISEgwIBhITFBQSERUUCA4TDxgUFRIVFBIRFBIaEhIRGxsPFRIUFBISEhISEhQSEhISCAgICBQVFRUVFRQUFBQSEhISFBQUFBQUEhISEhIVFRUVFBQICAgICBYOEw8PDw8UFBQUFRUVFBQUEhISEhIRERERFBQUFBQUGhoaGhISEhERERIbFRITDxISERQVCBMSGBQRFRQSERESFhIWFRISFAgVEhUIEhIXDxQSCAgOHRwYERIUEhMTDxISGhEUFBETGBQVFBIUERIVEhQTGRkWGBIUHBQNCwoLCwsLCwsLCwsLCxgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZDAwMDAwMDAwMEAwMDAgICgsIDAwMDAwMDAwWEhISEhISEhISBxAICAoLCAoKDAoSEhISEwsLCwsUDxQPGBQWEhIWIBkbGB8dFhEjHCQbGBIWEgkJEhkNFBMXExsWGRYLEhAEDBYUCBIADREUFQAAGRgYFxgYFRgbGBYRHhkXFBcXGBkYFxcYFxoZGRgXFhYWERkXGhoJBwYHCQgRHBITExMTERIXFBIIHBMSEhESEhIIEhASDBwRExISHBISDRwTEhkYCQshIRglJSUlLBIRGBIqIhgSFxMbGBIZGRIZGwkHCQcYEhsVEhIRERMTERImHiceIh0fGB8YHxgYERYRFhEWERUKEgcaFB0WLB8WEhsXHxsaEiAZEw4TExYRHxgSEBYSFhIRDQ8PERETEwsWCyAWCxkWEBoSDQsTExMSBxoUDQsVERgPGRQYERESGhYUCRYRGBIWERoSFhEYEhgLFhEaFBkXFhQRGBYTIRoZDxUbFBYbCScTHhASFgkSDAsIHBISEhIUHx8fHx8SFAsRDxUQFwoSEhsbFBIUFBQRFBERCw0JCA4YGR8eEhUWFAAAACUxHAAKCgoNFRUhGQcMDA4WCgwKChUVFRUVFRUVFRUKChYWFhUlGRkbGxkXHRsKExkVHhsdGR0bGRcbGSMZGRcKCgoRFQwVFRMVFQoVFQgIEwgeFRUVFQwTChUTGhMTEgwKDBYZGRsZGx0bFRUVFRUVExUVFRUKCgoKFRUVFRUVFRUVFRUPFRUVDRQXGxslDAwUJR0bFBQUFRQSGh4UCg4OHCEXFwwWFBQUFxUVJRkZHSUjFSUMDAcIFBITGQYVDAwTExUKCAslGRkZGRkKCgoKHR0dGxsbCg0KDQwMDAwLDA0VCBkTFxIKGxUZExkVFhYMDAwfHx8VHRUKGRMbExsTFRQMGRUZFRsXGxkVGRUVCBUKFQ8bFRsVHRUbDBsMGRMXChcNGxUbFRcSFxIVHR8VFRAWDhgUEw0oJRMlEyUTEyQbFhYWFhYaFxoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhsWJSUlJSUWFhYmJyIcHBQYFhMTHBsQFwcNIwwWDQ0WDRkVGxMbExkVGRUZFR0VHRUdFRsVGxUKCAoICggKCBMIGRMTFQgbFRsVHRUdFRsMGRMXChsVGxUbFRsVIxoZEwgZFSUhHRcKIxojGiMaGRMIDBUWHx8fHwwMDAwZHR8OHSAdCBkZGRkXGwoZGR4bGB0bGRYXGRkfHAoZFRAVCBQVExEVFAgTEhQTERUVEhQUGx0IFBUUHRkfFBoZCgoTJyQfFhgbGRgZFBoZIhcaGhYZHhsdGxkbFxgdGRsZIiIeIRgaJhkVFRMSFBUZERUVERUZFBUUFRMeEx8TFRMfHxcbExIcFBUVDhITCAgIIh8VERMVEg0lKBkAAAAAAAAAAAAAAAAADgAKAAAKFRQPExYJDhYWCRMRERYWCQ0VFBUUERIUExoYEhISCQ8eCRMTEREUGhoaGhUVFRQPExYLDxYLExERFg0VFRQSFBMaGAkUERQVAAAAAAAAAAAAAAAAAAAAAAAAAAAUJR4WHRcAAAAAAAAAAAAAAAAAAAAAEx8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgZFRkVGRUZFRkVGRUZFRkVGRUZFRkVGRUZFRkVGRUZFRkVGRUZFRkVCggKCB0VHRUdFR0VHRUdFR0VHhYeFh4WHhYeFhsVGxUdFx0XHRcdFx0XGRMZExkTGRUKCB0VGxUbFRsVGxUbFQAAAAAUDiIZFhEWERsUFRMVExkTGRMZFR0VHRUJAA0SFRsYFRgVGxsTGx0YFRUZFxcdEiEIChkTCBIfGxUdIBkbFRkZExYMChcKFxwbGxMXExcXExMVExATFQoPFgoxLScnHRAtIx0VGRUAGRUlIR0VHRUZEx0VHRUXEwgxLScdFSYXGxUZFRkVGRUZFQoKCgodFR0VGwwbDBsVGxUZExcKFBAbFRkWFhcTGRUZFR0VAB0VHRUdFRkTFRUVFRMTFRUVGhARFxMKFRUUExcVFRUICA0ICAgVHx8fFRUWFRwdFQwMDAwMDAwUFBMLCwsNCgoVFRQTGxMTExQTExMTExMdExMUFAsTERUTEyIiJBkRGhwYFhIUCwsFCAgIDBMNBw0HCAgMDA0NFhYWFgwMDAwMDAwKCgwMDAwMDAwMDgMMDA0ODg4ODgwMDAwMFBQUFBQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUFA4UFBQUFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQOFBQUFBQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQUDhQUFBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMExQaIRoVHRUdFRsTFw4XFBwVHx8ZFRkTGRkXFhwUDw0VFRMIHRAQGRoVFTAWHB0hGhkTIBkfGSYgFxEfGx0VHBYcFikiHxYvIAAwFhsTFQAAAAAAABoVGBMZFRgTFxEWERsVIRooHxsTGxMXHyEVGRMfFx8XCiIZFxMZFRsUGxQZEx8ZDBkVGRUlIRkVHRUiGRcRFxMaFRoVHRUdFRoSGBMYExgTGRMhGxkVIx8jHBcRJB8lHx0UGykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkVGRUZFRkVGxMbFRsVGxUbFRsVGRUZFRkVGRUZFRcKHRUbFRsVGxUbFRsVCggKChkTGRMZExUIFQgVCBUIHh4eHh4eGxUbFRsVGxUdFR0VHRUdFRkVGRUbDBsMGwwbDBkTGRMZExkTGRMXChcKFwoXChsVGxUbFRsVGxUZExkTIxojGhkTGRMZExcSFxIXEhUKGhMVCBUVFRUVFRUVGRkeHh4eHh4QEBAQEBAcHCQkJCQVFRUVFRUVFR4eJiYmJiYmCAgICAgICAgODhUVFRUVFRUVFRUVFR8fJiYkJBQUFBQUFBQUHiQlJB0dHR0dHR0dHh4lJSMjIyMVFRAQFRUICBUVFBQdHRUVFRUVFRUVGRkeHh4eHh4VFRUVFRUVFR4eJiYmJiYmHR0dHR0dHR0eHiUlIyMjIxUVFRUVFRUZGRkZGQwMDAwMFRUVFRUeHiAgGwwMDAgICAgICAoKEBAMDAwUFBQUFRUUFBkZHiAcDAwMHR0dHR0iHyIeHAwMFRsbHxsqIxkXJRMWAAAAAAgIExkXCxcNGRkMDAwMDAwMDAwKDAwMDA8PDAAAAAAAAAAAAAAAGRUSGyETExUVEREIDxMRGRYVExUTFyMRFRUUFBQTFBUaFRMaEhERFg4TFBQbFRIbERESERESEgYMEQ4VEhISDhARDxAYDQ0NFgwPDg4LCw4FDBILDw0PDw4HDRETDRAPDg4QDgUHDQ0PDg4QDhoYHBYXHBgdFgAAABUMDRMlEyUMCQYVCgcDABsbHxkiISEZGxMVFxMTFQAAAAAAFRsbGxQTAAAADQAVFQofFRUMDBMKExUOFRwICBUUFRUVChkTCB8VFQwTDhMTExUVFRUQERcIEwsVFA4NDQ8LCAgODQUFBQUJ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FRUVFRoaGhoaGiEhISEXFxcVFRUXIhsXGBMXFxUaGwoYFx4aFhsaFxYVFxwXHBsXFxoKGxcbChcXHhMZFwoKEiUjHxUXGhcYGBMXFyEWGhoVGB4aGxoXGRUXGxcaGCAgHB8XGSMZEA4NDg4ODg4ODg4ODg4eHh4eHh4eHh4eHiAgICAgICAgICAgHx8fHx8fHx8fHx8fHxAQEBAQEBAQEBQQEBALCwwOCxAQEBAQEBAQHBcXFxcXFxcXFwkVCwsNDgsMDBAMFxcXFxgODg4OGRQaEx4ZHBcXHCkgIx4oJhwVLSQuIx4XHBcMDBcgERoYHRgjHCAcDhcVBQ8cGgwXABEVGRsAACAeHh4eHhseIh4cFicgHRkeHh4gHh4dHh0iHyAeHRwcHBYgHSEhDAkICAsKFiMXGBgYGBYXHRkXCiMYFxcWFxcXChcUFw8jFhgXFyMXFxAjGBcfHgwOKiofLy8vLzgXFR4XNisfFx0YIh8WHx8XICIMCQwJHhcjGhcXFhYZGRUXMSYxJyslKB8oHygfHhUcFRwVHBUbDRcJIholGzgoHBcjHSciIRcpHxgRGBgcFSgeFxUcFxwXFRETExUVGBgOHA4oHQ4gHBQhFxEOGRkZFwkiGREOGxUeEyAZHhUVFyEcGgwcFh4XHBYhFxwVHhceDhwVIRogHRwaFh8cGCohIBMbIxocIwwyGCYUFxwMFw8PCiQXFxcXGigoKCgoFxkOFRMaFB0MFxcjIxoXGhkZFRkVFQ4QCwoRHiAoJxcbHBoAAAAuPSMADQ0NEBoaKR8JDw8SGw0PDQ0aGhoaGhoaGhoaDQ0bGxsaLx8fISEfHCQhDRcfGiYhJB8kIR8cIR8sHx8cDQ0NFhoPGhoXGhoNGhoKChcKJhoaGhkPFw0aFyIWFxYPDA8bHx8hHyEkIRoaGhoaGhcaGhoaDQ0NDRoaGhoaGhoaGhoaEhoaGg8ZHCIiLg8PGS4kIRkZGRoZFyEmGQ0RESMpHBwPGxkaGRwaGi4fHyQuKxouDw8KCRkXFx8IGg8PFxcaDQoPLx8fHx8fDQ0NDSQkJCEhIQ0PDg8PDg8PDg8QGgofFxwWDCEaHxcfGhsbDw8QJiYmGiQaDR8XIRchFxoZDx8aHxohHSEfGh8aGgoaDRoSIRohGiQaIQ8hDx8XHA0cECEaIRocFhwWGiQnGhoUHBEeGRcRMi4X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GxoLJxoaGhgaGRoKGhYZECcYGhoaJxoZEicaGiIhDQ8uLiEzMzMzPRoXIRk7LyIaIBolIhgiIhkjJQ0KDQohGiYdGRkYGBsbFxk1KjYqLykrIisiKyIhFx8XHxcfFx4OGgolHCgePSwfGiYgKyUkGi0iGxMbGx8XKyEZFx8aHxoXExQUFxcaGg8fECwfDyMfFiQaEw8bGxsaCiUcEw8eFyEUIxwhFxcaJB8cDR8YIRkfGCQaHxchGiEPHxckHCMfHxwYIh8aLiQjFR0mHB8mDTcaKRYaHw0aERALJxoaGRkcKysrLCwZHA8XFR0WIA0aGiYmHBkcGxwXHBcXDxINCxMhIysqGh4fHAAAADJDJgAODg4SHBwsIQoRERMdDhEODhwcHBwcHBwcHBwODh0dHRwyISEkJCEfJyQOGSEcKiQnISckIR8kITAhIR8ODg4XHBEcHBkcHA4cHAoLGQsqHBwcGxEZDhwZJBgZFxENER0hISQhJCckHBwcHBwcGRwcHBwODg4OHBwcHBwcHBwcHBwUHBwcERsfJSUyEREbMickGxsbHBsZJCkbDhMSJiwfHxEdGxwbHxwcMiEhJzIvHDIRDwoLGxkZIQgcEREZGRwOCxAyISEhISEODg4OJycnJCQkDhAREREPEREOEREcCyEZHxcNJBwhGSEcHR0REQ8qKiocJxwOIRkkGSQZHBwRIRwhHCQfJCEcIRwcCxwOHBQkHCQcJxwkESQRIRkfDh8SJBwkHB8XHxcdJyodHBYeEyEcGRI3MhkyGTIZGTEkHR4dHh4jHyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyQeMjExMTEeHh4zNS4mJhshHhoZJiUWHwkSLxAeEhIeEiEcJBkkGSEcIRwhHCccJxwnHCQcJBwOCw4LDgsOChkLIRkZHAskHCQcJxwnHCQRIRkfDiQcJBwkHCQcMCQhGQshHDIsJx8OMCQwJDAkIRkLERweKioqKhEREREhJyoTKCsnCyEhIiEfJA4hISokICckIR4fISEqJg4hHRYcCxsdGRccGwsZGRsZFhwdGBsbJCcLGxwbJyEqGyMhDg4ZNTEqHSAkISEhGyMhLh8kJB0iKiQnJCEkHyAoISQiLi4oLCEjMyIcHBoZHBwiFxwcGBwiHBwcHBkqGSoYHRoqKx8l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HiENIx4jDR4eJhkgHg0NFy8tKBweIR4fHxkeHiscISEcHychIyEeIBseIh4hHiopJSgdIC0hFRISEhISEhISEhISEhInJycnJycnJycnJykpKSkpKSkpKSkpKCgoKCgoKCgoKCgoKBQUFBQUFBQUFBoUFBQODhASDhQUFBQUFBQUIx4eHh4eHh4eHgwbDg4QEg4QEBQQHh4eHh8SEhISIBkhGScgJB4eJDQpLSczMCQbOi47LSceJB4PDx4pFSEeJh4tJCklEh4aBxMkIQ8eABYbISMAACknJyYnJyInLCckHTEpJiAmJicpJyYlJyYrKCknJSQlJRwpJSorDwwKCw4NHC0eHx8eHxweJiAeDS0eHh4cHh4eDB4aHhMtHB8eHi0eHhUtHx4oJw8SNjYnPDw8PEgeGyceRTcnHiUeLCgdKCgdKSwPCw8LJx4tIh4eHBwgIBsePjE/MjcwMygzKDMoJxskGyQbJBsjER4MKyEvI0gzJB4sJjIrKh41KB8WHx8kGzMnHhskHiQeHBYYGBsbHh4SJRM0JRIpJBoqHhYSICAgHgwrIBYSIxsnGCkgJxsbHislIQ8kHCceJBwqHiQbJx4nEiQbKyEpJSQhHCgkHzYqKhgjLSEkLQ9AHzAaHiQPHhQTDS4eHh4eITMzMzMzHiESGxgiGiYQHh4tLSEdISAhGyEbGxIVDw0WJykzMh4jJCEAAAA6TSwAEBAQFSAgNCcLExMXIhATEBAgICAgICAgICAgEBAiIiIgOycnKionIy0qEB0nIDAqLSctKicjKic4JycjEBAQGyATICAdICAQICANDR0NLyAgICATHRAgHSkcHRsTDxMiJycqJyotKiAgICAgIB0gICAgEBAQECAgICAgICAgICAgFyAgIBQfIysrOhMTIDotKiAgICAfHSkwIBAVFS00IyMTIiAgICMgIDonJy06NyA6ExIMDCAdHScKIBMTHR0gEA0ROCcnJycnEBAQEC0tLSoqKhATEhMTExMTERMUIA0nHSMbDyogJx0nICIiExMUMDAwIC0gECcdKh0qHSAgEycgJyAqJConICcgIA0gECAXKiAqIC0gKhMqEycdIxAjFSogKiAjGyMbIS0xISAZIxYmIB0UPzodOh06HR05KiIjIiMjKSQpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp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AHIAcwB1AHQAdgB3AOgAeAB6AHkAewB9AHwAtwChAH8AfgCAAIEA6gDsALkBlgGXAQIBAwEEAQUA+wD8AZgBmQGaAZsA/QD+AQYBBwEIAP8BnAGdAZ4BnwGgAaEBCQEKAQsBDAGiAaMA9gD3AaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMA+ADVAYoBiwG0AbUBtgG3AbgBDQEOAbkBugEPARABEQESAOAA4QETARQBuwG8ARUBFgGMAb0BvgG/AcABwQHCARcBGACvALABGQEaAcMBxAEbARwBHQEeAcUBxgD5APoA4gDjAR8BIAEhASIBxwHIAckBygHLAcwBzQHOASMBJAElASYBzwHQAdEB0gHTAdQAugEnASgBKQEqAOQA5QHVA8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA7gDzwPQAKYD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QL+Av8D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gMAAwED6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfBAcECAQJBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAHWAdcB2AHZAdoB2whIBEYERwRIBEkESgRLBEwETQROBE8EUQRSBFMEVARVBFYEVwRYCEkISghLCEUI9wj4CPkI+gj7CPwI/Qj+CP8JAAmUCZUJlgmXCZgJmQmaCZsJnAmdCZ4JnwmgCaEEWQRaBFsEXARdBF4EXwRgBGEDuQhMCE0EtgS3BLgEuQS6BLsEvAS9BL4EvwTABMEEwgTDBMQExQTGBMcEyATJBMoEywDWAN8EzADYBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gDZANoA2wDeANcA3QTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheAyYDJwV4Aw4FeQV6BXsFfAV9AwgFfgV/BYAFgQWCBYMFhAWFBYYFhwWIBYkFigWLBYwFjQWOBY8FkAWRBZIFkwWUBZUFlgMpCF8IYAhhCGIIYwhkCGUIZgkBCQIJAwkECQUIZwhoCGkFwwXEBcUFxgXHBcgFyQXKBcsFzAXNBc4FzwXQBdEF0gtZC1oLWwtcBdMF1AtdC14F1QmiCaMJpAAeC+8B7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrC18IaghrCPMI9Aj1CQYJBwkICQkF/QIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwX+Bf8CegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUGAAKGAocGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GIAYhBiIGIwYkBiUGJgYnBigJ4QYpBioGKwYsBi0GLgYvBjACiAKJA6QDpQYxBjIDpgOnBjMGNAOoA6kDqgOrBjUGNgY3BjgDrAOtBjkGOgY7BjwGPQY+Bj8GQAZBBkIDrgOvA7ADsQOyA7MGQwZEBkUGRgO0A7UDtgO3BkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBlMGVAZVBlYGVwZYBlkJpQZbBlwGXQZeBl8GYAZhBmIDuAO5BmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAO6A7sGcQZyBnMGdAZ1BnYGdwZ4BnkGegZ7BnwJCgkLBn0GfgmmCacJqAmpCaoJqwZ/BoAGgQaCBoMGhAaFBoYGhwaIBokGigaLBowGjQaOCawJrQmuCa8LYwtkC2ULZgtnC2gJ4gnjCeQJ5QtpC2oLawtsC20LbgtvC3ALcQtyC/AL8QvyC/ML9Av1C/YL9waPBpAGkQaSBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8JDAagBqEGogajBqQGpQamBqcGqAapBqoGqwasAo0CjgKPApACkQKSApMClAKVApYJDQKXApgCmQKaApsCnAKdAp4CnwatCQ4JDwkQCPYJtwm4Ad0B3gHfAeAB4QHiBzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdG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BEwETQROBE8EUQRSBFMEVARVBFYEVwRYCEkISghLCEUI9wj4CPkI+gj7CPwI/Qj+CP8JAAmUCZUJlgmXCZgJmQmaCZsJnAmdCZ4JnwmgCaEEWQRaBFsEXARdBF4EXwRgBGEDuQhMCE0EtgS3BLgEuQS6BLsEvAS9BL4EvwTABMEEwgTDBMQExQTGBMcEyATJBMoEywDWAN8EzADYBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gDZANoA2wDeANcA3QTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFwIXQheAyYDJwV4Aw4FeQV6BXsFfAV9AwgFfgV/BYAFgQWCBYMFhAWFBYYFhwWIBYkFigWLBYwFjQWOBY8FkAWRBZIFkwWUBZUFlgMpCF8IYAhhCGIIYwhkCGUIZgkBCQIJAwkECQUIZwhoCGkFwwXEBcUFxgXHBcgFyQXKBcsFzAXNBc4FzwXQBdEF0gtZC1oLWwtcBdMF1AtdC14F1QmiCaMJpAAeC+8B7wHwAfEB3AHyAfMB9AH2AfcB+AH5AfoBKwH7AfwB/QH+ASwB/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoBLQILAgwCDQIOAg8CEAIRAhICEwIUAS4CFQIWAS8BMAIXAhgCGQIaAhsCHAIdAh4CHwIgAowCIQIiATEBMgIjATMCJAIlAiYCJwIoAikCKgIrC18IaghrCPMI9Aj1CQYJBwkICQkF/QIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwX+Bf8CegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUGAAKGAocGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GIAYhBiIGIwYkBiUGJgYnBigJ4QYpBioGKwYsBi0GLgYvBjACiAKJA6QDpQYxBjIDpgOnBjMGNAOoA6kDqgOrBjUGNgY3BjgDrAOtBjkGOgY7BjwGPQY+Bj8GQAZBBkIDrgOvA7ADsQOyA7MGQwZEBkUGRgO0A7UDtgO3BkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBlMGVAZVBlYGVwZYBlkJpQZbBlwGXQZeBl8GYAZhBmIDuAO5BmMGZAZlBmYGZwZoBmkGagZrBmwGbQZuBm8GcAO6A7sGcQZyBnMGdAZ1BnYGdwZ4BnkGegZ7BnwJCgkLBn0GfgmmCacJqAmpCaoJqwZ/BoAGgQaCBoMGhAaFBoYGhwaIBokGigaLBowGjQaOCawJrQmuCa8LYwtkC2ULZgtnC2gJ4gnjCeQJ5QtpC2oLawtsC20LbgtvC3ALcQtyC/AL8QvyC/ML9Av1C/YL9waPBpAGkQaSBpMGlAaVBpYGlwaYBpkGmgabBpwGnQaeBp8JDAagBqEGogajBqQGpQamBqcGqAapBqoGqwasAo0CjgKPApACkQKSApMClAKVApYJDQKXApgCmQKaApsCnAKdAp4CnwatCQ4JDwkQCPYJtwm4Ad0B3gHfAeAB4QHiBzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oLcwt0CeYLdQHjAeQDigOLA4wDjQOOA48Ldgt3C3gLeQt6C3sHSwdMB00HTgdPB1AHUQdSB1MHVAdVB1YHVwdYB1kHWgdbB1wHXQdeB18HYAjmCOcI6AjpCOoI6wjsCO0I7gjvCPAI8QLoAukC6gLrCOMAsQCyAooD+wE0ALUAtgDDAeUAswC0AMQI5ACCAMEAhwLsAu0C8ALuAu8I7wDFAY0BjgjlATULYAHmAvMC9AL1AvYC8QLyCv0LVQtWCvsLVwtYCvwINAg1CDYA9QHnCDcIOAE3CDkIOgLAAxIAvAg7CDwIPQhGCEcJbwlwCXEJcgthC2IJ9gn3C4gL+Av5C+4L/wzNAosI8gCZAO0AwgClAJIBPwCPAUEBdgGRAZIBkwF3ALgBfAg/CbwJvQm+Cb8JwAnBCcIJwwnECcUJxgnHCcgJ6At8C30LfgnpCeoJ6wnJCcoJywnMC38LgAuBC4ILgwuEC4ULhgnNCc4JzwnQCfAJ8QnyCfMJ9AnRCdIJ9QnsCe0J7gnvDGYMZwEBDGgMaQxqDGsMbAxtDG4MbwxwDHEMcgxzDHQMdQx2DHcMeAx5DHoMewx8DH0Mfgx/DIAMgQyCDIMMhAyFDM4L+gC/AMAL+wv8C/0L/gO8A70DvwLGCNcI2AjZCNoI2wjcCN0I3gjfAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMAAEBCVVRAPz49PDs6OTg3NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEALEUjRmAgsCZgsAQmI0hILSxFI0YjYSCwJmGwBCYjSEgtLEUjRmCwIGEgsEZgsAQmI0hILSxFI0YjYbAgYCCwJmGwIGGwBCYjSEgtLEUjRmCwQGEgsGZgsAQmI0hILSxFI0YjYbBAYCCwJmGwQGGwBCYjSEgtLAEQIDwAPC0sIEUjILDNRCMguAFaUVgjILCNRCNZILDtUVgjILBNRCNZILAEJlFYIyCwDUQjWSEhLSwgIEUYaEQgsAFgIEWwRnZoikVgRC0sAbELCkMjQ2UKLSwAsQoLQyNDCy0sALAXI3CxARc+AbAXI3CxAhdFOrECAAgNLSxFsBojREWwGSNELSwgRbADJUVhZLBQUVhFRBshIVktLLABQ2MjYrAAI0KwDystLCBFsABDYEQtLAGwBkOwB0NlCi0sIGmwQGGwAIsgsSzAioy4EABiYCsMZCNkYVxYsANhWS0sRbARK7AXI0SwF3rkGC0sRbARK7AXI0QtLLASQ1iHRbARK7AXI0SwF3rkGwOKRRhpILAXI0SKiocgsKBRWLARK7AXI0SwF3rkGyGwF3rkWVkYLSwtLLACJUZgikawQGGMSC0sARgvLSwgsAMlRbAZI0RFsBojREVlI0UgsAMlYGogsAkjQiNoimpgYSCwGoqwAFJ5IbIaGkC5/+AAGkUgilRYIyGwPxsjWWFEHLEUAIpSebMZQCAZRSCKVFgjIbA/GyNZYUQtLLEQEUMjQwstLLEOD0MjQwstLLEMDUMjQwstLLEMDUMjQ2ULLSyxDg9DI0NlCy0ssRARQyNDZQstLEtSWEVEGyEhWS0sASCwAyUjSbBAYLAgYyCwAFJYI7ACJTgjsAIlZTgAimM4GyEhISEhWQEtLEuwZFFYRWmwCUNgihA6GyEhIVktLAGwBSUQIyCK9QCwAWAj7ewtLAGwBSUQIyCK9QCwAWEj7ewtLAGwBiUQ9QDt7C0sILABYAEQIDwAPC0sILABYQEQIDwAPC0ssCsrsCoqLSwAsAdDsAZDCy0sPrAqKi0sNS0sdrgCNiNwECC4AjZFILAAUFiwAWFZOi8YLSwhIQxkI2SLuEAAYi0sIbCAUVgMZCNki7ggAGIbsgBALytZsAJgLSwhsMBRWAxkI2SLuBVVYhuyAIAvK1mwAmAtLAxkI2SLuEAAYmAjIS0stAABAAAAFbAIJrAIJrAIJrAIJg8QFhNFaDqwARYtLLQAAQAAABWwCCawCCawCCawCCYPEBYTRWhlOrABFi0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBshIVktLEtUWDgbISFZLSywE0NYAxsCWS0ssBNDWAIbA1ktLEtUsBJDXFpYOBshIVktLLASQ1xYDLAEJbAEJQYMZCNkYWS4BwhRWLAEJbAEJQEgRrAQYEggRrAQYEhZCiEhGyEhWS0ssBJDXFgMsAQlsAQlBgxkI2RhZLgHCFFYsAQlsAQlASBGuP/wYEggRrj/8GBIWQohIRshIVktLEtTI0tRWliwOisbISFZLSxLUyNLUVpYsDsrGyEhWS0sS1MjS1FasBJDXFpYOBshIVktLAyKA0tUsAQmAktUWoqKCrASQ1xaWDgbISFZLSxGI0ZgiopGIyBGimCKYbj/gGIjIBAjirkCpQKlinBFYCCwAFBYsAFhuP+6ixuwRoxZsBBgaAE6LSyxAgBCsSMBiFGxQAGIU1pYuRAAACCIVFiyAgECQ2BCWbEkAYhRWLkgAABAiFRYsgICAkNgQrEkAYhUWLICIAJDYEIASwFLUliyAggCQ2BCWRu5QAAAgIhUWLICBAJDYEJZuUAAAIBjuAEAiFRYsgIIAkNgQlm5QAABAGO4AgCIVFiyAhACQ2BCWbEmAYhRWLlAAAIAY7gEAIhUWLICQAJDYEJZuUAABABjuAgAiFRYsgKAAkNgQlmxKAGIUVi5QAAIAGO4EACIVFi6AAIBAAACQ2BCWVlZWVlZWS0ssAJDVFhLUyNLUVpYOBshIVkbISEhIVktAAAAQQwAVAKyArICsgHrAB0AHwKxArAAPAAfArCzBh0fMLsCqgABAEACqLI5M0C4AqizEBUyQLgCqLIHM0C4AqmzDBIyf0ERAqYArwKmAL8CpgDvAqYABAAwAqYATwKmAF8CpgADAEACprKPM0C4AqayXzNAuAKms05RMoC4AqazTE0yQLgCprNASDJAuAKmswoNMkC4AqazCToyQLgCprMwMzKAuAKks0V4MkC4AqSzMjoygLgCpLMqMTJAuAKksyQlMn9BEAKkAAEA7wKkAAEADwKkAC8CpAA/AqQAfwKkAAQAQAKksxUdMoC4AqSzCRQyQLgCo7MaGzIPvwKjAH8CowDvAqMAAwBAAqNACgkUMhJPBk8HAu9BNwHrAAEAnwHrAAEAfwHrAAEAXwHrAAEAPwHrAAEALwHrAAEADwHrAAEAfwHqAAEA7wHqAAEAvwHqAAEArwHqAAEALwHqAAEAPwHqAAEATwHqAAEAbwHqAAEAfwHqAAEB7QHtAewB7AHrAesB6gHqQBIALAEAHwEQLAEQHwFALAFAHwG5AQkBC7I0H5G4AQtANzQfLiBDHzIgQx8zIEcfLCBDHx8gQx97KkgfLSpIHyEqRB83AQABAQAJAQIACAAXFwAAABIRCEC4Aay3/ocN/YcNAAm4AT+yKkwfQQkBOgC6BAEAHwE2AB8BmgAfAQSyKnIfvgEBACABmgAfAQAAIAKrsh/7LbgBVrIf+h+4CAGyH/kfuAIBQBMf+B/kH/cfux/1H0ofySqrH7ktuAGash+4H7gEAbIfoCq4AqtADx+LH1IfeyrkH3gfbB9uILgEAbIfbCG4BAFACx9jKqsfWipaH1gguAKrsh9OILgBVrIfRx+4AZq2H0Uqqx9EKrgBAbYfQB+JHzMtuAQBsh8yIbgEAbYfMR9yHy4fuAGash8sH7gEAbIfKR+4CAGyHygfuAgBth8nH2wfIiG4BAFARR9VDQkNCTeQ3AeQqAeQpgeQfgeQQQeQOweQNgeQNQeQMAeQLweQKweQJQeQHQcUCBIIEAgOCAwICggICAYIBAgCCAAIFLj/4EArAAABABQGEAAAAQAGBAAAAQAEEAAAAQAQAgAAAQACAAAAAQAAAgEIAgBKALATA0sCS1NCAUuwwGMAS2IgsPZTI7gBClFasAUjQgGwEksAS1RCGLA4K0u4B/9SsDcrS7AHUFtYsQEBjlmwOCuwAoi4AQBUWLgBGbEBAY6FG7ASQ1i5AAEBGYWNG7kAAQH/hY1ZWQAWdj8YPxI+ETlGRD4ROUZEPhE5RkQ+ETlGRD4ROUZgRD4ROUZgRCsrKysrKysrKysrGCsrKysrKysrKysrKysrS1B5uQAfAVizBx89BysrS1N5uQCQAVizB5A9BysrGB2wlktTWLCqHVmwMktTWLD/HVlLsJNTIFxYuQGuAaxFRLkBrQGsRURZWLkDLAGuRVJYuQGuAyxEWVlLuAGaUyBcWLkAPwGuRUS5Aa4BrkVEWVi5CNYAP0VSWLkAPwjWRFlZS7gEAVMgXFi5ACMBrkVEuQAgAa5FRFlYuRYgACNFUli5ACMWIERZWUu4BAFTIFxYuQAeAa1FRLkAKgGtRURZWLkX4AAeRVJYuQAeF+BEWVlLuAQBUyBcWLG6I0VEsSMjRURZWLkWIAC6RVJYuQC6FiBEWVlLsDxTIFxYsR8fRUSxIR9FRFlYuQECAB9FUli5AB8BAkRZWUuwRlMgXFixHx9FRLEtH0VEWVi5AS4AH0VSWLkAHwEuRFlZS7gDAVMgXFixHx9FRLEfH0VEWVi5DSAAH0VSWLkAHw0gRFlZKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKytlQisrRWlTQgFLUFixCABCWUNcWLEIAEJZFhBwPrASQ1i5DRk+pRu6ANID6wALK1mwCiNCsAsjQgA/PxgrEDwBLwYMsAYjQrAHI0KwEkNYuTshGH4bugQAAagACytZsAwjQrANI0KwEkNYuS1BLUEbugQABAAACytZsA4jQrAPI0KwEkNYuRh+OyEbugGoBAAACytZsBAjQrARI0IAKysrKysrKysrKyt0dHV1dXUAGEVpREVpREVpREVpRHNzc3Nzc3NzdXNzc3Nzc3N0AEuwKlNLsD9RWlixBwdFsEBgRFkAS7AwU0uwP1FaWLELC0W4/8BgRFkAS7AuU0uwPFFaWLEDA0WwQGBEWQBLsC5TS7A8UVpYsQkJRbj/wGBEWUNcWLZPLAFPHwE3K3R0WStzKysrc3N0KysrKysrKysrKysrdHMrKysrdAArKysAGEVpRCsABboAGQW6ABkFpgAaBCYAGAAA/+cAAP/oAAD/5/5p/+4FugAZ/m//4gLiAAAAtQAAALUAAAAAAAAAAAC8AL8AjACzAKYApgCxABABBABkAHkAiwCLAMEA6gCKAKIAkQG0AHMAegCkAKIAuwG9AnAAWgCAABcAcADDADABA//QAKwAfQENAAYAEgDJAM0AVgCR/48BEwALABkAQwByALkDyAPX/+4BRgFuAAIAGwBEAFIAtgPuANgBBAI9BRgFc/8tAAUACQDGAM0CTP/nABEAFQA3AEkATgBcAKYApwC1AMUA2wEoBUP/3wAhAEAAUwBwAHkAjgCjAMoBjwJlAnUCpAPIBVX/mv/X/+4ABQAIACYARgBpAHAAcwB3AJoAwQDvAQoBEwHBAeUDGASc/vL++f+kAAAAJwA0AEEARQB1AIAAxADLANkA5QD4AVUBZgIrAlQDcAQFBGf/Fv+0AAIAHQAyAEoASgBNAFUAYAB8AH8AjACdALECowOM/sT+9wABAAMAAwAtADcANwA6AFYAWgCkAM0A2gERARkBJQEnAUgBUwFpAaAB+wIHAjkCgQKkAvcDBQMoAygDNgOjA7UD3QPfA/EESAR4BOYGC/8o/0v/aP94/5//v//hABIAHwAoAEwAWgBcAF4AYQBwAHcAgQCDAIgAsQCcAJwAnQCfAKUAtgC4ALkAugDTAN8A4QDyAPcBDgEyATsBPAFmAWwBeAGuAbUBtwHPAdICXQJhAqICzQMjA1oDowOkBAAERARQBHME0v4A/jj+jP6x/s7/Dv+y/8f/7P/9AAUAHwAhACUAJgAtAFgAZQCBAIUAkQCZAKUAqwCvALAAsAC6ANsA3ADpAPgBCQEJARABFAEXASQBKQEtAS8BNgFQAVEBWgFnAXQBeQGCAY4BkAGZAZwBsAGzAbcBvgHFAdoB6AHwAfIB+wIAAgACCwIPAh8CIgIsAi0CLgJOAmcChwKQAqwCtQK8ArwC0ALUAtgC2wLlAvEC+QMRAxQDFAMiAyYDSANKA1wDbwN4A3kDfgOrA7UDywPgBAQEBQQPBCgELASEBKUErwTPBOsE+QULBY4FkwWYBeUF5QYABhAGPQZQBmgGlQa4BtkHAwdRB2YHfgd/B4IHtggACCMIrACyAL8AsQCvAAAAAAAAAAAAAAAAAlwAoQDTAb4A3gGmAxQCqwFQAqcBlgEOAxgAawObAdEFSwCJAjwCsAFNAhYD8wF2AXYAFQOpAfQA9AC2AgQC2AErBKcBoAC8Ab0CjAJrAngEDwFXBKkE/QF0BNIEAwLkAKYC7gAAAAAGFASnAAACdgAAAW0BPgAAAmcAbQCeAhQAywKkAIUAcQDCAJ4GCQKQALkAjwAmAkgANQFJAJEAmQLvAOsAjgARAT8AagB5AP0BowV0AqEBegPoAgwAVgH9At8BOwV0AGYGEACBAbMCTgPLAeQAzQK8ATIBSwFoAjkBYgD9AOYBogHmAlUATQKDAKMEZwXUAd0BKwFOBWgAcAAABOADSQNmAhMCuwAAAAAAAAAAAAAAAAAAAAAArwC0AAMAzQBMA8gAXAGSAHIAzQIrAEkCbwCdA70B6QC0AXwEZwNoAJkCeAIEAYMCgQKsALMDSAQLAEIAtAO0AL4BqAPWASsArwR4AW4Bk/9F/V0A9QamBK4DsQU2BBz/yv7cAaUB0P+6AvEAN//KA1X+ZwGcBBkAVQB8AOUAcgBtAAsAqwErAJwA2wGmAAgBKwAlAFYAjgClABUAEAEJAMsARgAXAEwAXgHyALgAgwARATYBKABOAiIAawJBByAGFAAABycAqv83ADcAbgApAdoEqAB1ALoEcQSDBPYAAAAAAAAAAAB0AAAAdAAAAHQAAAB0AAABBAAAATQAAAKYAAAEmAAABc4AAAeIAAAIHAAACJIAAAkYAAAJ6AAAClgAAArQAAALDAAACz4AAAuIAAAMbgAADSwAAA44AAAPUAAAEK4AABHoAAAS/gAAE5IAABTSAAAWAgAAFlYAABb4AAAXfAAAF9oAABhiAAAZNgAAGx4AABwAAAAdVgAAHloAAB9YAAAgUgAAISwAACJqAAAjgAAAJDAAACUeAAAmVAAAJuwAACmaAAArTAAALFQAAC1KAAAu2AAAMEIAADHAAAAyigAAM3YAADRGAAA2FAAAN9wAADj+AAA5+gAAOnwAADrOAAA7UgAAO84AADwCAAA8XAAAPcAAAD8sAABAEgAAQSIAAEJSAABDZAAARRwAAEaEAABH4AAASPYAAEqUAABLrgAATXoAAE64AABPmAAAUQAAAFJaAABTigAAVQIAAFXiAABXNgAAWAYAAFmCAABa1gAAW7wAAFy6AABd7gAAXjAAAF98AABgGAAAYEoAAGB6AABgqAAAYNoAAGEKAABhUAAAYYwAAGG8AABh7AAAYioAAGJcAABijgAAYsIAAGLuAABjHgAAY04AAGOCAABjvAAAY+oAAGQeAABkTAAAZH4AAGS0AABk5AAAZRgAAGVSAABljgAAZcYAAGYOAABmQAAAZoYAAGbMAABnsAAAaDQAAGmwAABq8gAAbGYAAGy8AABtOAAAbpIAAHA0AABxyAAAcrIAAHMWAABzdAAAdLoAAHYIAAB3vgAAeSQAAHm0AAB6XAAAeyAAAHyYAAB97AAAftIAAH+wAACAHAAAgPQAAIHcAACDLAAAg7wAAIUGAACHCAAAiJoAAImAAACKDAAAilgAAIsUAACMQgAAjYYAAI4IAACOqAAAj0AAAI/IAACP+AAAkCoAAJBgAACR/gAAk7QAAJPqAACUGgAAlPIAAJX2AACWegAAlxAAAJekAACYQgAAmHwAAJiyAACZFgAAmjoAAJqkAACbBgAAnJ4AAJ4SAACfVAAAn4QAAKAAAAChAAAAop4AAKLaAACjEAAAo0AAAKOAAACjsgAAo+IAAKQeAACkUAAApIIAAKSyAACk5gAApRYAAKVeAAClmgAApcwAAKa4AACnKgAAp8QAAKgQAACoeAAAqLgAAKlCAACqKgAAqsQAAKsmAACrngAArI4AAK2cAACt1gAArggAAK46AACucAAArt4AALAmAACxoAAAsdAAALISAACzFAAAtDgAALRwAAC1bgAAthYAALbiAAC31gAAuWAAALssAAC9WgAAvnQAAL6mAAC+2AAAvwgAAL86AAC/cgAAv6IAAL/SAADACgAAwEAAAMGKAADBzAAAwfoAAMIsAADCXgAAwoQAAMKqAADC3AAAxDQAAMV8AADFpAAAxcoAAMYCAADGMgAAxmIAAMaUAADHggAAyHIAAMikAADI6AAAyRoAAMlMAADJhgAAybwAAMnuAADKIAAAylAAAMp+AADKtAAAyuYAAMsWAADLRgAAy2wAAMuQAADLxAAAzOQAAM0YAADNXgAAzZAAAM3WAADOFAAAzkYAAM54AADOqAAAzyIAANAaAADRZgAA0lgAANNOAADUEAAA1NIAANVKAADWggAA1vYAANceAADYNAAA2oIAANrCAADbAgAA20IAANuAAADb3gAA3DwAANyqAADcygAA3ZgAAN4kAADeWgAA3q4AAN74AADfQgAA314AAN96AADfmgAA37oAAN/aAADf+gAA4CAAAOBGAADgbAAA4JIAAODCAADg6gAA4RIAAOE+AADhagAA4Z4AAOHIAADh9AAA4ioAAOJUAADigAAA4rYAAOLgAADjCgAA4z4AAONuAADjogAA4+YAAOQWAADkSgAA5IwAAOTAAADk8gAA5TQAAOVoAADlmAAA5doAAOYeAADmZAAA5sAAAObcAADm+AAA5xQAAOcwAADnTAAA6LoAAOtmAADt1gAA7fIAAO4MAADuKAAA7kQAAO5gAADufAAA7tgAAO8SAADvfAAA8EYAAPDmAADxvAAA8jwAAPLEAADzNAAA88oAAPQoAAD0bgAA9MwAAPUuAAD1XgAA9a4AAPXsAAD1/AAA9iwAAPdgAAD4igAA+LQAAPjQAAD4/AAA+TQAAPmAAAD5sAAA+eAAAPoUAAD6SgAA+noAAPqwAAD64AAA+xAAAPtAAAD7gAAA+7AAAPvgAAD8EAAA/EAAAPxwAAD8oAAA/MYAAP6CAAD+tgAA/uoAAQBIAAEBwgABAfIAAQIkAAECWAABAooAAQLaAAEDFgABAzoAAQNgAAEDlAABBKgAAQTOAAEE9AABBfwAAQYiAAEGSAABBm4AAQaUAAEHnAABCPYAAQkwAAEJYAABCaAAAQniAAEKCAABCiwAAQpgAAEKkAABC3AAAQzYAAENCAABDTgAAQ1oAAENmAABDc4AAQ4CAAEOKAABDk4AAQ6EAAEOtAABDuQAAQ8YAAEPvgABEBIAARBAAAEQcAABEKAAARDQAAERAAABETYAARFmAAERlgABEcYAARH2AAESKgABEl4AARKOAAESvgABEzQAARNgAAEU6AABFZ4AARdgAAEZNgABGwIAARxwAAEc1gABHVYAAR2eAAEeQgABH2wAASBYAAEhdgABIiAAASMkAAEkSAABJYgAASW8AAElzAABJdwAASaCAAEmkgABJqIAASayAAEmwgABJtIAASeAAAEnkAABJ6AAASgeAAEoLgABKO4AASj+AAEpsAABKcAAASnQAAEp4AABK0gAASxQAAEshAABLLwAASzsAAEtGgABLUoAAS2CAAEtuAABLyIAATACAAEwxAABMewAATLGAAEzQAABNEQAATTwAAE2IgABNjIAATc0AAE3RAABOEQAATkcAAE6HgABOxAAATx0AAE9bgABPaYAAT3kAAE+FAABPkoAAT6AAAE+tAABP8wAAT/8AAFA/AABQQwAAUEcAAFBUAABQWAAAUKaAAFDzgABRNQAAUUEAAFFNAABRmoAAUZ6AAFHRAABR1QAAUfGAAFI7AABSPwAAUrIAAFL1AABTL4AAUzuAAFOJgABTyAAAU8wAAFPQAABT1AAAU9gAAFPcAABT4AAAU+QAAFQcgABUYwAAVGcAAFSxAABU8AAAVTcAAFWNAABVwYAAVgqAAFY+AABWeQAAVsYAAFcKgABXDoAAV0yAAFeIAABXyQAAV/6AAFgCgABYfIAAWL4AAFjCAABYzgAAWRUAAFlOAABZqQAAWeCAAFnkgABaEAAAWhQAAFoYAABaHAAAWiAAAFqLAABajwAAWuWAAFseAABbgAAAW/0AAFwvgABcdwAAXKgAAFzjAABdLQAAXWqAAF13gABd3oAAXg2AAF5GgABeSoAAXk6AAF5bAABeXwAAXrIAAF7/AABfV4AAX2OAAF9vgABfwwAAX/YAAGAcAABgKAAAYKiAAGDcgABg9QAAYSuAAGFGgABhZIAAYXKAAGGJgABhq4AAYbIAAGG7gABhyYAAYe2AAGH5AABh/4AAYg4AAGIVAABiNgAAYkSAAGJSgABibYAAYtAAAGMHgABjSAAAY2aAAGO2gABj3YAAZBIAAGRXgABkoIAAZMEAAGT9AABlLgAAZWQAAGWpAABmAQAAZiQAAGZXAABmlIAAZr+AAGcMAABnWwAAZ50AAGfcAABoF4AAaEwAAGiZAABo54AAaRkAAGlRgABpjoAAaaKAAGnMgABqMIAAajaAAGo8gABqQoAAakgAAGpPAABqe4AAaoGAAGqHgABqj4AAapeAAGqdgABqo4AAaqmAAGqvAABqtIAAaroAAGrAAABqxgAAaswAAGrSAABq2AAAat2AAGrjAABq6IAAau6AAGr0gABq+oAAa2gAAGvZgABr34AAa+WAAGvrAABr8QAAa/cAAGv9AABsAwAAbAkAAGwPAABshQAAbI6AAGy2AABszgAAbOWAAGzxgABs/YAAbRGAAG0lgABtNYAAbVIAAG1nAABtfoAAbZQAAG2hgABtsgAAbcOAAG3WAABt4gAAbfAAAG38AABuWgAAbyuAAG9xgABvuAAAcA0AAHBkAABwd4AAcIsAAHCkAABwt4AAcMsAAHDngABxKoAAcWMAAHGegABx1oAAcg6AAHI+AAByegAAcqQAAHLWAABy5gAAc0kAAHOsAAB0GIAAdDOAAHROgAB0ZYAAdH0AAHS6AAB0+IAAdSyAAHVggAB1lIAAdc2AAHYGgAB2P4AAdkQAAHZIgAB2TQAAdlGAAHZWAAB2boAAdosAAHbEAAB2yIAAds0AAHbRAAB21QAAdtmAAHbeAAB24oAAducAAHbrgAB28AAAdx+AAHdQAAB3f4AAd7AAAHfNgAB314AAd+GAAHfrgAB3+4AAeA+AAHgngAB4OQAAeEyAAHhfAAB4dQAAeIkAAHiegAB4sgAAeMYAAHjcAAB49gAAeQuAAHkiAAB5PYAAeVCAAHlggAB5cwAAeYYAAHmXAAB5ogAAea2AAHm+gAB50QAAed4AAHnrgAB6AIAAehWAAHonAAB6OAAAekuAAHpgAAB6c4AAeocAAHqcgAB6sAAAer6AAHrPAAB62QAAeuMAAHrtAAB6+QAAewUAAHsWgAB7KgAAe0EAAHtSAAB7ZIAAe3aAAHuMgAB7noAAe7MAAHvFgAB72oAAe+kAAHv2AAB8AgAAfA4AAHwaAAB8KwAAfDeAAHxFgAB8T4AAfFwAAHxmAAB8cYAAfHsAAHyPAAB8ngAAfLCAAHy9gAB8zAAAfNgAAHzugAB8/QAAfQkAAH0TAAB9HoAAfSiAAH0yAAB9Q4AAfVkAAH1mgAB9coAAfX+AAH2LgAB9nAAAfa8AAH27AAB9xwAAfdMAAH3hgAB97oAAfgmAAH4WgAB+LwAAfjwAAH5VgAB+YoAAfnsAAH6rAAB+5AAAfy2AAH9nAAB/koAAf76AAIA/gACAvoAAgRiAAIFrgACB7AAAgl6AAIKRAACCxgAAgvEAAIMkgACDVoAAg5IAAIPTgACECgAAhFYAAISeAACE0gAAhNYAAIUdgACFXIAAhaAAAIXggACF5oAAhfiAAIYEAACGCgAAhmuAAIaygACG6IAAhzEAAIdvgACHu4AAh/cAAIhKAACIjIAAiJCAAIjQgACI/AAAiUiAAImPAACJrwAAifaAAIoggACKfQAAisGAAIsUAACLGAAAiz6AAIuDgACLvYAAi+oAAIwkgACMbYAAjK2AAIzlAACM6QAAjTeAAI1+AACNtoAAjgMAAI4+gACOgwAAjsyAAI7QgACPBYAAj0oAAI9ogACPrYAAj9QAAJAXAACQTgAAkIGAAJC5gACQ7gAAkR6AAJFagACRlgAAkc6AAJIfAACSbYAAkqyAAJLhgACTOAAAk3UAAJOAAACTkgAAk7GAAJO1gACTxgAAk9aAAJPngACT8QAAk/sAAJQFgACUD4AAlBoAAJQkgACUKIAAlDWAAJRJAACUZ4AAlHOAAJSGgACUkoAAlJ6AAJT7gACVT4AAlVuAAJVngACVc4AAlX+AAJWJAACVkoAAlaMAAJWzgACVv4AAlcuAAJXXAACV4IAAleoAAJX0AACWAAAAlgwAAJZVAACWj4AAlpuAAJangACWtIAAlsGAAJbNgACW2YAAluaAAJbzgACW/4AAlwuAAJcYgACXJYAAlzGAAJc9gACXSoAAl1eAAJdjgACXb4AAl3yAAJeJgACXlYAAl6GAAJeugACXu4AAl8eAAJfTgACX3QAAl+aAAJgwgACYfgAAmLIAAJjuAACY+gAAmQYAAJk1gACZiwAAmdcAAJn+AACaJAAAmjAAAJo8AACacoAAmsEAAJrOgACa4gAAmwsAAJsYAACbL4AAmzuAAJtHgACbU4AAm2aAAJtygACbfoAAm8SAAJwHAACcUQAAnKaAAJzagACdLIAAnYAAAJ3TgACeCQAAnmGAAJ5lgACeaYAAnroAAJ71AACfJ4AAn4+AAJ+TgACfzgAAoBAAAKBqAACgnAAAoN2AAKEsAAChXIAAoX4AAKGgAACh3IAAoguAAKIrgACibIAAorqAAKMEgACjVQAAo5KAAKPRgACkDgAApBIAAKRggACksQAApQAAAKUeAAClPgAApXCAAKWWAAClyIAApesAAKYIgACmQgAApoMAAKbnAACnEYAAp02AAKd4gACntQAAp+qAAKgfAACobwAAqLAAAKjlAACo/4AAqUQAAKllgACpkIAAqcQAAKn5gACqOAAAqo2AAKrBgACq+QAAqzIAAKtrAACrsoAAq+kAAKwngACscwAArHcAAKyvgACs4QAArPaAAK1IgACtjQAArdGAAK4wgACupAAArxyAAK+BAACv3QAAsE2AALCzAACxDIAAsTaAALG9AACx7AAAsh6AALJdAACyiQAAsrEAALLVgACzBQAAs0eAALOTAACzxAAAs8gAALPMAACz0AAAs9QAALPYAACz6wAAs/4AALQWgAC0UQAAtFUAALRZAAC0c4AAtI8AALSaAAC0ngAAtKIAALStAAC0uoAAtMsAALTdAAC074AAtPsAALUNgAC1IAAAtS2AALU7gAC1TYAAtVmAALVvgAC1oAAAtegAALX5AAC2SYAAtnsAALa1gAC2wwAAttQAALblAAC29gAAtwOAALcQAAC3IIAAtzsAALdPgAC3U4AAt3GAALeTAAC3rwAAt8eAALfpAAC4AQAAuBuAALg4gAC4VIAAuGwAALiVgAC4u4AAuNaAALj6AAC5EIAAuSwAALlWgAC5gAAAuaWAALnBgAC54gAAufsAALomAAC6VYAAuoCAALqlAAC6vIAAuteAALrtAAC7DYAAuy0AALtOgAC7cYAAu4gAALujAAC7vwAAu9qAALv2gAC8F4AAvDuAALxVAAC8c4AAvJKAALywgAC82gAAvQAAAL0kAAC9O4AAvWMAAL2CAAC9poAAvc+AAL36AAC+IAAAvjcAAL5MAAC+ZgAAvo+AAL66AAC+7IAAvxYAAL8ugAC/RIAAv1yAAL+AAAC/oYAAv8UAAL/dAAC/9gAAwBCAAMAqgADARIAAwGKAAMCEgADAqYAAwMSAAMDegADA94AAwSKAAMFSgADBfgAAwaGAAMG5AADB1AAAwfAAAMIZAADCQoAAwnOAAMKcAADCtQAAwtkAAML1gADDG4AAwzsAAMNZgADDdIAAw5gAAMOvAADDxoAAw+gAAMQHAADEIQAAxDoAAMRPAADEaoAAxISAAMSkAADEwYAAxOAAAMUAAADFFwAAxTCAAMVJgADFcYAAxZoAAMXJgADF9YAAxgyAAMYqgADGQgAAxmSAAMaKgADGrgAAxseAAMbfAADHAoAAxx8AAMdFgADHaoAAx4aAAMeigADHwIAAx9gAAMfwAADIDoAAyCUAAMg9AADIU4AAyGqAAMiEgADInAAAyKeAAMiygADIxYAAyNEAAMjjgADI/YAAyR0AAMk3gADJQoAAyVMAAMlvgADJioAAyZyAAMmhAADJpYAAyaoAAMmuAADJvgAAyc+AAMndAADJ6oAAyfcAAMoKgADKHQAAyiqAAMo4AADKSYAAylaAAMpyAADKjwAAyqEAAMq6AADKzoAAytMAAMrXgADK4gAAyvCAAMsLgADLJYAAyz0AAMtPgADLYQAAy3+AAMuLgADLloAAy6mAAMvIgADL1QAAy+AAAMvxgADMAgAAzBQAAMwigADMMYAAzFCAAMyXAADMsoAAzMQAAMzUgADM5oAAzQWAAM0KAADNDoAAzRyAAM0rAADNPIAAzUyAAM1YAADNjQAAzbsAAM31gADOCoAAzhmAAM7hgADO/4AAzxWAAM8lAADPeYAAz7aAAM/WAADQF4AA0EmAANB+AADQygAA0P6AANFLAADRcwAA0agAANHGgADR+gAA0f4AANIOgADSHIAA0m0AANLBAADS9IAA0v8AANMMAADTWYAA06cAANQDgADUTIAA1I4AANTHAADVCAAA1S8AANVZgADVn4AA1cCAANYZAADWVIAA1qQAANb2gADXKoAA12eAANeZgADX7gAA2DUAANhyAADYuAAA2Q4AANlbgADZkwAA2ccAANn2gADaRYAA2o6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AAQbgAAEG7AABBvgAAQcIgAEHGQABByoAAQc7AAEHTAABB10AAQduAAEHfwABB40AAQebAAEHqgABB7kAAQfIAAEH1wABB+YAAQf1AAEIBQABCBUAAQglgAEINgABCEaAAQhXAAEIZ4ABCHgAAQiHAAEIlgABCKUAAQi0AAEIwwABCNIAAQjhAAEI8AABCQCAAQkRAAEJIgABCTMAAQlEAAEJVQABCWYAAQl3AAEJhQABCZMAAQmiAAEJsQABCcAAAQnPAAEJ3YABCewAAQn4AAEKBAABChSAAQoeAAEKLoABCjqAAQpLAAEKVwABCmMAAQpsgAEKdoABCoAAAQqWgAEKpIABCrsAAQraAAELBwABCxcAAQsgAAELMAABCzwAAQtMAAELVgABC2CAAQtqgAELdQABC36AAQufgAELwgABC/QAAQv/gAEMCwABDB4AAQwxAAEMPIABDE+AAQxbgAEMZ4ABDHGAAQx8AAEMm4ABDLuAAQzrgAEM94ABDQOAAQ0XAAENKoABDTaAAQ1CgAENToABDWIAAQ1uAAENegABDYSAAQ2PAAENmYABDbcAAQ3WgAEN5wABDfeAAQ4BAAEOEYABDh2AAQ4uAAEON4ABDkGAAQ5LAAEOVQABDl6AAQ5wgAEOhQABDsaAAQ9IAAEPowABEA+AARCLgAEQlQABESWAARFpAAERrIABEkSAARKegAETJAABEzKAARNCgAETVgABE2qAAROSgAETsIABFA0AARRmAAEUyQABFPcAARVIAAEVh4ABFcMAARYMgAEWIQABFjWAARZLgAEWYQABFnqAARaKgAEWpoABFsYAARbkgAEW+AABFwSAARcQgAEXHIABFyiAARc3AAEXQ4ABF1iAARdtgAEXgIABF5mAARe2AAEXy4ABF+EAARgDgAEYFoABGCyAARg3gAEYQoABGEaAARhKgAEYbwABGKYAARkMgAEZUAABGVQAARmCgAEZvgABGd0AARnhAAEZ/oABGh4AARoiAAEaWAABGlwAARqJgAEajYABGpGAARrNAAEa/YABG0wAARu3AAEb8gABHBeAARw7gAEcYYABHGWAARybAAEctoABHLqAARzngAEdJIABHWiAAR1sgAEdcIABHXSAAR2qAAEd5AABHiMAAR43AAEeOwABHj8AAR5DAAEei4ABHo+AAR63gAEe9AABHzcAAR+GAAEfwoABH+WAASAIgAEgXQABIIaAASCXgAEgvoABIPYAASELgAEhSwABIX8AASHAAAEiDYABIl4AASKTAAEi4oABIvyAASMygAEjdYABI8oAASQhAAEkcIABJPwAASVLAAEllwABJdQAASYZAAEmYwABJqGAAScNAAEnLAABJ1+AASesAAEn6AABKCmAAShfgAEoiAABKLIAASj6AAEpLwABKWEAASmNgAEp1IABKfWAASo6gAEqm4ABKs6AASsdAAErggABK7GAASvNgAEr8IABLB8AASw9AAEsoYABLNGAAS0lAAEtjIABLb2AAS4KgAEuIYABLlIAAS56gAEuqoABLtaAAS76AAEvOAABL0+AAS99gAEvlwABL7KAAS/AAAEvyYABL9kAAS/dAAEv4QABL+UAAS/pAAEv7QABL/EAAS/1AAEv+QABL/0AATABAAEwBQABMAUAATBTAAEwVwABMJOAATDYAAExPoABMbMAATIkAAEybgABMskAATMkAAEzS4ABM4sAATPqAAE0JwABNFgAATRmgAE0lIABNMSAATTqgAE1AIABNVcAATWSgAE12AABNh2AATY9gAE2kgABNqGAATauAAE2uQABNt4AATbngAE3WYABN8wAATgoAAE4voABOSMAATmSgAE55IABOjSAATqVAAE6/IABO1SAATuzAAE73YABPCEAATybgAE8w4ABPOuAAT1CAAE9jgABPdyAAT43gAE+kwABPtsAAT9agAE/qAABP9WAAUA2AAFAgIABQNiAAUEWAAFBf4ABQdOAAUIHgAFCSAABQnqAAULcgAFDOIABQ5kAAUP4gAFETYABRKiAAUUFgAFFQQABRYoAAUXAgAFGBwABRlEAAUakgAFG4YABR0aAAUecgAFH2wABSBGAAUhDgAFIrwABSOiAAUkVgAFJKIABSTuAAUlgAAFJlwABSbgAAUnnAAFJ/gABSliAAUqtgAFK7oABSy8AAUtxgAFLvQABTBgAAUyMgAFMuAABTP2AAU1KAAFNhIABTboAAU31gAFOFgABTj6AAU58AAFOvoABTxKAAU9VgAFPdYABT5WAAU/VAAFP7AABUBkAAVBmAAFQpgABUO6AAVEkAAFRYQABUcmAAVIVAAFSaoABUsSAAVLhgAFS9AABUwaAAVMZAAFTK4ABU0AAAVNUgAFTaQABU32AAVOPgAFToYABU7OAAVPFgAFT2YABU+2AAVQBgAFUFYABVCgAAVQ6gAFUTQABVF+AAVR0AAFUiIABVJ0AAVSxgAFUyIABVN+AAVT8AAFVGIABVTAAAVVHgAFVZIABVYGAAVWsgAFWAQABVlAAAVZUAAFWmwABVwKAAVc3AAFXcwABV7cAAVgMgAFYVAABWI0AAVjQAAFZGoABWU6AAVlYAAFZY4ABWWeAAVmnAAFZ6QABWicAAVpjAAFan4ABWtYAAVsdgAFbIYABW1QAAVuHgAFblwABW6cAAVu2gAFbxoABW90AAVvzAAFcFYABXC8AAVxSAAFc/IABXRiAAV1MgAFdhIABXbiAAV3vAAFeMIABXoCAAV7wAAFfP4ABX3IAAV+yAAFf9AABYDgAAWBeAAFghIABYMsAAWDmAAFhA4ABYUqAAWFaAAFhcYABYYEAAWGNgAFhnoABYa8AAWG7AAFiBQABYkIAAWKLAAFirgABYseAAWLrAAFjH4ABY0QAAWNwAAFjogABY7gAAWPrAAFkGgABZDgAAWQ8AAFkQAABZEQAAWRIAAFkkIABZJUAAWTMgAFk9IABZTQAAWV4gAFlkAABZaEAAWW1AAFlyQABZd0AAWXxAAFmCgABZiAAAWY7gAFmUwABZnQAAWa5gAFm54ABZwMAAWc4gAFnQAABZ3WAAWd9AAFngQABZ4iAAWeMgAFnlIABZ5iAAWedAAFnoQABZ6UAAWepAAFnrQABZ7EAAWe1AAFnuQABZ70AAWgfgAFoaAABaJ4AAWj4gAFpL4ABaU8AAWl+AAFp44ABaiWAAWpBgAFqcAABapUAAWrvgAFrEQABa1yAAWuggAFr4wABbAKAAWwngAFsK4ABbGIAAWyggAFs3QABbQ2AAW0xgAFtUwABbZOAAW2+gAFt0YABbfWAAW4ngAFuPwABbo8AAW7IgAFvCAABbzOAAW+PgAFvyQABcCAAAXA9AAFwcAABcJyAAXDwgAFxIAABcU8AAXF7AAFxtQABchIAAXJBAAFyooABcs4AAXMOgAFzYoABc26AAXN6gAFzhoABc5KAAXOfgAFzrAABc7WAAXPBgAFzzYABc9mAAXPmgAFz8gABc/2AAXQJAAF0FYABdCGAAXQtgAF0OYABdEWAAXRRgAF0XoABdGqAAXR2gAF0goABdI+AAXSbgAF0p4ABdLOAAXS9AAF0yQABdNUAAXThAAF07QABdPkAAXT9AAF1CQABdRUAAXUhAAF1KwABdTcAAXVDAAF1TwABdViAAXVkgAF1cIABdbeAAXXDAAF1zoABddoAAXXjgAF17wABdfiAAXYEgAF2DgABdhmAAXYjAAF2LgABdjkAAXZFAAF2ToABdlqAAXabAAF2pwABdrMAAXbAAAF2zAABdtWAAXbhgAF27YABdvmAAXcDAAF3DwABdxiAAXchgAF3KwABdzcAAXdkAAF3cAABd3wAAXeIAAF3lQABd6IAAXergAF3t4ABd8OAAXfPgAF33IABd+iAAXf1gAF4AYABeA2AAXgZgAF4JYABeDeAAXhDgAF4T4ABeFOAAXhXgAF4boABeJiAAXicgAF4oIABeKSAAXjygAF49oABePqAAXkjAAF5JwABeSsAAXlLgAF5T4ABeW+AAXlzgAF5nIABeaCAAXmkgAF57AABefAAAXo2AAF6fYABeomAAXqVgAF6oYABeq0AAXq5AAF6xQABetEAAXrdgAF66oABeveAAXs1AAF7QQABe4IAAXuGAAF7igABe5aAAXuagAF75IABfCWAAXxdAAF8aQABfHUAAXyggAF8pIABfNIAAXzWAAF82gABfRqAAX0egAF9ooABfe8AAX4cgAF+KIABfnWAAX6mAAF+qgABfq4AAX6yAAF+tgABfroAAX6+AAF+wgABfvCAAX8zgAF/N4ABf2KAAX+RgAF/uQABf+yAAYAcAAGAVIABgIAAAYC+gAGBDIABgUuAAYFpgAGBcQABgXgAAYF/AAGBhgABgY2AAYGUgAGBnAABgaMAAYGrAAGBsoABgboAAYHBgAGByQABgdUAAYHhAAGB7QABgfkAAYIGAAGCEwABgh8AAYIrAAGCNIABgkgAAYJMAAGCWAABgmQAAYJwAAGCfQABgokAAYKVAAGCoQABgqqAAYK2gAGCuoABgseAAYLTgAGC34ABgukAAYL1AAGDAQABgw0AAYMaAAGDJgABgzIAAYM+AAGDSwABg1gAAYNhgAGDbYABg3mAAYOFgAGDkoABg56AAYOqgAGDs4ABg7+AAYPDgAGDz4ABg9yAAYPggAGD7YABg/mAAYQCgAGEDYABhBcAAYRcAAGEaAABhHQAAYSAAAGEjQABhJkAAYSlAAGErgABhLoAAYTDgAGEz4ABhNu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AAAAFUAKAgEmDOtIJwIBJrkB6wApACsBKwD//wBq/+gEQQW6AiYASAAAAQcA1gDwAAAAGUAMAjAnAScMtEgrAgEnuQHrACkAKwErcTUA//8Aav/oBEEFmAImAEgAAAEHAI4A0gAAACBAEgMCgCXfJf8lAyUMB0grAgMCJ7kB6wApACsBK101Nf//AH0AAALLBboCJgDVAAABBgCN0QAAFUAKAQEFAYxIJwEBBLkB6wApACsBKwD//wB9AAACewW6AiYA1QAAAQYAQwEAABu1AWAHAQcBuAEgtEgrAQEHuQHrACkAKwErXTUA//8AfQAAAuUFugImANUAAAEGANbLAAAWQAoBHQoIAQJAAQEIuQHrACkAKwErNf//AH0AAAMGBZgCJgDVAAABBgCOwQAAGUAMAgEHBwgBAkABAgIIuQHrACkAKwErNTUA//8ARAAABEIFpgImAFEAAAEHANcA3gAAABu1AUAtAS0GuP72tEgrAQEtuQHrACkAKwErcTUA//8AZP/oBFIFugImAFIAAAEHAI0AvgAAABVACgIBIgRUSCcCASG5AesAKQArASsA//8AZP/oBFIFugImAFIAAAEHAEMBFgAAABlADAKAJAEkBOhIKwIBJLkB6wApACsBK101AP//AGT/6ARSBboCJgBSAAABBwDWANAAAAAfQBECMCUBPyVPJQIlBJZIKwIBJbkB6wApACsBK11xNQD//wBk/+gEUgWYAiYAUgAAAQcAjgC+AAAAIkAUAwIwI0AjgCPPIwQjBApIKwIDAiW5AesAKQArAStdNTX//wBk/+gEUgWmAiYAUgAAAQcA1wDEAAAAHbcCPzZPNgI2BLj/WrRIKwIBNrkB6wApACsBK101AP//AID/6AR2BboCJgBYAAABBwCNAO8AAAAuQBYBG0AkJzQPGy8bPxsDDxsfG48bAxsPuAE+tEgrAQEauQHrACkAKwErXXErNf//AID/6AR2BboCJgBYAAABBwBDARcAAAAXswEBHQ+4Acq0SCcBAR25AesAKQArASsA//8AgP/oBHYFugImAFgAAAEHANYA3QAAACyzAQEBHrkB6wApACsBsQYCQ1RYtQAaHQkWQCsbtK8eAR4PuAGSsUgrK11ZNf//AID/6AR2BZgCJgBYAAABBwCOANcAAAArswECAh65AesAKQArAbEGAkNUWLcCAQAa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MxUzNTMVMzUzFTM1BRUzNSEVMzUHNSMVJRUzNTMVMzUTNSMVIzUjFSM1IxUjNSMVIzUjFQcVMzUzFTM1MxUzNTMVMzUzFTM1EzUjFSM1IxUjNSMVIzUjFSM1IxUHFTM1MxUzNTMVMzUzFTM1MxUzNQXWfHx8fHx8fHz6KX19fX19fX19fXx9fH19fH19fH18fPsifH18fX18fX18fX19+X19+nx8+X19+X19+Xx9fH19fH19fPyYfX18fX18fX18ffsifAF2ffp8AfJ9fXx9fXx9fXx9fXx9fHx9fH19fH19fH19fH19fH19fH18fH18fX18fX18BdL+inz+in3+inz+in18AXV9AXZ9AXV9AXZ9AXV9fX19fX19fX19ffl9fX19fX19fX19fX35fX19fX19fX19fXx8fHx8fHx8fHz5fX19fX19fX19ffl9fX19fX19fX19fX3+in19fX19fX19fX19fHx8fHx8fHx8fP6KfX19fX19fX19fXx9fX19fX19fX19AAEAkgAABEIDsAADAAATIREhkgOw/FADsPxQAAABAAABPQf/Ar8AAwAAESERIQf/+AECv/5+AAEBMAAABrwFiwACAAAhAQEBMALGAsYFi/p1AAABASD/4QbLBYkAAgAACQIBIAWr+lUFif0s/SwAAQEw/+EGvAVsAAIAAAkCBrz9Ov06BWz6dQWLAAEBIP/hBssFiQACAAABEQEGy/pVBYn6WALUAAACALIAiQQjA/oADQAbAAABMhYWFRQAIyIANTQ2NhciBgYVFBYzMjY1NCYmAmpv1Hb+/ra3/v521G9drmLWl5fVYq4D+nLUcrf+/gECt3PTckxesF6X1taXXrBeAAIAgAAABFQD1AADAA8AADMRIREBIgYVFBYzMjY1NCaAA9T+FlR2d1NUdnYD1PwsArR2VFN3d1NUdgADACoAAAStBIMAAwARAB8AADMRIREBIgYGFRQAMzIANTQmJgcyFhYVFAYjIiY1NDY2KgSD/b9w03YBAre2AQJ2029br2LVl5jVYq8Eg/t9A/py1HO2/v4BArZz1HJMXq9gl9XVl2CvXgAABQGY/4kGkwSEAAsAFwAjAC8AOwAAARAAISAAERAAISAAAzQAIyIAFRQAMzIAARQGIyImNTQ2MzIWBRQGIyImNTQ2MzIWATcWMzI3FwYGIyImBpP+i/74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AVsAFkAKAQAcHwsLQAEBHLkB6gApACsBKzX//wBz/+gEFgWYAjYARgAAARcA2gCrAAAAHEAPAUAcUBwCABwfCwtAAQEcuQHrACkAKwErXTX//wBcAAAFsQbCAjYAKAAAARcA2AGzAWoAFkAKAQAMDwECQAEBDLkB6gApACsBKzX//wBq/+gEQQVYAjYASAAAARcA2ADaAAAAFkAKAgAjJgwMQAIBI7kB6wApACsBKzX//wBcAAAFsQcXAjYAKAAAARcA2QGzAYkAFkAKAQAMFAECQAEBF7kB6gApACsBKzX//wBq/+gEQQWOAjYASAAAARcA2QDoAAAAJkAXAgAjECMCgCMBryO/IwIAIysMDEACAS65AesAKQArAStdcXI1//8AXAAABbEG8wI2ACgAAAEXANoBtQFbABZACgEADA8BAkABAQy5AeoAKQArASs1//8Aav/oBEEFmAI2AEgAAAEXANoA5AAAABZACgIAIyYMDEACASO5AesAKQArASs1//8Ax//nBiEHJwI2ACoAAAEXANYCJQFtABZACgEAISQODkABASG5AeoAKQArASs1//8ANf5XBIQFugI2AEoAAAEXANYA5QAAABZACgIANDcjGEACATS5AesAKQArASs1//8Ax//nBiEG8wI2ACoAAAEXANoCEwFbABZACgEAISQODkABASG5AeoAKQArASs1//8ANf5XBIQFmAI2AEoAAAEXANoA5QAAABZACgIANDcjGEACATS5AesAKQArASs1//8Ax/3yBiEF0wImACoAAAEHAe0CHgAAAAu2AQAiIwYGQAErNQAAAwA1/lcEhAYoAAgAKAA0ARdAIXQUdC0CZBRkLQJUFFQtAisaIh0kMQMrM48wAi0gDhE0K7j/4EAJDhE0ECANETQduP/gswwRNDO4/+BAMwoRNAVqBgYIRQJACQs0AgIcBQgDBgYAAUUDAgIpEi8eAx8RICEhIxEfFBERHx4TMiwKCbj/wEAcCQw0CQkOLB8VCg4fJA8gHwYyHxwHIB8hcB8BH7j/wEAkEBA0ETUoHxARQA4PNEARAT8RARERNgwgJycpIBgmNREXETUKKxA8KxD27TMv7REzL11xKys8KxDAK10BMhEzAD/tPzw/7T/tEjkvKzkREjk5hw4uKwV9EMQBERIXORgSOS8z/TIyLxI5OQARMy8r/TIv7TEw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AyMAARQAAAECAQYDAAoCAXABAQMBEABACw00fwABXwBvAAIAABcrL11dKys8ATNdETMAPzw/PIcFLit9EMQxMAErK11xMxMzAz3etd4EJvvaAP///9f+uwTvBboCJgAkAAABBwMRA4QAAAANtwIAEBEHBEAQASsrNQD//wBa/rsENgQ+AiYARAAAAQcDEQMgAAAADbICNwO4/+6xSCsBKzUA////1wAABO8HKAImACQAAAEHAwgD3gAAAA2yAiMMuP/ssUgrASs1AP//AFr/6AQ2BgoCJgBEAAABBwMaBH4AAAAmQBYCMEoBIEqASgIASgEASkkaGkAQAgFKuQHrACkAKwErK11xcjX////XAAAE7wcnAiYAJAAAACcDEAKNAAABBwMFA+gAAAAuQBUDGUAWHDQZQBAUNJAZARkSAEgrAhC4/8BACRIhNAAQFQECQAErKzUrcSsrNf//AFr/6ARCBx4CJgBEAAAAJwDWAOMAAAEHAycDUgAAAD5ADQNAPQGQPa89vz3PPQS4/+lAGj09NzdAAgA6MDoCLzrgOvA6AzoauUgrAgE6uQHrACkAKwErXXE1K11xNf///9cAAATvBycCJgAkAAAAJwMQAo0AAAEHAwID1AAAACNADANgFwEAFxcSE0ACELj/wEAJEiE0ABAVAQJAASsrNStdNQD//wBa/+gENgceAiYARAAAACcA1gDjAAABBwMmA4QAAAAsQBwDHj09NzhAAgA6MDoCLzrgOvA6AzoauUgrAgE6uQHrACkAKwErXXE1KzX////XAAAE7wcnAiYAJAAAACcDEAKNAAABBwMJA80AAAAnQA8DIUASFzQAISYSE0AQAhC4/8BACRIhNAAQFQECQAErKzUrKys1AP//AFr/6AQ8BygCJgBEAAAAJwDWAOMAAAEHAwgDcAAAADWxA1G4/8BAHhUbNABRUDc4QAIAOjA6Ai864DrwOgM6GrlIKwIBOrkB6wApACsBK11xNSsrNQD////XAAAE7wcpAiYAJAAAACcDEAKNAAABBwMNBVAAAAAtQBQDABZwFgJQFpAWAgAWIBITQBACELj/wEAJEiE0ABAVAQJAASsrNSsrcXI1AP//AFr/6AR0Bu4CJgBEAAAAJwDWAOMAAAEHAw4EagAAADRAIwMgPa89zz0DAD1INzhAAgA6MDoCLzrgOvA6AzoauUgrAgE6uQHrACkAKwErXXE1K101////1/67BO8GbAImACQAAAAnAxACmQAAAQcDEQOEAAAAK0AKAwAXGAcEQBACELj/wEAMEiE0ABAVAQJAAgERuQHqACkAKwErKzUrKzUA//8AWv67BDYFugImAEQAAAAnANYA4wAAAQcDEQMgAAAALrIDPgO4/+5AF0grAgA6MDoCLzrgOvA6AzoauUgrAgE6uQHrACkAKwErXXE1KzX////XAAAE7wcnAiYAJAAAACcDDwKrAA8BBwMFA+gAAAA1sQMjuP/AsxUhNCO4/8BAGyQnNAAjgCMCGiMjGRlAAiARMBECABEaAQJAEAErK3E1K10rKzUA//8AWv/oBEIHHgImAEQAAAAnANkA8wAAAQcDJwNSAAAARbEDRLj/wLM7PzREuP/AQA4aIzQQRAHARAEARMBEArj/80AJREc3PUACATcauP+itEgnAgFBuQHrACkAKwErK11xcisrNQD////XAAAE7wcnAiYAJAAAACcDDwKrAA8BBwMCA9QAAAAzsQMiuP/AsyMnNCK4/8BAGQkQNCAiAQAiIhcXQAIgETARAgARGgECQBABKytxNStxKys1AP//AFr/6AQ2Bx4CJgBEAAAAJwDZAPMAAAEHAyYDaQAAADexA0e4/8BAGCErNABHARBHIEcwR1BHBEc9AEgrAgE3Grj/orRIJwIBQbkB6wApACsBKytdcSs1AP///9cAAATvBycCJgAkAAAAJwMPAqsADwEHAwkD6AAAAEuxAy24/8CzMTQ0Lbj/wLMkLzQtuP/Asx0gNC24/8BAHhcaNBAtIC1wLQMALTISGUAQAiARMBECABEaAQJAEAErK3E1KytdKysrKzUA//8AWv/oBDYHKAImAEQAAAAnANkA8wAAAQcDCANcAAAAKrEDWLj/wEANFSE0AFhXNz1AAgE3Grj/orRIJwIBQbkB6wApACsBKysrNf///9cAAAUcBykCJgAkAAAAJwMPAqsADwEHAw0FjAAAAB1AFAMAIiwSGUACIBEwEQIAERoBAkAQASsrcTUrNQD//wBa/+gEdAbuAiYARAAAACcA2QDzAAABBwMOBGoAAAAnQBADb1h/WAIAWFI3PUACATcauP+itEgnAgFBuQHrACkAKwErK101AP///9f+uwTvBkwCJgAkAAAAJwMPAqsAAAEHAxEDhAAAAClAGAMAIyQHBEAQAiARMBECABEaAQJAEAIBHrkB6gApACsBKytxNSsrNQD//wBa/rsENgWOAiYARAAAACcA2QDzAAABBwMRAyAAAAAisgNFA7j/7rVIKwIBNxq4/6K0SCcCAUG5AesAKQArASsrNf//AFz+uwWxBboCJgAoAAABBwMRA8AAAAASQAsBAA0BAA0OAAtAEAErK101//8Aav67BEEEPgImAEgAAAEHAxEDIAAAABSzApAkAbj/7LUkJQQEQBABKytdNf//AFwAAAWxBygCJgAoAAABBwMIA+gAAAAqQBQBICBAIFAggCCQILAgBg8gICACILj/wEAJFBc0ACAfAQJAASsrXXE1//8Aav/oBEEGCgImAEgAAAEHAxoEYAAAADBADgIAN1A3AoA3rzfgNwM3uP/AQA0mLDQANzYMDEAQAgE3uQHrACkAKwErKytdcTX//wBcAAAFsQbxAiYAKAAAAQcA1wGkAUsAGkANAR8MAQAMFwECQAEBDLkB6gApACsBK101//8Aav/oBEEFpwImAEgAAAEHANcAtAABABxADgIgIwEAIy4MDEAQAgEjuQHrACkAKwErK101//8AXAAABbEHJwImACgAAAAnAxACqwAAAQcDBQQGAAAAMkAmAhZAFhw0FkAQFDSQFgEWDwBIKwEwDrAOAiAOkA7wDgMADhEBAkABK11xNStxKys1//8Aav/oBE8HHgImAEgAAAAnANYA8AAAAQcDJwNfAAAAMkALA0AqAa8qvyrPKgO4/+lAESoqJCRAAjAnAScMtEgrAgEnuQHrACkAKwErcTUrXXE1//8AXAAABbEHJwImACgAAAAnAxACqwAAAQcDAgPyAAAAI0AaAgAUFA8QQAEwDrAOAiAOkA7wDgMADhEBAkABK11xNSs1AP//AGr/6ARBBx4CJgBIAAAAJwDWAPAAAAEHAyYDkQAAACJAEwMeKiokJUACMCcBJwy0SCsCASe5AesAKQArAStxNSs1//8AXAAABbEHJwImACgAAAAnAxACqwAAAQcDCQPrAAAAK0AgAh5AEhc0AB4jDxBAEAEwDrAOAiAOkA7wDgMADhEBAkABK11xNSsrKzUA//8Aav/oBFAHKAImAEgAAAAnANYA8AAAAQcDCAOEAAAAL7QDYD4BPrj/wEAVFRs0AD49JCVAAjAnAScMtEgrAgEn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AQcDGgR+AAAAKkAbAiA/AQA/MD9QP2A/4D/wPwYAPz4lJUAQAgE/uQHrACkAKwErK3FyNf//ALv/5wcwBvECJgL+AAABBwDXAcwBSwAYQAsCAC04JiZAEAIBLbkB6gApACsBKys1//8AZP/oBW0FpwImAv8AAAEHANcAtAABAB5AEAIgK9ArAgArNiUlQBACASu5AesAKQArASsrXTX//wC7/rsHMAXTAiYC/gAAAQcDEQRCAAAADbcCAC4vHh5AEAErKzUA//8AZP67BW0EPgImAv8AAAEHAxEDIAAAABhAEQIQLGAscCyALAQALC0dHUAQASsrXTX//wDG/rsGCQW6AiYAOAAAAQcDEQPAAAAADbcBABobAgtAEAErKzUA//8AgP67BHYEJgImAFgAAAEHAxEC5AAAABRADQEAGxAbAgAbHAoVQBABKytdNf//AMb/5gYJBygCJgA4AAABBwMIBBAAAAALtgEAICcBDEABKzUA//8AgP/oBHYGCgImAFgAAAEHAxoEfgAAADaxASi4/8CzJys0KLj/wEAXCxI0wCgBACggKHAoAwAoIQkWQBABAS65AesAKQArASsrcXIrKzX//wDG/+YHXwcnAiYDAAAAAQcAjQH0AW0AIkAMAS8nbyePJ9AnBCcauAE8tEgrAQEmuQHqACkAKwErXTX//wCA/+gFxQW6AiYDAQAAAQcAjQDvAAAAMEAYASdAJCc0DycvJz8nAw8nHyd/J48nBCcYuAE+tEgrAQEmuQHrACkAKwErXXErNf//AMb/5gdfBygCJgMAAAABBwBDAfUBbgAaQA0BYCYBVSYpFB9AAQEmuQHqACkAKwErXTX//wCA/+gFxQW6AiYDAQAAAQcAQwDaAAAAIEASAUAmAZAm0CYCACYmEx9AAQEmuQHrACkAKwErXXE1//8Axv/mB18HKAImAwAAAAEHAwgEEAAAABZAEAEwLUAtUC1wLQQALTQUH0ABK101//8AgP/oBcUGCgImAwEAAAEHAxoEfgAAAECxATS4/8CzJys0NLj/wEAgCxI0wDQBADQQNCA0UDQEfzTgNP80AwA0LRMfQBABATq5AesAKQArASsrXXFyKys1//8Axv/mB18G8QImAwAAAAEHANcB4AFLACBAEgEwJgEPJnAmAgAmMRQfQAEBJrkB6gApACsBK11xNf//AID/6AXFBacCJgMBAAABBwDXAPAAAQAWQAoBACYxEx9AAQEmuQHrACkAKwErNf//AMb+uwdfBboCJgMAAAABBwMRA8AAAAANtwEAJygVHkAQASsrNQD//wCA/rsFxQQmAiYDAQAAAQcDEQLkAAAAFEANAQAnECcCACcoFB5AEAErK101//8A7/67Bi8FugImADwAAAEHAxEDtgAAAA23AQAODwAMQBABKys1AP//AAD+UQR9BCYCJgBcAAABBwMRBBAAAAALtgHeFRUREUABKzUA//8A7wAABi8HKAImADwAAAEHAwgDygAAACxAFAEAFBAU8BQDDxQwFHAUkBTAFAUUuP/AQAoeIjQAFBsDCUAQASsrK11xNf//AAD+UQR9BgoCJgBcAAABBwMaBGoAAAA7sQEcuP/AQCQOEjQAHDAcAgAcUBzQHOAcBCAcwBzgHPAcBAAcIwoOQBABASm5AesAKQArASsrXXFyKzUA//8A7wAABi8G8QImADwAAAEHANcBrgFLABxADwG/DdANAgANGAMJQAEBDbkB6gApACsBK101//8AAP5RBH0FpwImAFwAAAEHANcAtAABABZACgEAFSAKDkABARW5AesAKQArASs1////1wAABQYHJAI2ACQAAAEXAN8BsgFqABpADQJQEQEAERABAkACARG5AeoAKQArAStdNf//AFr/6AQ5BboCNgBEAAABFwDfAOUAAAAWQAoCADg3GhpAAgE4uQHrACkAKwErNf//AHUAAAOLByQCNgAsAAABFwDfADcBagAosQEGuP/AsyEiNAa4/8BADB0eNAAGBQECQAEBBrkB6gApACsBKysrNf//AD0AAAL/BboCNgIaAAABFgDfqwAAM7QBgAYBBrj/wEAJISI0BkAXHDQGuP/AQAwLDzQABgUBAkABAQa5AesAKQArASsrKytxNQD//wC7/+cGLgckAjYAMgAAARcA3wH0AWoAFkAKAgAiIQMDQAIBIrkB6gApACsBKzX//wBk/+gEUgW6AjYAUgAAARcA3wDkAAAAFkAKAgAjIgQEQAIBI7kB6wApACsBKzX//wDG/+YGCQckAjYAOAAAARcA3wHiAWoAFkAKAQAbGgANQAEBG7kB6gApACsBKzX//wCA/+gEdgW6AjYAWAAAARcA3wEJAAAAH7EBHLj/wEAMDA00ABwbCBdAAQEcuQHrACkA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MhcWBzQnJiMiBwYHAyQ3AAUF/o/+5v5/MsMBirUfk821aGTBP0RydmpkGNYBNtYBGwQn/jH+m/7wgfkHUZStd3PDb0tQY15y/AOL6wE1//8AZAAABg4HJAI2ADEAAAEXAEMBrgFqABZACgEAFBcBC0ABARS5AeoAKQArASs1//8ARAAABDkFugI2AFEAAAEXAEMA3AAAABZACgEAGBsGBkABARi5AesAKQArASs1////1wAABO8HJAI2ACQAAAEXBYMC5AFqABlADAMCABMQAQJAAgMCFLkB6gApACsBKzU1AP//AFr/6AQ2BboCNgBEAAABFwWDAhwAAAAZQAwDAgA6NxoaQAIDAju5AesAKQArASs1NQD////XAAAE7wb4AjYAJAAAARcFhQKoAWoAFkAKAgAUEAECQAIBFLkB6gApACsBKzX//wBa/+gENgWOAjYARAAAARcFhQH0AAAAFkAKAgA7NxoaQAIBPLkB6wApACsBKzX//wBcAAAFsQckAjYAKAAAARcFgwMMAWoAGUAMAgEAEQwBAkABAgIRuQHqACkAKwErNTUA//8Aav/oBEEFugI2AEgAAAEXBYMCCAAAABlADAMCACckDAxAAgMCKLkB6wApACsBKzU1AP//AFwAAAWxBvgCNgAoAAABFwWFAuQBagAWQAoBABIMAQJAAQESuQHqACkAKwErNf//AGr/6ARBBY4CNgBIAAABFwWFAdYAAAAWQAoCACgkDAxAAgEpuQHrACkAKwErNf//AHUAAAMVByQCNgAsAAABFwWDAWgBagAZQAwCAQAFBQICQAECAgm5AeoAKQArASs1NQD//wA2AAACzwW6AjYA1QAAARcFgwEiAAAAGUAMAgEABQUCAkABAgIJuQHrACkAKwErNTUA//8AdQAAA0AG+AI2ACwAAAEXBYUBNgFqABZACgEACQUBAkABAQm5AeoAKQArASs1//8AfQAAAwAFjgI2ANUAAAEXBYUA9gAAABZACgEACQUBAkABAQm5AesAKQArASs1//8Au//nBi4HJAI2ADIAAAEXBYMDKgFqABlADAMCACQhAwNAAgMCJbkB6gApACsBKzU1AP//AGT/6ARSBboCNgBSAAABFwWDAggAAAAZQAwDAgAlIgQEQAIDAiW5AesAKQArASs1NQD//wC7/+cGLgb4AjYAMgAAARcFhQLk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ZAHtBCb8WP5NATUDWPyoA3n8hwQm/LEDTwAAAQDbBIoDMgWOAAwAGUALACAMByAIDAgKHwQAL/3ewAEv7d7tMTABBgcGIyImJzMWMzI3AzIiVlp5dZEGdhWHkjsFjnZGSI52jIwA////1wAABO8G9wI2ACQAAAEXBloBrgFpABZACgIAExMBAkACARO5AeoAKQArASs1//8AWv/oBDYFjgI2AEQAAAEXBloA3AAAABZACgIAOjoaGkACATq5AesAKQArASs1////1wAABO8HAgI2ACQAAAEXAI4BmgFqABlADAMCABITAQJAAgMCD7kB6gApACsBKzU1AP//AFr/6AQ2BZgCNgBEAAABFwCOAMgAAAAZQAwDAgA5OhoaQAIDAja5AesAKQArASs1NQD///+tAAAIWQW6AhYAkAAA//8AV//nBuwEPwIWAKAAAP//AFwAAAWxBvgCNgAoAAABFwZaAbgBagAWQAoBABMMAQJAAQEQuQHqACkAKwErNf//AGr/6ARBBY4CNgBIAAABFwZaANwAAAAWQAoCACcnDAxAAgEnuQHrACkAKwErNf//AMH/5wXzBwICNgO4AAABFwCOAbgBagAZQAwDAgAoKRYWQAIDAiW5AeoAKQArASs1NQD//wB2/+gETQWYAjYDuQAAARcAjgDIAAAAGUAMAwIALC0cHEACAwIpuQHrACkAKwErNTUA////twAACAQHAgI2AkAAAAEXAI4CqAFqABlADAIBAEJDPgBAAQICP7kB6gApACsBKzU1AP///8UAAAXuBZgCNgJgAAABFwCOAWgAAAAZQAwCAQA+PwABQAECAju5AesAKQArASs1NQD//wBj/+cE6gcCAjYCQQAAARcAjgFAAWoAGUAMAgEALS4QEEABAgIquQHqACkAKwErNTUA//8AH//oA70FmAI2AmEAAAEWAI54AAAZQAwCAQAqKwQEQAECAie5AesAKQArASs1NQAAAQBj/+cFEQW6AB0AkUBaqxkBWhRqFAIoEQFTDgFGDgElDgFmCAFFCAFXBwF3BIcEApYDAQIZGBkeAQIUAQECFxgYDRMqAAEABhAGAgYfHRwNKgwYAi0XFQwNFQ0VDRsPLQoJGQEbIQACAD/tMjI/7RE5OS8vETMRM+0yAS/txjIQ1l3GMu0ROS8zhxArh33EMTABXV1dXV1dXV1dXV0BBwEWFxYVFAcGIyADNxIhMjc2NRAhJgc3AQYjITcFERH+PbpWQqyb3v5OVaklATeRZXD+vzsaMwGiViz9jiMFupn+LBqIaJPXf3MBuDP+uktSjQEBAQGwAbgMpwD///+u/lcERwQmAhYEmgAA//8AVwAABgMGwgI2AkIAAAEXANgB4AFqABZACgEACg0BA0ABAQq5AeoAKQArASs1//8AgP/oBHYFWAI2AmIAAAEXANgA5gAAABZACgEAGh0JFkABARq5AesAKQArASs1//8AVwAABgMHAgI2AkIAAAEXAI4B1gFqABlADAIBAAoRAQNAAQICCrkB6gApACsBKzU1AP//AID/6AR2BZgCNgJiAAABFwCOAOYAAAAZQAwCAQAaIQkWQAECAhq5AesAKQArASs1NQD//wC7/+cGLgcCAjYAMgAAARcAjgHWAWoAGUAMAwIAIyQDA0ACAwIguQHqACkAKwErNTUA//8AZP/oBFIFmAI2AFIAAAEXAI4AyAAAABlADAMCACQlBARAAgMCIbkB6wApACsBKzU1AP//ALv/5wYuBwICNgO6AAABFwCOAcwBagAZQAwEAwAqKw0NQAMEAie5AeoAKQArASs1NQD//wBk/+gEUgWYAjYDuwAAARcAjgC+AAAAGUAMBAMAKSoNDUADBAImuQHrACkAKwErNTUA//8AWv/nBX8HAgI2AlcAAAEXAI4BQAFqABlADAIBACAhDAxAAQICHbkB6gApACsBKzU1AP//ADX/6APUBZgCNgJ3AAABFgCOZAAAGUAMAgEAHyALC0ABAgIcuQHrACkAKwErNTUA//8A5//sBgIGwgI2Ak0AAAEXANgBfAFqABZACgEAEhUBA0ABARK5AeoAKQArASs1//8AAP5RBH0FWAI2AFwAAAEXANgAtAAAABZACgEAFRgKDkABARW5AesAKQArASs1//8A5//sBgIHAgI2Ak0AAAEXAI4BfAFqABlADAIBABIZAQNAAQICErkB6gApACsBKzU1AP//AAD+UQR9BZgCNgBcAAABFwCOALQAAAAZQAwCAQAVHAoOQAECAhW5AesAKQArASs1NQD//wDn/+wGAgckAjYCTQAAARcA3QGkAWoAGUAMAgEAEhkBA0ABAgISuQHqACkAKwErNTUA//8AAP5RBJcFugI2AFwAAAEXAN0A9gAAABlADAIB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ACAjAgJAASs1AP//AFv+1gWyBboCNgAnAAABFwWUArwAAAALtgIAIyIAGkABKzUA//8AX/7WBMkFugI2AEcAAAEXBZQCHwAAAAu2AgAhIQ8PQAErNQD//wBb/lEFsgW6AjYAJwAAARcFmQLQAAAAC7YCACwhABpAASs1AP//AGz+UQTJBboCNgBHAAABFwWZAh0AAAALtgIAKyACAkABKzUA//8AW/5pBbIFugI2ACcAAAEXBaAC3gAAAAu2AgAlIQAaQAErNQD//wBW/mkEyQW6AjYARwAAARcFoAIwAAAAC7YCACQgAgJAASs1AP//AFwAAAWxBycCNgAoAAABFwauApQAAAAZQAwCAQASEQECQAECAhK5AeoAKQArASs1NQD//wBq/+gEQQbiAjYASAAAADcA2ADWAAABFwBDAQ0BKAApQBgDACcnIyZAAgAjJgwMQAMPJx8nAicCASO5AesAKQArL101ASs1KzUA//8AXAAABbEHJwI2ACgAAAEXBq8ClAAAABlADAIBABIRAQJAAQICErkB6gApACsBKzU1AP//AGr/6ARBBuICNgBIAAAANwDYANYAAAEXAI0BLAEoAClAGAMAKiojJkACACMmDAxAAw8nHycCJwIBI7kB6wApACsvXTUBKzUrNQD//wBc/mkFsQW6AjYAKAAAARcFoALkAAAAC7YBABAMAAtAASs1AP//AGr+aQRBBD4CNgBIAAABFwWgAlgAAAALtgIAKCkEBEABKzUA//8AXP5pBbEFugI2ACgAAAEXBaMC+AAAAAu2AQAXDAALQAErNQD//wBq/mkEQQQ+AjYASAAAARcFowJYAAAAC7YCAC4jBARAASs1AP//AFz+VwWxBvgCNgRMAAABFwDZAcwBagAWQAoBAB4mHQBAAQEpuQHqACkAKwErNf//AGr+VwRBBY4CNgRNAAABFwDZAMgAAAAWQAoCAEdHLS1AAgFHuQHrACkAKwErNf//AF0AAAVIBwICNgApAAABFwDaAXwBagAWQAoBAAoNAQJAAQEKuQHqACkAKwErNf//AF0AAANDBwICNgBJAAABFwDaAIwBagAWQAoBABcaCQlAAQEXuQHqACkAKwErNf//AMf/5wYhBsICNgAqAAABFwDYAfQBagAWQAoBACEkDg5AAQEhuQHqACkAKwErNf//ADX+VwSEBVgCNgBKAAABFwDYALQAAAAWQAoCADc3FxdAAgE0uQHrACkAKwErNf//AFYAAAYIBwICNgArAAABFwDaAcwBagAWQAoBAAwPAgVAAQEMuQHqACkAKwErNf//AEQAAAQ7BwICNgBLAAABFwDaAQYBagAWQAoBaRkZAgJAAQEZuQHqACkAKwErNf//AFb+uwYIBboCNgArAAABFwMRA6wAAAALtgEADQ4LCEABKzUA//8ARP67BDsFugI2AEsAAAEXAxEDBgAAAAu2AQAaGxgNQAErNQD//wBWAAAGCAcCAjYAKwAAARcAjgHMAWoAGUAMAgEADBMCBUABAgIMuQHqACkAKwErNTUA//8ARAAABHEHAgI2AEsAAAEXAI4BLAFqABlADAIBABkZAgJAAQICGbkB6gApACsBKzU1AP////3+VwYIBboCNgArAAABFgDcsAAAC7YBAA0NAAtAASs1AP////P+VwQ7BboCNgBLAAABFgDcpgAAC7YBABoaABhAASs1AP//AFb+aQYIBboCNgArAAABFwWhAuIAAAALtgEAEwwLCEABKzUA//8ARP5pBDsFugI2AEsAAAEXBaECRAAAAAu2AQAgGRgNQAErNQD///9F/mkCawW6AjYALAAAARcFowEsAAAAC7YBAA8EAANAASs1AP///vX+aQIkBboCNgBMAAABFwWjANwAAAALtgIAEwgEB0ABKzUA//8AdQAAA08HNAI2ACwAAAEXA6EA3AAAABxADgMCAQANCgECQAECAwMOuQHqACkAKwErNTU1//8AfQAAAzEG4gI2ANUAAAA2AI7JAAEXAI0ANwEoACxAGgMADAwHB0ACAQAHCAECQAMPDB8MAgwBAgIEuQHrACkAKy9dNQErNTUrNf//AFsAAAXuByQCNgAuAAABFwCNAcIBagAWQAoBAAwPAgRAAQEMuQHqACkAKwErNf//AEYAAARuByQCNgBOAAABFwCNAPIBagAWQAoBAAwMAgJAAQEMuQHqACkAKwErNf//AFv+uwXuBboCNgAuAAABFwMRA6wAAAALtgEADQ4LCEABKzUA//8ARv67BG4FugI2AE4AAAEXAxEDDAAAAAu2AQANDgsIQAErNQD//wBb/tYF7gW6AjYALgAAARcFlAMYAAAAC7YBAA8MCwhAASs1AP//AEb+1gRuBboCNgBOAAABFwWUAk4AAAALtgEADwwLCEABKzUA//8AUv67BDIFugI2AC8AAAEXAxEDNAAAAAu2AQAHCAAFQAErNQD////o/rsCHQW6AjYATwAAARcDEQGkAAAAC7YBAAUGAANAASs1AP//AFL+uwRwBsICNgAvAAAANwMRAzQAAAEXANgBHQFqAB9AEQIACgoBAkABAAcIAAVAAgEKuQHqACkAKwErNSs1AP///+j+uwM/BsICNgBPAAAANwMRAaQAAAEXANj/7AFqAB9AEQIACAsBAkABAAUGAANAAgEIuQHqACkAKwErNSs1AP//AFL+1gQyBboCNgAvAAABFwWUAnsAAAALtgEACQYABUABKzUA////Iv7WAh0FugI2AE8AAAEXBZQA4gAAAAu2AQAHBAADQAErNQD//wBS/mkEMgW6AjYALwAAARcFoAKFAAAAC7YBAAsMAAVAASs1AP///v/+aQIdBboCNgBPAAABFwWgANkAAAALtgEACQoAA0ABKzUA//8AWgAABvoHJAI2ADAAAAEXAI0CUwFqABZACgEAHBwCCEABARm5AeoAKQArASs1//8AQwAABoAFugI2AFAAAAEXAI0CKAAAABZACgEAKysiIkABASu5AesAKQArASs1//8AWgAABvoHAgI2ADAAAAEXANoCPAFqABZACgEAGRwCCEABARm5AeoAKQArASs1//8AQwAABoAFmAI2AFAAAAEXANoB/gAAABZACgEAKysiIkABASu5AesAKQArASs1//8AWv67BvoFugI2ADAAAAEXAxEELgAAAAu2AQAaGxIRQAErNQD//wBD/rsGgAQ+AjYAUAAAARcDEQQaAAAAC7YBACwtHx5AASs1AP//AGQAAAYOBwICNgAxAAABFwDaAdMBagAWQAoBABQXAgpAAQEUuQHqACkAKwErNf//AEQAAAQ5BZgCNgBRAAABFwDaAQQAAAAWQAoBABgbBgZAAQEYuQHrACkAKwErNf//AGT+uwYOBboCNgAxAAABFwMRA8AAAAALtgEAFRYTDUABKzUA//8ARP67BDkEPgI2AFEAAAEXAxEDDwAAAAu2AQAZGhcNQAErNQD//wBk/tYGDgW6AjYAMQAAARcFlALvAAAAC7YBABcUEw1AASs1AP//AET+1gQ5BD4CNgBRAAABFwWUAkYAAAALtgEAGxgXDUABKzUA//8AZP5pBg4FugI2ADEAAAEXBaAC+AAAAAu2AQAZGhMNQAErNQD//wBE/mkEOQQ+AjYAUQAAARcFoAJFAAAAC7YBAB0eFw1AASs1AP//ALv/5wYuBycCNgAyAAABFwawAq0AAAAZQAwDAgAtJAMDQAIDAia5AeoAKQArASs1NQD//wBk/+gEUgcOAjYAUgAAADcA1wCqAAABFwCNARoBVAApQBgDADo6ISxAAgAhLAQEQAM3QAkMNDcCASG5AesAKQArLys1ASs1KzUA//8Au//nBi4HMwI2ADIAAAEXBrECmQAAABxADgQDAgAxKAMDQAIDBAMxuQHqACkAKwErNTU1//8AZP/oBFIGxAI2AFIAAAA3ANcAlgAAARcAjgDyASwALUAaBAMAPj4sLEACACEsBARABAM3QAkMNDcCASG5AesAKQArLys1NQErNSs1NQD//wC7/+cGLgcnAjYAMgAAARcGrgKAAAAAGUAMAwIAJiUDA0ACAwImuQHqACkAKwErNTUA//8AZP/oBFIG4gI2AFIAAAA3ANgAqQAAARcAQwDgASgAKUAYAwAlJSEkQAIAISQEBEADJUAJCjQlAgEhuQHrACkAKy8rNQErNSs1AP//ALv/5wYuBycCNgAyAAABFwavApQAAAAZQAwDAgAmJQMDQAIDAia5AeoAKQArASs1NQD//wBk/+gEUgbiAjYAUgAAADcA2AD5AAABFwCNATABKAApQBgDACgoISRAAgAhJAQEQAMlQAkKNCUCASG5AesAKQArLys1ASs1KzUA//8AWAAABZUHJAI2ADMAAAEXAI0BhwFqABZACgIAGx4BFUACARu5AeoAKQArASs1////6/5pBEgFugI2AFMAAAEXAI0A8gAAABZACgIAJSUGBkACASK5AesAKQArASs1//8AWAAABZUHAgI2ADMAAAEXANoBVAFqABZACgIAGx4BFUACARu5AeoAKQArASs1////6/5pBEgFmAI2AFMAAAEXANoA8AAAABZACgIAIiUGBkACASK5AesAKQArASs1//8AYAAABdcHAgI2ADUAAAEXANoBkAFqABZACgIAJSgBH0ACASW5AeoAKQArASs1//8ARAAAA1sFmAI2AFUAAAEWANpkAAAWQAoBABAQAgJAAQEQuQHrACkAKwErNf//AGD+uwXXBboCNgA1AAABFwMRA9QAAAALtgIAJicXD0ABKzUA////8v67A1sEPgI2AFUAAAEXAxEBrgAAAAu2AQASEg8PQAErNQD//wBg/rsF1wbCAjYANQAAADcDEQPUAAABFwDYAaQBagAfQBEDACksJB9AAgAmJxcPQAMBKbkB6gApACsBKzUrNQD////y/rsDqAVYAjYAVQAAADcDEQGuAAABFgDYVQAAH0ARAgAUFwEIQAEAEhIPD0ACARS5AesAKQArASs1KzUA//8AYP7WBdcFugI2ADUAAAEXBZQDIAAAAAu2AgAoJRcPQAErNQD///85/tYDWwQ+AjYAVQAAARcFlAD5AAAAC7YBABMQAA9AASs1AP//AJD/5wVfBwICNgA2AAABFwDaAVQBagAWQAoBADg7FhZAAQE4uQHqACkAKwErNf//AE7/6AQDBZgCNgBWAAABFwDaAIgAAAAWQAoBAC0wExNAAQEtuQHrACkAKwErNf//AJD+uwVfBdMCNgA2AAABFwMRA9QAAAALtgEAOTo1NUABKzUA//8ATv67BAMEPgI2AFYAAAEXAxEDIAAAAAu2AQAuLykpQAErNQD//wCQ/+cFXwczAjYANgAAARcGsgJEAAAAGUAMAgEAPT0WFkABAgI+uQHqACkAKwErNTUA//8ATv/oBAMHAgI2AFYAAAA3AI0AjAAAARcA2gDwAWoAKUAYAgAxMTAwQAEAMDATE0ACMUAJEzQxAQEtuQHrACkAKy8rNQErNSs1AP//AJD/5wVfBzMCNgA2AAABFwazAiEAAAAZQAwCAQA+PRYWQAECAj65AeoAKQArASs1NQD//wBO/+gEAwcCAjYAVgAAADcA3wCcAAABFwDaAM8BagApQBgCADQ3MTNAAQAvLhMTQAI0QAkTNDQBAS+5AesAKQArLys1ASs1KzUA//8AkP67BV8HAgI2ADYAAAA3ANoBVAFqARcDEQPUAAAAH0ARAgA9PjU1QAEAODsWFkABATi5AeoAKQArASs1KzUA//8ATv67BAMFmAI2AFYAAAA3ANoAiAAAARcDEQMgAAAAH0ARAgAyMykpQAEALTATE0ABAS25AesAKQArASs1KzUA//8A/wAABaQHAgI2ADcAAAEXANoBcgFqABZACgEACAsBBkABAQi5AeoAKQArASs1//8Ac//uApIHAgI2AFcAAAEXANr/2AFqABZACgEAGx4OD0ABARu5AeoAKQArASs1//8A//67BaQFugI2ADcAAAEXAxEDSAAAAAu2AQAJCgAHQAErNQD//wA4/rsCkgWoAjYAVwAAARcDEQH0AAAAC7YBABwcBwdAASs1AP//AMn+1gWkBboCNgA3AAABFwWUAokAAAALtgEACwgAB0ABKzUA////qP7WApIFqAI2AFcAAAEXBZQBaAAAAAu2AQAeGwcBQAErNQD//wCu/mkFpAW6AjYANwAAARcFoAKIAAAAC7YBAA0OAAdAASs1AP///3D+aQKSBagCNgBXAAABFwWgAUoAAAALtgEAICAHB0ABKzUA//8Axv5pBgkFugI2ADgAAAEXBZcDHgAAAA23AgEAHRwSEkABKzU1AP//AID+aQR2BCYCNgBYAAABFwWXAlgAAAANtwIBACEaBRhAASs1NQD//wDG/mkGCQW6AjYAOAAAARcFowMfAAAAC7YBACQZEhJAASs1AP//AH3+aQR2BCYCNgBYAAABFwWjAmQAAAALtgEAJSUFBUABKzUA//8Axv5pBgkFugI2ADgAAAEXBaADDAAAAAu2AQAeHxISQAErNQD//wCA/mkEdgQmAjYAWAAAARcFoAJ6AAAAC7YBAB4eBQVAASs1AP//AMb/5gYJBycCNgA4AAABFwawAq0AAAAZQAwCAQAmHQEMQAECAia5AeoAKQArASs1NQD//wCA/+gEdgcOAjYAWAAAADcA1wDwAAABFwCNAXIBVAApQBgCADMzGiVAAQAaJQkWQAIwQAkTNDABARq5AesAKQArLys1ASs1KzUA//8Axv/mBgkHNAI2ADgAAAEXBrQCowAAABxADgMCAQAjIgMMQAECAwMjuQHqACkAKwErNTU1//8AgP/oBHYGYAI2AFgAAAA3ANgA8AAAARcAjgEEAMgALUAaAwIAHiUbHEABABodCRZAAwIeQAkONB4BARq5AesAKQArLys1NQErNSs1NQD//wD+AAAGDgcWAjYAOQAAARcA1wGKAXAAFkAKAQALFgIIQAEBC7kB6gApACsBKzX//wCiAAAEeQWmAjYAWQAAARcA1wCgAAAAFkAKAQALFgIIQAEBC7kB6wApACsBKzX//wD+/rsGDgW6AjYAOQAAARcDEQOYAAAAC7YBAAwNAApAASs1AP//AKL+uwR5BCYCNgBZAAABFwMRAtAAAAALtgEADA0ACkABKzUA//8BAAAACH4HAgI2ADoAAAEXANoC2gFqABZACgEAHyIMDUABAR+5AeoAKQArASs1//8AnwAABjcFmAI2AFoAAAEXANoBhgAAABZACgEAGx4KC0ABARu5AesAKQArASs1//8BAP67CH4FugI2ADoAAAEXAxEEigAAAAu2AQAgIR4YQAErNQD//wCf/rsGNwQmAjYAWgAAARcDEQPAAAAAC7YBABwdGhRAASs1AP///78AAAYnBwICNgA7AAABFwDaAYcBagAWQAoBABYZAwtAAQEWuQHqACkAKwErNf////0AAARNBZgCNgBbAAABFwDaAKAAAAAWQAoBABATAwdAAQEQuQHrACkAKwErNf///78AAAYnBwICNgA7AAABFwCOAYgBagAZQAwCAQAWHQMLQAECAha5AeoAKQArASs1NQD////9AAAETQWYAjYAWwAAARcAjgCPAAAAGUAMAgEAEBcDB0ABAgIQuQHrACkAKwErNTUA//8A7wAABi8HAgI2ADwAAAEXANoBkAFqABZACgEADRADCUABAQ25AeoAKQArASs1//8AAP5RBH0FmAI2AFwAAAEXANoAtAAAABZACgEAFRgKDkABARW5AesAKQArASs1//8AMgAABRgHJAI2AD0AAAEXANYBLQFqABZACgEAFhkMDUABARa5AeoAKQArASs1//8AKAAABBkFugI2AF0AAAEXANYAlgAAABZACgEAEhUICUABARK5AesAKQArASs1//8AMv67BRgFugI2AD0AAAEXAxEDcQAAAAu2AQAXGAAVQAErNQD//wAo/rsEGQQmAjYAXQAAARcDEQL4AAAAC7YBABMUABFAASs1AP//ADL+1gUYBboCNgA9AAABFwWUArIAAAALtgEAGRYAFUABKzUA//8AKP7WBBkEJgI2AF0AAAEXBZQCLQAAAAu2AQAVEgARQAErNQD//wBE/tYEOwW6AjYASwAAARcFlAJHAAAAC7YBABwZGA1AASs1AP//AHP/7gMxBwICNgBXAAABFwCO/+wBagAZQAwCAQAfHw8PQAECAhu5AeoAKQArASs1NQD//wCfAAAGNwXeAjYAWgAAARcA2wF8AAAAGUAMAgEAJCQKC0ABAgIkuQHrACkAKwErNTUA//8AAP5RBH0F3gI2AFwAAAEXANsAqwAAABlADAIBAB4eCg5AAQICHrkB6wApACsBKzU1AP//AFr/6AQ2Bd4CNgBEAAABFwTEAM8AAAAWQAoCADk9GhpAAgE5uQHrACkAKwErNf//ADYAAAMcBwICNgHVAAABFwDaAGgBagAWQAoBAA8SBQVAAQEPuQHqACkAKwErNf//AGb/6ATLBh4CNgEuAAABFwf5AMgAZAAWQAoCACoqEBBAAgEjuQHrACkAKwErNf//AGb/6ATLBh4CNgEuAAABFwgzALoAZAAWQAoCACsrEBBAAgEmuQHrACkAKwErNf//AGb/6ATLBh4CNgEuAAABFwgIAMgAZAAZQAwDAgAjIxAQQAIDAie5AesAKQArASs1NQD//wBm/+gEywYeAjYBLgAAARcIFQDIAGQAGUAMAwIAIyMQEEACAwIquQHrACkAKwErNTUA//8AZv/oBMsGHgI2AS4AAAEXCAkA5gBkABlADAMCACMjEBBAAgMCJ7kB6wApACsBKzU1AP//AGb/6ATLBh4CNgEuAAABFwgWAOYAZAAZQAwDAgAjIxAQQAIDAiq5AesAKQArASs1NQD//wBm/+gEywcsAjYBLgAAARcICgDIAGQAGUAMAwIAQEAQEEACAwI5uQHrACkAKwErNTUA//8AZv/oBMsHLAI2AS4AAAEXCBcAyABkABlADAMCAEFBEBBAAgMCPLkB6wApACsBKzU1AP///9cAAATvBboCNgAkAAABFgf5nAAADrkAAv8LtA8PAQFAASs1////1wAABO8FugI2ACQAAAEWCDOcAAAOuQAC/wu0Dw8BAUABKzX//wC4AAAGGwW6ADcAJAEsAAABFggIAAAAELEDArj/BbQPDwEBQAErNTX//wDSAAAGGwW6ADcAJAEsAAABFggVAAAAELEDArj/BbQPDwEBQAErNTX//wC4AAAGGwW6ADcAJAEsAAABFggJAAAAELEDArj/HLQPDwEBQAErNTX//wDSAAAGGwW6ADcAJAEsAAABFggWAAAAELEDArj/HLQPDwEBQAErNTX//wDjAAAGGwbIADcAJAEsAAABFggKAAAAELEDArj/RbQPDwEBQAErNTX//wDjAAAGGwbIADcAJAEsAAABFggXAAAAELEDArj/RbQPDwEBQAErNTX//wBF/+gDqQYeAjYBMAAAARcH+QC0AGQAFkAKAQAtLSAgQAEBJrkB6wApACsBKzX//wBF/+gDqQYeAjYBMAAAARcIMwCgAGQAFkAKAQAuLiAgQAEBKbkB6wApACsBKzX//wBF/+gDvwYeAjYBMAAAARYICHhkABlADAIBACYmICBAAQICKrkB6wApACsBKzU1AP//AEX/6AO/Bh4CNgEwAAABFggVeGQAGUAMAgEAJiYgIEABAgItuQHrACkAKwErNTUA//8ARf/oBBIGHgI2ATAAAAEXCAkAtABkABlADAIBACYmICBAAQICKrkB6wApACsBKzU1AP//AEX/6AQSBh4CNgEwAAABFwgWALQAZAAZQAwCAQAmJiAgQAECAi25AesAKQArASs1NQD//wCCAAAGeQW6ADcAKADIAAABFwf5/xsAAAAOuQAB/0m0DAwBAUABKzX//wCrAAAGeQW6ADcAKADIAAABFwgz/xsAAAAOuQAB/0m0DAwBAUABKzX//wClAAAICQW6ADcAKAJYAAABFggI7QAAELECAbj/TbQMDAEBQAErNTX//wC/AAAICQW6ADcAKAJYAAABFggV7QAAELECAbj/TbQMDAEBQAErNTX//wClAAAICQW6ADcAKAJYAAABFggJ7QAAELECAbj/ZLQMDAEBQAErNTX//wC/AAAICQW6ADcAKAJYAAABFggW7QAAELECAbj/ZLQMDAEBQAErNTX//wBF/mkEOgYeAjYCGAAAARcH+QEYAGQAFkAKAQAhFgUFQAEBGrkB6wApACsBKzX//wBF/mkEOgYeAjYCGAAAARcIMwEYAGQAFkAKAQAiFgUFQAEBHbkB6wApACsBKzX//wBF/mkEOgYeAjYCGAAAARcICADwAGQAGUAMAgEAGBgFBUABAgIeuQHrACkAKwErNTUA//8ARf5pBDoGHgI2AhgAAAEXCBUA8ABkABlADAIBABgYBQVAAQICIbkB6wApACsBKzU1AP//AEX+aQSUBh4CNgIYAAABFwgJATYAZAAZQAwCAQAaGQUFQAECAh65AesAKQArASs1NQD//wBF/mkElAYeAjYCGAAAARcIFgE2AGQAGUAMAgEAGhkFBUABAgIhuQHrACkAKwErNTUA//8ARf5pBJ8HLAI2AhgAAAEXCAoBGABkABlADAIBADcsBQVAAQICMLkB6wApACsBKzU1AP//AEX+aQSfBywCNgIYAAABFwgXARgAZAAZQAwCAQA4LAUFQAECAjO5AesAKQArASs1NQD//wCCAAAG0AW6ADcAKwDIAAABFwf5/xsAAAAOuQAB/0+0DAwBAUABKzX//wCrAAAG0AW6ADcAKwDIAAABFwgz/xsAAAAOuQAB/0+0DAwBAUABKzX//wClAAAIYAW6ADcAKwJYAAABFggI7QAAELECAbj/U7QMDAEBQAErNTX//wC/AAAIYAW6ADcAKwJYAAABFggV7QAAELECAbj/U7QMDAEBQAErNTX//wClAAAIYAW6ADcAKwJYAAABFggJ7QAAELECAbj/arQMDAEBQAErNTX//wC/AAAIYAW6ADcAKwJYAAABFggW7QAAELECAbj/arQMDAEBQAErNTX//wDQAAAIYAbIADcAKwJYAAABFggK7QAAELECAbj/k7QMDAEBQAErNTX//wDQAAAIYAbIADcAKwJYAAABFggX7QAAELECAbj/k7QMDAEBQAErNTX//wA9AAACSQYeAjYCGgAAARYH+cRkABZACgEACQkBAUABAQi5AesAKQArASs1//8APQAAAjcGHgI2AhoAAAEWCDOwZAAWQAoBAAsKAgJAAQELuQHrACkAKwErNf//AD0AAAMLBh4CNgIaAAABFggIxGQAGUAMAgEACAgBAkABAgIMuQHrACkAKwErNTUA//8APQAAAwsGHgI2AhoAAAEWCBXEZAAZQAwCAQAICAECQAECAg+5AesAKQArASs1NQD//wA9AAADNgYeAjYCGgAAARYICdhkABlADAIBAAgIAQJAAQICDLkB6wApACsBKzU1AP//AD0AAAM2Bh4CNgIaAAABFggW2GQAGUAMAgEACAgBAkABAgIPuQHrACkAKwErNTUA//8APQAAA0sHLAI2AhoAAAEWCArEZAAZQAwCAQAfHwEBQAECAh65AesAKQArASs1NQD//wA9AAADSwcsAjYCGgAAARYIF8RkABlADAIBACEhAgJAAQICIbkB6wApACsBKzU1AP//AIIAAAMzBboANwAsAMgAAAEXB/n/GwAAAA65AAH/MLQEBAEBQAErNf//AKsAAAMzBboANwAsAMgAAAEXCDP/GwAAAA65AAH/MLQEBAEBQAErNf//AKUAAATDBboANwAsAlgAAAEWCAjtAAAQsQIBuP80tAQEAQFAASs1Nf//AL8AAATDBboANwAsAlgAAAEWCBXtAAAQsQIBuP80tAQEAQFAASs1Nf//AKUAAATDBboANwAsAlgAAAEWCAntAAAQsQIBuP9LtAQEAQFAASs1Nf//AL8AAATDBboANwAsAlgAAAEWCBbtAAAQsQIBuP9LtAQEAQFAASs1Nf//ANAAAATDBsgANwAsAlgAAAEWCArtAAAQsQIBuP90tAQEAQFAASs1Nf//ANAAAATDBsgANwAsAlgAAAEWCBftAAAQsQIBuP90tAQEAQFAASs1Nf//AGT/6ARSBh4CNgBSAAABFwf5APAAZAAWQAoCACwsBARAAgEluQHrACkAKwErNf//AGT/6ARSBh4CNgBSAAABFwgzAPAAZAAWQAoCAC0tBARAAgEouQHrACkAKwErNf//AGT/6ARSBh4CNgBSAAABFwgIAMgAZAAZQAwDAgAlJQQEQAIDAim5AesAKQArASs1NQD//wBk/+gEUgYeAjYAUgAAARcIFQDIAGQAGUAMAwIAJSUEBEACAwIsuQHrACkAKwErNTUA//8AZP/oBGIGHgI2AFIAAAEXCAkBBABkABlADAMCACUlBARAAgMCKbkB6wApACsBKzU1AP//AGT/6ARiBh4CNgBSAAABFwgWAQQAZAAZQAwDAgAlJQQEQAIDAiy5AesAKQArASs1NQD//wCC/+cGkgXTADYAMmQAARcH+f8bAAAAC7YCgSAgAABAASs1AP//AKv/5waSBdMANgAyZAABFwgz/xsAAAALtgKBICAAAEABKzUA//8Apf/nCCIF0wA3ADIB9AAAARYICO0AAA23AwKBICAAAEABKzU1AP//AL//5wgiBdMANwAyAfQAAAEWCBXtAAANtwMCgSAgAABAASs1NQD//wCl/+cHvgXTADcAMgGQAAABFggJ7QAAELEDArj/9rQhIQAAQAErNTX//wC//+cHvgXTADcAMgGQAAABFggW7QAAELEDArj/9rQhIQAAQAErNTX//wCW/+gEcgYeAjYCIwAAARcH+QEEAGQAFkAKAQAeGQEMQAEBHbkB6wApACsBKzX//wCW/+gEcgYeAjYCIwAAARcIMwEEAGQAFkAKAQAiHwEMQAEBILkB6wApACsBKzX//wCW/+gEcgYeAjYCIwAAARcICADcAGQAGUAMAgEAIhkBDEABAgIhuQHrACkAKwErNTUA//8Alv/oBHIGHgI2AiMAAAEXCBUA3ABkABlADAIBACYZAQxAAQICJLkB6wApACsBKzU1AP//AJb/6ASKBh4CNgIjAAABFwgJASwAZAAZQAwCAQAiIgEBQAECAiG5AesAKQArASs1NQD//wCW/+gEigYeAjYCIwAAARcIFgEsAGQAGUAMAgEAJiYBAUABAgIkuQHrACkAKwErNTUA//8Alv/oBJ8HLAI2AiMAAAEXCAoBGABkABlADAIBADQwAQxAAQICM7kB6wApACsBKzU1AP//AJb/6AR3BywCNgIjAAABFwgXAPAAZAAZQAwCAQA4NQEMQAECAja5AesAKQArASs1NQD//wCrAAAHWwW6ADcAPAEsAAABFwgz/xsAAAAOuQAB/4e0DQ0CAkABKzX//wC/AAAIhwW6ADcAPAJYAAABFggV7QAAELECAbj/7bQNDQICQAErNTX//wC/AAAI6wW6ADcAPAK8AAABFggW7QAAELECAbj/oLQNDQICQAErNTX//wDjAAAIhwbIADcAPAJYAAABFggXAAAAELECAbj/QLQjIwICQAErNTX//wBk/+gGGwYeAjYCJgAAARcH+QHgAGQAFkAKAQAuLgsLQAEBLbkB6wApACsBKzX//wBk/+gGGwYeAjYCJgAAARcIMwHMAGQAFkAKAQAyMgsLQAEBMLkB6wApACsBKzX//wBk/+gGGwYeAjYCJgAAARcICAHMAGQAGUAMAgEALS0LDEABAgIxuQHrACkAKwErNTUA//8AZP/oBhsGHgI2AiYAAAEXCBUBzABkABlADAIBAC0tCwxAAQICNLkB6wApACsBKzU1AP//AGT/6AYbBh4CNgImAAABFwgJAfQAZAAZQAwCAQAuLgsMQAECAjG5AesAKQArASs1NQD//wBk/+gGGwYeAjYCJgAAARcIFgH0AGQAGUAMAgEALi4LDEABAgI0uQHrACkAKwErNTUA//8AZP/oBhsHLAI2AiYAAAEXCAoB4ABkABlADAIBAERECwtAAQICQ7kB6wApACsBKzU1AP//AGT/6AYbBywCNgImAAABFwgXAeAAZAAZQAwCAQBLSwsMQAECAka5AesAKQArASs1NQD//wBrAAAGbwXTADYCDWQAARcH+f8bAAAAC7YBfB4eBARAASs1AP//AGsAAAZvBdMANgINZAABFwgz/xsAAAALtgF8Hh4EBEABKzUA//8ApQAAB/8F0wA3Ag0B9AAAARYICO0AABCxAgG4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AQxAAw8hHyECIQECAhm5AesAKQArL101ASs1NSs1////5P5pBHcGHgI2AiEAAAEXB/kBGABkABZACgIAJycGBkACASC5AesAKQArASs1////5P5pBHcGHgI2AiEAAAEXCDMA8ABkABZACgIAJR0GBkACASO5AesAKQArASs1//8Alv/oBHIFpgI2AiMAAAEXANcA3AAAABZACgEAGSQBDEABARm5AesAKQArASs1//8Alv/oBHIHEAI2AiMAAAA3AI4A0gAAARcA1wEEAWoALEAaAwAhLBofQAIBABseAQxAAyFACQ40IQECAhm5AesAKQArLys1ASs1NSs1//8A7wAABi8G+AI2ADwAAAEXANkBpAFqABZACgEADRUDCUABARi5AeoAKQArASs1//8A7wAABi8GwgI2ADwAAAEXANgBkAFqABZACgEADRADCUABAQ25AeoAKQArASs1//8AqQAAB1sFugA3ADwBLAAAARcAQ/9/AAAADrkAAf/etBAQAgJAASs1//8AfAAAB78FugA3ADwBkAAAARcAjf8iAAAADrkAAf+dtA8PAgJAASs1//8AqwAABl0FugA3ADMAyAAAARcIM/8bAAAADrkAAv9PtBsbAQFAASs1AAMAYQSnA5cFvAADAAcACwBAQCELCggJBYAHAQcGBQABAwIEBQNwCIAIAghACZ8HAQeAAgUAL8AazV3QGt1dwAEv3d4yzTIQ3c1dEN4yzTIxMAEHIzcHIwMzBwcjNwOXKbApeXp3t/opsCkFaMHBwQEVVMHBAAADAGEEpwOXBbwAAwAHAAsARkAmCwoICQaABAEEBwYFAAEDnwKvAgICBQNwCIAIAghACZ8HAQeAAgYAL8AazV3QGt1dwAEv3l0yzTIQ3d3NXRDeMs0yMTABByM3JwMjEwcHIzcDlymwKSDterDWKbApBWjBwVT+6wEVVMHBAAABASoEpwJ6BboAAwAmQBcBAI4CAV8CbwJ/AgMCAwAAEAAgAAMAAgAvzV0BL81dXd3NMTABIwMzAnqNw9wEpwETAP//AGT+aQYbBboCNgImAAAANwBDAW0AAAEXB/oB9AAAAB9AEQIALS0gIEABACwsDAxAAQEpuQHrACkAKwErNSs1AP//AGT+aQYbBCYCNgImAAABFwf6AfQAAAALtgEAKSkgIEABKzUA//8AZP5pBhsFugI2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AQcA1gFJAFAAFkAKAQAwLg8PQAEBKrkCsgApACsBKzX//wB9/+4EzAXnAiYKIgAAAQcA2gE0AE8AFkAKAQAqLQ8PQAEBKrkCsgApACsBKzX//wBPAAAEzwYJAiYKIwAAAQcA3wDtAE8AFkAKAgAdGgAGQAIBHLkCsgApACsBKzX//wA2AAAEzwRxAgIKPwAA//8ATgAABK4FpwImCiQAAAEHANgBAwBPABZACgEADA8CA0ABAQy5ArIAKQArASs1//8ATgAABK4F0gImCiQAAAEHANkBFABEABZACgEADBQCA0ABARe5ArIAKQArASs1//8ATgAABK4F6AImCiQAAAEHANoBBgBQABZACgEADA8CA0ABAQy5ArIAKQArASs1//8ATv5SBK4EcQImCiQAAAEHAN4B9gAAAA65AAH/pLQYGAAAQAErNf//AE4AAASuBgoCJgokAAABBwDfASwAUAAWQAoBAA4NAgNAAQEOuQKyACkAKwErNf//AHr/7gUMBdICJgomAAABBwDZAVgARAAWQAoBADIyDQ1AAQEyuQKyACkAKwErNf//AHr/7gUMBgoCJgomAAABBwDWAVsAUAAWQAoBAC0rDQ1AAQEnuQKyACkAKwErNf//AHr+VwUMBIMCJgomAAABBwHuAXEAAAALtgEAJzYDA0ABKzUA//8Aev/uBQwF5wImCiYAAAEHANoBVwBPABZACgEAJyoNDUABASe5ArIAKQArASs1//8ATgAABP8GCgImCicAAAEHANYBPgBQABZACgEADA8HCkABAQy5ArIAKQArASs1AAIATgAABUIEcQATABcAyEBsEn4RAR8RARERExAPAA8CFBUNDg8AACMBDhQBDg4AARABcAGQAQQBAQUZBgkKBQoDFxYMCwQLBAQjBQoUBQUKCgUIkAegBwJxB4EHAgcHLwU/BQIFEA0JDCwWEwbAFQEVFwMCLBQXFwUPDgsKuAKwtAQBAAUKAD/ExMQ/xMTEEjkvxP3EEN5dxMTE/cTExAEvXTMvXV0zETOHECt9EMSHxMTExBCHxMQREgE5GC9dM4crfRDEEMTExMQQh8TEATMYL11dMzEwISMTIQMjEyM3MzczByE3MwczByMHNyEHBA64b/2yb7qwbB9tIbohAk4huCFkH2XXH/2yHwIK/fYDQJSdnZ2dlJaWlgD//wBOAAADEwXcAiYKKAAAAQYA1682ABZACgEABA8CA0ABAQS5ArIAKQArASs1//8ATgAAAwoFpwImCigAAAEGANi3TwAWQAoBAAQHAgNAAQEEuQKyACkAKwErNf//AE4AAAL6BdMCJgooAAABBgDZyEUAFkAKAQAPDwIDQAEBD7kCsgApACsBKzX///+1/lIB+QRxAiYKKAAAAQcA3v91AAAAC7YBAA8QAQBAASs1AP//AE4AAAJQBecCJgooAAABBgDatE8AFkAKAQAEBAICQAEBBLkCsgApACsBKzX//wBO/+4FaQRxACYKKAAAAQcKKQHQAAAAC7YB8gwMAABAASs1AP//ACr/7gRnBgQCJgopAAABBwDWAU0ASgAWQAoBAB8dFxhAAQEZuQKyACkAKwErNf//AE/+VwUYBHECJgoqAAABBwHuAQ8AAAALtgEAHhEEAUABKzUA//8ATwAAA2IGCgImCisAAAEGAI0VUAAWQAoBAAkJAwNAAQEGuQKyACkAKwErNf//AE/+VwNiBHECJgorAAABBwHuAK8AAAALtgEAGAsBAEABKzUA//8ATwAAA8YEcQImCisAAAEHAA8CXgOjABJACgH+BwcDA0ABBwYAPzUBKzX//wBPAAADbARxAiYKKwAAAQcA2gDQ/VYAEUAJAZMHBwMDQAEGAC81ASs1AP//AE4AAAT7BgkCJgotAAABBwCNAW4ATwAWQAoBAAwPBgtAAQEMuQKyACkAKwErNf//AE7+VwT7BHECJgotAAABBwHuASEAAAALtgEAHhEEAUABKzUA//8ATgAABPsGCQImCi0AAAEHAN8BVQBPABZACgEADg0GC0ABAQ65ArIAKQArASs1AAEATv/tBMQEhAAnAIlAUYodAXkdASkYiRgCNQ0BExISJgogABsQGwIbGycpJSQCASYBJiYjJwAUJwCIAAF0AAFlAAFWAAFHAAEALyc/JwInExYfEg8PJicKHh8CBwcBALgCsAA/xDMvM+0/xDMvM+0yAS9dM11dXV1dhyt9EMSHxA7ExBESATkYL13tEjkvMzEwXV1dXQEzBz4DMzIWFRQCBgYjIiYnNxYWMzI+AjU0JiMiDgIHBgcDIwFAuhs0Yl9fMau1RITBfVdxI3AbPSZLeFQud3gyXlREFiwhhLoEcX0qNyEO0cao/ubMciMdixMZW57UeIyRFyo7JEac/ZQA//8Ae//tBRYFpwImCi4AAAEHANgBTwBPABZACgIALC8WFkACASy5ArIAKQArASs1//8Ae//tBRYF0wImCi4AAAEHANkBUwBFABZACgIANzcWFkACATe5ArIAKQArASs1//8Ae//tBRYGCQImCi4AAAEHAN0BawBPABlADAMCAC8zFhZAAgMCLLkCsgApACsBKzU1AP//AE4AAATTBgkCJgoxAAABBwCNAS8ATwAWQAoCACAjCxtAAgEguQKyACkAKwErNf//AE7+VwTTBHECJgoxAAABBwHuAUQAAAALtgIAMiUJAUABKzUA//8ATgAABNMGCQImCjEAAAEHAN8BBgBPABZACgIAIiEfG0ACASK5ArIAKQArASs1//8ANv/uBD4GCgImCjIAAAEHAI0A/wBQABZACgEAOj02NkABATq5ArIAKQArASs1//8ANv/uBD4GCQImCjIAAAEHANYA0wBPABZACgEAOj02NkABATq5ArIAKQArASs1//8ANv5XBD4EgwImCjIAAAEHANwAggAAAAu2AQA7PBkZQAErNQD//wA2/+4EPgYKAiYKMgAAAQcA3wDcAFAAFkAKAQA8OzY2QAEBPLkCsgApACsBKzX//wA2/fIEPgSDAiYKMgAAAQcB7QDvAAAAC7YBADs8GRlAASs1AP//AKD+VwSLBHECJgozAAABBgDcUwAAC7YBAAkKAwJAASs1AP//AKv98gSLBHECJgozAAABBwHtAKIAAAALtgEACQoDAkABKzUA//8AqwAABIsGCQImCjMAAAEHAN8AzABPABZACgEACgkEAUABAQq5ArIAKQArASs1AAEAqwAABIsEcQAPAHFANg4NDQwEAwMBDwAAAQgLDAcMBQIBBgEGBiMHDBQHBwwMBwoJCU8HARAHAQcLAiwFCAgHAQwsDrgCsLIGBwoAP8Q//cQSOS/E/cQBL11dMy8zETOHECt9EMSHxMQQh8TEEQEzGC8zETMvMxEzLzMxMAEhAyEHIQMjEyE3IRMhNyEEaf57TwEEH/78Ybhh/vsfAQVP/n8iA74D0f6NlP42AcqUAXOg//8Agv/uBNsF3AImCjQAAAEHANcBGQA2ABZACgEAIiwQIUABASK5ArIAKQArASs1//8Agv/uBNsFpwImCjQAAAEHANgBGQBPABZACgEAIiUQIUABASK5ArIAKQArASs1//8Agv/uBNsF0gImCjQAAAEHANkBGQBEABZACgEAIikQIUABAS25ArIAKQArASs1//8Agv/uBNsGWAImCjQAAAEHANsBGwB6ABlADAIBACIoECFAAQICK7kCsgApACsBKzU1AP//AIL/7gTrBgoCJgo0AAABBwDdAUoAUAAZQAwCAQAiKRAhQAECAiK5ArIAKQArASs1NQD//wCC/lIE2wRxAiYKNAAAAQcA3gELAAAAC7YBADIyBwdAASs1AP//AKIAAAa/BgkCJgo2AAABBwDWAcgATwAWQAoBACwqGRpAAQEmuQKyACkAKwErNf//AKIAAAa/BgkCJgo2AAABBwBDAbAATwAWQAoBACkpGhpAAQEmuQKyACkAKwErNf//AKIAAAa/BgkCJgo2AAABBwCNAgAATwAWQAoBACYmGRlAAQEmuQKyACkAKwErNf//AKIAAAa/BZsCJgo2AAABBwCOAbYAAwAZQAwCAQApKhkaQAECAia5ArIAKQArASs1NQD//wCOAAAE6gYJAiYKOAAAAQcA1gDTAE8AFkAKAQAPEgYOQAEBD7kCsgApACsBKzX//wCOAAAE6gWbAiYKOAAAAQcAjgDFAAMAGUAMAgEADxYGDkABAgIPuQKyACkAKwErNTUA//8AjgAABOoGCQImCjgAAAEHAEMAnwBPABZACgEADxIGDkABAQ+5ArIAKQArASs1////uQAABFcGCQImCjkAAAEHAI0A8QBPABZACgEAExYJCkABARO5ArIAKQArASs1////uQAABFcF6AImCjkAAAEHANoAvwBQABZACgEAExYJCkABARO5ArIAKQArASs1////uQAABFcGCgImCjkAAAEHAN8AyABQABZACgEAFRQJCkABARW5ArIAKQArASs1////uQAABCkGfgImCiAAAAAnANsA0//JAQcAjQEnAMQAJUAUBAAuLiIiQAMCABYcBgdABC4DAiW4ArEAPzU1LzUBKzU1KzUA////rwAABtAGCQImCjoAAAEHAI0CrwBPABZACgIAFBcRCUACARS5ArIAKQArASs1//8ABP/lBWkGCgImCj0AAAEHAI0BggBQABZACgMANjkAAEADATa5ArIAKQArASs1////uQAABCkEcQIGCiAAAP//AE4AAARmBHECBgohAAAAAQBPAAAEOARxAAUAOEAYBQAABwIB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//8AWAAABdUHJwImCg4AAAEHAN8CLAFtABZACgEAIyIXF0ABASO5AeoAKQArASs1//8As//nBjAHJwImChAAAAEHAEMB0wFtABZACgEAISQgDkABASG5AeoAKQArASs1//8As//nBjAHJwImChAAAAEHAI0CIgFtABZACgEAISQgDkABASG5AeoAKQArASs1//8As//nBjAG3gImChAAAAEHAI4B4AFGABlADAIBACEoIA5AAQICIbkB6gApACsBKzU1AP//ALP/5wYwBvECJgoQAAABBwDXAegBSwAWQAoBACEsIA5AAQEhuQHqACkAKwErNf//ALP/5wYwBsICJgoQAAABBwDYAeIBagAWQAoBACEkIA5AAQEhuQHqACkAKwErNf//ALP/5wYwBxcCJgoQAAABBwDZAfsBiQAWQAoBACEpIA5AAQEsuQHqACkAKwErNf//ALP/5wYwB3ACJgoQAAABBwDbAekBkgAZQAwCAQAhJyAOQAECAiq5AeoAKQArASs1NQD//wCz/+cGMAcmAiYKEAAAAQcA3QIaAWwAGUAMAgEAISggDkABAgIhuQHqACkAKwErNTUA//8As/5SBjAFugImChAAAAEHAN4DQAAAAAu2AQAsLRAPQAErNQD////sAAADrgcnAiYKHQAAAQcAQwBCAW0AFkAKAQAPDwMDQAEBDLkB6gApACsBKzX////sAAADrgcnAiYKHQAAAQcAjQClAW0AFkAKAQAMDAoKQAEBDLkB6gApACsBKzX////sAAADrgcnAiYKHQAAAQcA1gCPAW0AFkAKAQAMDwABQAEBDLkB6gApACsBKzX////sAAADugbeAiYKHQAAAQcAjgB1AUYAGUAMAgEADBMAAUABAgIMuQHqACkAKwErNTUA////7AAAA9YHEAImCh0AAAEHANcAcgFqABZACgEADBcAAUABAQy5AeoAKQArASs1////7AAAA7QHFwImCh0AAAEHANkAggGJABZACgEADBQAAUABARe5AeoAKQArASs1////7P5SA64FugImCh0AAAEGAN4oAAALtgEAHBwJBEABKzUA////7AAAA64HAgImCh0AAAEHANoAbwFqABZACgEADA8AAUABAQy5AeoAKQArASs1////7AAAA64FugIGCh0AAP//ACgAAASGBboAJwodANgAAAEHAI3+zgAAABS5AAH/zrcODgAAQAENAgA/NQErNf///+wAAAO6Bt4CJgodAAABBwCOAHUBRgAZQAwCAQAMEwABQAECAgy5AeoAKQArASs1NQD////sAAADrgW6AgYKHQAA////7AAAA7oG3gImCh0AAAEHAI4AdQFGABlADAIBAAwTAAFAAQICDLkB6gApACsBKzU1AP//AG//8gMiBxUCJgoeAAABBwCNACgBWwAWQAoBABgbFhdAAQEYuQHqACkAKwErNf///8P+VwImBboCJgoeAAABBgHu4wAAC7YBAConEgNAASs1AP//AG//8gNjBboAJgoeAAABBwC2ASwABgASQAoBbxkZFxdAARkCAD81ASs1//8Ab//yAvUFugAmCh4AAAEHANoAWf1WAAu2AQAZGRcXQAErNQAAAQAe//ICSwW6AB8Aq0BpCQoKAR8bAR4XHBsBHRgZGhQdGBYaFB4XHp4dAY8dAR4dLh1+HQMPHQEdHRsVGhQaABsBARsbIxoUFBoaFKoaAZgaAXcaARYaARoUGHEXAQAXARcXFB4dGBcdFx0XBhsaAAkBBh8UCg0LAD8zM+0yMj/EEjk5Ly8QzRDNAS8zL11dMxEzXV1dXYcQK30QxIcOxBCHDsQRATMYL11dXV0zDw8PDxEzLzMxMAEGBhUUFjMyNjcXBgYjIi4CNTQ2NzcHNzcTMwM3BwcBOggKISsSKRcLKlocOUssEhYMI5Yhlp20fKEioAFjIz4dISoFA5wLCR00Ryk1djqkbJ5sAuD9uXSddAD////sAAADrgcnAiYKHQAAAQcAQwBCAW0AFkAKAQAPDwMDQAEBDLkB6gApACsBKzX////sAAADrgcnAiYKHQAAAQcAjQClAW0AFkAKAQAMDAoKQAEBDLkB6gApACsBKzX////sAAADrgcnAiYKHQAAAQcA1gCPAW0AFkAKAQAMDwABQAEBDLkB6gApACsBKzX////sAAADugbeAiYKHQAAAQcAjgB1AUYAGUAMAgEADBMAAUABAgIMuQHqACkAKwErNTUA////7AAAA9YHEAImCh0AAAEHANcAcgFqABZACgEADBcAAUABAQy5AeoAKQArASs1////7AAAA7QHFwImCh0AAAEHANkAggGJABZACgEADBQAAUABARe5AeoAKQArASs1////7P5SA64FugImCh0AAAEGAN4oAAAL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ADMAJP9oADUAN//bADUAOf/bADUAOv/bADUAPP+0ADcAD/9EADcAEP9EADcAEf9EADcAHf9oADcAHv9oADcAJP9oADcAMv/bADcARP9EADcARv9EADcASP9EADcATP/uADcAUv9EADcAVf9oADcAVv9EADcAWP9oADcAWv9oADcAXP9oADkAD/9oADkAEP+0ADkAEf9oADkAHf/bADkAHv/bADkAJP+PADkARP+0ADkASP+0ADkATP/bADkAUv+0ADkAVf/bADkAWP/bADkAXP/bADoAD/+0ADoAEP/bADoAEf+0ADoAJP/bADoARP/bADoASP/bADoATP/uADwAA//bADwAD/9EADwAEP9oADwAEf9EADwAHf+0ADwAHv+0ADwAJP+PADwARP9oADwASP+PADwATP/bADwAUv+PADwAU/+PADwAVP+PADwAWP+0ADwAWf+0AEkAtgBMAFUAD/+PAFUAEP/bAFUAEf+0AFUAtgBMAFkAD/9oAFkAEf9oAFoAD/+PAFoAEf+PAFwAD/9oAFwAEf9oALUAtf+0ALYAA/+PALYAVv/bALYAtv+0AMQCLf8GAMQCNv8dAMQCTP7uAMQCUf7XAMQCVP8dASsAD/76ASsAEf76ASsB+ADRASsB+f89ASsB+/89ASsCAf89ASsCGv+gASsCJwBeASwB+f/pASwB+//pASwCAf/pASwCCv+RASwCD/+RAS0B+f+wAS0CCv+RAS0CD/+RAS8BMv/TAS8CFv/bAS8CJP/FAS8CjP/TATACIv/JATIBLv/jATIBL//jATIBMf/jATIBM//jATICEP/jATICF//jATICIP/jATICIv/jATICJv/jATICK//jATMBMv/TATMCFv/bATMCJP/FATMCjP/TAfEAA/+0AfEBLP+WAfEBLf+JAfECBf+WAfECCf85AfECCv74AfECD/74AfECFv/bAfECHv/bAfECJP/bAfUCCv+RAfUCD/+RAfYBLv+PAfYBL/+PAfYBMf+PAfYBM/+PAfYB+ADVAfYB+f9oAfYB+/9oAfYCAf9oAfYCEP+PAfYCEv/bAfYCE//bAfYCGP/bAfYCGv/bAfYCG//bAfYCHf/bAfYCIP+PAfYCJwBqAfYCKf+PAfcCCv+RAfcCD/+RAfkAA/+0AfkAtv+0AfkBLP+WAfkBLf+JAfkCBf+WAfkCCf85AfkCCv74AfkCD/74AfkCFv/bAfkCHv/bAfkCJP/bAfsAA/+0AfsBLP+WAfsCBf+WAfsCCf85AfsCCv74AfsCD/74AgABLP+eAgABLf+DAgABLv/nAgABL//nAgABMf/nAgABM//nAgACBf+eAgACEP/nAgACF//nAgACGf/nAgACH//nAgACIP/nAgACJv/nAgACKf/nAgACK//nAgEAA//bAgEBLP+WAgECBf+WAgECCf85AgECCv74AgECD/74AgUB8f/pAgUB+f/pAgUB+//pAgUCAf/pAgUCCv+RAgUCD/+RAgcAD/76AgcAEf76AgcB+f9oAgcB+/9oAgcCAf9oAggBMv++AgkAD/9GAgkAEP9GAgkAEf9GAgkAHf9oAgkAHv9oAgkBLP/bAgkBLf/bAgkBLv9GAgkBL/+8AgkBMP9GAgkBMf9GAgkBM/9GAgkB+ADVAgkB+f9oAgkB+/9oAgkCAf9oAgkCBf/bAgkCDf/bAgkCEP9GAgkCEf9GAgkCFP9oAgkCFv+oAgkCGP9oAgkCGv/wAgkCHf9oAgkCHv+oAgkCIP9GAgkCI/9oAgkCJP+oAgkCJf9WAgkCJwBeAgkCKP9oAgkCKf9GAgkCKv9oAgoAD/9GAgoAEP9oAgoAEf9GAgoAHf+0AgoAHv+0AgoBLv+PAgoBL/+PAgoBMf+PAgoBM/+PAgoB+ADVAgoB+f9oAgoB+/9oAgoCAf9oAgoCEP+PAgoCEv/bAgoCE//bAgoCFv/bAgoCGP/bAgoCGv/bAgoCG//bAgoCHf/bAgoCIP+PAgoCJwBqAgoCKf+PAgsCJv/bAgsCK//bAgwBLv/VAgwBL//VAgwBMf/VAgwBM//VAgwCEP/VAgwCIP/VAgwCJv/VAgwCKf/VAgwCK//VAg0CCv+RAg0CD/+RAg8BLv+PAg8BL/+PAg8BMf+PAg8BM/+PAg8B+ADVAg8B+f9oAg8B+/9oAg8CAf9oAg8CEP+PAg8CEv/bAg8CGP/bAg8CGv/bAg8CG//bAg8CHf/bAg8CIP+PAg8CJwBqAg8CKf+PAhECIv/JAhcBLv+aAhcBL//FAhcBMP+DAhcBMf+aAhcBMv+LAhcBM/+aAhcCEP+aAhcCEf+DAhcCEv+NAhcCFv/FAhcCGP+NAhcCGf/FAhcCGv+NAhcCHv/FAhcCIP8/AhcCI/+DAhcCJv+aAhcCJwBxAhcCKf+aAhcCKv+DAhcCK/+aAhcCjP+LAhsBLv/nAhsBL//nAhsBMf/nAhsBM//nAhsCEP/nAhsCF//FAhsCH//FAhsCIP/nAhsCIv/FAhsCJv/nAhsCKf/nAhsCK//nAhwBLv/jAhwBL//jAhwBMf/jAhwBM//ZAhwCEP/jAhwCFP++AhwCF//jAhwCH//jAhwCIP/jAhwCIv/jAhwCI/++AhwCJv/jAhwCKP++AhwCKf/jAhwCKv++AhwCK//jAh8BLv/jAh8BL//jAh8BMf/jAh8BM//jAh8CEP/jAh8CF//jAh8CH//jAh8CIP/jAh8CIv/jAh8CKf/jAiABMv/jAiACFv/bAiACJP/FAiACjP/jAiEBMv/TAiECjP/TAiQBLv/dAiQBL//dAiQBMf/dAiQBM//dAiQCEP/dAiQCF//dAiQCIP/dAiQCIv/dAiQCJv/dAiQCKf/dAiQCK//dAiYBMv/TAiYCFv/bAiYCJP/FAiYCjP/TAikBMv/TAikCFv/bAikCJP/FAikCjP/TAisBMv/TAisCFv/bAisCJP/FAisCjP/TAi4AD/8zAi4AEf8zAi4Aqf+NAi4Aqv+NAjQAtv8dAjUAtv9KAjoAtv9gAjoCPgAXAjoCQf+mAjoCSP+NAjoCSf/RAjoCS/+NAjoCTP8zAjoCTf9KAjoCTv+kAjoCUf9KAjoCV/+kAjoCW//pAjoCX//pAjoCaP/pAjoCa//pAjoCbf/pAjoCbv/pAjsCOv+8AjsCPv/TAjsCQP/TAjsCQf/TAjsCRf+8AjsCSP/TAjsCS//TAjsCTP93AjsCTf+NAjsCTv/RAjsCT/+8AjsCUf+NAjsCVP93AjsCV//pAjsCWf+8AjsCXgAXAjsCbf/TAjsCeQAXAjwCOv+8AjwCPv/TAjwCQP+8AjwCQf/TAjwCRf/TAjwCSP/TAjwCS//TAjwCTP93AjwCTf+NAjwCTv/TAjwCT/+8AjwCUf+6AjwCVP8zAjwCWf/TAjwCbf/pAjwCb/+8AjwCcf+8Aj0AD/8zAj0AEf8zAj0AHf/TAj0AHv/pAj0Aqf+NAj0Aqv+NAj0COv9gAj0CPv+mAj0CQf/pAj0CRf+8Aj0CSP+8Aj0CS/+8Aj0CWf/TAj0CWv+8Aj0CXP+kAj0CXv+kAj0CX/+mAj0CYv+mAj0CZf+mAj0CZv+mAj0CZ/+mAj0CaP+NAj0Cav+mAj0Cbf+mAj0Cdf+mAj0Cdv+kAj0CeP+kAj0Cef+kAj4CUf/pAj4CVwAXAj4CYQAtAj4CbQAXAj8CQf/pAkACQf/pAkACSP/TAkACS//TAkACUf/TAkACVAAXAkACbf/pAkECPv+8AkECQP+8AkECRf+8AkECSP/TAkECS//TAkECTP+kAkECTf+kAkECTv/TAkECUf+6AkECWf/TAkECZf/pAkQCSP/pAkQCS//pAkQCTv/RAkQCV//pAkQCbf/pAkQCd//pAkUCTgAXAkUCWwAXAkYCUf/TAkYCWgAXAkYCbQAXAkYCcf/TAkYCdwAXAkgCOv/TAkgCPv+6AkgCQP+8AkgCRf+8AkgCTf93AkgCT/+8AkgCUf+8AkgCWf/TAkgCZf/pAkgCb//TAkoAD/7BAkoAEf7BAkoAHf/pAkoAHv/pAkoAqv+8AkoCOv9gAkoCPv9gAkoCQP+mAkoCQf/TAkoCRf93AkoCRv/pAkoCTP+NAkoCTf+kAkoCTv/pAkoCT/+kAkoCWf/pAkoCXv/pAkoCX//pAkoCaP/pAkoCef/pAksCOv+8AksCPv+8AksCQf/pAksCRf+8AksCRv/pAksCSP/pAksCTP+8AksCTf+NAksCT//TAksCUf+mAksCVP93AksCWgAXAksCbf/pAksCcf/TAkwAD/9KAkwAEf9KAkwAHf/pAkwAHv/pAkwCOv+8AkwCPv/TAkwCQAAXAkwCQf/pAkwCRf+8AkwCRgAXAkwCSP/TAkwCTv+8AkwCV//pAkwCWQAXAkwCWv/TAkwCXP+8AkwCX/+8AkwCYv+8AkwCZP+8AkwCZf+8AkwCZv+8AkwCaP+8AkwCaf+8AkwCav+8AkwCa/+8AkwCbf+8AkwCb/+8AkwCc/+8AkwCdf+8AkwCdv+8AkwCeP+8AkwCef+8Ak0AD/9gAk0AEf9gAk0AHf/TAk0AHv/TAk0COv+8Ak0CPv+8Ak0CQQAXAk0CRf/TAk0CTv/pAk0CVwAXAk0CWQAXAk0CXP/TAk0CXf/TAk0CXv/pAk0CX//TAk0CYP/pAk0CYf/pAk0CYv/pAk0CZP/pAk0CZf+6Ak0CZv/pAk0CZ//pAk0CaP/TAk0Caf/pAk0Cav/pAk0Ca//TAk0Cb//pAk0CcP/pAk0Ccv/pAk0Cc//pAk0CeP/pAk0Cef/pAk4COv+NAk4CPv93Ak4CRf+NAk4CRv/pAk4CTP9gAk4CTf9KAk4CTgAXAk4CUf+6Ak4CWf/TAk4CZf/TAk8CQf/pAk8CSP+6Ak8CS/+6Ak8CTv+8Ak8CaP/TAk8Cbf/TAlACWgBEAlACXwAtAlACaAAtAlMCWgAtAlMCXwAXAlMCbQAXAlQAtv8dAlQCWf+8AlYAtv8GAlYCOv+mAlYCPv/TAlYCQP+NAlYCQf+8AlYCRf/TAlYCRv/TAlYCSP+kAlYCS/+kAlYCTP8dAlYCT/+NAlYCUf8zAlYCV/+8AlYCWf+kAlcCPv+6AlcCQP/RAlcCRf+kAlcCSAAXAlcCTgAtAlcCT/+6AlcCWf/TAlcCXgAtAlcCYAAXAlcCZgAXAlcCeQAXAlgCOv+mAlgCPv+NAlgCQP+8AlgCRf+NAlgCSP/pAlgCS//pAlgCTP93AlgCT/+8AlgCUf+kAloCYf/TAloCZf/pAloCaf/pAloCbf+8AloCcf93AloCd//pAlsCXgAXAlsCYP/pAlsCZf/TAlsCbf/TAlsCb/+8AlsCcf+8AlsCdP+8AlsCef/pAlwCWv/TAlwCW//pAlwCXv/TAlwCX//TAlwCYP/TAlwCYf/TAlwCZf+8AlwCZv/TAlwCaP/TAlwCa//TAlwCbP/pAlwCbf+8AlwCbv/TAlwCcf+NAlwCdP+kAlwCef/TAl0CWv/pAl0CXv/pAl0CX//pAl0CYf/pAl0CZf/pAl0CZv/pAl0CaP/pAl0Ca//pAl0Cef/TAl4Cbf/pAl8CWv/pAl8CXv/pAl8CYP/pAl8CYf/pAl8CZf+8Al8CZv/pAl8Ca//pAl8CbP/pAl8Cbf+8Al8Cbv/pAl8Cb/+mAl8Ccf+NAmACbAAXAmACbQAXAmACcf/TAmACdAAXAmECWv/pAmECW//pAmECXv/pAmECX//pAmECYP/pAmECZf/TAmECZv/pAmECaP/pAmECa//TAmECbf+8AmECbv/pAmECcf+NAmECdP+8AmQCWwAXAmQCa//pAmQCbAAXAmQCcf/TAmUCbf/pAmUCcf+8AmYCYf/pAmYCa//pAmYCbf/pAmYCbv/pAmYCd//pAmgCYP/TAmgCYf/pAmgCZf/TAmgCbf+8AmgCb//TAmgCcf+kAmgCd//pAmgCef/TAmoCYP/pAmoCYf/pAmoCZf/T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AGkAcwAgAG8AcABlAG4AIABzAG8AdQByAGMAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAHUAbgBkAGUAcgAgAHQAaABlACAATQBJAFQAIABMAGkAYwBlAG4AcwBlADsAIABzAGUAZQAgAGUAbQBiAGUAZABkAGUAZAAgAGwAaQBjAGUAbgBzAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAGQAZQB0AGEAaQBsAHMALgBBAHIAaQBhAGwASQB0AGEAbABpAGMATQBvAG4AbwB0AHkAcABlADoAQQByAGkAYQBsACAAUgBlAGcAdQBsAGEAcgAgAEkAdABhAGwAaQBjACAAKABNAGkAYwByAG8AcwBvAGYAdAApAEEAcgBpAGEAbAAgAEkAdABhAGwAaQBjAFYAZQByAHMAaQBvAG4AIAA3AC4AMAAwAEEAcgBpAGEAbAAtAEkAdABhAGwAaQBjAE0AVABBAHIAaQBhAGwAIAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4ATQBvAG4AbwB0AHkAcABlACAAVAB5AHAAZQAgAEQAcgBhAHcAaQBuAGcAIABPAGYAZgBpAGMAZQAgAC0AIABSAG8AYgBpAG4AIABOAGkAYwBoAG8AbABhAHMALAAgAFAAYQB0AHIAaQBjAGkAYQAgAFMAYQB1AG4AZABlAHIAcwAgADEAOQA4ADIATQBpAGMAcgBvAHMAbwBmAHQAIABzAHUAcABwAGwAaQBlAGQAIABmAG8AbgB0AC4AIABZAG8AdQAgAG0AYQB5ACAAdQBzAGUAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGMAcgBlAGEAdABlACwAIABkAGkAcwBwAGwAYQB5ACwAIABhAG4AZAAgAHAAcgBpAG4AdAAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAG8AcgAgAHQAZQByAG0AcwAgAG8AZgAgAHUAcwBlACwAIABvAGYAIAB0AGgAZQAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAcAByAG8AZAB1AGMAdAAsACAAcwBlAHIAdgBpAGMAZQAsACAAbwByACAAYwBvAG4AdABlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABpAHMAIABmAG8AbgB0ACAAdwBhAHMAIABpAG4AYwBsAHUAZABlAGQALgAgAFkAbwB1ACAAbQBhAHkAIABvAG4AbAB5ACAAKABpACkAIABlAG0AYgBlAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAGkAbgAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAZQBtAGIAZQBkAGQAaQBuAGcAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAHQAaABpAHMAIABmAG8AbgB0ADsAIABhAG4AZAAgACgAaQBpACkAIAB0AGUAbQBwAG8AcgBhAHIAaQBsAHkAIABkAG8AdwBuAGwAbwBhAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGEAIABwAHIAaQBuAHQAZQByACAAbwByACAAbwB0AGgAZQByACAAbwB1AHQAcAB1AHQAIABkAGUAdgBpAGMAZQAgAHQAbwAgAGgAZQBsAHAAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0AC4AIABBAG4AeQAgAG8AdABoAGUAcgAgAHUAcwBlACAAaQBzACAAcAByAG8AaABpAGIAaQB0AGUAZAAuAA0ADQBUAGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAbABpAGMAZQBuAHMAZQAsACAAYgBhAHMAZQBkACAAbwBuACAAdABoAGUAIABNAEkAVAAgAGwAaQBjAGUAbgBzAGUAIAAoAGgAdAB0AHAAOgAvAC8AZQBuAC4AdwBpAGsAaQBwAGUAZABpAGEALgBvAHIAZwAvAHcAaQBrAGkALwBNAEkAVABfAEwAaQBjAGUAbgBzAGUAKQAsACAAYQBwAHAAbABpAGUAcwAgAHQAbwAgAHQAaABlACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAgHABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYyAdACAAYQBzACAAagBvAGkAbgB0AGwAeQAgAGQAZQB2AGUAbABvAHAAZQBkACAAYgB5ACAAUgBhAGwAcABoACAASABhAG4AYwBvAGMAawAgAGEAbgBkACAASgBvAGgAbgAgAEgAdQBkAHMAbwBuAC4AIAANAA0AUABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGgAZQByAGUAYgB5ACAAZwByAGEAbgB0AGUAZAAsACAAZgByAGUAZQAgAG8AZgAgAGMAaABhAHIAZwBlACwAIAB0AG8AIABhAG4AeQAgAHAAZQByAHMAbwBuACAAbwBiAHQAYQBpAG4AaQBuAGcAIABhACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAYQBuAGQAIABhAHMAcwBvAGMAaQBhAHQAZQBkACAAZABvAGMAdQBtAGUAbgB0AGEAdABpAG8AbgAgAGYAaQBsAGUAcwAgACgAdABoAGUAICAcAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlIB0AKQAsACAAdABvACAAZABlAGEAbAAgAGkAbgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAdABoAG8AdQB0ACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAHcAaQB0AGgAbwB1AHQAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAdABoAGUAIAByAGkAZwBoAHQAcwAgAHQAbwAgAHUAcwBlACwAIABjAG8AcAB5ACwAIABtAG8AZABpAGYAeQAsACAAbQBlAHIAZwBlACwAIABwAHUAYgBsAGkAcwBoACwAIABkAGkAcwB0AHIAaQBiAHUAdABlACwAIABzAHUAYgBsAGkAYwBlAG4AcwBlACwAIABhAG4AZAAvAG8AcgAgAHMAZQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUALAAgAGEAbgBkACAAdABvACAAcABlAHIAbQBpAHQAIABwAGUAcgBzAG8AbgBzACAAdABvACAAdwBoAG8AbQAgAHQAaABlACAATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABmAHUAcgBuAGkAcwBoAGUAZAAgAHQAbwAgAGQAbwAgAHMAbwAsACAAcwB1AGIAagBlAGMAdAAgAHQAbwAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABjAG8AbgBkAGkAdABpAG8AbgBzADoADQANAFQAaABlACAAYQBiAG8AdgBlACAAYwBvAHAAeQByAGkAZwBoAHQAIABuAG8AdABpAGMAZQAgAGEAbgBkACAAdABoAGkAcwAgAHAAZQByAG0AaQBzAHMAaQBvAG4AIABuAG8AdABpAGMAZQAgAHMAaABhAGwAbAAgAGIAZQAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABvAHIAIABzAHUAYgBzAHQAYQBuAHQAaQBhAGwAIABwAG8AcgB0AGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlAC4ADQANAFQASABFACAAUwBPAEYAVABXAEEAUgBFACAASQBTACAAUABSAE8AVgBJAEQARQBEACAAJwBBAFMAIABJAFMAJwAsACAAVwBJAFQASABPAFUAVAAgAFcAQQBSAFIAQQBOAFQAWQAgAE8ARgAgAEEATgBZACAASwBJAE4ARAAsACAARQBYAFAAUgBFAFMAUwAgAE8AUgAgAEkATQBQAEwASQBFAEQALAAgAEkATgBDAEwAVQBEAEkATgBHACAAQgBVAFQAIABOAE8AVAAgAEwASQBNAEkAVABFAEQAIABUAE8AIABUAEgARQAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAEYAIABNAEUAUgBDAEgAQQBOAFQAQQBCAEkATABJAFQAWQAsACAARgBJAFQATgBFAFMAUwAgAEYATwBSACAAQQAgAFAAQQBSAFQASQBDAFUATABBAFIAIABQAFUAUgBQAE8AUwBFACAAQQBOAEQAIABOAE8ATgBJAE4ARgBSAEkATgBHAEUATQBFAE4AVAAuACAASQBOACAATgBPACAARQBWAEUATgBUACAAUwBIAEEATABMACAAVABIAEUAIABBAFUAVABIAE8AUgBTACAATwBSACAAQwBPAFAAWQBSAEkARwBIAFQAIABIAE8ATABEAEUAUgBTACAAQgBFACAATABJAEEAQgBMAEUAIABGAE8AUgAgAEEATgBZACAAQwBMAEEASQBNACwAIABEAEEATQBBAEcARQBTACAATwBSACAATwBUAEgARQBSACAATABJAEEAQgBJAEwASQBUAFkALAAgAFcASABFAFQASABFAFIAIABJAE4AIABBAE4AIABBAEMAVABJAE8ATgAgAE8ARgAgAEMATwBOAFQAUgBBAEMAVAAsACAAVABPAFIAVAAgAE8AUgAgAE8AVABIAEUAUgBXAEkAUwBFACwAIABBAFIASQBTAEkATgBHACAARgBSAE8ATQAsACAATwBVAFQAIABPAEYAIABPAFIAIABJAE4AIABDAE8ATgBOAEUAQwBUAEkATwBOACAAVwBJAFQASAAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFACAATwBSACAAVABIAEUAIABVAFMARQAgAE8AUgAgAE8AVABIAEUAUgAgAEQARQBBAEwASQBOAEcAUwAgAEkATgAgAFQASABFACAAUwBPAEYAVABXAEEAUgBFAC6pIDIwMTcgVGhlIE1vbm90eXBlIENvcnBvcmF0aW9uLiBBbGwgUmlnaHRzIFJlc2VydmVkLiANDUhlYnJldyBPcGVuVHlwZSBMYXlvdXQgbG9naWMgY29weXJpZ2h0IKkgMjAwMyAmIDIwMDcsIFJhbHBoIEhhbmNvY2sgJiBKb2huIEh1ZHNvbi4gVGhpcyBsYXlvdXQgbG9naWMgZm9yIEJpYmxpY2FsIEhlYnJldyBpcyBvcGVuIHNvdXJjZSBzb2Z0d2FyZSB1bmRlciB0aGUgTUlUIExpY2Vuc2U7IHNlZSBlbWJlZGRlZCBsaWNlbnNlIGRlc2NyaXB0aW9uIGZvciBkZXRhaWxzLkFyaWFsSXRhbGljTW9ub3R5cGU6QXJpYWwgUmVndWxhciBJdGFsaWMgKE1pY3Jvc29mdClBcmlhbCBJdGFsaWNWZXJzaW9uIDcuMDBBcmlhbC1JdGFsaWNNVEFyaWFsIGlzIGEgdHJhZGVtYXJrIG9mIFRoZSBNb25vdHlwZSBDb3Jwb3JhdGlvbi5Nb25vdHlwZSBUeXBlIERyYXdpbmcgT2ZmaWNlIC0gUm9iaW4gTmljaG9sYXMsIFBhdHJpY2lhIFNhdW5kZXJzIDE5ODJNaWNyb3NvZnQgc3VwcGxpZWQgZm9udC4gWW91IG1heSB1c2UgdGhpcyBmb250IHRvIGNyZWF0ZSwgZGlzcGxheSwgYW5kIHByaW50IGNvbnRlbnQgYXMgcGVybWl0dGVkIGJ5IHRoZSBsaWNlbnNlIHRlcm1zIG9yIHRlcm1zIG9mIHVzZSwgb2YgdGhlIE1pY3Jvc29mdCBwcm9kdWN0LCBzZXJ2aWNlLCBvciBjb250ZW50IGluIHdoaWNoIHRoaXMgZm9udCB3YXMgaW5jbHVkZWQuIFlvdSBtYXkgb25seSAoaSkgZW1iZWQgdGhpcyBmb250IGluIGNvbnRlbnQgYXMgcGVybWl0dGVkIGJ5IHRoZSBlbWJlZGRpbmcgcmVzdHJpY3Rpb25zIGluY2x1ZGVkIGluIHRoaXMgZm9udDsgYW5kIChpaSkgdGVtcG9yYXJpbHkgZG93bmxvYWQgdGhpcyBmb250IHRvIGEgcHJpbnRlciBvciBvdGhlciBvdXRwdXQgZGV2aWNlIHRvIGhlbHAgcHJpbnQgY29udGVudC4gQW55IG90aGVyIHVzZSBpcyBwcm9oaWJpdGVkLg0NVGhlIGZvbGxvd2luZyBsaWNlbnNlLCBiYXNlZCBvbiB0aGUgTUlUIGxpY2Vuc2UgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTUlUX0xpY2Vuc2UpLCBhcHBsaWVzIHRvIHRoZSBPcGVuVHlwZSBMYXlvdXQgbG9naWMgZm9yIEJpYmxpY2FsIEhlYnJldyDSTGF5b3V0IExvZ2lj0yBhcyBqb2ludGx5IGRldmVsb3BlZCBieSBSYWxwaCBIYW5jb2NrIGFuZCBKb2huIEh1ZHNvbi4gDQ1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBPcGVuVHlwZSBMYXlvdXQgbG9naWMgZm9yIEJpYmxpY2FsIEhlYnJldyBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg0kxheW91dCBMb2dpYyBTb2Z0d2FyZdMpLCB0byBkZWFsIGluIHRoZSBMYXlvdXQgTG9naWMgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBMYXlvdXQgTG9naWMgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBMYXlvdXQgTG9naWMgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNDVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIExheW91dCBMb2dpYyBTb2Z0d2FyZS4NDVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAnQVMgSVMnLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4AQwB1AHIAcwBpAHYAYQBBAHIAaQBhAGwAIABDAHUAcgBzAGkAdgBhAGsAdQByAHoA7QB2AGEAQQByAGkAYQBsACAAawB1AHIAegDtAHYAYQBrAHUAcgBzAGkAdgBBAHIAaQBhAGwAIABrAHUAcgBzAGkAdgBLAHUAcgBzAGkAdgBBAHIAaQBhAGwAIABLAHUAcgBzAGkAdgOgA7sDrAOzA7kDsQBBAHIAaQBhAGwAIAOgA7sDrAOzA7kDsQCpACAAMgAwADEANwAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4AIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AIAANAAoADQAKAEgAZQBiAHIAZQB3ACAATwBwAGUAbgBUAHkAcABlACAATABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABjAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMAAzACAAJgAgADIAMAAwADcALAAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIAAmACAASgBvAGgAbgAgAEgAdQBkAHMAbwBuAC4AIABUAGgAaQBzACAAbABhAHkAbwB1AHQAIABsAG8AZwBpAGMAIABmAG8AcgAgAEIAaQBiAGwAaQBjAGEAbAAgAEgAZQBiAHIAZQB3ACAAaQBzACAAbwBwAGUAbgAgAHMAbwB1AHIAYwBlACAAcwBvAGYAdAB3AGEAcgBlACAAdQBuAGQAZQByACAAdABoAGUAIABNAEkAVAAgAEwAaQBjAGUAbgBzAGUAOwAgAHMAZQBlACAAZQBtAGIAZQBkAGQAZQBkACAAbABpAGMAZQBuAHMAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAZABlAHQAYQBpAGwAcwAuAEEAcgBpAGEAbAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAFQAaABlACAATQBvAG4AbwB0AHkAcABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4ATQBpAGMAcgBvAHMAbwBmAHQAIABzAHUAcABwAGwAaQBlAGQAIABmAG8AbgB0AC4AIABZAG8AdQAgAG0AYQB5ACAAdQBzAGUAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGMAcgBlAGEAdABlACwAIABkAGkAcwBwAGwAYQB5ACwAIABhAG4AZAAgAHAAcgBpAG4AdAAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAbABpAGMAZQBuAHMAZQAgAHQAZQByAG0AcwAgAG8AcgAgAHQAZQByAG0AcwAgAG8AZgAgAHUAcwBlACwAIABvAGYAIAB0AGgAZQAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAcAByAG8AZAB1AGMAdAAsACAAcwBlAHIAdgBpAGMAZQAsACAAbwByACAAYwBvAG4AdABlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABpAHMAIABmAG8AbgB0ACAAdwBhAHMAIABpAG4AYwBsAHUAZABlAGQALgAgAFkAbwB1ACAAbQBhAHkAIABvAG4AbAB5ACAAKABpACkAIABlAG0AYgBlAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAGkAbgAgAGMAbwBuAHQAZQBuAHQAIABhAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGIAeQAgAHQAaABlACAAZQBtAGIAZQBkAGQAaQBuAGcAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4AcwAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAHQAaABpAHMAIABmAG8AbgB0ADsAIABhAG4AZAAgACgAaQBpACkAIAB0AGUAbQBwAG8AcgBhAHIAaQBsAHkAIABkAG8AdwBuAGwAbwBhAGQAIAB0AGgAaQBzACAAZgBvAG4AdAAgAHQAbwAgAGEAIABwAHIAaQBuAHQAZQByACAAbwByACAAbwB0AGgAZQByACAAbwB1AHQAcAB1AHQAIABkAGUAdgBpAGMAZQAgAHQAbwAgAGgAZQBsAHAAIABwAHIAaQBuAHQAIABjAG8AbgB0AGUAbgB0AC4AIABBAG4AeQAgAG8AdABoAGUAcgAgAHUAcwBlACAAaQBzACAAcAByAG8AaABpAGIAaQB0AGUAZAAuAA0ACgANAAoAVABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAGwAaQBjAGUAbgBzAGUALAAgAGIAYQBzAGUAZAAgAG8AbgAgAHQAaABlACAATQBJAFQAIABsAGkAYwBlAG4AcwBlACAAKABoAHQAdABwADoALwAvAGUAbgAuAHcAaQBrAGkAcABlAGQAaQBhAC4AbwByAGcALwB3AGkAawBpAC8ATQBJAFQAXwBMAGkAYwBlAG4AcwBlACkALAAgAGEAcABwAGwAaQBlAHMAIAB0AG8AIAB0AGgAZQAgAE8AcABlAG4AVAB5AHAAZQAgAEwAYQB5AG8AdQB0ACAAbABvAGcAaQBjACAAZgBvAHIAIABCAGkAYgBsAGkAYwBhAGwAIABIAGUAYgByAGUAdwAgIBwATABhAHkAbwB1AHQAIABMAG8AZwBpAGMgHQAgAGEAcwAgAGoAbwBpAG4AdABsAHkAIABkAGUAdgBlAGwAbwBwAGUAZAAgAGIAeQAgAFIAYQBsAHAAaAAgAEgAYQBuAGMAbwBjAGsAIABhAG4AZAAgAEoAbwBoAG4AIABIAHUAZABzAG8AbgAuACAADQAKAA0ACgBQAGUAcgBtAGkAcwBzAGkAbwBuACAAaQBzACAAaABlAHIAZQBiAHkAIABnAHIAYQBuAHQAZQBkACwAIABmAHIAZQBlACAAbwBmACAAYwBoAGEAcgBnAGUALAAgAHQAbwAgAGEAbgB5ACAAcABlAHIAcwBvAG4AIABvAGIAdABhAGkAbgBpAG4AZwAgAGEAIABjAG8AcAB5ACAAbwBmACAAdABoAGUAIABPAHAAZQBuAFQAeQBwAGUAIABMAGEAeQBvAHUAdAAgAGwAbwBnAGkAYwAgAGYAbwByACAAQgBpAGIAbABpAGMAYQBsACAASABlAGIAcgBlAHcAIABhAG4AZAAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIABkAG8AYwB1AG0AZQBuAHQAYQB0AGkAbwBuACAAZgBpAGwAZQBzACAAKAB0AGgAZQAgIBwATABhAHkAbwB1AHQAIABMAG8AZwBpAGMAIABTAG8AZgB0AHcAYQByAGUgHQApACwAIAB0AG8AIABkAGUAYQBsACAAaQBuACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaQB0AGgAbwB1AHQAIAByAGUAcwB0AHIAaQBjAHQAaQBvAG4ALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAdwBpAHQAaABvAHUAdAAgAGwAaQBtAGkAdABhAHQAaQBvAG4AIAB0AGgAZQAgAHIAaQBnAGgAdABzACAAdABvACAAdQBzAGUALAAgAGMAbwBwAHkALAAgAG0AbwBkAGkAZgB5ACwAIABtAGUAcgBnAGUALAAgAHAAdQBiAGwAaQBzAGgALAAgAGQAaQBzAHQAcgBpAGIAdQB0AGUALAAgAHMAdQBiAGwAaQBjAGUAbgBzAGUALAAgAGEAbgBkAC8AbwByACAAcwBlAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAsACAAYQBuAGQAIAB0AG8AIABwAGUAcgBtAGkAdAAgAHAAZQByAHMAbwBuAHMAIAB0AG8AIAB3AGgAbwBtACAAdABoAGUAIABMAGEAeQBvAHUAdAAgAEwAbwBnAGkAYwAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGYAdQByAG4AaQBzAGgAZQBkACAAdABvACAAZABvACAAcwBvACwAIABzAHUAYgBqAGUAYwB0ACAAdABvACAAdABoAGUAIABmAG8AbABsAG8AdwBpAG4AZwAgAGMAbwBuAGQAaQB0AGkAbwBuAHMAOgANAAoADQAKAFQAaABlACAAYQBiAG8AdgBlACAAYwBvAHAAeQByAGkAZwBoAHQAIABuAG8AdABpAGMAZQAgAGEAbgBkACAAdABoAGkAcwAgAHAAZQByAG0AaQBzAHMAaQBvAG4AIABuAG8AdABpAGMAZQAgAHMAaABhAGwAbAAgAGIAZQAgAGkAbgBjAGwAdQBkAGUAZAAgAGkAbgAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABvAHIAIABzAHUAYgBzAHQAYQBuAHQAaQBhAGwAIABwAG8AcgB0AGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEwAYQB5AG8AdQB0ACAATABvAGcAaQBjACAAUwBvAGYAdAB3AGEAcgBlAC4ADQAKAA0ACgBUAEgARQAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFAAUgBPAFYASQBEAEUARAAgACcAQQBTACAASQBTACcALAAgAFcASQBUAEgATwBVAFQAIABXAEEAUgBSAEEATgBUAFkAIABPAEYAIABBAE4AWQAgAEsASQBOAEQALAAgAEUAWABQAFIARQBTAFMAIABPAFIAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEIAVQBUACAATgBPAFQAIABMAEkATQBJAFQARQBEACAAVABPACAAVABIAEUAIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBGACAATQBFAFIAQwBIAEEATgBUAEEAQgBJAEwASQBUAFkALAAgAEYASQBUAE4ARQBTAFMAIABGAE8AUgAgAEEAIABQAEEAUgBUAEkAQwBVAEwAQQBSACAAUABVAFIAUABPAFMARQAgAEEATgBEACAATgBPAE4ASQBOAEYAUgBJAE4ARwBFAE0ARQBOAFQALgAgAEkATgAgAE4ATwAgAEUAVgBFAE4AVAAgAFMASABBAEwATAAgAFQASABFACAAQQBVAFQASABPAFIAUwAgAE8AUgAgAEMATwBQAFkAUgBJAEcASABUACAASABPAEwARABFAFIAUwAgAEIARQAgAEwASQBBAEIATABFACAARgBPAFIAIABBAE4AWQAgAEMATABBAEkATQAsACAARABBAE0AQQBHAEUAUwAgAE8AUgAgAE8AVABIAEUAUgAgAEwASQBBAEIASQBMAEkAVABZACwAIABXAEgARQBUAEgARQBSACAASQBOACAAQQBOACAAQQBDAFQASQBPAE4AIABPAEYAIABDAE8ATgBUAFIAQQBDAFQALAAgAFQATwBSAFQAIABPAFIAIABPAFQASABFAFIAVwBJAFMARQAsACAAQQBSAEkAUwBJAE4ARwAgAEYAUgBPAE0ALAAgAE8AVQBUACAATwBGACAATwBSACAASQBOACAAQwBPAE4ATgBFAEMAVABJAE8ATgAgAFcASQBUAEgAIABUAEgARQAgAFMATwBGAFQAVwBBAFIA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AAIAAApIAAkAAAABAAgAAQAEAAAzZAAJAAAAAQAIAAEABAAAWWoACQAAAAEACAABAAQAAFqaAAkAAAABAAgAAQAEAABdiAAJAAAAAQAIAAEABAAAcAQACQAAAAEACAABAAQAAHHyAAkAAAABAAgAAQAEAABzMAAJAgAAAQAIAAEABAAAf2oACQEAAAEACAABAAYAAI8yAAkDAAABAAgAAQAGAACSpgAJAAAAAQAIAAEAAQAAlKwACQAAAAEACAABAAEAAJY2AAkAAAABAAgAAQABAACXUgAJAAEAAQAIAAEABAAAnRwACQABAAEACAABAAQAAJ26AAkAAQABAAgAAQAIAACj1AAJAAEAAwAMABQAHAABAAgAAKQEAAEACAAApDQAAQAIAACkagAJAAEAAQAIAAEABAAApJgACQABAAQADgAWAB4AJgABAAgAAKYYAAEACAAApi4AAQAIAACmegABAAgAAKbIAAkAAQAYADYAPgBGAE4AVgBeAGYAbgB2AH4AhgCOAJYAngCmAK4AtgC+AMYAzgDWAN4A5gDuAAEACAAApuIAAQAIAACnCgABAAgAAKcoAAEACAAAp3wAAQAIAACnmgABAAgAAKfuAAEACAAAqAQAAQAIAACoYgABAAgAAKjCAAEACAAAqSQAAQAIAACpeAABAAgAAKnOAAEACAAAqiQAAQAIAACqfAABAAgAAKrUAAEACAAAqy4AAQAIAACrggABAAgAAKvYAAEACAAArC4AAQAIAACshgABAAgAAKzeAAEACAAArTgAAQAIAACthAABAAgAAK3SAAkAAQAiAEoAUgBaAGIAagByAHoAggCKAJIAmgCiAKoAsgC6AMIAygDSANoA4gDqAPIA+gECAQoBEgEaASIBKgEyAToBQgFKAVIAAQAIAACt2AABAAgAAK5MAAEACAAArvYAAQAIAACvogABAAgAAK/uAAEACAAAsHAAAQAIAACw9AABAAgAALEuAAEACAAAsZ4AAQAIAACyEAABAAgAALJSAAEACAAAssoAAQAIAACzRAABAAgAALOGAAEACAAAs/4AAQAIAAC0eAABAAgAALUiAAEACAAAtc4AAQAIAAC2fAABAAgAALb+AAEACAAAt4IAAQAIAAC4CAABAAgAALh4AAEACAAAuOoAAQAIAAC5XgABAAgAALnYAAEACAAAulQAAQAIAAC60gABAAgAALtKAAEACAAAu8QAAQAIAAC8QAABAAgAALy4AAEACAAAvTIAAQAIAAC9rgAJAAEAAQAIAAEABAAAvbwACQABAAEACAABAAgAAMdUAAkAAQAMAB4AJgAuADYAPgBGAE4AVgBeAGYAbgB2AAEACAAAx4AAAQAIAADHwAABAAgAAMg2AAEACAAAyK4AAQAIAADIxgABAAgAAMkUAAEACAAAyWQAAQAIAADJfAABAAgAAMnKAAEACAAAyhoAAQAIAADKMgABAAgAAMqAAAkAAQADAAwAFAAcAAEACAAAysQAAQAIAADLHgABAAgAAMtQAAkAAQALABwAJAAsADQAPABEAEwAVABcAGQAbAABAAgAAMtmAAEACAAAy6YAAQAIAADMLgABAAgAAMy4AAEACAAAzT4AAQAIAADNxgABAAgAAM5QAAEACAAAzpYAAQAIAADPJAABAAgAAM+0AAEACAAAz/oACQABAAQADgAWAB4AJgABAAgAANAyAAEACAAA0HoAAQAIAADRCgABAAgAANGcAAkAAQA7AHwAhACMAJQAnACkAKwAtAC8AMQAzADUANwA5ADsAPQA/AEEAQwBFAEcASQBLAE0ATwBRAFMAVQBXAFkAWwBdAF8AYQBjAGUAZwBpAGsAbQBvAHEAcwB1AHcAeQB7AH0AfwCBAIMAhQCHAIkAiwCNAI8AkQCTAABAAgAANG0AAEACAAA0lgAAQAIAADTBgABAAgAANPgAAEACAAA1LoAAQAIAADVlgABAAgAANZyAAEACAAA11AAAQAIAADYNAABAAgAANkYAAEACAAA2f4AAQAIAADa5AABAAgAANvMAAEACAAA3EgAAQAIAADczgABAAgAAN2AAAEACAAA3jIAAQAIAADe5gABAAgAAN+aAAEACAAA4FAAAQAIAADhDAABAAgAAOHIAAEACAAA4oYAAQAIAADjRAABAAgAAOQEAAEACAAA5HYAAQAIAADk6AABAAgAAOVkAAEACAAA5eAAAQAIAADmiAABAAgAAOcwAAEACAAA59oAAQAIAADohAABAAgAAOkwAAEACAAA6dgAAQAIAADqgAABAAgAAOsqAAEACAAA69QAAQAIAADsgAABAAgAAO0yAAEACAAA7eQAAQAIAADulgABAAgAAO9KAAEACAAA774AAQAIAADwcAABAAgAAPEiAAEACAAA8dYAAQAIAADyigABAAgAAPL0AAEACAAA82gAAQAIAAD0CAABAAgAAPSoAAEACAAA9UoAAQAIAAD17AABAAgAAPaQAAEACAAA9zoAAQAIAAD35AABAAgAAPiQAAEACAAA+TwACQABAAEACAABAAQAAPniAAkAAQABAAgAAQAIAAD9OgAJAAEAAQAIAAEACAAA/UwACQABAAEACAABAAgAAP1kAAkAAAABAAgAAQAGAAD9egAJAAEAAQAIAAEABgAA/fIACQABAAEACAABAAYAAP9IAAkAAQADAAwAFAAcAAEACAABAFoAAQAIAAEAiAABAAgAAQC2AAkAAQABAAgAAQAGAAEA3AAJAAEAAwAMABQAHAABAAgAAQHKAAEACAABAgAAAQAIAAECYAAJAAEABgASABoAIgAqADIAOgABAAgAAQKEAAEACAABAroAAQAIAAEC8AABAAgAAQMmAAEACAABA1wAAQAIAAEDkgAJAAEABAAOABYAHgAmAAEACAABA7oAAQAIAAED8AABAAgAAQQmAAEACAABBFwACQABAAEACAABAAgAAQSEAAkAAQABAAgAAQAGAAEErgAJAAEABAAOABYAHgAmAAEACAABBdAAAQAIAAEGLgABAAgAAQaOAAEACAABBvAACQABAAEACAABAAQAAQdMAAkAAQABAAgAAQAEAAEHcAAJAAEAAQAIAAEABAABDBIACQABAAEACAABAAQAAQ22AAkAAQABAAgAAQAEAAEOmgAJAAEAAQAIAAEABAABECAACQABAAEACAABAAQAARCOAAkAAQABAAgAAQAEAAETaAAJAAEAAQAIAAEABAABFQwACQABAAEACAABAAQAARWAAAkAAQABAAgAAQAEAAEXHgAJAAEAAQAIAAEABAABF4wACQABAAEACAABAAQAARhOAAkAAQABAAgAAQAEAAEZ+AAJAAEAAQAIAAEABAABG5wACQABAAEACAABAAQAAR1GAAkAAQABAAgAAQAGAAEfJgAJAAEAAQAIAAEABgABH4IACQABAAEACAABAAYAAR/eAAkAAQABAAgAAQAEAAEgOgAJAAEAAQAIAAEABAABIoYAAQIiAAQAAAEMBD4EZARqBNAFDgVABc4GDAZeB3wIXgi0CSoJMAlCCUwJQglWCVYJmAlWCVYJpgmsCboJ9AlWCVYJuglWCVYKCgoKCnwKfAq+Cr4LmAvKC/wMIgw0DDoMIglWBQ4KCgp8Cr4MZAm6CVYMZAxkDGQJugyeDOgNDg1oDX4NzA4GDlAOig7ADuYO7A+aEAwQFg1oEDwMNBCSEOwRHhFgEYoRnBGmDCIMIgwiEdQR3hHsEiYSvBLCE0QTxhPoErwUEhTcFVoV5BZ+FpwWqhbkErwSvBdWF5AXnhK8F7gSvBgmGPAZvhpgGwobVBuCErwSvBucG7YSvBw8HPIdZBK8Hc4d6B4KHkwech54HqoevB7yHwQfDh8kH0YfbB+CH7wf1h/wIBIgHCAmICwgPiBQIFoMOiBsIIYgsCCwIMYhHCFWIawh5iIoIrojCCNOIMYgxiDGIMYgxiDGI04gxiDGIMYhViFWI6Ah5iHmIeYiKCIoIigiKCMIIwgjCCMII04jTiNOIMYjsiPoI7IkBiQkI7IkBiQyJFAkjiS4JNIjsiQGJOAk0iTgEdQlEiUgJV4l9CX0E8Ymgia4Jv4nNCUgJ4IR1BPGJzQTxieQJ9IlXihgJoIolikIJ4IngiX0JfQnkCeQKR4gbCBsIGwgbCBsIGwgbCBsIGwgbCBsIIYghiCGIIYghiCGIIYghiCGIIYghiCwILAgsCCwBQ4AAQEMAAMAFAAkACkALgAvADMANQA3ADkAOgA8AEkAVQBZAFoAXABiAGMAnwCsAK0AtQC2ALoAxADGAMgA6QECAQQBDQEPARkBGwEfASEBKwEsAS0BLwEwATIBMwGWAbYBuQHDAccB0QHTAdYB3QHfAeEB4wHxAfUB9gH3AfkB+wIAAgECBQIHAggCCQIKAgsCDAINAg8CEQIXAhsCHAIfAiACIQIkAiYCKQIrAiwCLQIuAi8CMQI0AjUCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJkAmUCZgJoAmoCawJsAm0CbgJvAnACcwJ2AncCeAKGAogCjAoMCg0KDgoPCiAKJQorCi8KMQozCjUKNgo4CkEKQgpDCkQKRQpGCloKWwpcCl0Kdwp4CnkKggqDCoQKigqLCowKjQqUCpUKlgqXCpgKmQqaCp4KoQqjCqQKqAqqCqsKrwqxCrMKtAq1CrgKuQq9Cr4KvwrBCsIKwwrECsUKygrLCs0KzgrQCtEK0grTCtQK1QrWCtcK2greCuAK4QriCuMK5ArlCuYK6QrqCuwK7QruCvAK/gr/CwALAQsCCwMLBAsFCwYLBwsICwkLCgsLCwwLDQsOCw8LEAsRCxILEwsUCxULFgsXCzsACQAk/7QAPP/bAfH/tAH2/9sB+f+0Afv/tAIB/9sCCv/bAg//2wABABT/aAAZAAP/tAA3/2gAOf+PADr/2wA8/2gAWf/bAFr/2wBc/+4Atv+0CjP/aAo1/48KNv/bCjj/aApa/2gKiv9oCov/aAqM/2gKjf9oCpT/2wqV/9sKlv/bCpf/2wqY/2gKmf9oCpr/aAAPAAP/2wAP/vgAEf74ACT/aAog/2gKQf9oCkL/aApD/2gKRP9oCkX/aApG/2gKW/9oClz/aApd/2gKnv9oAAwKDf/OCwn/zgsK/84LC//OCwz/zgsN/84LDv/OCw//zgsQ/84LEf/OCxL/zgsT/84AIwAD/9sAN/9oADn/jwA6/7QAPP9EAFz/2wC2/48KDf/OCjP/aAo1/48KNv+0Cjj/RApa/0QKiv9oCov/aAqM/2gKjf9oCpT/tAqV/7QKlv+0Cpf/tAqY/0QKmf9ECpr/RAsJ/84LCv/OCwv/zgsM/84LDf/OCw7/zgsP/84LEP/OCxH/zgsS/84LE//OAA8AA/+0AA/++AAR/vgAJP9oCiD/aApB/2gKQv9oCkP/aApE/2gKRf9oCkb/aApb/2gKXP9oCl3/aAqe/2gAFAA3/9sAOf/bADr/2wA8/7QKM//vCjUADQo2AAMKOP/cClr/3AqK/+8Ki//vCoz/7wqN/+8KlAADCpUAAwqWAAMKlwADCpj/3AqZ/9wKmv/cAEcAD/9EABD/RAAR/0QAHf9oAB7/aAAk/2gAMv/bAET/RABG/0QASP9EAEz/7gBS/0QAVf9oAFb/RABY/2gAWv9oAFz/aAoN/7oKE//bChT/RAoY/0QKGv9oCiD/aAoi/9sKJv/bCi7/2wow/9sKO//bCkH/aApC/2gKQ/9oCkT/aApF/2gKRv9oCkf/2wpR/9sKUv/bClP/2wpU/9sKVf/bClv/aApc/2gKXf9oCl7/2wpf/9sKYP/bCmH/2wpp/9sKav/bCmv/2wps/9sKf//bCoD/2wqB/9sKnv9oCwn/ugsK/7oLC/+6Cwz/ugsN/7oLDv+6Cw//ugsQ/7oLEf+6CxL/ugsT/7oLRP9EC1D/aAtR/2gLUv9oC1P/aAA4AA//aAAQ/7QAEf9oAB3/2wAe/9sAJP+PAET/tABI/7QATP/bAFL/tABV/9sAWP/bAFz/2woM/84KDf/YChT/tAoY/7QKGv/bCiD/jwpB/48KQv+PCkP/jwpE/48KRf+PCkb/jwpb/48KXP+PCl3/jwqe/48K/v/OCv//zgsA/84LAf/OCwL/zgsD/84LBP/OCwX/zgsG/84LB//OCwj/zgsJ/9gLCv/YCwv/2AsM/9gLDf/YCw7/2AsP/9gLEP/YCxH/2AsS/9gLE//YC0T/tAtQ/9sLUf/bC1L/2wtT/9sAFQAP/7QAEP/bABH/tAAk/9sARP/bAEj/2wBM/+4KFP/bChj/2wog/9sKQf/bCkL/2wpD/9sKRP/bCkX/2wpG/9sKW//bClz/2wpd/9sKnv/bC0T/2wAdAAP/2wAP/0QAEP9oABH/RAAd/7QAHv+0ACT/jwBE/2gASP+PAEz/2wBS/48AU/+PAFT/jwBY/7QAWf+0ChT/jwoY/48KIP+PCkH/jwpC/48KQ/+PCkT/jwpF/48KRv+PClv/jwpc/48KXf+PCp7/jwtE/48AAQC2AEwABAAP/48AEP/bABH/tAC2AEwAAgAP/2gAEf9oAAIAD/+PABH/jwAQCjP/aAo1/48KNv/bCjj/aApa/2gKiv9oCov/aAqM/2gKjf9oCpT/2wqV/9sKlv/bCpf/2wqY/2gKmf9oCpr/aAADCrT/wwq+/8MKwf/DAAEAtf+0AAMAA/+PAFb/2wC2/7QADgoU/48KGP+PCiD/jwpB/48KQv+PCkP/jwpE/48KRf+PCkb/jwpb/48KXP+PCl3/jwqe/48LRP+PAAUCLf8GAjb/HQJM/u4CUf7XAlT/HQAcCg3/zgoz/2gKNf+PCjb/tAo4/0QKWv9ECor/aAqL/2gKjP9oCo3/aAqU/7QKlf+0Cpb/tAqX/7QKmP9ECpn/RAqa/0QLCf/OCwr/zgsL/84LDP/OCw3/zgsO/84LD//OCxD/zgsR/84LEv/OCxP/zgAQCjP/7wo1AA0KNgADCjj/3Apa/9wKiv/vCov/7wqM/+8Kjf/vCpQAAwqVAAMKlgADCpcAAwqY/9wKmf/cCpr/3AA2Cg3/ugoT/9sKFP9EChj/RAoa/2gKIP9oCiL/2wom/9sKLv/bCjD/2wo7/9sKQf9oCkL/aApD/2gKRP9oCkX/aApG/2gKR//bClH/2wpS/9sKU//bClT/2wpV/9sKW/9oClz/aApd/2gKXv/bCl//2wpg/9sKYf/bCmn/2wpq/9sKa//bCmz/2wp//9sKgP/bCoH/2wqe/2gLCf+6Cwr/ugsL/7oLDP+6Cw3/ugsO/7oLD/+6CxD/ugsR/7oLEv+6CxP/ugtE/0QLUP9oC1H/aAtS/2gLU/9oAAwAD/76ABH++gH4ANEB+f89Afv/PQIB/z0CGv+gAicAXgqh/z0KpP89Cqv/PQq5/z0ADAH5/+kB+//pAgH/6QIK/5ECD/+RCqH/6Qqk/+kKq//pCrT/1wq5/+kKvv/XCsH/1wAJAfn/sAIK/5ECD/+RCqH/sAqk/7AKq/+wCrn/sAq+/8MKwf/DAAQBMv/TAhb/2wIk/8UCjP/TAAECIv/JAAoBLv/jAS//4wEx/+MBM//jAhD/4wIX/+MCIP/jAiL/4wIm/+MCK//jAA4KFP/bChj/2wog/9sKQf/bCkL/2wpD/9sKRP/bCkX/2wpG/9sKW//bClz/2wpd/9sKnv/bC0T/2wASAAP/tAEs/5YBLf+JAgX/lgIJ/zkCCv74Ag/++AIW/9sCHv/bAiT/2wqo/5YKr/+WCrP/OQq0/0gKtf/3Cr3/lgq+/0gKwf9IAAkCCv+RAg//kQqh/+kKpP/pCqv/6Qq0/9cKuf/pCr7/1wrB/9cAFgEu/48BL/+PATH/jwEz/48B+ADVAfn/aAH7/2gCAf9oAhD/jwIS/9sCE//bAhj/2wIa/9sCG//bAh3/2wIg/48CJwBqAin/jwqh/2gKpP9oCqv/aAq5/2gABQIK/5ECD/+RCrT/wwq+/8MKwf/DABMAA/+0ALb/tAEs/5YBLf+JAgX/lgIJ/zkCCv74Ag/++AIW/9sCHv/bAiT/2wqo/5YKr/+WCrP/OQq0/0gKtf/3Cr3/lgq+/0gKwf9IAA4AA/+0ASz/lgIF/5YCCf85Agr++AIP/vgKqP+WCq//lgqz/zkKtP9ICrX/9wq9/5YKvv9ICsH/SAASASz/ngEt/4MBLv/nAS//5wEx/+cBM//nAgX/ngIQ/+cCF//nAhn/5wIf/+cCIP/nAib/5wIp/+cCK//nCqj/ngqv/54Kvf+eAA4AA//bASz/lgIF/5YCCf85Agr++AIP/vgKqP+WCq//lgqz/zkKtP9ICrX/9wq9/5YKvv9ICsH/SAANAfH/6QH5/+kB+//pAgH/6QIK/5ECD/+RCqH/6Qqk/+kKq//pCrT/1wq5/+kKvv/XCsH/1wAJAA/++gAR/voB+f9oAfv/aAIB/2gKof9oCqT/aAqr/2gKuf9oAAEBMv++ACsAD/9GABD/RgAR/0YAHf9oAB7/aAEs/9sBLf/bAS7/RgEv/7wBMP9GATH/RgEz/0YB+ADVAfn/aAH7/2gCAf9oAgX/2wIN/9sCEP9GAhH/RgIU/2gCFv+oAhj/aAIa//ACHf9oAh7/qAIg/0YCI/9oAiT/qAIl/1YCJwBeAij/aAIp/0YCKv9oCqH/aAqk/2gKqP/bCqv/aAqv/9sKuP/bCrn/aAq9/9sKv//bABwAD/9GABD/aAAR/0YAHf+0AB7/tAEu/48BL/+PATH/jwEz/48B+ADVAfn/aAH7/2gCAf9oAhD/jwIS/9sCE//bAhb/2wIY/9sCGv/bAhv/2wId/9sCIP+PAicAagIp/48Kof9oCqT/aAqr/2gKuf9oAAICJv/bAiv/2wAJAS7/1QEv/9UBMf/VATP/1QIQ/9UCIP/VAib/1QIp/9UCK//VABUBLv+PAS//jwEx/48BM/+PAfgA1QH5/2gB+/9oAgH/aAIQ/48CEv/bAhj/2wIa/9sCG//bAh3/2wIg/48CJwBqAin/jwqh/2gKpP9oCqv/aAq5/2gAFgEu/5oBL//FATD/gwEx/5oBMv+LATP/mgIQ/5oCEf+DAhL/jQIW/8UCGP+NAhn/xQIa/40CHv/FAiD/PwIj/4MCJv+aAicAcQIp/5oCKv+DAiv/mgKM/4sADAEu/+cBL//nATH/5wEz/+cCEP/nAhf/xQIf/8UCIP/nAiL/xQIm/+cCKf/nAiv/5wAQAS7/4wEv/+MBMf/jATP/2QIQ/+MCFP++Ahf/4wIf/+MCIP/jAiL/4wIj/74CJv/jAij/vgIp/+MCKv++Aiv/4wAKAS7/4wEv/+MBMf/jATP/4wIQ/+MCF//jAh//4wIg/+MCIv/jAin/4wAEATL/4wIW/9sCJP/FAoz/4wACATL/0wKM/9MACwEu/90BL//dATH/3QEz/90CEP/dAhf/3QIg/90CIv/dAib/3QIp/90CK//dAAIK1//pCu3/6QADCsP/nArM/5wK4v+cAA4AD/8zABH/MwCp/40Aqv+NCsX/lArK/6YK0P9gCtT/pgrX/+kK2/+mCt7/lArh/5QK7f/pCu//0wAlCsP/vArF/+kKx//pCsr/vArL/+kKzP+8Cs7/5wrP/+kK0P+8CtH/6QrS/+kK0//pCtT/vArV/+kK1//pCtj/6Qra/+kK2/+8Ctz/6Qrd/+kK3v/pCt//6Qrg/+kK4f/pCuL/vArj/+cK5f/TCub/6Qrn/9gK6P/pCun/6Qrq/9sK6//pCuz/6Qrt/+kK7v/pCvD/6QABCuf/0wAgALb/HQrD/x0Kxf/WCsf/0wrK/9MKy//TCsz/HQrP/9MK0P/YCtH/0wrS/9MK0//TCtT/0wrV/9MK2P/TCtr/0wrb/9MK3P/TCt3/0wre/9YK3//TCuD/0wrh/9YK4v8dCub/0wro/9MK6f/TCuv/0wrs/9MK7v/TCu//pArw/9MAIAC2/0oKw/8dCsX/1grH/9MKyv/TCsv/0wrM/x0Kz//TCtD/2ArR/9MK0v/TCtP/0wrU/9MK1f/TCtj/0wra/9MK2//TCtz/0wrd/9MK3v/WCt//0wrg/9MK4f/WCuL/HQrm/9MK6P/TCun/0wrr/9MK7P/TCu7/0wrv/6QK8P/TAAgKxf/pCtf/6Qre/+kK4f/pCuT/0Qrn/9MK6gAXCu3/6QAKCsgAWgrJ/6YKyv/TCtD/vArU/9MK1wAXCtv/0wrk/+kK7QAXCu8AFwAyALb/YAI+ABcCQf+mAkj/jQJJ/9ECS/+NAkz/MwJN/0oCTv+kAlH/SgJX/6QCW//pAl//6QJo/+kCa//pAm3/6QJu/+kKw/8zCsX/vwrH/9EKygAXCsv/0QrM/zMKzv98Cs//0QrR/9EK0v/RCtP/0QrUABcK1f/RCtf/pgrY/9EK2v/RCtsAFwrc/9EK3f/RCt7/vwrf/9EK4P/RCuH/vwri/zMK4/98Cub/0Qro/9EK6f/RCuv/0Qrs/9EK7f+mCu7/0Qrw/9EAHwI6/7wCPv/TAkD/0wJB/9MCRf+8Akj/0wJL/9MCTP93Ak3/jQJO/9ECT/+8AlH/jQJU/3cCV//pAln/vAJeABcCbf/TAnkAFwrD/3cKxQAFCsr/0wrM/3cKzv+NCtT/0wrX/+kK2//TCt4ABQrhAAUK4v93CuP/jQrt/+kAIgI6/7wCPv/TAkD/vAJB/9MCRf/TAkj/0wJL/9MCTP93Ak3/jQJO/9MCT/+8AlH/ugJU/zMCWf/TAm3/6QJv/7wCcf+8CsP/dwrF/9MKyv+8Csz/dwrO/78K1P+8Ctb/vArb/7wK3v/TCuH/0wri/3cK4/+/CuT/0wrl/7wK5/+6Cur/yQrv/9MAJgAP/zMAEf8zAB3/0wAe/+kAqf+NAKr/jQI6/2ACPv+mAkH/6QJF/7wCSP+8Akv/vAJZ/9MCWv+8Alz/pAJe/6QCX/+mAmL/pgJl/6YCZv+mAmf/pgJo/40Cav+mAm3/pgJ1/6YCdv+kAnj/pAJ5/6QKxf+UCsr/pgrQ/2AK1P+mCtf/6Qrb/6YK3v+UCuH/lArt/+kK7//TAAcCUf/pAlcAFwJhAC0CbQAXCtcAFwrn/+kK7QAXAAMCQf/pCtf/6Qrt/+kADgJB/+kCSP/TAkv/0wJR/9MCVAAXAm3/6QrF/+kK1//pCt7/6Qrh/+kK5P/RCuf/0wrqABcK7f/pABwCPv+8AkD/vAJF/7wCSP/TAkv/0wJM/6QCTf+kAk7/0wJR/7oCWf/TAmX/6QrD/3cKxf/TCsr/vArM/3cKzv+/CtT/vArW/7wK2/+8Ct7/0wrh/9MK4v93CuP/vwrk/9MK5f+8Cuf/ugrq/8kK7//TAA4CSP/pAkv/6QJO/9ECV//pAm3/6QJ3/+kKxf/pCtf/6Qre/+kK4f/pCuT/0Qrn/9MK6gAXCu3/6QADAk4AFwJbABcK5//TAAYCUf/TAloAFwJtABcCcf/TAncAFwrn/9MAGwI6/9MCPv+6AkD/vAJF/7wCTf93Ak//vAJR/7wCWf/TAmX/6QJv/9MKw/93CsX/6QrK/40KzP93Cs7/qQrQ/9MK1P+NCtb/0Qrb/40K3v/pCuH/6Qri/3cK4/+pCuQALQrl/7wK5//kCu//0wAyAA/+wQAR/sEAHf/pAB7/6QCq/7wCOv9gAj7/YAJA/6YCQf/TAkX/dwJG/+kCTP+NAk3/pAJO/+kCT/+kAln/6QJe/+kCX//pAmj/6QJ5/+kKw//xCsf/6QrK/5IKy//pCsz/8QrO/+AKz//pCtH/6QrS/+kK0//pCtT/kgrV/+kK1//TCtj/6Qra/+kK2/+SCtz/6Qrd/+kK3//pCuD/6Qri//EK4//gCub/6Qro/+kK6f/pCuv/6Qrs/+kK7f/TCu7/6Qrw/+kAMwI6/7wCPv+8AkH/6QJF/7wCRv/pAkj/6QJM/7wCTf+NAk//0wJR/6YCVP93AloAFwJt/+kCcf/TCsP/vArF/+kKx//pCsr/vArL/+kKzP+8Cs7/5wrP/+kK0P+8CtH/6QrS/+kK0//pCtT/vArV/+kK1//pCtj/6Qra/+kK2/+8Ctz/6Qrd/+kK3v/pCt//6Qrg/+kK4f/pCuL/vArj/+cK5f/TCub/6Qrn/9gK6P/pCun/6Qrq/9sK6//pCuz/6Qrt/+kK7v/pCvD/6QAoAA//SgAR/0oAHf/pAB7/6QI6/7wCPv/TAkAAFwJB/+kCRf+8AkYAFwJI/9MCTv+8Alf/6QJZABcCWv/TAlz/vAJf/7wCYv+8AmT/vAJl/7wCZv+8Amj/vAJp/7wCav+8Amv/vAJt/7wCb/+8AnP/vAJ1/7wCdv+8Anj/vAJ5/7wKxf+rCsr/0wrU/9MK1//pCtv/0wre/6sK4f+rCu3/6QAqAA//YAAR/2AAHf/TAB7/0wI6/7wCPv+8AkEAFwJF/9MCTv/pAlcAFwJZABcCXP/TAl3/0wJe/+kCX//TAmD/6QJh/+kCYv/pAmT/6QJl/7oCZv/pAmf/6QJo/9MCaf/pAmr/6QJr/9MCb//pAnD/6QJy/+kCc//pAnj/6QJ5/+kKyABaCsn/pgrK/9MK0P+8CtT/0wrXABcK2//TCuT/6QrtABcK7wAXABICOv+NAj7/dwJF/40CRv/pAkz/YAJN/0oCTgAXAlH/ugJZ/9MCZf/TCsP/xArK/5UKzP/ECs7/hgrU/5UK2/+VCuL/xArj/4YACwJB/+kCSP+6Akv/ugJO/7wCaP/TAm3/0wrF/7oK1//pCt7/ugrh/7oK7f/pAAYCWgBEAl8ALQJoAC0K1wAXCuf/6QrtABcABgJaAC0CXwAXAm0AFwrXABcK5//pCu0AFwAhALb/HQJZ/7wKw/8dCsX/1grH/9MKyv/TCsv/0wrM/x0Kz//TCtD/2ArR/9MK0v/TCtP/0wrU/9MK1f/TCtj/0wra/9MK2//TCtz/0wrd/9MK3v/WCt//0wrg/9MK4f/WCuL/HQrm/9MK6P/TCun/0wrr/9MK7P/TCu7/0wrv/6QK8P/TAC0Atv8GAjr/pgI+/9MCQP+NAkH/vAJF/9MCRv/TAkj/pAJL/6QCTP8dAk//jQJR/zMCV/+8Aln/pArD/x0Kxf/WCsf/0wrK/9MKy//TCsz/HQrP/9MK0P/YCtH/0wrS/9MK0//TCtT/0wrV/9MK2P/TCtr/0wrb/9MK3P/TCt3/0wre/9YK3//TCuD/0wrh/9YK4v8dCub/0wro/9MK6f/TCuv/0wrs/9MK7v/TCu//pArw/9MAHAI+/7oCQP/RAkX/pAJIABcCTgAtAk//ugJZ/9MCXgAtAmAAFwJmABcCeQAXCsP/dwrF/+kKyv+NCsz/dwrO/6kK0P/TCtT/jQrW/9EK2/+NCt7/6Qrh/+kK4v93CuP/qQrkAC0K5f+8Cuf/5Arv/9MAGgI6/6YCPv+NAkD/vAJF/40CSP/pAkv/6QJM/3cCT/+8AlH/pArD/3cKxf/pCsr/jQrM/3cKzv+pCtD/0wrU/40K1v/RCtv/jQre/+kK4f/pCuL/dwrj/6kK5AAtCuX/vArn/+QK7//TAAYCYf/TAmX/6QJp/+kCbf+8AnH/dwJ3/+kACAJeABcCYP/pAmX/0wJt/9MCb/+8AnH/vAJ0/7wCef/pABACWv/TAlv/6QJe/9MCX//TAmD/0wJh/9MCZf+8Amb/0wJo/9MCa//TAmz/6QJt/7wCbv/TAnH/jQJ0/6QCef/TAAkCWv/pAl7/6QJf/+kCYf/pAmX/6QJm/+kCaP/pAmv/6QJ5/9MAAQJt/+kADAJa/+kCXv/pAmD/6QJh/+kCZf+8Amb/6QJr/+kCbP/pAm3/vAJu/+kCb/+mAnH/jQAEAmwAFwJtABcCcf/TAnQAFwANAlr/6QJb/+kCXv/pAl//6QJg/+kCZf/TAmb/6QJo/+kCa//TAm3/vAJu/+kCcf+NAnT/vAAEAlsAFwJr/+kCbAAXAnH/0wACAm3/6QJx/7wABQJh/+kCa//pAm3/6QJu/+kCd//pAAgCYP/TAmH/6QJl/9MCbf+8Am//0wJx/6QCd//pAnn/0wAJAmD/6QJh/+kCZf/TAmb/6QJt/7wCb/+8AnH/pAJ3/+kCef/pAAUCYP/pAm3/6QJv/9MCcf+8AnT/0wAOAA//6QAR/+kCWv/pAl7/6QJg/+kCYf/pAmX/0wJm/+kCaP/pAmr/6QJr/+kCbf/TAnf/6QJ5/+kABgAP/3cAEf93AlsALQJgABcCZf/pAncAFwAGAlsAFwJfABcCZf/TAmgAFwJt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CuL/Mwrj/64K7f+mAA0Kw/93CsX/0wrK/9MKzP93Cs7/jQrU/9MK1//TCtv/0wre/9MK4f/TCuL/dwrj/40K7f/TABMKw/+pCsX/0wrK/9MKzP+pCs7/pArU/9MK1v/aCtf/0wrb/9MK3v/TCuH/0wri/6kK4/+kCuT/0wrl/7wK5/+6Cur/bwrt/9MK7//TAAMK1wAXCuf/6QrtABcAEArD/3cKxf/pCsr/vArM/3cKzv93CtD/xArU/7wK1v+8Ctv/vAre/+kK4f/pCuL/dwrj/3cK5AAtCuX/vArv/9MAIwAP/sEAEf7BAB3/6QAe/+kAq/7BCsP/vwrH/+kKyv+cCsv/6QrM/78Kzv+kCs//6QrR/+kK0v/pCtP/6QrU/5wK1f/pCtf/0wrY/+kK2v/pCtv/nArc/+kK3f/pCt//6Qrg/+kK4v+/CuP/pArm/+kK6P/pCun/6Qrr/+kK7P/pCu3/0wru/+kK8P/pAA0AD/9KABH/SgAd/+kAHv/pAKv/SgrF/9MKyv+8CtT/vArX/+kK2/+8Ct7/0wrh/9MK7f/pABwKw/9gCsf/6QrK/3cKy//pCsz/YArO/0oKz//pCtH/6QrS/+kK0//pCtT/dwrV/+kK2P/pCtr/6Qrb/3cK3P/pCt3/6Qrf/+kK4P/pCuL/YArj/0oK5v/pCuj/6Qrp/+kK6//pCuz/6Qru/+kK8P/pAAUKxf+6Ctf/6Qre/7oK4f+6Cu3/6QADAA//jQAR/40Aq/+NAAEADABqAAMBfAMKAAIADwMIAwgAAAMOAw4AAQMmAycAAgMpAykABAV4BY4ABQWQBZQAHAWXBZkAIQWcBaYAJAWsBbIALwW1BcEANgXGBdIAQwYlBigAUAhfCGYAVAkCCQQAXAllCWgAXwACAC0AJAA9AAAARABdABoAYgCBADQAiQCJAFQAkACRAFUAoAChAFcApgCmAFkArACwAFoAuQC6AF8AxgDVAGEA4ADlAHEA5wDsAHcA9gD/AH0BAgEqAIcBigGMALABlgHVALMB3QHkAPMC/gMBAPsDOAM7AP8DUANVAQMDYANnAQkDfAN/AREDigOXARUDuAO5ASMDwAPyASUD9gP3AVgD+QP5AVoD/gQHAVsEDQQ8AWUEPwRNAZUEUwRUAaQEVwS1AaYGtQa8AgUGvwbIAg0GzQbQAhcG0wbiAhsG5QcAAisHCQcQAkcHEwcsAk8HMQdKAmkIRAhFAoMISAhNAoUI9wkAAosJEQk/ApULhwuHAsQAYwAAEi4AABI0AAASOgAAEkAAAhJGAAASTAAAElIAABJYAAASXgAAEmQAABJSAAASagAAEkwAABJwAAASdgAAEnYAABJwAAASfAAAEoIAABKIAAASjgAAEpQAARKaAAISoAACEqYAAhKsAAISpgAAErIAAhK4AAISvgACEr4AAhK+AAISxAACEsoAAhLQAAIS0AACEr4AAhLWAAIS3AACEqAAAhKgAAIS4gACEuIAAhLoAAISxAACEu4AAhL0AAIS+gACEwAAAhLWAAIS3AAAEwYAABMMAAATEgAAExgAABMeAAATJAACEqAAABJMAAIS9AACEr4AAhK+AAATKgAAEzAAABM2AAITPAACEr4AABNCAAATQgAAE0IAABNCAAATQgAAE0IAABNCAAATQgAAE0IAABNCAAATQgAAE0IAABNCAAATSAAAE04AABNUAAATVAAAE1oAABJqAAATYAACE2YAAhNsAAITbAACE2wAABJqAAITZgACE2YAABNyAAATeAAAE3gAAhNmAAATfgLFEfYR/BICEggSDhIUEhoSIBImEiwSMhI4Ej4SRBJKEiwSUBICElYSMhJcEmISMhJoEm4SdBJ6EoAShhKMEmISMhJKEpISmBKeEoYSpBKqEmISsBJoElYSMhK2EiwSRBK8EsISMhLIEj4SRBLOEj4SDhK8EggSRBLUEmIS2hJoEj4S4BLmEuwS8hL4Ev4SMhMEEj4S4BMKExATFhIUExwTIhMoEy4SmBMoEzQTOhMoE0ASDhNGE0wTUhNYE14TZBNqEzQTcBN2E3wSmBNGE4ITiBOOE5QTiBOaE6ASmBNGE6YTrBOyE7gTvhPEE8oT0BNGE9YT0BMoE0wT3BN2EzQT4hPoE+4T9BOOE/oUABQGFAwUEhQYEzQT3BNGFB4UJBQqFDATvhQ2FB4T3BQqFB4UPBRCFEgUThRUFFoUYBLmFFoUZhLmEhoSIBRsFHIUeBJKFH4UhBJoFIoUkBK2FH4UlhJoEy4UnBMoEy4UnBMoEy4UnBMoEy4UohMoEy4UohMoFKgUnBMoFB4TOhSuE3wUtBNYE3wUtBNYE3wUtBNYE3wUtBNYFLoUwBQYFMYUzBNqEm4U0hTYEm4U3hJ6FOQU6hNGFPAU9hMoFPAU9hMoFPAU9hMoFPAU9hMoFPAU9hMoE6AU/BUCE6AU/BNGFPAU/BNGFPAU/BNGE3wU6hNYEjIVCBUOElYVFBK2FRoVIBUmFSwU6hUyEiwVOBU+FUQVShLmFVAVVhLmFIoVXBK2Eg4VYhVoFW4VdBV6FYAU6hWGFYwVkhK8FZgVnhLmFaQUeBJKFaoVShLmFYwUeBWwFbYUeBJKFbwVwhXIFc4VwhXUFdoV4BXUFeYV7BXyFaQVXBK2FaQVXBK2FaQVXBK2FaQV+BJoFf4WBBJoFf4V+BJoFgoWEBJ6E3wR/BYWE5QTXhYcFiIWKBMEFi4WNBQqFjoUeBUyFi4UtBZAEiwSRBI4E3wU6hZGFHIWTBMKFYAU6hWGEiwWUhK8E3wWWBZeFmQWahKqFOQWcBZ2FeYWfBJ6FoISRBaIFo4TOhaUFpoWoBamFqwWshMoFrgWoBamFr4WshMoFqwSRBbEFbYWyhMEFtAUohYWFtYW3BbiFugUPBbuFvQVXBI4FvoSMhIUEiwSMhJKFwAXBhcMEzQXEhbuFxgXHhJKFOQU/BbEFyQXKhYWFzAXNhOyFzwXQhYWE4IWghOyFzwSmBYWE6YWLhOyF0gVkhJoFOQUtBMoFHIVkhJoF04XVBMoF1oXYBK2EiwXZhMoF2wVkhamFLoXchd4FaoVkhamE14U0hd+FUQUeBeEF4oXkBZAF5YSIBecF6IXqBeuF7QUeBIUF6IXuhfAFbYVkhJoFKgXxhNYFaQVkhJoFzwXzBNYFUQUeBfSF9gX3hZAFUQUeBfSF+QX3hZAEhoX6hI4F/AX9hf8GAIYCBK8GA4VVheEGBQU/BbEFZgVkhImFi4XVBbEGBoYIBImFi4XVBbEFYwYJhJKE3wUohNYF0gYJhJKFPAUohNYGCwYJhJKGDIUohNYFmQXYBKqGDgU/Bg+GEQVkhKqFOQWcBg+ElYYShhQGFYXxhg+Ff4VkhJoFyQYXBNGGGIYShJoE3wYaBNGGG4YdBXIGHoYgBJ6GIYYjBJ6GJIU0hJ6GIYYmBJ6E6YU3hJ6GJ4WLhU+E4IYpBiqGEQYsBi2GLwYwhjIGM4YShjUE3wY2hjgE0wTUhNGEpISmBbuE4IYpBjmGGIYShjsFSwY8hg+EhoS4BLOFSwUJBg+FIoVkhK2GBQXVBMoGEQVkhK2GBQY+BMoGP4SMhjUGQQZChkQF0gUeBJKF4oUnBkWEpISMhIUF6IZHBQYFf4VkhJoE6AY+BNGFH4VkhJoE6AU/BNGFf4VkhJoFPAU9hNGGSIYShjsGSgT3Bg+GS4ZNBV6GToZQBJoGUYVkhICF4oY+BlMFLoZUhOyGS4ZWBL4GV4ZZBQ2GS4ZahL4GV4ZcBQ2GS4ZWBL4GV4ZZBQ2GXYZfBK8FYAUJBlMElYZghK2GYgZjhMoEmIZlBLOEzQYCBNYGZoR/BmgFEgTIhmmGawR/BICGbIZuBm+E2QZxBnKGdATUhnWFHIZxBJKGdwZ4hNYFHIZxBJKFOQTUhNYGegZ7hn0GfoaABOyGgYYpBoME4IUHhoSElYSMhoYGdAT0BoeFmQSMhokGdwaKhZGGjAS2ho2GdAUPBo8Ff4S2hLOGdwaQhNYGP4YShpIFB4aThSuFaoS4BICGlQaQhSuFaoS4BICFYAUPBSuFbYaWheEFqwUohpgFeYaZhn0Gmwachd4FaQaeBK2FPAU6hNYGn4ahBLOE6AU6hNYEhoaihamGdAUPBNYE3wakBbEGV4YShJcGpYSsBI4Fi4anBKeGpYaohI4GqgarhNGE2QatBWwGroawBImGsYazBMoEiwatBeEElYa0hKqGtga3hI4EggarhNYGdAT3BrkFoIa6hI4Egga8BfSEiwa9hr8GwIbCBKqGDgbDhsUGxobIBsmE5QTXhssGzIbOBJ6Gz4ZfBMEGDgbRBNGE4IX8Bd4Fi4bGhtKG1AbVhsmEmIYShamG1wTcBtiElYbaBK2EoYbbhK2G3QbehNGEhobgBImEggbRBg+GP4ZxBuGEv4SRBK8E9YUABQqG4wSRBMEG5IXPBjgF6IbmBueEpISsBIUE14SYhukEpISsBuqGz4a0hamG7AS4Bu2EsIbvBvCFPAZlBvIFzwSIBvOG9QUPBvaG+ASIBvmF5YSRBaIE6AbRBNGG+wb8hv4GdATcBv+HAQcChwQHBYcHBwiHCgcLhw0EvIcOhxAHEYcTBxSHFgShhxeHGQcahxwHHYcfByCHIgcjhyUGdAcmhNYHKAcphysHLIVIBy4ElYX6hKqEzQTcBg+HL4cxBKqE0AWcBg+HMoahBJKHNAc1hzcElYc4hhQGdAT0BzoFaQc7hhQFPAU6hzoFvQc9Bz6E6AdABg+E6YdBh0MHRIdGBwQHR4cHB0kHSocLh0wHTYaeBKqFOQWcBg+GtgdPBamEiwSRB1CF0gahBWwFOQUohMoGawdSBICFqwUohZGGawdSBICFqwUohZGF0gdThWwFi4U6hNYF0gdThWwHVQU6hNYFeYV4BTYGHoachXIHVoV4BTYGHoUwBn0Ff4aeBK2E3wdYBMoFaQaeBK2E3wdYBNYF0gdZhLOE6wdbB1yF0gdZhLOE14dbBOOHXgdfhLOE6AU6hNYHXgdfhLOE6AU6hNYEpIdTh2EF6Idih2QE0AR/BjgFhAVGh2WHZwYIB2iFjodqBNGGtgSMhcMHa4SDhUyEggR/BNYF04SIB20HboUPB3AFbYaWhICHVQUohpgE2QSIB3GGdATUhzoFaQaeBK2FPAU9hNYHcwd0hK8F4oUohSuG1wYCBpgFB4d2B3eHeQTcB3eEggTcBNYHeoUPB3wFo4UPBbEFtASDhzoE3wZfBNYGdAd9hNYGdAd/BNYFo4eAh4IFEgeAh4OFEgUPB4OG1wUPB4UHhoeIB4mE3watBg+HiweMhg+HiwUPBMoHjgTcB4+GSgeRBLUGdATcBg+EggTcBNYEggTcB5KE4ITNBOyHlAUHhOyHlAUHhOyGJISCB5WGJISCB5WE5QWLh5cEggeYhtiGQoeaB5uGQoeaB50GQoeaB56G1wTcBjgHeQTcBjgGdAcmhNYHiwTcBMoFRoegBKqHoYejBK2GBQShhxeG+wekh6YGKQSLB6YG+wbdB6eGQQepB6qGQQepB5cGQQepBOOHrAethi2FugUPBNYGdAYCBkWFB4WWB68E4gSPh7CE14SYh7IHs4TXhukE6Ae1B7aGmwe4B7mFAwe4B7aFugeMhNGEzQe7B3eFB4UPBkWFB4VGhkWHvIe+BQ2FtAbGhkWFEgTcBkWG9QUPBaUG9QUPB7+G9QYCB8EHiwYCB8EHuAbGhi2GDgR/BNYGKQSVhi2HiwWWB8KElYVFBK2FB4fEBkWHboWWB8WHxwfIhNYFugT3B8oE14SGh7aHboWWBlMFo4fLh80FOQZfBg+GKQS7Bi2FPAYaBNYGXwfOh9AGXwfRh9MGXwfUh9YH14fIhsmH2QfahjgHtQfcB92HtQffB+CEmIfiBamEj4fjhLOFi4bRBZAH5QbRB+aGZoR/B+gGdATIh+mH6wSDhLUF5YSmBNYGVISDhmgH7ISmB+4EpISDh++E3wSmB/EH8oSMhICGDgSDh+aEv4SMh/QGDgSDh/WEv4SMh/cFPASDh/WGP4SMh/iFOQSDh8KEv4SMhcME6ASDh8EEv4SRB/oGYgTUh+mEv4SRBcMGYgTUh+mF0gSUBICH+4TZBNqFmQZfB/0Fi4TcB8EGn4SMhLOFyQSmBNYGtgSMh/6G+ASmCAAIAYSMhLOFvQSmBNYGtgSMiAMG+ASmCASGtgSMiAYG+ASmB8KGJ4SdBkQE4ITiB6qF7QSMhK8IB4SmBzcE2QSMhpIE3wSmBo8E2QSMiAkE3wSmBmmEggSmCASE4ITrBoSICoSmCAwIDYWgiA8EggSmCAwE4ITrCBCEggSmCBIE4ITrB6qIE4bViBUIFogYBUmIE4gZiBUIFogbBUmIFogciB4IH4ghCB4HZwZfBLOFOQTUhZGGtgZfCCKEzQTUhoeGtgZfB/6EzQTUhnWGtgZfB3GEzQTUh8KHMogkBK8FzwT0BtiFUQgkBK8FzwT0BtiGXYSMheEIJYepBOOGM4SMiCcIKIepCCoGM4SMiAMIKIepCCuF2wgtBJKGzgTOiC6FoIgtB/cExwTOiDAIMYgtCDMINIbGiC6IMYgtCDMINgbGiC6FUQgtCDeGzgTOiDkF7Qg6hLUIPAWrCD2EpIg6iD8Em4hAiEIEpIg6iD8Em4hAiEOEpIg6iEUEm4hAh5cGtgatCEaG5gUJB5KGtgatCAYG5gUJBg+GtgatCAYG5gUJCEgGXYZfBeEF+QWWBvaGP4ZfBpIISYWWCEsGS4S8hL4GV4hMhQ2GNoS8iE4G3QhMiE+GawSsBeEGzghRBzcFbYSsBeEF+QhRBzcGawS4BICFYAhRBSuFvQSRBK8FYAhRBvaFzwSRCFKFhAhRCFQE6ASRCD8IVYhRCFcFOQbGhnWIWIhaCFuIXQhehQ2IYAhhhSuIYwhkhpgFbwhmBOOIZ4hpBOyIZ4hpCGqFOQbRBcME5QWLhkQEzQT0BaIF6IdihQYIbAfIhhQIbAfIhhQIbYhvCHCIcghziHUIdoVSiHgGHQh5iHsIfIh+CH+EpISmBKeIgQUeCIKE/oUACIQFEgUTiIWIhwiIhRUEy4SmBMoE0ASDhNGE14TZBNqE7gTvhPEE8oT0BNGE0wT3BN2E+4T9BOOIigiLhOOE/oUABQGFAwUEhQYFEgUThRUIjQiOiJAIkYiTCJSIlgiXiJk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DKYMxAzKDNAM1gyUDJoM3AziDOgM7gygDKYMuAy+DJQMmgy4DL4MoAymDJQMmgysDLIMoAymDJQMmgz0DPoMlAyaDJQMmgysDLIM3AziDNwM4gzQDNYM3AziDNwM4gzEDMoM3AziDNwM4g0ADQYNAA0GDNAM1g0ADQYM6AzuDNwM4gzcDOIM3AziDNwM4g0MDRIM0AzWDMQMygzcDOIM0AzWDKAMpgzQDNYM0AzWDNAM1g0YDJoNGAyaDKAMpgyUDJoNHgymDSQMvg0eDKYM3AziDNwM4gzcDOIM3AziDNwM4gzcDOIM0AzWDNwM4gzcDOIM3AziDNwM4gzEDMoMxAzKDMQMygzEDMoM3AziDNwM4gzcDOIM3AziDNwM4gzcDOIM3AziDNwM4gzcDOIM3AziDKwMsg0qDTAMuAy+DTYNPAysDLIM3AziDRgMmg0YDJoNJAy+DSoNMAz0DPoM0AzWDJQMmg0YDJoNGAyaDRgMmg0YDJoNGAyaDUIMyg1CDMoNQgzKDUIMyg0kDL4NJAy+DSQMvg0eDKYNHgymDR4MpgzEDMoM3AziDQANBg0YDJoM0AzWDUgMsgzQDNYMoAymDNwM4g0YDJoM0AzWDJQMmgzcDOINJAy+DNwM4gzEDMoMlAyaDNAM1gygDKYM0AzWDR4MpgzQDNYM3AziDJQMmgzcDOIMlAyaDNwM4g0eDKYNTg1UDKAMpgyUDJoM3AziDRgMmgzcDOINWgziDQANBgzcDOINYA1mDNwM4g1sDXINHgymDNwM4g0eDKYM3AziDSQMvgzcDOINHgymDQwNEg0eDKYNDA0SDRgMmgzQDNYMrAyyDMQMyg1IDLINeA1+DR4MpgzcDOINHgymDNwM4g1IDLIM0AzWDUgMsgzQDNYNhA2KDZANlg2cDaIMlAyaDNwM4g0eDKYM0AzWDR4MpgzQDNYMlAyaDNwM4g0YDJoM3AziDRgMmgzcDOINJAy+DNwM4g0kDL4M3AziDLgMvgzcDOINHgymDVoM4gygDKYM3AziDMQMyg0ADQYMxAzKDQANBg1CDMoNAA0GDMQMyg0ADQYM0AzWDQANBgyUDJoM0AzWDNAM1gzcDOINAA0GDKAMpgzcDOINqA2uDNwM4gy4DL4M3AziDLgMvgzcDOIMoAymDQwNEg0YDJoM0AzWDKwMsgzEDMoNHgymDNwM4gygDKYM3AziDR4MpgzcDOIMoAymDNwM4gz0DPoMoAymDRgMmgzQDNYNAA0GDbQM+gygDKYNtAz6DKAMpg20DPoMoAymDRgMmgzQDNYNug3ADcYNzA3SDdgN3g3kDJQMmgzcDOINGAyaDNwM4g0YDJoM3AziDRgMmgzcDOINGAyaDNwM4g0YDJoNWgziDRgMmgzcDOINGAyaDNwM4g0YDJoM3AziDRgMmg1aDOINGAyaDVoM4g0YDJoM3AziDRgMmgzcDOINGAyaDNwM4g0YDJoM3AziDRgMmgzcDOINGAyaDNwM4g0YDJoM3AziDRgMmg1aDOINGAyaDNwM4g1CDMoNAA0GDMQMyg0ADQYMuAy+DNwM4g0kDL4M3AziDSQMvgzcDOINJAy+DNwM4g0kDL4M3AziDSQMvg1aDOINJAy+DNwM4g3qDcANxg3MDeoNwA3GDcwN6g3ADcYNzA3qDcANxg3MDboNwA3GDcwMoAymDNwM4g0eDKYM3AziDfAN2A3eDeQN8A3YDd4N5A3wDdgN3g3kDfAN2A3eDeQN8A3YDd4N5AyUDJoM0AzWDRgMmgzQDNYNGAyaDNAM1g0YDJoM3AziDUIMyg0ADQYNJAy+DNwM4g0eDKYM3AziDLgMvgzcDOIM3AziDfYN/A4CDggM3AziDgIOCAzcDOIMoAymDKAMpgzQDNYMoAymDg4OFA4CDggM3AziDhoM4gyUDJoOIA4mDKwMsgy4DL4OLA4yDjgOPg0ADQYMxAzKDJQMmgzQDNYNAA0GDkQOSg5QDlYMoAymDNwM4gy4DL4OXA5iDmgMmg32DfwM3AziDJQMmgyUDJoM0AzWDm4OdA0MDRIMxAzKDKwMsgzEDMoMrAyyDnoOgAygDKYOhg6MDNAM1gysDLIM0AzWDKwMsgysDLIOkg6YDp4OpAzQDNYM3AziDqoOsA62DrwOwg7IDsIOyA7ODtQO2g7gDrYOvA7mDuwOzg7UDNwM4g7yDTANNg08DLgMvgzcDOINJAy+DNwM4g0YDJoO+AzWDLgMvgzcDOINJAy+DNwM4g1IDLIM0AzWDQANBg7+DrAOtg68DsIOyA0kDL4M3AziDwQPCg8QDxYNHgymDNwM4g0YDJoM3AziDRgMmgzcDOINGAyaDNwM4g0YDJoM3AziDUIMygzEDMoNQgzKDMQMyg0kDL4M3AziDSQMvgzcDOINHgymDQwNEg0eDKYNDA0SDR4MpgzcDOINHgymDNwM4gysDLIMxAzKDxwPIg8oDy4NHgymDVoM4g80DzoNxg3MDcYNzAysDLIM0AzWDRgMmgzcDOIMlAyaDNwM4g0kDL4M3AziDRgMmgzQDNYM3AziDNwM4gzcDOIM3AziDNAM1gzQDNYM3AziDNwM4gzcDOIPQA9GD0wPUg9YD14PZA9qD3APdgzEDMoM3AziDNwM4g98D4IPiA+OD5QPmgzcDOIM3AziDNwM4g0ADQYNAA0GDQANBg0ADQYNAA0GDQANBg+gD6YM6AzuDOgM7gzoDO4M3AziDNwM4g+sD7IM3AziD7gPvg/EDtQM3AziDQwNEg0MDRINDA0SDQwNEg0MDRINDA0SDQwNEg/KD9APyg/QDNAM1g/WD9wP4g/oD+4P9A/6EAAMxAzKDMQMygzcDOIQBhAMEBIPggzQDNYMoAymDNAM1hAYEB4M0AzWECQQKgzQDNYM0AzWDNAM1gzQDNYM0AzWDNAM1gy4DL4QMBA2D3APdg98D4IPfA+CEDwQQgzQDNYQSBBODNwM4gzQDNYM0AzWEFQQWhBgEGYQbBByEHgQfhCEEIoQkBCWEJwQohCoEK4QtBC6EMAQxhDMENIMlAyaDNwM4g0YDJoM3AziDJQMmgzcDOIMlAyaDNwM4g0eDKYM0AzWDR4MpgzcDOIMoAymDNwM4gygDKYM3AziDKAMpgzcDOIMoAymDNwM4g0YDJoM3AziDRgMmgzcDOIMlAyaDNwM4gyUDJoM3AziDRgMmgzcDOINSAyyDUIMyg0kDL4M3AziDR4MpgzcDOIMoAymDNwM4g0eDKYNWgziDKAMpgzcDOIMoAymDNwM4gzEDMoNAA0GDUIMyg1CDMoNGAyaDvgM1gyUDJoM0AzWDJQMmgzQDNYM3AziDQANBg1aDOIQ2A0GDNwM4g0ADQYM3AziDQANBhDeDO4M6AzuEN4M7gzoDO4M6AzuDOgM7g0eDKYM3AziDKAMpgzcDOIMoAymDNwM4gygDKYM3AziDSQMvgzcDOINJAy+DVoM4g0kDL4M3AziDSQMvgzcDOINGAyaDNwM4g0YDJoM3AziDR4Mpg0MDRIMoAymDQwNEg0eDKYNDA0SDKAMpg0MDRINGAyaDNAM1gyUDJoM0AzWDRgMmg74DNYNGAyaDvgM1g0Y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ASoAhwGKAYwAsAGWAdUAswHdAeQA8wL+AwEA+wM4A5cA/wO4A7kBXwPAA/IBYQP2A/kBlAP+BAcBmAQNBDwBogQ/BE0B0gRTBFQB4QRXBLUB4wa1B0oCQghECEUC2AhICE0C2gj3CQAC4AkRCT8C6gABAAAGOgMZBjoGQAZGBkwGUgZYBl4GZAZqBnAGdgZ8BoIGZAaIBo4GiAaUBpoGcAaaBqAGpgasBrIGuAZ8Br4GoAbEBrIGWAbKBtAG1gbcBuIG6AbuBvQG+gcABwYG1gayBwwG4gcSBxgG9AceByQGOgY6ByoGUgZkBogGmgZ8BnwGfAZ8BnwGfAcwBrIGsgayBrIGagZqBmoGagb0BvoG+gb6BvoG+gbiBuIG4gbiBnwHNgaIBzwGTAdCBjoGOgaIB0gHTgceBrIGOgZSBjoGUgZSBmoGagZqBmoGiAaIBogGmgaaBpoGagZ8BugGmgayBrgHJAZMB1QGsgceBo4HWgZeBsoGagdgBzAGRgagBkYGoAbEBjoGfAdmB2wGTAbEBkwHcgd4BlIGsgZ8BugGfAboBnwG6AZkBvQGZAb0BogG+gaUBtYGlAbWBpoGsgd+B4QGcAcMBpoG4gaaBuIGuAckBrgHJAZSB4oGiAY6BnwGRgagBkYGoAZSBrIGUgayBlIGsgZeBsoGXgbKByoGygZkBtAGZAb0B5AG1gZqBtYGagbWB5YHnAZwBtwGdgeiB6gHrgceB7QHqAe6B8AGiAb6BogG+gaUB8YGmgayBnAHDAaaBuIGmgbiBpoG4gfMB9IGpgcYBrIHHgfYBqYHGAamBxgGpgcYBrIHHgaIBvoGmgbiBjoGRgY6BnwGOgZ8BjoGfAY6BnwGOgZ8BjoGRgY6BnwGOgZ8BjoGfAY6BnwGOgZGBlIH3gZSBrIGUgayBlIGsgZSBrIGUgayBlIGsgZSB94GagbWB+QH6gfwB/YGiAb6BogG+gaIBvoGiAb6BogG+gfwB/YGiAb6BogG+gaIBvoGiAb6B/AH9gf8BuIGmgbiBpoG4gaaBuIGmgbiBpoG4gf8BuIH/AceBrIHHgayBx4GOgZ8BmoG1gaIBvoGmgbiB6IGsga+CAIHJAa+ByQGvgeoB6IGoAZMCAgIDggUCBoIIAZMCCYGXggsBzwH2AZqBnYG4gboCDIIOAZkCD4GiAhECEoIUAdaCFYICAhcBkYIYgeWBnAHDAhoBogIbgckBx4GuAckCHQIegiACIYGTAcACIwIkgiYCJ4IpAiqCLAItgikBrIIvAjCBl4GygZeBsoGdgbiCMgIGgjICBoIdAeuBtwIjAiSCJgGXgbKCM4I1AZkCG4GOgZ8BjoGfAZSBrIGUgayBmoI2gZqCNoGiAb6BogG+gaUBtYGlAbWBpoG4gaaBuIHfgeECOAI5gZkBtAI7AZMBkwG4gayBjoGfAjyCPgGiAb6BrIHHgZMBsQI/gj+CIYHVAkEBsQGsgdUCQoIXAkQB1QJFgbKBsoGQAkcBqAJIghuCSgG1gbWBtYG1gbWCS4JNAk6CUAJRghuCUwHqAdUCVIJWAleCWQJZAlqCXAHHgbWCXYGxAiACXwHAAmCCYgJjgmUBx4G4gmaBqAIbgmgBsQJpgfSCG4HrggsCWQJrAZwCGIGiAagCIYJsghuCXAJuAdUCb4HEgnECcoJ0AnWCdwJ4gZkCegGXgnuBr4ICAY6BkYGQAa+CfQJ+goACgYKDAoSBkwGxAn0BsQKGAoeCiQGxAoqCjAGUgayBlIGsgd4CjYKPApCBwYKSAZYBlgGXgbKBmQG0AZkBpoGZAbQCk4G9AZ2ClQKWgpgBmoHkAZ2BuIGdgeiCmYKBgZeCmwHGApsCnIKeAeuCn4GggbuBoIG7gaCBu4GZAb0BmQHqAqECgYKiglqBogG+gaIBvoGiAb6BogG+gaOBwAGjgcABpQG1gaUCpAGlAqQCpYKnAaaBrIKAAqiBpoGsgaaBrIKAAqiBnAHDAqoCq4KtAq6B64HHgrAChIKxgrMCtIK2AaaBuIGmgbiBqAHEgreCuQGpgcYBqYGUgasBvQGrAb0BrIHHga4ByQK6gbECvAKBgoGBwwHGAceBnwH2AbWBtwK9gr8CvYLAgsICw4HPAjyBjoGRgagBnwGcAd4CPIJpga+BsQGWAsUCBQHAAbWBtYGsgcMByQGygsaCyALJgbWBtYHAAayCywK0gsyCzgGygs+Cn4LRAcqBwALSgrSC1ALIAcqCtII7AtWCUwIyAcqCFwGsgtcC2ILaAtWBkYAAQAo//YAAQRqAAAAAQLQAAAAAQNmAAAAAQKoAAAAAQQGAAAAAQCgAAAAAQO2AAAAAQRMAAAAAQC0AAAAAQIcAAAAAQScAAAAAQNcAAAAAQU8AAAAAQOYAAAAAQCW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DKwMiAysDIgMrAyIDKwMiAysDIgMrAyIDJQMiAzKDIgMmgyIDNAMiAyUDIgMrAyIDIIMiAyCDIgMmgyIDMoMiAy4DIgMpgyIDIIMiAyCDIgMggyIDIIMiAyCDIgMggyIDKAMiAygDIgMoAyIDKAMiAyaDIgMmgyIDJoMiAyODIgMjgyIDI4MiAygDIgMrAyIDL4MiAyCDIgMpgyIDJQMiAymDIgMjgyIDKwMiAyCDIgMpgyIDIIMiAysDIgMmgyIDKwMiAygDIgMggyIDKYMiAyODIgMpgyIDI4MiAymDIgMrAyIDIIMiAysDIgMggyIDKwMiAyODIgM1gyIDI4MiAyCDIgMrAyIDIIMiAysDIgMrAyIDL4MiAysDIgM3AyIDKwMiAziDIgMjgyIDKwMiAyODIgMrAyIDJoMiAysDIgMjgyIDMQMiAyODIgMxAyIDIIMiAymDIgMlAyIDKAMiAyUDIgM6AyIDI4MiAysDIgMjgyIDKwMiAyUDIgMpgyIDJQMiAymDIgM7gyIDPQMiAz6DIgMggyIDKwMiAyODIgMpgyIDI4MiAymDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMmgyIDKwMiAyaDIgMrAyIDJoMiAysDIgMjgyIDKwMiAyODIgMrAyIDKAMiAy+DIgMoAyIDL4MiAygDIgMvgyIDKAMiAy+DIgMpgyIDL4MiAyCDIgMpgyIDKYMiAysDIgMvgyIDI4MiAysDIgNAAyIDKwMiAyaDIgMrAyIDJoMiAysDIgMjgyIDMQMiAyCDIgMpgyIDJQMiAygDIgMjgyIDKwMiAyODIgMrAyIDI4MiAysDIgMjgyIDKwMiAy4DIgMjgyIDIIMiAymDIgMvgyIDLgMiAyODIgMuAyIDI4MiAy4DIgMjgyIDIIMiAymDIgNBgyIDQwMiA0SDIgNGAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAygDIgMvgyIDKAMiAy+DIgMmgyIDKwMiAyaDIgMrAyIDJoMiAysDIgMmgyIDKwMiAyaDIgMrAyIDJoMiAysDIgMmgyIDKwMiA0GDIgNDAyIDQYMiA0MDIgNBgyIDQwMiA0GDIgNDAyIDQYMiA0MDIgMjgyIDKwMiAyODIgMrAyIDRIMiA0YDIgNEgyIDRgMiA0SDIgNGAyIDRIMiA0YDIgNEgyIDRgMiAyCDIgMpgyIDIIMiAymDIgMggyIDKYMiAyCDIgMrAyIDKAMiAy+DIgMmgyIDKwMiAyODIgMrAyIDJoMiAysDIgMrAyIDR4MiA0kDIgMrAyIDSQMiAysDIgMjgyIDI4MiAymDIgMjgyIDSoMiA0kDIgMrAyIDTAMiAyCDIgNNgyIDJQMiAyaDIgNPAyIDUIMiAy+DIgMoAyIDIIMiAymDIgMvgyIDUgMiA1ODIgMjgyIDKwMiAyaDIgNVAyIDVoMiA0eDIgMrAyIDIIMiAyCDIgMpgyIDWAMiAzEDIgMoAyIDJQMiAygDIgMlAyIDWYMiAyODIgNbAyIDKYMiAyUDIgMpgyIDJQMiAyUDIgNcgyIDXgMiAymDIgMrAyIDX4MiA2EDIgNigyIDYoMiA2QDIgNlgyIDYQMiA2cDIgNkAyIDKwMiAzKDIgM0AyIDJoMiAysDIgMmgyIDKwMiAyCDIgMpgyIDJoMiAysDIgMmgyIDKwMiAyUDIgMpgyIDL4MiA1+DIgNhAyIDYoMiAyaDIgMrAyIDaIMiA2oDIgMjgyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDKAMiAygDIgMoAyIDKAMiAyaDIgMrAyIDJoMiAysDIgMjgyIDMQMiAyODIgMxAyIDI4MiAysDIgMjgyIDKwMiAyUDIgMoAyIDa4MiA20DIgMjgyIDKwMiA26DIgNDAyIDQwMiAyUDIgMpgyIDIIMiAysDIgMggyIDKwMiAyaDIgMrAyIDIIMiAymDIgMrAyIDKwMiAysDIgMrAyIDKYMiAymDIgMrAyIDKwMiAysDIgNwAyIDcYMiA3MDIgN0gyIDdgMiAygDIgMrAyIDKwMiA3eDIgN5AyIDeoMiAysDIgMrAyIDKwMiAy+DIgMvgyIDL4MiAy+DIgMvgyIDL4MiA3wDIgMsgyIDLIMiAyyDIgMrAyIDKwMiA32DIgMrAyIDfwMiA4CDIgMrAyIDMQMiAzEDIgMxAyIDMQMiAzEDIgMxAyIDMQMiA4IDIgOCAyIDKYMiA4ODIgOFAyIDhoMiA4gDIgMoAyIDKAMiAysDIgOJgyIDiwMiAymDIgMjgyIDKYMiA4yDIgMpgyIDjgMiAymDIgMpgyIDKYMiAymDIgMpgyIDKYMiAyaDIgOPgyIDdgMiA3eDIgN3gyIDkQMiAymDIgOSgyIDKwMiAymDIgMpgyIDlAMiA5WDIgOXAyIDmIMiA5oDIgObgyIDnQMiA56DIgOgAyIDoYMiA6MDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyODIgMpgyIDI4MiAysDIgMjgyIDKwMiAyODIgMrAyIDI4MiAysDIgMjgyIDKwMiAyCDIgMrAyIDIIMiAysDIgMggyIDKwMiAyCDIgMrAyIDIIMiAysDIgMlAyIDKAMiAyaDIgMrAyIDI4MiAysDIgMjgyIDKwMiAyODIgMrAyIDI4MiAysDIgMjgyIDKwMiAygDIgMvgyIDKAMiAygDIgMggyIDKYMiAyCDIgMpgyIDIIMiAymDIgMrAyIDL4MiAysDIgMvgyIDKwMiAy+DIgMrAyIDL4MiAyyDIgMsgyIDLIMiAyyDIgMsgyIDLIMiAyODIgMrAyIDI4MiAysDIgMjgyIDKwMiAyODIgMrAyIDJoMiAysDIgMmgyIDKwMiAyaDIgMrAyIDJoMiAysDIgMggyIDKwMiAyCDIgMrAyIDI4MiAzEDIgMjgyIDMQMiAyODIgMxAyIDI4MiAzEDIgMggyIDKYMiAyCDIgMpgyIDIIMiAymDIgMggyIDKYMiAyCDIgMpgyIDJQMiAygDIgMlAyIDKAMiAyUDIgMoAyIDJQMiAygDIgMjgyIDKwMiAyODIgMrAyIDI4MiAysDIgMjgyIDKwMiAyODIgMrAyIDIIMiAymDIgMggyIDKYMiAy4DIgMjgyIDLgMiAyODIgMggyIDKYMiAyCDIgMpgyIDIIMiAymDIgMlAyIDKYMiAyUDIgMpgyIDJQMiAymDIgMrAyIDKAMiAyODIgMpgyIDKwMiAy+DIgMvgyIDL4MiA6SDIgOmAyIDp4MiA4gDIgOpAyIDqQMiA6qDIgOsAyIDIIMiAyODIgMpgyIDKwMiAyUDIgMpgyIDKYMiA62DIgMrAyIDKwMiAygDIgMsgyIDKwMiAysDIgMxAyI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BY0AAQWQBZQABQWXBZkACgWcBaYADQWsBa8AGAW4BbgAHAW6BbwAHQXABcEAIAhiCGUAIgkCCQMAJglnCWcAKAApAAAA+gAAAQAAAAEAAAABAAAAAQAAAAEGAAABBgAAAQwAAAEGAAABEgAAARgAAAEeAAABHgAAAR4AAAEkAAABKgAAATAAAAEwAAABEgAAARIAAAE2AAABEgAAATwAAAFCAAABBgAAASQAAAFIAAABTgAAAU4AAAFCAAABDAAAAQwAAAEMAAABSAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAKQC0ALoAugC6ALoAugC6ALoAugDAALoAugC6ALoAugC6ALoAugC6ALoAugDAALoAxgC6ALoAugC6ALoAxgC6ALoAugC6ALoAugC6ALoAugC6ALoAAf1L/34AAQAA/4gAAQAA/5wAAQAA/7AAAQAA/2oAAQAA/y4AAQAA/7UAAQAA/84AAQAF/2oAAQAA/3QAAQAA/1EAAQAA/u0AAQAA/usAAQAA/8QAAQAA/34AAQAAAAAAAf1L/lwAAQAA/fgAAQAA/lwAAQAA/RIAAgF4AAUAXAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIAAIABQIsAjAAAAIyAjIABQI0AlkABgKIAogALArCCvAALQACARAABQBCACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIAAIABAErAS0AAAHxAfcAAwH5Ag8ACgqhCsEAIQACBAgABQEAACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAAkAEgAJABIACQASAACAE0AJAA9AAAAYgBoABoAkACRACEArACvACMAugC6ACcAxgDUACgA4ADgADcA4gDiADgA5ADkADkA5wDnADoA6QDpADsA6wDrADwA9gD2AD0A+AD5AD4A+wD7AEAA/QD9AEEBAgECAEIBBAEEAEMBBgEGAEQBCAEJAEUBCwELAEcBDQENAEgBDwEPAEkBEQERAEoBEwETAEsBFQEVAEwBFwEXAE0BGQEZAE4BGwEbAE8BHQEdAFABHwEfAFEBIQEhAFIBIwEjAFMBJQElAFQBJwEnAFUBKQEpAFYBigGKAFcBlgGWAFgBmAGYAFkBmgGaAFoBnAGcAFsBngGeAFwBoAGgAF0BogGiAF4BpAGkAF8BpgGmAGABqAGoAGEBqgGqAGIBrAGsAGMBrgGuAGQBsAGwAGUBsgGyAGYBtAG0AGcBtgG2AGgBuQG5AGkBuwG7AGoBvQG9AGsBvwG/AGwBwQHBAG0BwwHDAG4BxQHFAG8BxwHHAHAByQHJAHEBywHLAHIBzQHNAHMBzwHPAHQB0QHRAHUB0wHTAHYB1gHWAHcB2AHYAHgB2gHaAHkB3QHdAHoB3wHfAHsB4QHhAHwB4wHjAH0J5gnmAH4KIAqgAH8AAQAMABIAAQA0ADoAAQABApgAAQAPAqcCrQKvArICtQLGCD8I1wjYCNkI2gjbCNwI3QjeAAEAAAAm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AAAAMAABAAEClgABAAECoAABAAEC4wADAAAAAQAWAAMAUAAcAFYAAQAAADAAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAQLjAAMAAAABABQAAgAaACAAAQAAADAAAQABApYAAQABAqAAAQABAtIAAwAAAAEAFgADAFAAHABWAAEAAAAwAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAABAAEC0gADAAAAAQASAAEAGAABAAAAMAABAAEClgABAAECzQADAAAAAQAmAAMALABgABYAAQAAADAAAgACAo0ClwAACRAJEAALAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAADAAAAAQAoAAQALgAuAGIAGAABAAAAMAACAAICjQKXAAAJEAkQAAsAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAMAAAABACoABQAwADAAMABkABoAAQAAADAAAgACAo0ClwAACRAJEAALAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAADAAAAAQAWAAMAHABQAFYAAQAAADAAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAQLjAAMAAAABABgABAAeAFIAHgBYAAEAAAAwAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAABAAEC4wADAAAAAQAYAAQAHgAeAFIAWAABAAAAMAABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQABAuMAAwAAAAEAGgAFACAAIABUACAAWgABAAAAMAABAAEClgAC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ADAAagBkABoAAQAAADEAAgACAo0ClwAACRAJEAALAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAAAAEAFAACACAAGgABAAAAMQABAAEClgABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAAAAEAFgADABwAVgBQAAEAAAAxAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAAAAEAGAAEAB4AHgBYAFIAAQAAADEAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQLNAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAAAAQAWAAMAKAAcACIAAQAAADEAAQABApYAAQABAqAAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMAAAABABgABAAeAF4AUgBYAAEAAAAxAAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAABAAEC4wABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAAAAEAGgAFACAAIABgAFQAWgABAAAAMQABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMAAAABABYAAwAoABwAIgABAAAAMQABAAEClgABAAECoAABAAEC0gABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAAAAEAGAAEAB4AXgBSAFgAAQAAADEAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAAD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BXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAIGkAamAAMAAAABAHgAAwAWABYASgABAAAAMwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAgaQBqYAAwAAAAEAGAABABIAAQAAADMAAQABApwAAQACBpAGpgADAAAAAQBOAAIAFABIAAEAAAAzAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECnAABAAIGkAamAAMAAAABAFAAAwAWABYASgABAAAAMwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABApwAAQACBpAGpgADAAAAAQASAAEAGgABAAAAMwABAAIGkAamAAEAAQjvAAMAAAABAEgAAgAUAFAAAQAAADMAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAgaQBqYAAQABCO8AAwAAAAEASgADABYAFgBSAAEAAAAzAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAIGkAamAAEAAQjvAAMAAAABABIAAQAaAAEAAAAzAAEAAgaQBqYAAQABCPAAAwAAAAEASAACABQAUAABAAAAMwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQACBpAGpgABAAEI8AADAAAAAQBKAAMAFgAWAFIAAQAAADMAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAgaQBqYAAQABCPAAAwABABQAAQBaAAEAGgABAAAANAABAAEClgACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsDvAO8AD8DvwO/AEAIPwg/AEEI1wjeAEILiguNAEoAAQACBpAGpgADAAEAJgABADIAAgAsABYAAQAAADQAAgACAo0ClwAACRAJEAALAAEAAQKWAAEAAQKgAAEAAgaQBqYAAwABACYAAQAyAAIALAAWAAEAAAA0AAIAAgKNApcAAAkQCRAACwABAAEClgABAAECoAABAAIGkAamAAMAAgAUABQAAQBCAAAAAQAAADUAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQaeAAMAAwAWAFwAXAABAIoAAAABAAAANQACAAsCjQKZAAACmwKbAA0DKQMpAA4DvQO9AA8FfAV8ABAGjwatABEJDAkMADAJDgkOADEJEAkQADILiQuJADMLjguPADQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQaeAAMABAAYABgAXgBeAAEAjAAAAAEAAAA1AAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABBp4AAwACAFoAFAABAIgAAAABAAAANQACAAsCjQKZAAACmwKbAA0DKQMpAA4DvQO9AA8FfAV8ABAGjwatABEJDAkMADAJDgkOADEJEAkQADILiQuJADMLjguPADQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQaeAAMAAwAWAFwAFgABAIoAAAABAAAANQACAAsCjQKZAAACmwKbAA0DKQMpAA4DvQO9AA8FfAV8ABAGjwatABEJDAkMADAJDgkOADEJEAkQADILiQuJADMLjguPADQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQaeAAMABAAYABgAXgAYAAEAjAAAAAEAAAA1AAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAACAAcCoAK9AAACwgLK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AAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsDvAO8AD8DvwO/AEAIPwg/AEEI1wjeAEILiguNAEoAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAoABoAIABcAAEAygABAIoAAQAAADcAAQABApYAAQACApgCmwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAIACgKhAr0AAALCAsoAHQLNAtYAJgLYAuIAMALkAucAOwO8A7wAPwO/A78AQAg/CD8AQQjXCN4AQguKC40ASgABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAFACoAKgAcACIAXgABAMwAAQCMAAEAAAA3AAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAACAAoCoQK9AAACwgLKAB0CzQLWACYC2ALiADAC5ALnADsDvAO8AD8DvwO/AEAIPwg/AEEI1wjeAEILiguNAEoAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAqABwAIgBeAAEAzAACACoAjAABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAgAKAqECvQAAAsICygAdAs0C1gAmAtgC4gAwAuQC5wA7A7wDvAA/A78DvwBACD8IPwBBCNcI3gBCC4oLjQBKAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAUALAAsAB4AJABgAAEAzgACACwAjgABAAAANwABAAEClgABAAICmAKb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AAMABQA8ADwALgA0AHYAAQCkAAIAcAAeAAEAAAA3AAIAAgKNApcAAAkQCRAACwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAA8AC4ANAB2AAEApAADADwAcAAeAAEAAAA3AAIAAgKNApcAAAkQCRAACwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABQA+AD4AMAA2AHgAAQCmAAMAPgByACAAAQAAADcAAgACAo0ClwAACRAJEAALAAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwACABgAJAABAFgAAgAeAFIAAQAAADcAAQABApYAAQABAqAAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQLjAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAIAGAAkAAEAWAACAB4AUgABAAAANwABAAEClgABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAtIAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMAAwAaACAALgABAGIAAgAoAFwAAQAAADcAAQABApYAAQACApgCmwABAAECoAACAAcCoAK9AAACwgLK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AAMABAAkACQAHgBeAAEAkgADACQAWACMAAEAAAA3AAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAtIAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMAAwAcACIAZAABAJgAAwAqAF4AkgABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAqABwAIgBkAAEAmAACAF4AkgABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAqABwAIgBkAAEAmAACAF4AkgABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAsAB4AJABmAAEAmgADACwAYACUAAEAAAA3AAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAEC4wABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwACABoAGgABAFoAAwAaAE4AVAABAAAANwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMAAwAcACIAZAABAJgAAwAqAF4AkgABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAqABwAIgBkAAEAmAACAF4AkgABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAuMAAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABQAsACwAHgAkAGYAAQCaAAIAYACUAAEAAAA3AAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAEC4wABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAEACwAHgAkAGYAAQCaAAMALABgAJQAAQAAADcAAQABApYAAQACApgCmwACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQLjAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAIAFgAcAAEAUAABAEoAAQAAADcAAQABApYAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQLNAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAMAGAAeACYAAQBaAAEAVAABAAAANwABAAEClgABAAICmAKbAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwACABgAUgABAIYAAgAeAIAAAQAAADcAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwADAB4AGABSAAEAhgABAIAAAQAAADcAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAEACAAIAAaAFQAAQCIAAEAggABAAAANwABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQLNAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAMAIAAaAFQAAQCIAAIAIACCAAEAAAA3AAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAs0AAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAiACIAHABWAAEAigACACIAhAABAAAANwABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAEAAQLNAAEADwO9BpEGkgaTBpUGlgaaBpwGnwalBqgGqQasC44LjwADAAMAGgAgAFwAAQCQAAIAKACKAAEAAAA3AAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAwAEACgAGgAgAFwAAQCQAAEAigABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAs0AAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABQAqACoAHAAiAF4AAQCSAAEAjAABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAs0AAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABAAqABwAIgBeAAEAkgACACoAjAABAAAANwABAAEClgABAAICmAKbAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQABAs0AAQAPA70GkQaSBpMGlQaWBpoGnAafBqUGqAapBqwLjguPAAMABQAsACwAHgAkAGAAAQCUAAIALACOAAEAAAA3AAEAAQKWAAEAAgKYApsAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAABAAECzQABAA8DvQaRBpIGkwaVBpYGmgacBp8GpQaoBqkGrAuOC48AAQAMACwAAQBaAJQAAQAOApkGjwaUBpgGmQagBqEGogajBqQGpwaqCQwJDgACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwADgAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AAABfAAAAXwAAAF8AFABSAFOAVQBWgFgAWYBWgFsAXIBeAF+AYQBigGQAXIBlgGcAaIBfgGEAagBrgGKAbQBugHAAXIBlgFsAcYBzAGKAdIB2AHeAeQB6gHwAfYB/AG6AgICCAIOAhQCGgIgAiYCLAIyAjgCPgJEAkoCUAJWAlACVgJQAlYBqAGuAagBrgG6AcABugHAAboCXAI4Aj4COAI+AjgCPgI4Aj4BSAFOAVQBWgFgAWYBWgFsAXIBeAJiAmgCbgGKAZwBogJiAmgBqAGuAYoBtAG6AcABbAHGAdIB2AHeAeQB9gH8AboCAgIUAhoCIAImAiwCMgI4Aj4CRAJKAX4BhAFUAVoBigG0AboCAgJ0AnoCUAJWAXIBxgKAAoYCjAKSAiwCmAH2Ap4CpAKqArACtgK8AsICyALOAWABZgFaAWwBcgF4AkQCSgABAAAAAAABAkQAAAABAzQAAAABAhwAAAABAsYAAAABAXwAAAABAeAAAAABAnYAAAABAmIAAAABA1QAAAABAPwAAAABAOoAAAABAV4AAAABAQUAAAABA00AAAABAl0AAAABAyIAAAABAWgAAAABA4IAAAABAjgAAAABAf4AAAABAloAAAABA1IAAAAB/44AAAABASwAAAABAYIAAAABAkkAAAABAyAAAAABAhIAAAABArgAAAABAhcAAAABA/cAAAABAucAAAABAEwAAAABAhUAAAABAb0AAAABAoEAAAABArcAAAABAwwAAAABAwIAAAABAsgAAAABArwAAAABBBAAAAABAp4AAAABA6cAAAABAfQAAAABAmsAAAABAsIAAAABAU4AAAABATwAAAABAbIAAAABAlgAAAABA04AAAABAq0AAAABBEIAAAABA/wAAAABA6IAAAABBIAAAAABA2QAAAABAyoAAAABA4YAAAABAv0AAAABBHkAAAABBC4AAAABA/QAAAABA0gAAAABBNMAAAADAAAAAQAaAAEAEgABAAAAOAABAAICjQKRAAEAAgKZCQ4AAwAAAAEAIAABABIAAQAAADkAAQAFApICkwKUApUJEAABAAICmQkOAAMAAAABAB4AAQASAAEAAAA6AAEABAKOAo8CkAKXAAEAAgKZCQ4AAQAMACIAAQAqAFgAAgADAo0ClQAAApcClwAJCRAJEAAKAAEAAgKZCQ4ACwAAADQAAAA6AAAAQAAAAEAAAAA0AAAARgAAAEYAAABMAAAATAAAAFIAAABMAAIAKgAGAAEAAAAAAAEBxgAAAAEBoAAAAAEBBgAAAAEA8wAAAAEB4gAAAAH+ygAAAAEADAAqAAQARgB8AAEADQKZBo8GlAaYBpkGoAahBqIGowakBqcGqgkOAAIABAKNApUAAAKXApcACQjgCOIACgkQCRAADQANAAAAqAABAKgAAQCoAAMAqAABAKgAAQCoAAEArgABAKgAAgCoAAEAtAABAKgAAwC6AAAAqAAOAIoAkACWAJwAigCQAJYAogCKAJAAlgCoAIoAkACWAK4AigCQAJYAnACKALQAlgC6AIoAkACWALoAigCQAJYAwACKAJAAlgDAAIoAtACWAMYAzAC0ANIA2ADMAN4A0gDkAMwA3gDSAOQAigCQAJYAwAABAAAAAAAB/84AAAAB/9gAAAAB//YAAAAB/3QAAAAB/vIAAAAB/soAAAABAJYAAAABAmIAAAABAjoAAAABAkQAAAAB/wYAAAABAZoAAAABAZAAAAABAk4AAAAB/2oAAAAB/qIAAAABA4QAAAAB/xoAAAABAzQAAAABAAwAGAACAEoAXAABAAQCjQKRApIClAABABcCjQKOAo8CkAKRApICkwKUApUClwKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgkQAAQAAABwAAAAcAABAHAAAQBwABcAZABqAGQAagBkAGoAZABqAGQAagBkAGoAZABqAGQAagBkAGoAZABqAHAAdgB8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AAEAAABAAAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAABAAECkQABAAECrQADAAEAFgABAFwAAgAWAGIAAQAAAEAAAgALAo0CmQAAApsCmwANAykDKQAOA70DvQAPBXwFfAAQBo8GrQARCQwJDAAwCQ4JDgAxCRAJEAAyC4kLiQAzC44LjwA0AAEAAQKRAAEAAQKtAAMAAQAYAAEAXgADABgAGABkAAEAAABAAAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAABAAECkQABAAECrQADAAEAGgABAGAABAAaABoAGgBmAAEAAABAAAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAABAAECkQABAAECrQABAAwAFAABABoAJAABAAICnQKeAAEAAQg/AAIAAAAOAAAADgABAAoAAQAAAAAAAQEEAAAAAQAMACIAAwBQAH4AAgADAo0ClQAAApcClwAJCRAJEAAKAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAALAAACEAACAhAAAgIQAAICEAAAAhAAAQIQAAECEAABAhAAAQIQAAICEAABAhAAUAHoAe4B9AH6AgACBgIMAhICGAIeAiQCKgIwAiQCNgI8AkICSAJOAlQCWgJgAmYCbAJgAmYCbAI8AkICSAJyAngCfgKEAhICigKQApYCnAIwAiQCNgKiAqgCNgKuArQCugLAAsYCzALSAtgC3gLkAuoC8AL2AvwDAgMIAw4CKgMUAxoDIAMmAywDMgM4Az4DPgM4A0QDSgNQA1YDXAIeA2IDaANuA3QDegNuA3QDegNuA3QDegJyAngCfgJyAngCfgKQApYCnAKQApYCnANuA3QDegNQA1YDXANQA1YDXANQA1YDXANQA1YDXAHoAe4B9AH6AgACBgIMAhICGAIeAiQCKgIwAiQCNgOAA4YDjAOSA5gDngJgAmYCbAOAA4YDjAJyAngCfgKEAhICigKQApYCnAKiAqgCNgLAAsYCzALSAtgC3gL2AvwDAgMIAw4CKgMmAywDMgM4Az4DPgM4A0QDSgNQA1YDXAIeA2IDaAI8AkICSAH6AgACBgKEAhICigMIAw4CKgOkA6oDsANuA3QDegO2A7wDwgPIA84D1APaA+AD5gPsA/ID+ALkAuoC8AP+BAQECgPsA/ID+AQQBBYEHAQiBCgELgIMAhICGAIeAiQCKgIwAiQCNgIeA2IDaAABAAAAAAABAsYAAAABAkMAAAABAeMAAAABAqgAAAABAiUAAAABAcUAAAABAf4AAAABAXsAAAABARsAAAABAyAAAAABAmsAAAABAacAAAABAu4AAAABAgsAAAABAYQAAAABAO0AAAABAI0AAAABAeUAAAABAWIAAAABAQIAAAABAuQAAAABAmEAAAABAgEAAAABAccAAAABAMUAAAABAAUAAAABAeoAAAABAQcAAAABAlgAAAABAaMAAAABAS8AAAABAwIAAAABAn8AAAAB/6MAAAAB/p0AAAAB/d0AAAABAbgAAAABATUAAAABAMEAAAABAtAAAAABAk0AAAABAe0AAAABAp4AAAABAhsAAAABAbsAAAABAkEAAAABATsAAAABAHsAAAABAooAAAABAgcAAAABAGEAAAAB/1sAAAAB/psAAAABAkQAAAABAcEAAAABAWEAAAABA2YAAAABA1AAAAABAokAAAABAfcAAAABA0gAAAABAsUAAAABAmUAAAABAp0AAAABAj0AAAABAoAAAAABAf0AAAABAZ0AAAABAdYAAAABAT8AAAABAN8AAAABAjoAAAABAbcAAAABAVcAAAABAt8AAAABAlwAAAABAfwAAAABAukAAAABAmYAAAABAgYAAAABAzQAAAABArEAAAABAlEAAAABBFEAAAABA5wAAAABAtgAAAABA4QAAAABAwEAAAABAqEAAAABA38AAAABAsoAAAABAd4AAAABBJIAAAABA7UAAAABAy0AAAABA8oAAAABA0cAAAABAucAAAABAAwAFAABAEIATAABAAICjQKRAAIABwKgAr0AAALCAsoAHgLNAucAJwO/A78AQgg/CD8AQwjXCN4ARAuKC40ATAACAAAArAAAAKwAUACoAK4AtAC6AMAAxgDMANIA0gDGANgA3gDkAMAA0gDqAPAA9gD8AQIBCAEOARQBGgEgASYBLAEgASABIADY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AAEBsgCgAAEBFQDcAAEBngCgAAEADAAUAAEAQgBMAAEAAgaQBqYAAgAHAqACvQAAAsICygAeAs0C5wAnA78DvwBCCD8IPwBDCNcI3gBEC4oLjQBMAAIAAACsAAAArABQAKgArgC0ALoAwADGAMwAwADAAMYA0gDYAN4A5ADqAMYA8ADkAPYA6gC6APwA/AECAK4BCAEOARQBFAEUANIA0gDeAN4BGgEIAQgBCAEIAKgArgC0ALoAwAEgASYAwAEgANIA2ADeAOoA8ADkAOoAugD8AQIArgEIAQ4BLAEyATgBPgFEARQBRAFKAQ4BUADeAQ4BUADqAVYBOAFcAWIBYgABAAAAAAABAkQAAAABAaQAAAABAZAAAAABAfQAAAABAlgAAAABAPwAAAABAZoAAAABAa4AAAABAXwAAAABAggAAAABAk4AAAABAhIAAAABAUAAAAABAhwAAAABAcwAAAABAjAAAAABAtoAAAABAooAAAABAf4AAAABAiYAAAABAU8AAAABAfMAAAABAEYAAAABAfwAtAABAbYAtAABAkIAtAABAmIAAAABAwwAAAABAu4AAAABAwIAAAABAhoAtAABAn4AtAABAAwAFAABADAAOgABAAIGkAamAAEADAKiAqUCpgKpAq8CsALPAtIC0wLVAtoLigACAAAAJAAAACQADAAgACYALAAmACYAMgAgADgAPgA4ADIARAABAAAAAAABAksAAAABAecAAAABAgYAAAABAgEAAAABAjoAAAABAl8AAAABAbYAtAABAAwAEgABAEAARgABAAEGngACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQAAAKgAUACoAK4AtAC6AMAAxgDMAMAAwADGANIA2ADeAOQA6gDGAPAA5AD2AOoAugD8APwBAgCuAQgBDgEUARQBFADSANIA3gDeARoBCAEIAQgBCACoAK4AtAC6AMABIAEmAMABIADSANgA3gDqAPAA5ADqALoA/AECAK4BCAEOASwBMgE4AT4BRAEUAUQBSgEOAVAA3gEOAVAA6gFWATgBXAFiAWIAAQAAAAAAAQJEAAAAAQGkAAAAAQGQAAAAAQH0AAAAAQJYAAAAAQD8AAAAAQGaAAAAAQGuAAAAAQF8AAAAAQIIAAAAAQJOAAAAAQISAAAAAQFA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AAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7AAAAOwAAADsAAAA7ABQAKgArgC0ALoAwADGAMwA0gDYAMYA3gDkAOoA0gDwAMYA9gD8AQIBCAEOARQArgEaAN4BIAEmASwBLAEsAN4A3gDqAOoBMgE4AT4BOAE+AKgArgC0ALoAwAFEASwA2AFEAN4A5ADqAPAA9gD8AQgBDgCuARoA3gEgASYBSgFQAVYBXAFiASwA8AFoAW4BdAF6AYABhgGMAZIBmAGeAaQBqgABAAAAAAABAzYAAAABArIAAAABAmIAAAABAu4AAAABA1QAAAABAeQAAAABAooAAAABA00AAAABAyIAAAABApYAAAABAnQAAAABA4sAAAABA1IAAAABAiwAAAABA0gAAAABAwQAAAABAwsAAAABAucAAAABAqwAAAABAyAAAAABA8UAAAABA6cAAAABAuMAAAABAxAAAAABA40AAAABA+0AAAABAjYAAAABAhkA+gABAugAtAABApoAtAABAxUAtAABA5P/8gABA+AAAAABA6IAAAABA+oAAAABAwAAAAABA5gAAAABA+MAAAABAywAAAABBD0AAAABAogAtAABAxYAvgABA3oAtAABA80AtAABAAwAEgABAEAARgABAAECkQACAAcCoAK9AAACwgLKAB4CzQLnACcDvwO/AEIIPwg/AEMI1wjeAEQLiguNAEwAAQAAAKgAUACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAAQAAAAAAAf7AAAAAAQAAAAoA1gRCAARjeXJsABpncmVrAEBoZWJyAGhsYXRuAHgABAAAAAD//wAOAAAACQANABEAFgAaAB4AIwAnACsALwAzADcAOwAEAAAAAP//AA8AAQAEAAoADgASABcAGwAfACQAKAAsADAANAA4ADwABAAAAAD//wADAAUACAAiAAoAAVRSSyAALgAA//8ADwACAAYACwAPABMAGAAc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AAYAACQ4AAcAAAABAAgAAQABAAAk0AAHAAEAAQAIAAEABAAAJMwABwABAAEACAABAAQAACTYAAcAAQABAAgAAQAEAAAk/AAHAAEAAQAIAAEABAAAJSYABwABAAEACAABAAYAACbWAAcAAQABAAgAAQAEAAAnJAAHAAEAAQAIAAEABAAAJzQABwABAAEACAABAAQAADY2AAcAAQABAAgAAQAEAAA23gAHAAEAAQAIAAEABAAAOFAABwABAAEACAABAAQAADh2AAcAAQABAAgAAQABAAA4fgAHAAEAGAA2AD4ARgBOAFYAXgBmAG4AdgB+AIYAjgCWAJ4ApgCuALYAvgDGAM4A1gDeAOYA7gABAAYAADhMAAEABgAAOKYAAQAGAAA5NgABAAYAADnIAAEABgAAOlwAAQAGAAA6jgABAAYAADr2AAEABgAAO2AAAQAGAAA7zAABAAYAADvsAAEABgAAPEIAAQAGAAA8mgABAAYAADz0AAEABgAAPRwAAQAGAAA9RAABAAYAAD2iAAEABgAAPgAAAQAGAAA+YAABAAYAAD7AAAEABgAAPyIAAQAGAAA/hAABAAYAAD+kAAEABgAAQAwAAQAGAABALAAHAAEAAQAIAAEABgAAQIwABwABAAEACAABAAQAAECqAAcAAQAUAC4ANgA+AEYATgBWAF4AZgBuAHYAfgCGAI4AlgCeAKYArgC2AL4AxgABAAYAAECUAAEABgAAQRQAAQAGAABBbAABAAYAAEHsAAEABgAAQkQAAQAGAABCxAABAAYAAEMcAAEABgAAQ5wAAQAGAABD9AABAAYAAER0AAEABgAARMwAAQAGAABFTAABAAYAAEWkAAEABgAARiQAAQAGAABGfAABAAYAAEb8AAEABgAAR1QAAQAGAABH1AABAAYAAEgsAAEABgAASKwABwABAAEACAABAAYAAEj8AAcAAQABAAgAAQAEAABJUgAHAAEACwAcACQALAA0ADwARABMAFQAXABkAGwAAQAGAABJcAABAAYAAEo4AAEABgAASwAAAQAGAABLmgABAAYAAEw0AAEABgAATM4AAQAGAABNaAABAAYAAE4CAAEABgAATpwAAQAGAABPNgABAAYAAE/QAAcBAAABAAgAAQABAABQYgAHAAAAAQAIAAEAAQAAUGwABwABAAEACAABAAEAAFBsAAcAAQABAAgAAQABAABQaAAHAAEAAQAIAAEAAQAAUGQABwABAAEACAABAAQAAFBgAAcAAQABAAgAAQAEAABQdgAHAAEAAQAIAAEAAgAAUH4ABwABAAEACAABAAIAAFDwAAcAAQABAAgAAQACAABRdgADAAAAAQASAAEAHgABAAAAMAABAAQATABNAbMEcAACABADCAMIAAADDgMOAAEDJgMnAAIFeAWIAAQFjgWOABUFsAWyABYFtQW3ABkFuQW5ABwFvQW/AB0FxgXSACAGJQYoAC0IXwhhADEIZghmADQJBAkEADUJZQlmADYJaAloADgAAQAQAAUAGgBUAI4AyAECAAIAAQTiBOYAAAAcASIBKgEyAToBQgFKAVIBWgFiAWoBcAF4AYABiAGQAZgBngGmAa4BtgG+AcYBzAHUAdwB5AHsAfQAHAHAAcgB0AHYAeAB6AHuAfYB/gIGAg4CFgIeAiYCLgI2AjwCRAJMAlQCXAJkAmoCcgJ6AoICigKSABwCXgJmAm4CdgJ+AoYCjAKUApwCpAKsArQCugLCAsoC0gLaAuIC6gLyAvoDAgMIAxADGAMgAygDMAAcAvwDBAMMAxQDHAMkAyoDMgM6A0IDSgNSA1gDYANoA3ADeAOAA4YDjgOWA54DpgOsA7QDvAPEA8wAHAOaA6IDqgOyA7oDwgPIA9AD2APgA+gD8AP2A/4EBgQOBBYEHgQkBCwENAQ8BEQETARSBFoEYgRqBOwAAwTiBOME7QADBOIE5ATuAAME4gTlBO8AAwTiBOYE8AADBOME4gTxAAME4wTjBPIAAwTjBOQE8wADBOME5QT0AAME4wTmBPUAAgTjBPYAAwTkBOIE9wADBOQE4wT4AAME5ATkBPkAAwTkBOUE+gADBOQE5gT7AAIE5AT8AAME5QTiBP0AAwTlBOME/gADBOUE5AT/AAME5QTlBQAAAwTlBOYFAQACBOUFAgADBOYE4gUDAAME5gTjBQQAAwTmBOQFBQADBOYE5QUGAAME5gTmBQcAAgTmBQgAAwTiBOIFCQADBOIE4wUKAAME4gTkBQsAAwTiBOUFDAADBOIE5gUNAAIE4gUOAAME4wTiBQ8AAwTjBOQFEAADBOME5QURAAME4wTmBRIAAwTkBOIFEwADBOQE4wUUAAME5ATkBRUAAwTkBOUFFgADBOQE5gUXAAIE5AUYAAME5QTiBRkAAwTlBOMFGgADBOUE5AUbAAME5QTlBRwAAwTlBOYFHQACBOUFHgADBOYE4gUfAAME5gTjBSAAAwTmBOQFIQADBOYE5QUiAAME5gTmBSMAAgTmBSQAAwTiBOIFJQADBOIE4wUmAAME4gTkBScAAwTiBOUFKAADBOIE5gUpAAIE4gUqAAME4wTiBSsAAwTjBOMFLAADBOME5AUtAAME4wTlBS4AAwTjBOYFLwACBOMFMAADBOQE4gUxAAME5ATjBTIAAwTkBOUFMwADBOQE5gU0AAME5QTiBTUAAwTlBOMFNgADBOUE5AU3AAME5QTlBTgAAwTlBOYFOQACBOUFOgADBOYE4gU7AAME5gTjBTwAAwTmBOQFPQADBOYE5QU+AAME5gTmBT8AAgTmBUAAAwTiBOIFQQADBOIE4wVCAAME4gTkBUMAAwTiBOUFRAADBOIE5gVFAAIE4gVGAAME4wTiBUcAAwTjBOMFSAADBOME5AVJAAME4wTlBUoAAwTjBOYFSwACBOMFTAADBOQE4gVNAAME5ATjBU4AAwTkBOQFTwADBOQE5QVQAAME5ATmBVEAAgTkBVIAAwTlBOIFUwADBOUE4wVUAAME5QTkBVUAAwTlBOYFWwACBOYFVgADBOYE4gVXAAME5gTjBVgAAwTmBOQFWQADBOYE5QVaAAME5gTmBVwAAwTiBOIFXQADBOIE4wVeAAME4gTkBV8AAwTiBOUFYAADBOIE5gVhAAIE4gViAAME4wTiBWMAAwTjBOMFZAADBOME5AVlAAME4wTlBWYAAwTjBOYFZwACBOMFaAADBOQE4gVpAAME5ATjBWoAAwTkBOQFawADBOQE5QVsAAME5ATmBW0AAgTkBW4AAwTlBOIFbwADBOUE4wVwAAME5QTkBXEAAwTlBOUFcgADBOUE5gVzAAIE5QV0AAME5gTiBXUAAwTmBOMFdgADBOYE5AV3AAME5gTlAAEADAADABYAKABCAAEAAwEuAhoCIwAIAEYAUABaAGQAbgB4AIIAjAAMAIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAAwA4gDsAPYBAAEKARQBHgEoATIBPAFGAVAJdAAEBXkFhwMmCXUABAV5BYcDJwl2AAQFeQWIAyYJdwAEBXkFiAMnCXgABAV7BYcDJgl5AAQFewWHAycJegAEBXsFiAMmCXsABAV7BYgDJwl8AAQFeQWHAyYJfQAEBXkFhwMnCX4ABAV5BYgDJgl/AAQFeQWIAycJgAAEBXsFhwMmCYEABAV7BYcDJwmCAAQFewWIAyYJgwAEBXsFiAMnCYwABAV9BXkDJgmNAAQFfQV5AycJjgAEBX0FewMmCY8ABAV9BXsDJwmEAAQFeQWHAyYJhQAEBXkFhwMnCYYABAV5BYgDJgmHAAQFeQWIAycJiAAEBXsFhwMmCYkABAV7BYcDJwmKAAQFewWIAyYJiwAEBXsFiAMnCZAABAV9BXkDJgmRAAQFfQV5AycJkgAEBX0FewMmCZMABAV9BXsDJwABAAYJ0wABAAEATAACAGQALwrCCsMKxArFCsYKxwrICskKygrLCswKzQrOCs8K0ArRCtIK0wrUCtUK1grXCtgK2QraCtsK3ArdCt4K3wrgCuEK4grjCuQK5QrmCucK6ArpCuoK6wrsCu0K7grvCvAAAgACAiwCWQAAAogCiAAuAAIASAAhCqMKqAq1CrkKugq7CrwKvQq+Cr8KoQqiCqQKpQqmCqcKqQqqCqsKrAqtCq4KrwqwCrEKsgqzCrQKtgq3CrgKwArBAAIAAwErAS0AAAHxAfcAAwH5Ag8ACgACAQgAgQtUCiAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQpFCkYKRwpJClAKVQpZCjoKPQpBCkQKVAo7CpkKQwpKCkIKSwpICk0KTgpPCkwKUgpTClEKVwpYClYKPAqICp0KPwpaCj4KaQpzCocKXgpfClwKXQpiCmMKZwpoCncKeQp6CnsKfQqBCoIKhAqFCooKjAqRCpIKmwqcCnQKWwpgCmEKZAplCmYKagpsCmsKbQpuCm8KcApxCnIKdQp2CngKfAp+Cn8KgAqDCoYKjQqOCo8KkAqTCpQKmAqeCp8KoAqVCpYKlwqaCokKQAABAIEACQAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0AYgBjAGQAZQBmAGcAaACQAJEArACtAK4ArwC6AMYAxwDIAMkAygDLAMwAzQDOAM8A0ADRANIA0wDUAOAA4gDkAOcA6QDrAPYA+AD5APsA/QECAQQBBgEIAQkBCwENAQ8BEQETARUBFwEZARsBHQEfASEBIwElAScBKQGKAZYBmAGaAZwBngGgAaIBpAGmAagBqgGsAa4BsAGyAbQBtgG5AbsBvQG/AcEBwwHFAccByQHLAc0BzwHRAdMB1gHYAdoB3QHfAeEB4wQ9CeYAAgBkAC8K0ArRCtIK0wrUCtUK1grXCtgK2QraCtsK3ArdCt4K3wrgCuEK4grjCuQK5QrmCucK6ArpCuoK6wrsCu0K7grvCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrwAAIAAgJaAocAAAKJAokALgACAEoAIgqhCqQKpQqyCrMKtQq5CroKuwq8CqIKowqmCqcKqAqpCqoKqwqsCq0KrgqvCrEKsgq0CrYKtwq4CsAKwQq9Cr4KvwqwAAIABAEuATMAAAIQAhMABgIVAisACgKMAowAIQACAQoAggtUCiAKIQoiCiMKJAolCiYKJwooCikKKgorCiwKLQouCi8KMAoxCjIKMwo0CjUKNgo3CjgKOQpCCkEKQwpFCkQKRgpHCkkKSApKCksKTQpMCk4KTwpQClIKUQpTClUKVApXClYKWApZCkAKOgo9CjsKmQooCjwKiAqdCj8KWgo+CmkKhwpeCl8KYwpcCl0KYgpnCmgKdwp5CnoKewp9CoEKggqECoUKigqMCpEKkgqbCpwKdApbCmAKYQpkCmUKZgpqCmwKawptCm4KbwpwCnEKcgp1CnYKeAp8Cn4KfwqACoMKhgqNCo4KjwqQCpMKlAqYCp4KnwqgCpUKlgqXCpoKiQpzAAEAggAJAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgACBAIkAoAChALAAuQDVAOEA4wDlAOgA6gDsAPcA+gD8AP4A/wEDAQUBBwEKAQwBDgEQARIBFAEWARgBGgEcAR4BIAEiASQBJgEoASoBiwGXAZkBmwGdAZ8BoQGjAaUBpwGpAasBrQGvAbEBswG1AbcBugG8Ab4BwAHCAcQBxgHIAcoBzAHOAdAB0gHUAdcB2QHbAd4B4AHiAeQEPgofAAEABgCpAAEAAQASAAMAAQAcAAEAEgAAAAEAAAAxAAIAAQATABwAAAACAAIAuwC7AAAK8Qr6AAEAAgAaAAoK/QDvAPAA8QtVC1YK+wtXC1gK/AACAAEAEwAcAAAAAQAGCt4AAgABABMAHAAAAAIAGgAKCv0A7wDwAPELVQtWCvsLVwtYCvwAAgABABMAHAAAAAIALgAUCh0KHgsiCyMLJAshCzILKAsuCzALMQslCyYLJwsvCyoLKQsrCywLLQABABQALABPAMsAzADNAM4A4QD4AQ4BEAESAawBsAGyAboB9AH/Ag4CMQIyAAIAYAAtChsKHAoRChIKEwoUChUKFgoXChgKGQoaCz0LPAs+C0ALPwtBC1ILNAs1CzYLMwtLC1ALOgtDC0QLRwtJC0oLTAtOC0ILNws4CzkLRQs7C0YLSAtPC1ELUwtNAAEALQAZABwALAAuADQARABNAE4ATwBUAFcAXABpAGoAawBsAG0AbgC5AMsAzADNAM4A4QDqAPgBAwEFAQ4BEAESASABIgGXAawBsAGyAbUBtgG3AboByAHUAeQEQAACAUgAoQoMCg0KDwoOChAKDAAlACYAJwoNACkAKgArACwALQAuAC8KDwoOADIAMwA0ADUANgA3ChAAOQA6ADsAPAA9CwILAwsKCxQLGgr/Cv4LAAsCCwELAwBkCwoLCQsLCwwAzgDMAM0LFADPANEA0ABnAK4LGQsYCxoAkACRCv4LAQCvALoLAAsLCv8LDAsJCxkLGADgAOIA5ADnAOkA6wD2APkA+wD9AQgLBQsFCwYLBgEGCxALEAsRCxEBDQEPARELFQsVCxcLFwEXARkBGwEdAR8BIQseCx4LHwsfAScBKQGKCwQLBAGYAZoLDQsNCw4LDgsPCw8BogGkAaYBqAGqAawBrgGwAbIBtAG2AbkLFgsWAb0BvwHBAcMBxQHHCxsLGwscCxwLHQsdCyALIAHRAdMLBwsHAdgB2gHdAd8B4QHjBD0AAQChACQAKAAwADEAOABEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AYgBjAGUAZgBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgQCgAKEArACtALAAuQDGAMcAyADJAMoA0gDUAOEA4wDlAOgA6gDsAPcA+gD8AP4A/wECAQMBBAEFAQcBCQEKAQsBDAEOARABEgETARQBFQEWARgBGgEc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AAMFegWABYYAAwWEBYoFkAADBY4FlAWaAAMFmAWeBaQAAwWiBagFrgADBawFsgW4AAMFtgW8BcIAAwXABcYFzAADBcoF0AXWAAMF1AXaBeAAAwXeBeQF6gADBegF7gX0AAMF8gX4Bf4AAwX8BgIGCAADBgYGDAYSAAMGEAYWBhwAAwYaBiAGJgADBiQGKgYwAAMGLgY0BjoAAwY4Bj4GRAADBkIGSAZOAAMGTAZSBlgAAwZWBlwGYgADBmAGZgZsAAMGagZwBnYAAwZ0BnoGgAADBn4GhAaKAAMGiAaOBpQAAwaSBpgGngADBpwGogaoAAMGpgasBrIAAwawBrYGvAADBroGwAbGAAMGxAbKBtAAAwbOBtQG2gADBtgG3gbkAAMG4gboBu4AAwbsBvIG+AADBvYG/AcCAAMHAAcGBwwAAwcKBxAHFgADBxQHGgcgAAMHHgckByoAAwcoBy4HNAADBzIHOAc+AAMHPAdCB0gAAwdGB0wHUgADB1AHVgdcAAMHWgdgB2YAAwdkB2oHcAADB24HdAd6AAMHeAd+B4QAAweCB4gHjgADB4wHkgeYAAMHlgecB6IAAwegB6YHrAADB6oHsAe2AAMHtAe6B8AAAwe+B8QHygADB8gHzgfUAAMH0gfYB94AAwfcB+IH6AADB+YH7AfyAAMH8Af2B/wAAwf6CAAIBgADCAQICggQAAMIDggUCBoAAwgYCB4IJAADCCIIKAguAAMILAgyCDgAAwg2CDwIQgADCEAIRghMAAMISghQCFYAAwhUCFoIYAADCF4IZAhqAAMIaAhuCHQAAwhyCHgIfgADCHwIggiIAAMIhgiMCJIAAwiQCJYInAADCJoIoAimAAMIpAiqCLAAAwiuCLQIugADCLgIvgjEAAMIwgjICM4AAwjMCNII2AADCNYI3AjiAAMI4AjmCOwAAwjqCPAI9gADCPQI+gkAAAMI/gkECQoAAwkICQ4JFAADCRIJGAkeAAMJHAkiCSgAAwkmCSwJMgADCTAJNgk8AAMJOglACUYAAwlECUoJUAADCU4JVAlaAAMJWAleCWQAAwliCWgJbgKNAAIFwgKNAAIC6QKNAAIC6AKOAAIFwgKOAAIC6QKOAAIC6AKPAAIFwgKPAAIC6QKPAAIC6AKQAAIFwgKQAAIC6QKQAAIC6AKRAAIFwgKRAAIC6QKRAAIC6AKSAAIFwgKSAAIC6QKSAAIC6AKTAAIFwgKTAAIC6QKTAAIC6AKUAAIFwgKUAAIC6QKUAAIC6AKVAAIFwgKVAAIC6QKVAAIC6AKWAAIFwgKWAAIC6QKWAAIC6AKXAAIFwgKXAAIC6QKXAAIC6AKYAAIFwgKYAAIC6QKYAAIC6AKZAAIFwgKZAAIC6QKZAAIC6AKbAAIFwgKbAAIC6QKbAAIC6AKgAAIFwgKgAAIC6QKgAAIC6AKhAAIFwgKhAAIC6QKhAAIC6AKiAAIFwgKiAAIC6QKiAAIC6AKjAAIFwgKjAAIC6QKjAAIC6AKkAAIFwgKkAAIC6QKkAAIC6AKlAAIFwgKlAAIC6QKlAAIC6AKmAAIFwgKmAAIC6QKmAAIC6AKnAAIFwgKnAAIC6QKnAAIC6AKoAAIFwgKoAAIC6QKoAAIC6AKpAAIFwgKpAAIC6QKpAAIC6AKqAAIFwgKqAAIC6QKqAAIC6AKrAAIFwgKrAAIC6QKrAAIC6AKsAAIFwgKsAAIC6QKsAAIC6AKtAAIFwgKtAAIC6QKtAAIC6AKuAAIFwgKuAAIC6QKuAAIC6AKvAAIFwgKvAAIC6QKvAAIC6AKwAAIFwgKwAAIC6QKwAAIC6AKxAAIFwgKxAAIC6QKxAAIC6AKyAAIFwgKyAAIC6QKyAAIC6AKzAAIFwgKzAAIC6QKzAAIC6AK0AAIFwgK0AAIC6QK0AAIC6AK1AAIFwgK1AAIC6QK1AAIC6AK2AAIFwgK2AAIC6QK2AAIC6AK3AAIFwgK3AAIC6QK3AAIC6AK4AAIFwgK4AAIC6QK4AAIC6AK5AAIFwgK5AAIC6QK5AAIC6AK6AAIFwgK6AAIC6QK6AAIC6AK7AAIFwgK7AAIC6QK7AAIC6AK8AAIFwgK8AAIC6QK8AAIC6AK9AAIFwgK9AAIC6QK9AAIC6ALCAAIFwgLCAAIC6QLCAAIC6ALDAAIFwgLDAAIC6QLDAAIC6ALEAAIFwgLEAAIC6QLEAAIC6ALFAAIFwgLFAAIC6QLFAAIC6ALGAAIFwgLGAAIC6QLGAAIC6ALHAAIFwgLHAAIC6QLHAAIC6ALIAAIFwgLIAAIC6QLIAAIC6ALJAAIFwgLJAAIC6QLJAAIC6ALKAAIFwgLKAAIC6QLKAAIC6ALNAAIFwgLNAAIC6QLNAAIC6ALOAAIFwgLOAAIC6QLOAAIC6ALPAAIFwgLPAAIC6QLPAAIC6ALQAAIFwgLQAAIC6QLQAAIC6ALRAAIFwgLRAAIC6QLRAAIC6ALSAAIFwgLSAAIC6QLSAAIC6ALTAAIFwgLTAAIC6QLTAAIC6ALUAAIFwgLUAAIC6QLUAAIC6ALVAAIFwgLVAAIC6QLVAAIC6ALWAAIFwgLWAAIC6QLWAAIC6ALXAAIFwgLXAAIC6QLXAAIC6ALYAAIFwgLYAAIC6QLYAAIC6ALZAAIFwgLZAAIC6QLZAAIC6ALaAAIFwgLaAAIC6QLaAAIC6ALbAAIFwgLbAAIC6QLbAAIC6ALcAAIFwgLcAAIC6QLcAAIC6ALdAAIFwgLdAAIC6QLdAAIC6ALeAAIFwgLeAAIC6QLeAAIC6ALfAAIFwgLfAAIC6QLfAAIC6ALgAAIFwgLgAAIC6QLgAAIC6ALhAAIFwgLhAAIC6QLhAAIC6ALiAAIFwgLiAAIC6QLiAAIC6ALjAAIFwgLjAAIC6QLjAAIC6ALkAAIFwgLkAAIC6QLkAAIC6ALlAAIFwgLlAAIC6QLlAAIC6ALmAAIFwgLmAAIC6QLmAAIC6ALnAAIFwgLnAAIC6QLnAAIC6AMpAAIFwgMpAAIC6QMpAAIC6AO9AAIFwgO9AAIC6QO9AAIC6AO/AAIFwgO/AAIC6QO/AAIC6AV8AAIFwgV8AAIC6QV8AAIC6AaPAAIFwgaPAAIC6QaPAAIC6AaQAAIFwgaQAAIC6QaQAAIC6AaRAAIFwgaRAAIC6QaRAAIC6AaSAAIFwgaSAAIC6QaSAAIC6AaTAAIFwgaTAAIC6QaTAAIC6AaUAAIFwgaUAAIC6QaUAAIC6AaVAAIFwgaVAAIC6QaVAAIC6AaWAAIFwgaWAAIC6QaWAAIC6AaXAAIFwgaXAAIC6QaXAAIC6AaYAAIFwgaYAAIC6QaYAAIC6AaZAAIFwgaZAAIC6QaZAAIC6AaaAAIFwgaaAAIC6QaaAAIC6AabAAIFwgabAAIC6QabAAIC6AacAAIFwgacAAIC6QacAAIC6AadAAIFwgadAAIC6QadAAIC6AaeAAIFwgaeAAIC6QaeAAIC6AafAAIFwgafAAIC6QafAAIC6AagAAIFwgagAAIC6QagAAIC6AahAAIFwgahAAIC6QahAAIC6AaiAAIFwgaiAAIC6QaiAAIC6AajAAIFwgajAAIC6QajAAIC6AakAAIFwgakAAIC6QakAAIC6AalAAIFwgalAAIC6QalAAIC6AamAAIFwgamAAIC6QamAAIC6AanAAIFwganAAIC6QanAAIC6AaoAAIFwgaoAAIC6QaoAAIC6AapAAIFwgapAAIC6QapAAIC6AaqAAIFwgaqAAIC6QaqAAIC6AarAAIFwgarAAIC6QarAAIC6AasAAIFwgasAAIC6QasAAIC6AatAAIFwgatAAIC6QatAAIC6Ag/AAIFwgg/AAIC6Qg/AAIC6AjXAAIFwgjXAAIC6QjXAAIC6AjYAAIFwgjYAAIC6QjYAAIC6AjZAAIFwgjZAAIC6QjZAAIC6AjaAAIFwgjaAAIC6QjaAAIC6AjbAAIFwgjbAAIC6QjbAAIC6AjcAAIFwgjcAAIC6QjcAAIC6AjdAAIFwgjdAAIC6QjdAAIC6AjeAAIFwgjeAAIC6QjeAAIC6AkMAAIFwgkMAAIC6QkMAAIC6AkOAAIFwgkOAAIC6QkOAAIC6AkQAAIFwgkQAAIC6QkQAAIC6AuJAAIFwguJAAIC6QuJAAIC6AuKAAIFwguKAAIC6QuKAAIC6AuLAAIFwguLAAIC6QuLAAIC6AuMAAIFwguMAAIC6QuMAAIC6AuNAAIFwguNAAIC6QuNAAIC6AuOAAIFwguOAAIC6QuOAAIC6AuPAAIFwguPAAIC6QuPAAIC6AABACAADQA2ADoAPgBCAEYASgBOAFIAVgBaAF4AYgBmAAIAAwKNApcAAAkNCQ0ACwkQCRAADAABADQAAQA2AAEAOAABADoAAQA8AAEAPgABAEAAAQBCAAEARAABAEYAAQBIAAEASgABAEwCjQACAo0CjgACAo4CjwACAo8CkAACApACkQACApECkgACApICkwACApMClAACApQClQACApUClgACApYClwACApcJDQACCQ0JEAACCRAAAQAyABYAWgBeAGQAagBwAHYAegB+AIIAhgCKAJAAlACYAJwAoACkAKoArgCyALYAvgACAAYCoAKmAAACqAKsAAcCrgKuAAwCsAKxAA0CswK0AA8CtgK6ABEAAQBqAAIAbAByAAIAcgB4AAIAeAB+AAIAfgCEAAEAhAABAIYAAQCIAAEAigABAIwAAgCOAJQAAQCUAAEAlgABAJgAAQCaAAEAnAACAJ4ApAABAKQAAQCmAAEAqAADAKoAsAC4AAIAuAC+As0AAgKYAs4AAgKYAuQAAgKbAs8AAgKYC4oAAgKbAtAAAgKYC4sAAgKbAtEAAgKYC4wAAgKbAtIAAgKYAtMAAgKYAtQAAgKYAtUAAgKYAtYAAgKYAtcAAgKYAuUAAgKbAtgAAgKYAtkAAgKYAtoAAgKYAtsAAgKYAtwAAgKYAt0AAgKYAuYAAgKbAt4AAgKYAt8AAgKYAuAAAgKYAuEAAgKYAskAAwKdApgCygADAp4CmALiAAICmAuNAAICmwABAAoAAgASABgAAQACArkC4QACAAwAEgACABIAGALHAAICnQLIAAICngLJAAICnQLKAAICngABAAgAAQAOAAEAAQKlAAEABALjAAIClgABAAb5iQABAAEJDQADAAAAAgBaABQAAQAaAAEAAAA1AAEAAQKWAAIACgKhAr0AAALCAsoAHQLNAtYAJgLYAuIAMALkAucAOwO8A7wAPwO/A78AQAg/CD8AQQjXCN4AQguKC40ASgABAAICrALYAAMAAAACAJAAFgACABwAUAABAAAANQABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAgAKAqECvQAAAsICygAdAs0C1gAmAtgC4gAwAuQC5wA7A7wDvAA/A78DvwBACD8IPwBBCNcI3gBCC4oLjQBKAAEAAgKsAtgAAwAAAAIAkgAYAAMAHgAeAFIAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIACgKhAr0AAALCAsoAHQLNAtYAJgLYAuIAMALkAucAOwO8A7wAPwO/A78AQAg/CD8AQQjXCN4AQguKC40ASgABAAICrALYAAMAAAACAJQAGgAEACAAIAAgAFQAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAIACgKhAr0AAALCAsoAHQLNAtYAJgLYAuIAMALkAucAOwO8A7wAPwO/A78AQAg/CD8AQQjXCN4AQguKC40ASgABAAICrALYAAMAAAACADIAJgACACwAFgABAAAANQACAAICjQKXAAAJEAkQAAsAAQABApYAAQABAqAAAQACAqwC2AADAAAAAgBoACgAAwAuAGIAGAABAAAANQACAAICjQKXAAAJEAkQAAsAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAgKsAtgAAwAAAAIAagAqAAQAMAAwAGQAGgABAAAANQACAAICjQKXAAAJEAkQAAsAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAgKsAtgAAwAAAAIAbAAsAAUAMgAyADIAZgAcAAEAAAA1AAIAAgKNApcAAAkQCRAACwABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQACAqwC2AADAAAAAgAaABQAAQAiAAEAAAA1AAEAAQKWAAEAAgKsAtgAAQABAs0AAwAAAAIAUAAWAAIAHABYAAEAAAA1AAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAICrALYAAEAAQLNAAMAAAACAFIAGAADAB4AHgBaAAEAAAA1AAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAICrALYAAEAAQLNAAMAAAACAFQAGgAEACAAIAAgAFwAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAgKsAtgAAQABAs0AAwAAAAIAIgAWAAIAHAAqAAEAAAA1AAEAAQKWAAEAAQKgAAEAAgKsAtgAAQABAuMAAwAAAAIAIgAWAAIAHAAqAAEAAAA1AAEAAQKWAAEAAQKgAAEAAgKsAtgAAQABAtIAAwAAAAIAWAAYAAMAHgBSAGAAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAgKsAtgAAQABAuMAAwAAAAIAWAAYAAMAHgBSAGAAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAgKsAtgAAQABAtIAAwAAAAIAWgAaAAQAIAAgAFQAYgABAAAANQABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQACAqwC2AABAAEC4wADAAAAAgBaABoABAAgACAAVABiAAEAAAA1AAEAAQKWAAIACAKZApkAAAMpAykAAQO9A70AAgV8BXwAAwaPBqwABAkMCQwAIgkOCQ4AIwuOC48AJAABAAECoAABAAICrALYAAEAAQLSAAMAAAACAFwAHAAFACIAIgAiAFYAZAABAAAANQABAAEClgACAAgCmQKZAAADKQMpAAEDvQO9AAIFfAV8AAMGjwasAAQJDAkMACIJDgkOACMLjguPACQAAQABAqAAAQACAqwC2AABAAEC4wADAAAAAgBcABwABQAiACIAIgBWAGQAAQAAADUAAQABApYAAgAIApkCmQAAAykDKQABA70DvQACBXwFfAADBo8GrAAECQwJDAAiCQ4JDgAjC44LjwAkAAEAAQKgAAEAAgKsAtgAAQABAtIAAwAAAAIAGgAUAAEAIgABAAAANQABAAEClgABAAICrALYAAEAAQaXAAMAAAACAGIAXAACABYAagABAAAANQACAAsCjQKZAAACmwKbAA0DKQMpAA4DvQO9AA8FfAV8ABAGjwatABEJDAkMADAJDgkOADEJEAkQADILiQuJADMLjguPADQAAQABApYAAQACAqwC2AABAAEGlwADAAAAAgAaABQAAQAiAAEAAAA1AAEAAQKWAAEAAgKsAtgAAQABBqsAAwAAAAIAYgBcAAIAFgBqAAEAAAA1AAIACwKNApkAAAKbApsADQMpAykADgO9A70ADwV8BXwAEAaPBq0AEQkMCQwAMAkOCQ4AMQkQCRAAMguJC4kAMwuOC48ANAABAAEClgABAAICrALYAAEAAQarAAMAAgAWACIAAgAoABwAAAABAAAANgABAAECjQABAAECkQABAAECtgABAAEIPwABAAgAAQAOAAEAAQKqAAIABgAMAsIAAgKNAsMAAgKVAAMAAgAuAGAAAQBEAAIAZgAYAAEAAAA3AAIAAwKNApUAAAKXApcACQkQCRAACgABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEAAQKiAAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AADAAIAFgBIAAEALAABAE4AAQAAADcAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAAECogABAAcCqgKvArMCwgLDAtYC3AADAAIALgCCAAEARAACAGAAGAABAAAANwACAAMCjQKVAAAClwKXAAkJEAkQAAoAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAs8AAwACABYAWgABACwAAQBIAAEAAAA3AAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQAHAqoCrwKzAsICwwLWAtwAAQABAs8AAwACAC4AggABAEQAAgBgABgAAQAAADcAAgADAo0ClQAAApcClwAJCRAJEAAKAAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQKlAAMAAgAWAEgAAQAsAAEATgABAAAANwABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEAAQKlAAEABwKqAq8CswLCAsMC1gLcAAMAAgAuAIIAAQBEAAIAYAAYAAEAAAA3AAIAAwKNApUAAAKXApcACQkQCRAACgABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAEC0gADAAIAFgBaAAEALAABAEgAAQAAADcAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAAcCqgKvArMCwgLDAtYC3AABAAEC0gADAAIALgCCAAEARAACAGAAGAABAAAANwACAAMCjQKVAAAClwKXAAkJEAkQAAoAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAqkAAwACABYASAABACwAAQBOAAEAAAA3AAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQABAqkAAQAHAqoCrwKzAsICwwLWAtwAAwACAC4AggABAEQAAgBgABgAAQAAADcAAgADAo0ClQAAApcClwAJCRAJEAAKAAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQLVAAMAAgAWAFoAAQAsAAEASAABAAAANwABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEABwKqAq8CswLCAsMC1gLcAAEAAQLVAAMAAgAuAIIAAQBEAAIAYAAYAAEAAAA3AAIAAwKNApUAAAKXApcACQkQCRAACgABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAECsAADAAIAFgBaAAEALAABAEgAAQAAADcAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAAcCqgKvArMCwgLDAtYC3AABAAECsAADAAIALgCCAAEARAACAGAAGAABAAAANwACAAMCjQKVAAAClwKXAAkJEAkQAAoAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAA8CogKjAqUCpgKpArUCtwK4As8C0ALSAtMC1QLfAuAAAQABAtoAAwACABYAWgABACwAAQBIAAEAAAA3AAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQAHAqoCrwKzAsICwwLWAtwAAQABAtoAAwACAC4AggABAEQAAgBgABgAAQAAADcAAgADAo0ClQAAApcClwAJCRAJEAAKAAEACQKOAo8CkAKSApMClAKVApcJEAABAAwCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4AAQAPAqICowKlAqYCqQK1ArcCuALPAtAC0gLTAtUC3wLgAAEAAQKmAAMAAgAWAEgAAQAsAAEATgABAAAANwABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEAAQKmAAEABwKqAq8CswLCAsMC1gLcAAMAAgAuAIIAAQBEAAIAYAAYAAEAAAA3AAIAAwKNApUAAAKXApcACQkQCRAACgABAAkCjgKPApACkgKTApQClQKXCRAAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAEADwKiAqMCpQKmAqkCtQK3ArgCzwLQAtIC0wLVAt8C4AABAAEC0wADAAIAFgBaAAEALAABAEgAAQAAADcAAQAJAo4CjwKQApICkwKUApUClwkQAAEADAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAAcCqgKvArMCwgLDAtYC3AABAAEC0wADAAIAFAAUAAEARgAAAAEAAAA4AAEAFwKNAo4CjwKQApECkgKTApQClQKXApkGjwaUBpkGoAahBqIGowakBqcJDAkOCRAAAQAOAo0ClAKZBo8GlAaZBqAGoQaiBqMGpAanCQwJDgABAA4ABAAaAB4AJAAoAAEABAMpBXwFfQatAAEAEgACABIAGAABABYAAQAWCQ4AAQuPAAIFfAuOAAELjwABC44AAQADAAAAAQAYAAQArgB8AHwAygABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAXAo0CjgKPApACkQKSApMClAKVApcCmQaPBpQGmQagBqEGogajBqQGpwkMCQ4JEAABAAwCogKlAqYCqQKvArACzwLSAtMC1QLaC4oAAQABBqoAAwAAAAEAGAAEAK4AfAB8AMoAAQAAADkAAgAQAo0CmQAAApsCmwANAqACvQAOAsICygAsAs0C5wA1AykDKQBQA70DvQBRA78DvwBSBXwFfABTBo8GrQBUCD8IPwBzCNcI3gB0CQwJDAB8CQ4JDgB9CRAJEAB+C4kLjwB/AAEAFwKNAo4CjwKQApECkgKTApQClQKXApkGjwaUBpkGoAahBqIGowakBqcJDAkOCRAAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaYAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaqAAEAAQjiAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaYAAEAAQjiAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaqAAEAAQjgAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaYAAEAAQjgAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaqAAEAAQjhAAMAAAABABYAAwB6AJwAlgABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAEAAQaYAAEAAQjhAAMAAAABABYAAwCGAIAAegABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQABAo8AAQABApkAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAMAAAABABYAAwCGAIAAegABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQABAo4AAQABApkAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAMAAAABABYAAwCGAIAAegABAAAAOQACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAQABApAAAQABApkAAQAMAqICpQKmAqkCrwKwAs8C0gLTAtUC2guKAAIADgAEANUIRQuHCEQAAQAEAEwATQGzBHAAAQAGCt4AAgABABMAHAAAAAEABgAUAAEAAQKyAAEABgAOAAEAAQaXAAEABgg8AAEAAQADAAEACgACABIAFgABAAICrALYAAEACAABAAoCxAACApYCxQACApYAAQAIAAEADgABAAEIPwABAAQCkQACApEAAQAeAAwAOgBAAEYATABSAFgAXgBkAGoAcAB2AHwAAQAMApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAICmQjwAAIGjwjwAAIGlAjwAAIGmQjwAAIGoAjwAAIGoQjwAAIGogjwAAIGowjwAAIGpAjwAAIGpwjwAAIJDAjwAAIJDgjwAAEAIgAOAEIASABOAFQAWgBgAGYAbAByAHgAfgCEAIoAkAABAA4CjQKUApkGjwaUBpkGoAahBqIGowakBqcJDAkOAAICjQjvAAIClAjvAAICmQjvAAIGjwjvAAIGlAjvAAIGmQjvAAIGoAjvAAIGoQjvAAIGogjvAAIGowjvAAIGpAjvAAIGpwjvAAIJDAjvAAIJDgjvAAEBEgCGAXYBfAGCAYgBjgGUAZoBoAGmAawBsgG4Ab4BxAHKAdAB1gHcAeIB6AHuAfQB+gIAAgYCDAISAhgCHgIkAioCMAI2AjwCQgJIAk4CVAJaAmACZgJsAnICeAJ+AoQCigKQApYCnAKiAqgCrgK0AroCwALGAswC0gLYAt4C5ALqAvAC9gL8AwIDCAMOAxQDGgMgAyYDLAMyAzgDPgNEA0oDUANWA1wDYgNoA24DdAN6A4ADhgOMA5IDmAOeA6QDqgOwA7YDvAPCA8gDzgPUA9oD4APmA+wD8gP4A/4EBAQKBBAEFgQcBCIEKAQuBDQEOgRABEYETARSBFgEXgRkBGoEcAR2BHwEggSIBI4ElAACABACjQKZAAACmwKbAA0CoAK9AA4CwgLKACwCzQLnADUDKQMpAFADvQO9AFEDvwO/AFIFfAV8AFMGjwatAFQIPwg/AHMI1wjeAHQJDAkMAHwJDgkOAH0JEAkQAH4LiQuPAH8AAgKNCO8AAgKOCO8AAgKPCO8AAgKQCO8AAgKRCO8AAgKSCO8AAgKTCO8AAgKUCO8AAgKVCO8AAgKWCO8AAgKXCO8AAgKYCO8AAgKZCO8AAgKbCO8AAgKgCO8AAgKhCO8AAgKiCO8AAgKjCO8AAgKkCO8AAgKlCO8AAgKmCO8AAgKnCO8AAgKoCO8AAgKpCO8AAgKqCO8AAgKrCO8AAgKsCO8AAgKtCO8AAgKuCO8AAgKvCO8AAgKwCO8AAgKxCO8AAgKyCO8AAgKzCO8AAgK0CO8AAgK1CO8AAgK2CO8AAgK3CO8AAgK4CO8AAgK5CO8AAgK6CO8AAgK7CO8AAgK8CO8AAgK9CO8AAgLCCO8AAgLDCO8AAgLECO8AAgLFCO8AAgLGCO8AAgLHCO8AAgLICO8AAgLJCO8AAgLKCO8AAgLNCO8AAgLOCO8AAgLPCO8AAgLQCO8AAgLRCO8AAgLSCO8AAgLTCO8AAgLUCO8AAgLVCO8AAgLWCO8AAgLXCO8AAgLYCO8AAgLZCO8AAgLaCO8AAgLbCO8AAgLcCO8AAgLdCO8AAgLeCO8AAgLfCO8AAgLgCO8AAgLhCO8AAgLiCO8AAgLjCO8AAgLkCO8AAgLlCO8AAgLmCO8AAgLnCO8AAgMpCO8AAgO9CO8AAgO/CO8AAgV8CO8AAgaPCO8AAgaQCO8AAgaRCO8AAgaSCO8AAgaTCO8AAgaUCO8AAgaVCO8AAgaWCO8AAgaXCO8AAgaYCO8AAgaZCO8AAgaaCO8AAgabCO8AAgacCO8AAgadCO8AAgaeCO8AAgafCO8AAgagCO8AAgahCO8AAgaiCO8AAgajCO8AAgakCO8AAgalCO8AAgamCO8AAganCO8AAgaoCO8AAgapCO8AAgaqCO8AAgarCO8AAgasCO8AAgatCO8AAgg/CO8AAgjXCO8AAgjYCO8AAgjZCO8AAgjaCO8AAgjbCO8AAgjcCO8AAgjdCO8AAgjeCO8AAgkMCO8AAgkOCO8AAgkQCO8AAguJCO8AAguKCO8AAguLCO8AAguMCO8AAguNCO8AAguOCO8AAguPCO8AAAAAAAEAAAAAAAAAKAAAAAJkbG5nAAAAKAAAABZzbG5nAAAAPgAAABxBcm1uLCBDeXJsLCBHcmVrLCBMYXRuQXJtbiwgQ3lybCwgR3JlaywgSGViciwgTGF0bgAAAAAAAQABAAEAAAABAAAdnQAAABQAAAAAAAAdlTCCHZEGCSqGSIb3DQEHAqCCHYIwgh1+AgEBMQswCQYFKw4DAhoFADBhBgorBgEEAYI3AgEEoFMwUTAsBgorBgEEAYI3AgEcoh6AHAA8ADwAPABPAGIAcwBvAGwAZQB0AGUAPgA+AD4wITAJBgUrDgMCGgUABBQbWzedrhoKCMNJuaHEAfQCvSoMxqCCGFMwggTCMIIDqqADAgECAhMzAAAAvqQP9cmlDuEwAAAAAAC+MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTAeFw0xNjA5MDcxNzU4NDlaFw0xODA5MDcxNzU4NDlaMIGyMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQwwCgYDVQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjo4NDNELTM3RjYtRjEwNDElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJE58WNFXEqaBMK03XhTqPGrW8ArtMGLf2pLYEhTnpfDUh44U2ODtvDo7wMwuvTgaGJrxq2HqWPfJps9LJeJhQut+T/s+QtQCoNuvoIUD+S6+gtiZ48SBgqAja+2u6rTkwAEZjLDhalR8u1yEI2IFhZrDKt14drDzTG99StvtwMBTyy33hsiSDJuhoM3t/egjNAerLGiTxdJJpkkpPKo20S0OjunpknfKAJr3yUKT9KOlWcuQaVfSUnfL8fYUzbyA2d9BlA7w97QgK/coKmLgI+rH0sS4+BCgmtgrnvcjUsmVuNNX6XvdQc9ujbDjRb0vVIa7lRavA1vq1mqThHAS8kCAwEAAaOCAQkwggEFMB0GA1UdDgQWBBQcbg1domxCnT7fHb0uLufClzSQfzAfBgNVHSMEGDAWgBQjNPjZUkZwCu1A+3b7syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNyb3NvZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRUaW1lU3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4IBAQBuYHFst4KrGxkU8xgXP/bQMw/xDXZ0f/Vw1C6uxEwfRiDRxPAufUgXcMbKl8dknBvKX0dY1V/7YmrTnMxqN+PGIS76SHOYycD38EnW60/BHSc/LIts37QgYEx9gt4gB0LzV7QJb1OlalzqUf+OBZuG+JS3gy+3YNAxYhDtbAkB0F4aMKe0sg0/EL1GYfKwUZ7EyxdL6Fg1HbP+H8+a+w3CGrsK0zpszvVm9gVoFIKa11Dz8pAI+I3ppxvZX/bxW5kTCOrcYUAl9woy+Gyx7BGAJiwrGG9ZkdSQGtTFaey/E0I5Y+l6cGJVJiXmdP2MGhWhMMKEwhNHfmCv/8OaHNezMIIGADCCA+igAwIBAgITMwAAAMMOm6fYstz3LAAAAAAAwzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMB4XDTE3MDgxMTIwMjAyNFoXDTE4MDgxMTIwMjAyNFowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1fXONGxBn9JLalts2Oferq2OiFbtJiujdSkgaDFdcUs74JAKreBU3fzYwEKvM43hANAQ1eCS87tH7b9gG3JwpFdBcfcVlkA4QzrV9798biQJ791Svx1snJYtsVImzNiBdGVlKW/OSKtjRJNRmLaMhnOqiJcVkixb0XJZ3ZiXTCIoy8oxR9QKtmG2xoRJYHC9PVnLud5HfXiHHX0TszH/Oe/C4BHKf/PzWmxDAtg62fmhBubTf1tRzrH2cFhYfKVEqENB65jIdj0mRz/eFWB7qV56CCCXwratVMZVAFXDYeRjcJ88VSGgOFi24JzPiZe8EAS0jnVJgMNhYgxXwoLiwIDAQABo4IBfzCCAXswHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFKcTXR8hiVXoA+6eFzbq8lSINRmvMFEGA1UdEQRKMEikRjBEMQwwCgYDVQQLEwNBT0MxNDAyBgNVBAUTKzIzMDAxMitjODA0YjVlYS00OWI0LTQyMzgtODM2Mi1kODUxZmEyMjU0ZmMwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBNl080fvFwk5zj1RpLnBF+aybEpST030TUJLqzagiJmZrLMedwm/8UHbAHOX/kMDsTIt4OyJVnu25++HyVpJCCN5Omg9NJAsGsrVnvkbenZgAOokwl1NznXQcCyig0ZTs5g62VKo7KoOgIOhz+PntASZRNjlQlCuWxxwrucTfGm1429adCRPu8h7ANwDXZJodf/2fvKHT3ijAEEYpnzEs1YGoh58ONB4Nem6udcR8pJgkR1PWC09I2Bymu6JJtkH8Ayahb7tAEZfuhDldTzPKYifOfFZPIBsRjUmECT1dIHPX7dRLKtfn0wmlfu6GdDWmDJ+uDPh1rMcPuDvHEhEOH7jGcBgAyfLcgirkII+pWsBjUsr0V7DftZNNrFQIjxoozhzrRm7bAllksoAFThAFf8nvBerDs1NhS9l91gURZFjgnU7tQ815x3/fXUdwx1RpjNSqXfp9mN1/PVTPvssq8LCOqRB7u+2dItOhCww+KUViiRgJhJloZv1yU6ahAcOdbMEx8gNRQZ6Kl7g7rPbXx5Xke4fVYGW+7iW144iBYJf/kSLPmr/GyQAQXRlDUDGyRFH3uyuL2Jt4bOwRnUS4PpBf3Qv8/kYkx+Ke8s+U6UtwqM39KZJFl2GURtttqt7RsUvy/i3EWxCzOc5qg6V0IwUVFpSmG7AExbV50xlYxCzCCBgcwggPvoAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMwOVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEjUK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1NtUrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu233iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQABo4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2+7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSMEgZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcTLmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEBBEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vOvnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8KBciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6djmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IKYY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZYsy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvPQ7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGboQhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYhv5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2vWY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+EyiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJE6P9MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCBLAwggSsAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAADDDpun2LLc9ywAAAAAAMMwCQYFKw4DAhoFAKCBxDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUJBkCJpc8DLev09Pc3IuaHv8rSg8wZAYKKwYBBAGCNwIBDDFWMFSgKoAoAE0AaQBjAHIAbwBzAG8AZgB0ACAAVAB5AHAAbwBnAHIAYQBwAGgAeaEmgCRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vVHlwb2dyYXBoeSAwDQYJKoZIhvcNAQEBBQAEggEAXcIksTB/zRyCwmM1m85dEDBN4BXrZ6Ku5z508Xc7nY7mfMRj9WUd/X0EEn2Ul7UDY8NM/noiiF147FfxjF8iLWic7dFZye+sLRDUe8RkXnW8PLqdizs5yKK0Y4KqSrKLiqsIcHCk1+Ih+uG/nNHewRVOZpHUV/ewpjCD48cAbnZqQ2Bc3lbQOXkpaQgwQ645vXsHLmLXS4PaXbFaDceTaZoFXAVmpM7g9gJ1otaPWzyWXg/oi29fyUkw6t3NLFl1c30hTA2zfGEGS/ZubLNm7FbHjoCIadQ8Y5lgf4lqokVLLQqPFms089sKIJr/vzNyM6YAeI4aMybjJePyDBajrqGCAigwggIkBgkqhkiG9w0BCQYxggIVMIICEQIBATCBjjB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0ECEzMAAAC+pA/1yaUO4TAAAAAAAL4wCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE4MDExMDIwMTAwMlowIwYJKoZIhvcNAQkEMRYEFFFl6vA8CLVdXRjIwkUYwuH7JxPxMA0GCSqGSIb3DQEBBQUABIIBAHW8rniBJbNajGr1ZNKEtV3oLhEpzep7NmljTpsRbJFDNsjmXEIV6riNi2Vu+c/K+yiblVnIbcg+8GyPfRZt8JSLwWlrasPa6hN/RS++8fs9Ymx8a77lFilD31tzGmOVdL3r0kHK+nRAYxd2zKg0x9XPQ8G3I626yxKRjyc3OJFOCMhGLL+AOX5GQ8pTLbznR8NFlgVOssbIUXmgZenBRkRoCZjKy0eBpybaQT9c+wKMWIZOTRPWxIN/xLiwntoCIWVFXqU+ieySAywOUI3WrXE5e2cha6dSRznBJqJQEhiMyo/vcfVcBrDByU5dfpYyA6RYK0liSfscm/CsYy+4eioAAAA=';\r\n","import Consts from '../utils/constants';\r\n\r\nexport default {\r\n // TODO: Sort this out into multiple different formula.js files, and move some of these into utils.js!\r\n\r\n // This function gets the next highest subdecade for log plots.\r\n // Examples:\r\n // 2.3 will return 3\r\n // 10 will return 20\r\n // 2452 will return 3000\r\n // 3000 will return 4000\r\n getSubDecade(value) {\r\n let numberString = value.toExponential(),\r\n eIndex = numberString.indexOf('e'),\r\n mantissaString = numberString.slice(0, eIndex),\r\n mantissa = Number(mantissaString),\r\n roundedUpMantissa = Math.ceil(mantissa);\r\n\r\n //in case the mantissa ended up being an integer, we still need the next highest number\r\n if (roundedUpMantissa === mantissa) roundedUpMantissa++;\r\n\r\n let exponentString = numberString.slice(eIndex + 1, numberString.length),\r\n subDecadeString = roundedUpMantissa + 'e' + exponentString,\r\n subDecade = Number(subDecadeString);\r\n\r\n return subDecade;\r\n },\r\n\r\n // This function gets the first power of 10 that is larger than the value passed in.\r\n // 2.3 will return 10\r\n // 10 will return 100\r\n // 2452 will return 10000\r\n getDecade(value) {\r\n let numberString = value.toExponential(),\r\n eIndex = numberString.indexOf('e'),\r\n exponentString = numberString.slice(eIndex + 1, numberString.length),\r\n exponent = Number(exponentString) + 1,\r\n decade = Math.pow(10, exponent);\r\n\r\n return decade;\r\n },\r\n\r\n // Calculates the parallel value.\r\n // Dynamtic arguments.\r\n parallel() {\r\n let summed = 0;\r\n\r\n for (let i = 0; i < arguments.length; i++) summed = 1 / arguments[i] + summed;\r\n\r\n return 1 / summed;\r\n },\r\n\r\n //#region noiseCalculations\r\n calculateDegredation(frequency, hdCorner, hdSlope) {\r\n return Math.pow(frequency / hdCorner, hdSlope / 20);\r\n },\r\n\r\n calculateHdCurveUnfiltered(hdDegredation, hdFlat) {\r\n return hdFlat - 20 * Math.log10(1 / (1 + hdDegredation));\r\n },\r\n\r\n calculateHD2Curve(frequency, hdCurveUnfiltered, threeDbFrequency) {\r\n return (\r\n 20 *\r\n (Math.log10(Math.pow(10, hdCurveUnfiltered / 20)) /\r\n Math.sqrt(1 + (2 * frequency) / (threeDbFrequency * threeDbFrequency)))\r\n );\r\n },\r\n\r\n calculateHD3Curve(frequency, hdCurveUnfiltered, threeDbFrequency) {\r\n return (\r\n 20 *\r\n (Math.log10(Math.pow(10, hdCurveUnfiltered / 20)) /\r\n Math.sqrt(1 + (3 * frequency) / (threeDbFrequency * threeDbFrequency)))\r\n );\r\n },\r\n\r\n calculateEnob(sinad) {\r\n return (sinad - 1.76) / 6.02;\r\n },\r\n\r\n calculateSinad(snr, thd) {\r\n return -10 * Math.log10(Math.pow(10, -snr / 10) + Math.pow(10, thd / 10));\r\n },\r\n\r\n calculateSnr(signal, noise) {\r\n return 20 * Math.log10(signal / noise);\r\n },\r\n\r\n calculateThd(frequency, rext, adc) {\r\n let thdBrickwall, thdRfiltDegredationModel;\r\n\r\n thdBrickwall = adc.thdSlope * Math.log10(frequency / adc.thdCorner) - adc.thdBaseline;\r\n\r\n thdRfiltDegredationModel = 20 * Math.log10(2 * Math.PI * frequency * rext * adc.Cerror);\r\n\r\n return (\r\n 10 *\r\n Math.log10(\r\n Math.pow(10, -adc.thdBaseline / 10) +\r\n Math.pow(10, thdBrickwall / 10) +\r\n Math.pow(10, thdRfiltDegredationModel / 10),\r\n )\r\n );\r\n },\r\n\r\n calculateAdjustedThd(frequency, rext, adc, adjustment) {\r\n let thdBrickwall, thdRfiltDegredationModel;\r\n\r\n thdBrickwall = adc.thdSlope * Math.log10(frequency / adc.thdCorner) - adc.thdBaseline;\r\n\r\n thdRfiltDegredationModel = 20 * Math.log10(2 * Math.PI * frequency * rext * adc.Cerror);\r\n\r\n return (\r\n 10 *\r\n Math.log10(\r\n Math.pow(10, -adc.thdBaseline / 10) +\r\n Math.pow(10, thdBrickwall / 10) +\r\n Math.pow(10, thdRfiltDegredationModel / 10) +\r\n Math.pow(10, adjustment / 10),\r\n )\r\n );\r\n },\r\n //#endregion noiseCalculations\r\n\r\n //#region lineDecimation\r\n decimateArrays(valuesArrays, allowedLength, manditoryIndexes) {\r\n let decimatedValuesArrays = [],\r\n len = valuesArrays[0].length,\r\n uLen = valuesArrays.length;\r\n\r\n if (len <= allowedLength) return valuesArrays;\r\n\r\n let factor = Math.round(len / allowedLength),\r\n indexes = manditoryIndexes.slice(0); // Need to clone the array because arrays are passed by ref.\r\n\r\n if (factor === 0) factor = 1;\r\n\r\n for (let u = 0; u < uLen; u++) decimatedValuesArrays[u] = [];\r\n\r\n for (let i = 0; i < len; i += factor)\r\n do {\r\n if (i > indexes[0]) {\r\n let index = indexes.shift();\r\n\r\n for (let x = 0; x < uLen; x++) {\r\n decimatedValuesArrays[x].push(valuesArrays[x][index]);\r\n\r\n if (!(i > indexes[0])) decimatedValuesArrays[x].push(valuesArrays[x][i]);\r\n }\r\n } else if (i === indexes[0]) {\r\n let index = indexes.shift();\r\n\r\n for (let x = 0; x < uLen; x++) decimatedValuesArrays[x].push(valuesArrays[x][index]);\r\n } else for (let x = 0; x < uLen; x++) decimatedValuesArrays[x].push(valuesArrays[x][i]);\r\n } while (i > indexes[0]);\r\n\r\n return decimatedValuesArrays;\r\n },\r\n\r\n removeConsecutiveValues(values, precision) {\r\n let decimatedValues = [];\r\n\r\n if (values.length > 2) {\r\n decimatedValues.push(values[0]);\r\n\r\n for (let i = 1, len = values.length; i < len; i++) {\r\n let target = Math.round(values[i] * precision) / precision;\r\n\r\n if (\r\n target === Math.round(values[i - 1] * precision) / precision &&\r\n target === Math.round(values[i + 1] * precision) / precision\r\n )\r\n decimatedValues.push(false);\r\n else decimatedValues.push(values[i]);\r\n }\r\n }\r\n\r\n return decimatedValues;\r\n },\r\n //#endregion lineDecimation\r\n\r\n //#region inputSettlingCalculations\r\n vinFromVout(vout, bias, rg, rf, gain, topology) {\r\n let result;\r\n\r\n if (topology === Consts.TOPOLOGY.FOLLOWER || (topology === Consts.TOPOLOGY.NON_INVERTING && gain === 1)) {\r\n result = vout;\r\n } else if (topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = ((vout - bias) * rg) / (rf + rg) + bias;\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = bias - ((vout - bias) * rg) / rf;\r\n }\r\n\r\n return result;\r\n },\r\n calculateVpoleStart(voutInit, vcapInit, vinMinusInit, rext, rf, ro) {\r\n let vpoleStart;\r\n\r\n if (rf == 0) {\r\n vpoleStart = voutInit + ro * ((voutInit - vcapInit) / rext);\r\n } else {\r\n vpoleStart = voutInit + ro * ((voutInit - vcapInit) / rext + (voutInit - vinMinusInit) / rf);\r\n }\r\n return vpoleStart;\r\n },\r\n calculateVpole(vpole, vinPlus, vinMinus, tStep, slewRate, GBWP) {\r\n let vpoleI, dvGbw, dvSlewRate, dv, newPole;\r\n\r\n vpoleI = (vinPlus - vinMinus) * 2 * Math.PI * GBWP * tStep + vpole;\r\n\r\n dvGbw = vpoleI - vpole;\r\n\r\n dvSlewRate = slewRate * tStep;\r\n\r\n dv = Math.min(dvGbw, dvSlewRate);\r\n\r\n newPole = dv + vpole;\r\n\r\n return newPole;\r\n },\r\n\r\n calculateVinMinusPlus(vin, bias, gain, topology) {\r\n let result;\r\n\r\n if (topology === Consts.TOPOLOGY.FOLLOWER || (topology === Consts.TOPOLOGY.NON_INVERTING && gain === 1)) {\r\n result = vin;\r\n } else if (topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = vin;\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = bias;\r\n }\r\n\r\n return result;\r\n },\r\n calculateVinMinus(vout, vin, bias, rg, rf, gain, topology) {\r\n let result;\r\n\r\n if (topology === Consts.TOPOLOGY.FOLLOWER || (topology === Consts.TOPOLOGY.NON_INVERTING && gain === 1)) {\r\n result = vout;\r\n } else if (topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = ((vout - bias) * rg) / (rf + rg) + bias;\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = ((vout - vin) * rg) / (rf + rg) + vin;\r\n }\r\n\r\n return result;\r\n },\r\n calculateVout(vpole, vin, vcap, bias, rext, rg, rf, ro, gain, topology) {\r\n let result;\r\n\r\n if (topology === Consts.TOPOLOGY.FOLLOWER || (topology === Consts.TOPOLOGY.NON_INVERTING && gain === 1)) {\r\n result = (vpole / ro + vin / (rf + rg) + vcap / rext) / (1 / ro + 1 / (rf + rg) + 1 / rext);\r\n } else if (topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = (vpole / ro + vcap / rext) / (1 / ro + 1 / rext);\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = (vpole / ro + vin / (rf + rg) + vcap / rext) / (1 / ro + 1 / (rf + rg) + 1 / rext);\r\n }\r\n\r\n return result;\r\n },\r\n calculateKickback(vcap, vcapPrevious, vref, kickbackType, kickbackVrefMultiplier, cext, cadc) {\r\n let result = {\r\n kickback: 0,\r\n minKickbackDominates: false,\r\n kickbackMag: 0,\r\n };\r\n\r\n if (kickbackType === Consts.KICKBACK_TYPE.PREV_SAMPLE) {\r\n let kickback = (cadc * vcapPrevious + cext * vcap) / (cext + cadc);\r\n let minKickback = (cadc * (vcap - vref * kickbackVrefMultiplier) + cext * vcap) / (cext + cadc);\r\n\r\n if (minKickback < kickback) result.minKickbackDominates = true;\r\n\r\n result.kickback = Math.min(kickback, minKickback);\r\n } else if (kickbackType === Consts.KICKBACK_TYPE.FIXED) {\r\n result.kickback = (cadc * vref * kickbackVrefMultiplier + cext * vcap) / (cext + cadc);\r\n }\r\n\r\n result.kickbackMag = vcap - result.kickback;\r\n\r\n return result;\r\n },\r\n calculateIdealVin(vin, bias, gain, topology) {\r\n let result;\r\n\r\n if (topology === Consts.TOPOLOGY.FOLLOWER || topology === Consts.TOPOLOGY.NON_INVERTING) {\r\n result = (vin - bias) * gain + bias;\r\n } else if (topology === Consts.TOPOLOGY.INVERTING) {\r\n result = (vin - bias) * -gain + bias;\r\n }\r\n\r\n return result;\r\n },\r\n calculateLsbError(vcap, vref, bits, voutFinal) {\r\n return (-(voutFinal - vcap) * Math.pow(2, bits)) / vref;\r\n },\r\n calculateVoltsError(vcap, voutFinal) {\r\n return -(voutFinal - vcap);\r\n },\r\n convertVoltsToLsb(volts, vref, bits) {\r\n return (volts * Math.pow(2, bits)) / vref;\r\n },\r\n calculateRequiredBw(vcapStep, vref, bits, tacq) {\r\n let halfLSB = vref / Math.pow(2, bits + 1);\r\n let tc = Math.log(Math.abs(vcapStep / halfLSB));\r\n let tau = tacq / tc;\r\n let requiredBw = 1 / (2 * Math.PI * tau);\r\n\r\n return requiredBw;\r\n },\r\n //#endregion inputSettlingCalculations\r\n\r\n //#region noiseCalculations\r\n\r\n getNoiseCalculationItem(density, sourceInputDensity, sourceNoiseGain, totalVrms, totalPerc, totalSnr, bw = null) {\r\n return {\r\n density: density,\r\n sourceInputDensity: sourceInputDensity,\r\n sourceNoiseGain: sourceNoiseGain,\r\n totalVrms: totalVrms,\r\n totalPerc: totalPerc,\r\n totalSnr: totalSnr,\r\n bw: bw,\r\n };\r\n },\r\n\r\n // will probably need to pull out halfNyquistZones + partialNyquistZone into it's own computed property in future noise ticket\r\n calculateDriverAndSourceEquivBw(data) {\r\n let effectiveFs = data.fmod * 2;\r\n let driverAndSourceEquivNoiseBW = Math.min(data.driverEquivBW, data.rfiltEquivBW),\r\n highestFullNyquistZone = Math.floor((driverAndSourceEquivNoiseBW - data.adcEquivBW) / effectiveFs),\r\n halfNyquistZones = highestFullNyquistZone + 2 + 1,\r\n partialNyquistZoneInitial =\r\n data.adcEquivBW - ((highestFullNyquistZone + 1) * effectiveFs - driverAndSourceEquivNoiseBW),\r\n partialNyquistZone = partialNyquistZoneInitial < 0 ? 0 : partialNyquistZoneInitial;\r\n\r\n return halfNyquistZones * data.adcEquivBW + partialNyquistZone;\r\n },\r\n\r\n calculateNoiseRMS(noiseDensity, noiseBW) {\r\n return noiseDensity * Math.sqrt(noiseBW);\r\n },\r\n\r\n calculateEqNoiseBW(noiseBW) {\r\n return noiseBW * (Math.PI / 2);\r\n },\r\n\r\n calculateRSS(contributions) {\r\n let i = 0,\r\n sumSquares = 0;\r\n for (i = 0; i < contributions.length; i++) {\r\n sumSquares = sumSquares + Math.pow(contributions[i], 2);\r\n }\r\n return Math.sqrt(sumSquares);\r\n },\r\n\r\n calculateNoisePercent(contribution, total) {\r\n let ratio = Math.pow(contribution, 2) / Math.pow(total, 2);\r\n let percent = Math.round(ratio * 100);\r\n return percent;\r\n },\r\n\r\n //#endregion noiseCalculations\r\n};\r\n","export default {\r\n DRIVER_TYPE: {\r\n AMP: 'SEAmp',\r\n DIFF_AMP: 'DiffAmp',\r\n },\r\n\r\n ADC_TYPE: {\r\n DIFF: 'DiffADC',\r\n SE: 'SEADC',\r\n },\r\n\r\n SOURCE_TYPE: {\r\n SE: 'SESource',\r\n DIFF: 'DiffSource',\r\n },\r\n\r\n TOPOLOGY: {\r\n 1: 'Inverting',\r\n 2: 'NonInverting',\r\n 3: 'Follower',\r\n },\r\n\r\n TEMPLATE_NAMES: {\r\n READ: 'readme',\r\n DRIVER: 'SUBCKT-OPAMP-ADAxxxx',\r\n ADC: 'SUBCKT-<>-ADxxxx',\r\n TITLE_AND_POWER_TRANSIENT: 'Title-and-Power_Transient',\r\n TITLE_AND_POWER_MUXED_TRANSIENT: 'Title-and-Power-Muxed_Transient',\r\n TITLE_AND_POWER_NOISE: 'Title-and-Power_Noise',\r\n TITLE_AND_POWER_OPRANGE: 'Title-and-Power_OpRange',\r\n DRIVER_AND_SOURCE: 'Driver-and-Source_<>_<>_<>_<>',\r\n DRIVER_AND_SOURCE_MUXED: 'Driver-and-Source-Muxed_<>_<>_<>_<>',\r\n ADC_AND_RC_TRANSIENT_LT_SPICE: 'ADC-and-RC_Transient_<>-<>',\r\n ADC_AND_RC_TRANSIENT: 'ADC-and-RC_Transient_<>',\r\n ADC_AND_RC_NOISE: 'ADC-and-RC_Noise_<>',\r\n ADC_AND_RC_FFT: 'ADC-and-RC_FFT_<>-<>',\r\n TRANSIENT: 'PLT_Trans_<>',\r\n MUXED: 'PLT_TransMuxed_<>',\r\n NOISE: 'PLT_Noise',\r\n OPRANGE: 'PLT_OpRange_<>',\r\n FFT: 'PLT_FFT_<>',\r\n TOOL: 'tool',\r\n },\r\n\r\n FILE_NAMES: {\r\n READ: 'readme',\r\n DRIVER: 'SUBCKT-driver-<>',\r\n ADC: 'SUBCKT-adc-<>',\r\n TRANSIENT: 'Kickback simulation schematic for <> and <>',\r\n MUXED: 'MuxedKickback simulation schematic for <> and <>',\r\n NOISE: 'Noise simulation schematic for <> and <>',\r\n OPRANGE: 'Operating Range simulation schematic for <> and <>',\r\n FFT: 'FFT simulation schematic for <> and <>',\r\n TOOL: '<> - <<ADCname>> and <<Drivername>> configuration.url',\r\n },\r\n\r\n TEMPLATE_OVERRIDES: {\r\n 'SUBCKT-OPAMP-ADAxxxx': 'SUBCKT-driver-<<Drivername>>',\r\n 'SUBCKT-SEADC-ADxxxx': 'SUBCKT-adc-<<ADC>>',\r\n 'SUBCKT-DiffADC-ADxxxx': 'SUBCKT-adc-<<ADC>>',\r\n },\r\n};\r\n","Number.prototype.toScale = function toScale(scale, inFunc) {\r\n if (scale || scale == 0) {\r\n let func = inFunc || 'round';\r\n let inv = Math.pow(10, scale);\r\n return Math[func](this * inv) / inv;\r\n }\r\n\r\n // return original number if there is no scale\r\n return this;\r\n};\r\n","import PrettyNum from '@ebiz/pretty-num';\r\nimport Utils from './utils';\r\n\r\n/**\r\n * Wrapper for the ebiz pretty-num library\r\n */\r\nexport default {\r\n lessThan(prettyValue1, prettyValue2) {\r\n return this.userEntryToNumber(prettyValue1) < this.userEntryToNumber(prettyValue2);\r\n },\r\n\r\n greaterThan(prettyValue1, prettyValue2) {\r\n return this.userEntryToNumber(prettyValue1) > this.userEntryToNumber(prettyValue2);\r\n },\r\n\r\n equalTo(prettyValue1, prettyValue2) {\r\n return this.userEntryToNumber(prettyValue1) === this.userEntryToNumber(prettyValue2);\r\n },\r\n\r\n lessThanEqualTo(prettyValue1, prettyValue2) {\r\n return this.userEntryToNumber(prettyValue1) <= this.userEntryToNumber(prettyValue2);\r\n },\r\n\r\n greaterThanEqualTo(prettyValue1, prettyValue2) {\r\n return this.userEntryToNumber(prettyValue1) >= this.userEntryToNumber(prettyValue2);\r\n },\r\n\r\n userEntryToNumber(textFromUser) {\r\n return PrettyNum.userEntryToNumber(textFromUser.toString(), NaN);\r\n },\r\n\r\n //Shorthand function for numberToUserDisplay\r\n //Engineering notation, 3 significant digits, don't show extra zeroes\r\n eng3(number, inOptions) {\r\n return this.eng(number, 3, inOptions);\r\n },\r\n\r\n //Shorthand function for numberToUserDisplay\r\n //Engineering notation, 4 significant digits, don't show extra zeroes\r\n eng4(number, inOptions) {\r\n return this.eng(number, 4, inOptions);\r\n },\r\n\r\n eng(number, defaultDigits, inOptions = {}) {\r\n let options = {},\r\n digits = defaultDigits;\r\n\r\n if (number === '') return '';\r\n\r\n if (Utils.isNumeric(inOptions.scale)) {\r\n options.fixedDigits = true;\r\n digits = inOptions.scale;\r\n }\r\n\r\n if (inOptions.separatedUnit) options.supplySpace = true;\r\n\r\n return PrettyNum.numberToUserDisplay(number, 'Engineering', digits, options);\r\n },\r\n\r\n spice(number, digits = 3) {\r\n return PrettyNum.numberToUserDisplay(number, 'Spice', digits);\r\n },\r\n\r\n roundToNs(number) {\r\n let result = undefined,\r\n options = { fixedDigits: false, minMetricPrefix: 'n' };\r\n try {\r\n result = PrettyNum.numberToUserDisplay(number, 'Engineering', 3, options);\r\n } catch (e) {\r\n console.warn(`Could not convert time axis value to ns (${number})`);\r\n result = 0;\r\n }\r\n\r\n return result;\r\n },\r\n};\r\n","String.prototype.replaceAll = function (search, replacement) {\r\n var target = this;\r\n return target.split(search).join(replacement);\r\n};\r\n\r\nString.prototype.padEnd = function (length, padChar) {\r\n if (!padChar) padChar = ' ';\r\n\r\n let padLength = length - this.length;\r\n\r\n if (padLength <= 0) return this;\r\n\r\n return this.concat(new Array(padLength + 1).join(padChar));\r\n};\r\n","import '../utils/number-extension';\r\nimport Namespace from '@ember/application/namespace';\r\nimport Application from '@ember/application';\r\n\r\nimport ENV from '../config/environment';\r\n\r\nimport snakeCase from 'lodash.snakecase';\r\nimport camelCase from 'lodash.camelcase';\r\n\r\n// To help prevent older browsers (IE9, IE10) from crashing\r\n// May not be necessary with the updated browser-detector.\r\n// let originHack = function (locator) {\r\n// if (!locator.location.origin) {\r\n// return (\r\n// locator.location.protocol +\r\n// '//' +\r\n// locator.location.hostname +\r\n// (locator.location.port ? ':' + locator.location.port : '')\r\n// );\r\n// } else {\r\n// return locator.location.origin;\r\n// }\r\n// };\r\n\r\nexport default {\r\n getLtSpiceLocation() {\r\n return ENV.ltSpiceLocation;\r\n },\r\n\r\n getConfigData() {\r\n const configURL = ENV.rootURL.endsWith('/')\r\n ? `${ENV.rootURL}siteconfig.json`\r\n : `${ENV.rootURL}/siteconfig.json`;\r\n\r\n const language =\r\n document && document.documentElement && document.documentElement.lang\r\n ? document.documentElement.lang\r\n : 'en';\r\n\r\n return {\r\n url: configURL,\r\n language: language,\r\n rootURL: ENV.rootURL,\r\n };\r\n },\r\n\r\n isFunction(functionToCheck) {\r\n return functionToCheck instanceof Function;\r\n },\r\n\r\n parseUrl(str) {\r\n if (typeof str !== 'string') {\r\n return {};\r\n }\r\n\r\n str = str.trim().replace(/^(\\?|#|&)/, '');\r\n\r\n if (!str) {\r\n return {};\r\n }\r\n\r\n return str.split('&').reduce((ret, param) => {\r\n var parts = param.replace(/\\+/g, ' ').split('=');\r\n var key = parts[0];\r\n var val = parts[1];\r\n\r\n key = decodeURIComponent(key);\r\n\r\n // missing `=` should be `null`:\r\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\r\n val = val === undefined ? null : decodeURIComponent(val);\r\n\r\n if (!(key in ret)) {\r\n ret[key] = val;\r\n } else if (Array.isArray(ret[key])) {\r\n ret[key].push(val);\r\n } else {\r\n ret[key] = [ret[key], val];\r\n }\r\n\r\n return ret;\r\n }, {});\r\n },\r\n\r\n stringify(obj) {\r\n return obj\r\n ? Object.keys(obj)\r\n .sort()\r\n .map((key) => {\r\n let val = obj[key];\r\n\r\n if (Array.isArray(val))\r\n return val\r\n .sort()\r\n .map((x) => encodeURI(key) + '=' + encodeURI(x))\r\n .join('&');\r\n\r\n return encodeURI(key) + '=' + encodeURI(val);\r\n })\r\n .join('&')\r\n : '';\r\n },\r\n\r\n loadSvg(svg, container, anonFunc) {\r\n fetch(`${ENV.svgsLocation}/${svg}`)\r\n .then((response) => response.text())\r\n .then((svg) => {\r\n container.innerHTML = svg;\r\n if (anonFunc) anonFunc(container);\r\n });\r\n },\r\n\r\n isNumeric(value) {\r\n return !(this.isNullOrWhiteSpace(value) || isNaN(value) || value === true || value === false);\r\n },\r\n\r\n convertDataTypeFromHash(hashValue) {\r\n if (typeof hashValue !== 'undefined' && this.isNumeric(hashValue)) {\r\n return Number(hashValue);\r\n } else if (typeof hashValue !== 'undefined' && hashValue === 'true') {\r\n return true;\r\n } else if (typeof hashValue !== 'undefined' && hashValue === 'false') {\r\n return false;\r\n } else {\r\n return hashValue;\r\n }\r\n },\r\n\r\n getNumericRange(value, partialEligible) {\r\n let base = '1',\r\n halfBase = '5',\r\n roundedValue = value.toScale(0),\r\n valueLength = roundedValue.toString().length,\r\n halfRange = valueLength > 1 ? Number(halfBase.padEnd(valueLength - 1, '0')) : 0,\r\n range = Number(base.padEnd(valueLength, '0')),\r\n halfChar = valueLength > 1 && value.toString().charAt(1),\r\n // true will round to half, otherwise will round up or down\r\n halfEligible =\r\n partialEligible &&\r\n halfChar &&\r\n (Math.abs(halfChar - 5) < Math.abs(halfChar - 0) || Math.abs(halfChar - 5) < Math.abs(halfChar - 10));\r\n\r\n return {\r\n value: range,\r\n partial: halfEligible ? halfRange : 0,\r\n };\r\n },\r\n\r\n isBoolean(value) {\r\n return typeof value == typeof true || typeof value == typeof false;\r\n },\r\n\r\n isPrime(value) {\r\n for (var i = 2; i < value; i++) {\r\n if (value % i === 0) {\r\n return false;\r\n }\r\n }\r\n\r\n return value > 1;\r\n },\r\n\r\n closestPrime(value) {\r\n let i = 0;\r\n let found = false;\r\n let possiblePrime;\r\n\r\n value = value.toScale(0, 'trunc');\r\n if (value < 2) return 2;\r\n\r\n while (!found) {\r\n possiblePrime = value + i;\r\n if (this.isPrime(possiblePrime)) {\r\n found = true;\r\n }\r\n\r\n i = i + 1;\r\n }\r\n\r\n return possiblePrime;\r\n },\r\n\r\n roundTo(value, scale, inFunc) {\r\n let func = inFunc || 'round';\r\n return Math[func](value * Math.pow(10, scale)) / Math.pow(10, scale);\r\n },\r\n\r\n roundToStep(value, step, inFunc) {\r\n let func = inFunc || 'round',\r\n inv = 1.0 / step;\r\n return Math[func](value * inv) / inv;\r\n },\r\n\r\n disableConsole(disable) {\r\n if (disable) {\r\n window.console = {\r\n error: function () {},\r\n log: function () {},\r\n info: function () {},\r\n warn: function () {},\r\n group: function () {},\r\n dir: function () {},\r\n groupCollapsed: function () {},\r\n groupEnd: function () {},\r\n trace: function () {},\r\n time: function () {},\r\n timeEnd: function () {},\r\n };\r\n }\r\n },\r\n\r\n getUrlParameter(name) {\r\n let hashMap = this.parseUrl(top.location.hash);\r\n return name in hashMap ? hashMap[name] : null;\r\n },\r\n\r\n isNullOrWhiteSpace: function (text) {\r\n return typeof text !== 'undefined' ? text === null || text.toString().match(/^\\s*$/) !== null : true;\r\n },\r\n\r\n compare(a, b) {\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n },\r\n\r\n downloadFile(contentType, fileName, fileData) {\r\n let success = false;\r\n if (fileData) {\r\n let blob = new Blob([fileData], { type: contentType });\r\n if (typeof window.navigator.msSaveBlob !== 'undefined') {\r\n window.navigator.msSaveBlob(blob, fileName);\r\n } else {\r\n var URL = window.URL || window.webkitURL;\r\n var downloadUrl = URL.createObjectURL(blob);\r\n\r\n if (fileName) {\r\n var a = document.createElement('a');\r\n if (typeof a.download === 'undefined') {\r\n window.location = downloadUrl;\r\n } else {\r\n a.href = downloadUrl;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n } else {\r\n window.location = downloadUrl;\r\n }\r\n setTimeout(function () {\r\n URL.revokeObjectURL(downloadUrl);\r\n }, 100);\r\n }\r\n success = true;\r\n }\r\n\r\n return success;\r\n },\r\n\r\n formatCell(dataType, value) {\r\n return `<span class=\"${dataType}-cell\">${value}</span>`;\r\n },\r\n\r\n getAppContainer() {\r\n let app = Namespace.NAMESPACES.find((namespace) => namespace instanceof Application);\r\n if (app) return app.__container__;\r\n else return {};\r\n },\r\n\r\n generateNamingMetadata(item) {\r\n item.appName = snakeCase(item.name);\r\n item.propertyName = camelCase(item.name);\r\n },\r\n};\r\n","import Utils from '../utils/utils';\r\nimport Consts from '../utils/constants';\r\nimport '../utils/array-extension';\r\n\r\nconst DATA_TYPE = {\r\n NUMBER: 'number',\r\n STRING: 'string',\r\n BOOLEAN: 'boolean',\r\n};\r\n\r\nconst LABEL = {\r\n REQUIRED: 'required',\r\n VALUE_SET: 'value_set',\r\n ALTERNATE: 'alternate',\r\n BLANK_THD_TAB: 'blank_thd_tab',\r\n SETTLING_THD_ADJ: 'settling_thd_adj',\r\n DEFAULT_DRIVER: 'default_driver',\r\n RECOMMENDED_DRIVER: 'recommended_driver',\r\n};\r\n\r\nconst LABEL_CATEGORY = {\r\n REQUIRED: LABEL.REQUIRED,\r\n VALUE_SET: LABEL.REQUIRED,\r\n ALTERNATE: LABEL.REQUIRED,\r\n BLANK_THD_TAB: LABEL.BLANK_THD_TAB,\r\n SETTLING_THD_ADJ: LABEL.SETTLING_THD_ADJ,\r\n DEFAULT_DRIVER: LABEL.DEFAULT_DRIVER,\r\n RECOMMENDED_DRIVER: LABEL.RECOMMENDED_DRIVER,\r\n};\r\n\r\nconst LABEL_CATEGORIES = Object.keys(LABEL_CATEGORY)\r\n .map((key) => LABEL_CATEGORY[key])\r\n .removeDuplicates();\r\n\r\nconst INVALID_CATEGORIES_EXIST = (validation) => {\r\n let invalid = false,\r\n invalidCategories = Object.keys(validation);\r\n for (let i = 0; i < invalidCategories.length; i++) {\r\n if (LABEL_CATEGORIES.includes(invalidCategories[i])) {\r\n invalid = true;\r\n break;\r\n }\r\n }\r\n\r\n return invalid;\r\n};\r\n\r\nconst REQUIRED = (key, metadata, partItem) => {\r\n let valid = false,\r\n inValue = partItem[key];\r\n\r\n if (typeof inValue !== Consts.UNDEFINED) {\r\n switch (metadata.dataType) {\r\n case DATA_TYPE.STRING:\r\n if (typeof inValue === DATA_TYPE.STRING && inValue.trim() !== '') valid = true;\r\n break;\r\n case DATA_TYPE.NUMBER:\r\n if (typeof inValue === DATA_TYPE.NUMBER) valid = true;\r\n break;\r\n case DATA_TYPE.BOOLEAN:\r\n if (Utils.isBoolean(inValue)) valid = true;\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n parameter: key,\r\n valid: valid,\r\n category: LABEL.REQUIRED,\r\n hidePartItem: true,\r\n translation: `validation.required.${metadata.dataType}`,\r\n transArgs: { value: inValue },\r\n part: partItem.part,\r\n };\r\n};\r\n\r\nconst VALUE_SET = (key, metadata, partItem) => {\r\n let requiredResult = REQUIRED(key, metadata, partItem),\r\n value = partItem[key];\r\n\r\n return {\r\n parameter: key,\r\n valid: Array.isArray(metadata.valueSet) && requiredResult.valid && metadata.valueSet.includes(value),\r\n category: LABEL.REQUIRED,\r\n hidePartItem: true,\r\n translation: !requiredResult.valid ? requiredResult.translation : 'validation.value_set',\r\n transArgs: !requiredResult.valid\r\n ? requiredResult.transArgs\r\n : { value: value, valueSet: Array.isArray(metadata.valueSet) ? metadata.valueSet.join() : [] },\r\n part: partItem.part,\r\n };\r\n};\r\n\r\nconst CONDITIONAL_REQUIRED = (key, metadata, partItem, conditionFunc) => {\r\n let requiredResult = REQUIRED(key, metadata, partItem);\r\n return !conditionFunc(partItem) || requiredResult.valid ? { valid: true } : requiredResult;\r\n};\r\n\r\nconst BLANK_THD_TAB = (key, metadata, partItem) => {\r\n let result = CONDITIONAL_REQUIRED(key, metadata, partItem, (partItem) => {\r\n return !partItem.blankTHDTab;\r\n });\r\n return {\r\n parameter: key,\r\n valid: result.valid,\r\n category: LABEL.BLANK_THD_TAB,\r\n hidePartItem: true,\r\n translation: result.translation,\r\n transArgs: result.transArgs,\r\n part: partItem.part,\r\n };\r\n};\r\n\r\nconst SETTLING_THD_ADJ = (key, metadata, partItem) => {\r\n let result = CONDITIONAL_REQUIRED(key, metadata, partItem, (partItem) => {\r\n return partItem.settlingTHDadj;\r\n });\r\n return {\r\n parameter: key,\r\n valid: result.valid,\r\n category: LABEL.SETTLING_THD_ADJ,\r\n hidePartItem: true,\r\n translation: result.translation,\r\n transArgs: result.transArgs,\r\n part: partItem.part,\r\n };\r\n};\r\n\r\nconst ALTERNATE = (key, metadata, partItem) => {\r\n let result = REQUIRED(key, metadata, partItem),\r\n properties = [key],\r\n values = [partItem[key]];\r\n\r\n if (!result.valid) {\r\n for (let i = 0; i < metadata.alternates.length; i++) {\r\n let alternate = metadata.alternates[i];\r\n result = REQUIRED(alternate, metadata, partItem);\r\n properties.push(alternate);\r\n values.push(partItem[alternate]);\r\n if (result.valid) break;\r\n }\r\n }\r\n\r\n return {\r\n parameter: key,\r\n valid: result.valid,\r\n category: LABEL.REQUIRED,\r\n hidePartItem: true,\r\n translation: 'validation.alternate',\r\n transArgs: { properties: properties, values: values }, //result.transArgs,\r\n part: partItem.part,\r\n };\r\n};\r\n\r\nconst DEFAULT = (key, metadata, partItem) => {\r\n if (!REQUIRED(key, metadata, partItem).valid) {\r\n partItem[key] = metadata.default;\r\n }\r\n\r\n return {\r\n valid: true,\r\n };\r\n};\r\n\r\nconst DEFAULT_DRIVER = (key, metadata, adc) => {\r\n let requiredResult = REQUIRED(key, metadata, adc),\r\n value = adc[key];\r\n\r\n return {\r\n parameter: key,\r\n category: LABEL.DEFAULT_DRIVER,\r\n valid: requiredResult.valid && adc.recommendedDrivers.includes(value),\r\n hidePartItem: false,\r\n translation: !requiredResult.valid ? requiredResult.translation : 'validation.default_driver.item',\r\n transArgs: !requiredResult.valid\r\n ? requiredResult.transArgs\r\n : { value: value, adc: adc.part, drivers: adc.recommendedDrivers.join() },\r\n part: adc.part,\r\n };\r\n};\r\n\r\nconst RECOMMENDED_DRIVERS = (key, metadata, adc) => {\r\n let invalidDrivers = [],\r\n value = adc[key];\r\n\r\n value.forEach((driver) => {\r\n if (!metadata.driverOptions.includes(driver)) {\r\n invalidDrivers.push(driver);\r\n }\r\n });\r\n\r\n return {\r\n parameter: key,\r\n category: LABEL.RECOMMENDED_DRIVER,\r\n valid: !invalidDrivers.length,\r\n hidePartItem: false,\r\n translation: 'validation.recommended_driver.item',\r\n transArgs: { invalidDrivers: invalidDrivers.join() },\r\n part: adc.part,\r\n };\r\n};\r\n\r\nconst VALIDATION = {\r\n REQUIRED: REQUIRED,\r\n DEFAULT: DEFAULT,\r\n VALUE_SET: VALUE_SET,\r\n BLANK_THD_TAB: BLANK_THD_TAB,\r\n SETTLING_THD_ADJ: SETTLING_THD_ADJ,\r\n ALTERNATE: ALTERNATE,\r\n DEFAULT_DRIVER: DEFAULT_DRIVER,\r\n RECOMMENDED_DRIVERS: RECOMMENDED_DRIVERS,\r\n};\r\n\r\nexport {\r\n VALIDATION,\r\n DATA_TYPE,\r\n LABEL,\r\n LABEL_CATEGORIES,\r\n INVALID_CATEGORIES_EXIST,\r\n /*FOR TESTING = */ REQUIRED,\r\n VALUE_SET,\r\n CONDITIONAL_REQUIRED,\r\n BLANK_THD_TAB,\r\n SETTLING_THD_ADJ,\r\n ALTERNATE,\r\n DEFAULT,\r\n DEFAULT_DRIVER,\r\n RECOMMENDED_DRIVERS,\r\n};\r\n","import { setModifierManager, capabilities } from '@ember/modifier';\nimport { macroCondition, dependencySatisfies } from '@embroider/macros';\n\n/**\n The `{{did-insert}}` element modifier is activated when an element is\n inserted into the DOM.\n\n In this example, the `fadeIn` function receives the `div` DOM element as its\n first argument and is executed after the element is inserted into the DOM.\n\n ```handlebars\n <div {{did-insert this.fadeIn}} class=\"alert\">\n {{yield}}\n </div>\n ```\n\n ```js\n export default Component.extend({\n fadeIn(element) {\n element.classList.add('fade-in');\n }\n });\n ```\n\n By default, the executed function will be unbound. If you would like to access\n the component context in your function, use the `action` decorator as follows:\n\n ```handlebars\n <div {{did-insert this.incrementCount}}>first</div>\n <div {{did-insert this.incrementCount}}>second</div>\n\n <p>{{this.count}} elements were rendered</p>\n ```\n\n ```js\n export default Component.extend({\n count: tracked({ value: 0 }),\n\n incrementCount: action(function() {\n this.count++;\n })\n });\n ```\n\n @method did-insert\n @public\n*/\nexport default setModifierManager(() => ({\n capabilities: capabilities(macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-beta.1')) ? '3.22' : '3.13', {\n disableAutoTracking: true\n }),\n createModifier() {},\n installModifier(_state, element, {\n positional: [fn, ...args],\n named\n }) {\n fn(element, args, named);\n },\n updateModifier() {},\n destroyModifier() {}\n}), class DidInsertModifier {});","import { setModifierManager, capabilities } from '@ember/modifier';\nimport { macroCondition, dependencySatisfies, importSync } from '@embroider/macros';\nconst untrack = function () {\n if (macroCondition(dependencySatisfies('ember-source', '> 3.27.0-beta.1'))) {\n // ember-source@3.27 shipped \"real modules\" by default, so we can just use\n // importSync to get @glimmer/validator directly\n return importSync('@glimmer/validator').untrack;\n } else if (macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-alpha.1'))) {\n // we can access `window.Ember` here because it wasn't deprecated until at least 3.27\n // eslint-disable-next-line no-undef\n return Ember.__loader.require('@glimmer/validator').untrack;\n } else {\n // nothing needed here, we do not call `untrack` in this case\n }\n}();\n\n/**\n The `{{did-update}}` element modifier is activated when any of its arguments\n are updated. It does not run on initial render.\n\n In this example, the `resize` function receives the `textarea` DOM element as its\n first argument and is executed anytime the `@text` argument changes.\n\n ```handlebars\n <textarea {{did-update this.resize @text}} readonly style=\"padding: 0px;\">\n {{@text}}\n </textarea>\n ```\n\n ```js\n export default Component.extend({\n resize(element) {\n element.style.height = `${element.scrollHeight}px`;\n }\n });\n ```\n\n In addition to the `element`, both named and positional arguments are passed to the\n executed function:\n\n ```handlebars\n <div {{did-update this.logArguments @first @second third=@third}} />\n ```\n\n ```js\n export default Component.extend({\n logArguments(element, [first, second], { third }) {\n console.log('element', element);\n console.log('positional args', first, second);\n console.log('names args', third);\n }\n });\n ```\n\n By default, the executed function will be unbound. If you would like to access\n the component context in your function, use the `action` decorator as follows:\n\n ```handlebars\n <div {{did-update this.someFunction @someArg} />\n ```\n\n ```js\n export default Component.extend({\n someFunction: action(function(element, [someArg]) {\n // the `this` context will be the component instance\n })\n });\n ```\n\n @method did-update\n @public\n*/\nexport default setModifierManager(() => ({\n capabilities: macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-alpha.1')) ? capabilities('3.22', {\n disableAutoTracking: false\n }) : capabilities('3.13', {\n disableAutoTracking: true\n }),\n createModifier() {\n return {\n element: null\n };\n },\n installModifier(state, element, args) {\n // save element into state bucket\n state.element = element;\n if (macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-alpha.1'))) {\n // Consume individual properties to entangle tracking.\n // https://github.com/emberjs/ember.js/issues/19277\n // https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201\n args.positional.forEach(() => {});\n args.named && Object.values(args.named);\n }\n },\n updateModifier({\n element\n }, args) {\n let [fn, ...positional] = args.positional;\n if (macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-alpha.1'))) {\n // Consume individual properties to entangle tracking.\n // https://github.com/emberjs/ember.js/issues/19277\n // https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201\n args.positional.forEach(() => {});\n args.named && Object.values(args.named);\n untrack(() => {\n fn(element, positional, args.named);\n });\n } else {\n fn(element, positional, args.named);\n }\n },\n destroyModifier() {}\n}), class DidUpdateModifier {});","import { setModifierManager, capabilities } from '@ember/modifier';\nimport { macroCondition, dependencySatisfies } from '@embroider/macros';\n\n/**\n The `{{will-destroy}}` element modifier is activated immediately before the element\n is removed from the DOM.\n\n ```handlebars\n <div {{will-destroy this.teardownPlugin}}>\n {{yield}}\n </div>\n ```\n\n ```js\n export default Component.extend({\n teardownPlugin(element) {\n // teardown logic here\n }\n });\n ```\n\n By default, the executed function will be unbound. If you would like to access\n the component context in your function, use the `action` decorator as follows:\n\n ```handlebars\n <div {{will-destroy this.teardownPlugin}}>\n {{yield}}\n </div>\n ```\n\n ```js\n export default Component.extend({\n teardownPlugin: action(function(element) {\n // the `this` context will be the component instance\n })\n });\n ```\n\n @method will-destroy\n @public\n*/\nexport default setModifierManager(() => ({\n capabilities: capabilities(macroCondition(dependencySatisfies('ember-source', '>= 3.22.0-beta.1')) ? '3.22' : '3.13', {\n disableAutoTracking: true\n }),\n createModifier() {\n return {\n element: null\n };\n },\n installModifier(state, element) {\n state.element = element;\n },\n updateModifier() {},\n destroyModifier({\n element\n }, args) {\n let [fn, ...positional] = args.positional;\n fn(element, positional, args.named);\n }\n}), class WillDestroyModifier {});","export default class Cache {\n size = 0;\n misses = 0;\n hits = 0;\n\n constructor(limit, func, store) {\n this.limit = limit;\n this.func = func;\n this.store = store;\n this.store = store || new Map();\n }\n\n get(key) {\n let value = this.store.get(key);\n\n if (this.store.has(key)) {\n this.hits++;\n return this.store.get(key);\n } else {\n this.misses++;\n value = this.set(key, this.func(key));\n }\n\n return value;\n }\n\n set(key, value) {\n if (this.limit > this.size) {\n this.size++;\n this.store.set(key, value);\n }\n\n return value;\n }\n\n purge() {\n this.store.clear();\n this.size = 0;\n this.hits = 0;\n this.misses = 0;\n }\n\n}","/* eslint-disable no-useless-escape */\n\n/**\n @module @ember/string\n */\nimport Cache from './cache';\n// STATE within a module is frowned upon, this exists\n// to support Ember.STRINGS but shield ember internals from this legacy global\n// API.\nlet STRINGS = {};\nexport function setStrings(strings) {\n STRINGS = strings;\n}\nexport function getStrings() {\n return STRINGS;\n}\nexport function getString(name) {\n return STRINGS[name];\n}\nconst STRING_DASHERIZE_REGEXP = /[ _]/g;\nconst STRING_DASHERIZE_CACHE = new Cache(1000, key => decamelize(key).replace(STRING_DASHERIZE_REGEXP, '-'));\nconst STRING_CAMELIZE_REGEXP_1 = /(\\-|\\_|\\.|\\s)+(.)?/g;\nconst STRING_CAMELIZE_REGEXP_2 = /(^|\\/)([A-Z])/g;\nconst CAMELIZE_CACHE = new Cache(1000, key => key.replace(STRING_CAMELIZE_REGEXP_1, (_match, _separator, chr) => chr ? chr.toUpperCase() : '').replace(STRING_CAMELIZE_REGEXP_2, (match\n/*, separator, chr */\n) => match.toLowerCase()));\nconst STRING_CLASSIFY_REGEXP_1 = /^(\\-|_)+(.)?/;\nconst STRING_CLASSIFY_REGEXP_2 = /(.)(\\-|\\_|\\.|\\s)+(.)?/g;\nconst STRING_CLASSIFY_REGEXP_3 = /(^|\\/|\\.)([a-z])/g;\nconst CLASSIFY_CACHE = new Cache(1000, str => {\n const replace1 = (_match, _separator, chr) => chr ? `_${chr.toUpperCase()}` : '';\n\n const replace2 = (_match, initialChar, _separator, chr) => initialChar + (chr ? chr.toUpperCase() : '');\n\n const parts = str.split('/');\n\n for (let i = 0; i < parts.length; i++) {\n parts[i] = parts[i].replace(STRING_CLASSIFY_REGEXP_1, replace1).replace(STRING_CLASSIFY_REGEXP_2, replace2);\n }\n\n return parts.join('/').replace(STRING_CLASSIFY_REGEXP_3, (match\n /*, separator, chr */\n ) => match.toUpperCase());\n});\nconst STRING_UNDERSCORE_REGEXP_1 = /([a-z\\d])([A-Z]+)/g;\nconst STRING_UNDERSCORE_REGEXP_2 = /\\-|\\s+/g;\nconst UNDERSCORE_CACHE = new Cache(1000, str => str.replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2').replace(STRING_UNDERSCORE_REGEXP_2, '_').toLowerCase());\nconst STRING_CAPITALIZE_REGEXP = /(^|\\/)([a-z\\u00C0-\\u024F])/g;\nconst CAPITALIZE_CACHE = new Cache(1000, str => str.replace(STRING_CAPITALIZE_REGEXP, (match\n/*, separator, chr */\n) => match.toUpperCase()));\nconst STRING_DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\nconst DECAMELIZE_CACHE = new Cache(1000, str => str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase());\n/**\n Splits a string into separate units separated by spaces, eliminating any\n empty strings in the process. This is a convenience method for split that\n is mostly useful when applied to the `String.prototype`.\n\n ```javascript\n import { w } from '@ember/string';\n\n w(\"alpha beta gamma\").forEach(function(key) {\n console.log(key);\n });\n\n // > alpha\n // > beta\n // > gamma\n ```\n\n @method w\n @param {String} str The string to split\n @return {Array} array containing the split strings\n @public\n*/\n\nexport function w(str) {\n return str.split(/\\s+/);\n}\n/**\n Converts a camelized string into all lower case separated by underscores.\n\n ```javascript\n import { decamelize } from '@ember/string';\n\n decamelize('innerHTML'); // 'inner_html'\n decamelize('action_name'); // 'action_name'\n decamelize('css-class-name'); // 'css-class-name'\n decamelize('my favorite items'); // 'my favorite items'\n ```\n\n @method decamelize\n @param {String} str The string to decamelize.\n @return {String} the decamelized string.\n @public\n*/\n\nexport function decamelize(str) {\n return DECAMELIZE_CACHE.get(str);\n}\n/**\n Replaces underscores, spaces, or camelCase with dashes.\n\n ```javascript\n import { dasherize } from '@ember/string';\n\n dasherize('innerHTML'); // 'inner-html'\n dasherize('action_name'); // 'action-name'\n dasherize('css-class-name'); // 'css-class-name'\n dasherize('my favorite items'); // 'my-favorite-items'\n dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n ```\n\n @method dasherize\n @param {String} str The string to dasherize.\n @return {String} the dasherized string.\n @public\n*/\n\nexport function dasherize(str) {\n return STRING_DASHERIZE_CACHE.get(str);\n}\n/**\n Returns the lowerCamelCase form of a string.\n\n ```javascript\n import { camelize } from '@ember/string';\n\n camelize('innerHTML'); // 'innerHTML'\n camelize('action_name'); // 'actionName'\n camelize('css-class-name'); // 'cssClassName'\n camelize('my favorite items'); // 'myFavoriteItems'\n camelize('My Favorite Items'); // 'myFavoriteItems'\n camelize('private-docs/owner-invoice'); // 'privateDocs/ownerInvoice'\n ```\n\n @method camelize\n @param {String} str The string to camelize.\n @return {String} the camelized string.\n @public\n*/\n\nexport function camelize(str) {\n return CAMELIZE_CACHE.get(str);\n}\n/**\n Returns the UpperCamelCase form of a string.\n\n ```javascript\n import { classify } from '@ember/string';\n\n classify('innerHTML'); // 'InnerHTML'\n classify('action_name'); // 'ActionName'\n classify('css-class-name'); // 'CssClassName'\n classify('my favorite items'); // 'MyFavoriteItems'\n classify('private-docs/owner-invoice'); // 'PrivateDocs/OwnerInvoice'\n ```\n\n @method classify\n @param {String} str the string to classify\n @return {String} the classified string\n @public\n*/\n\nexport function classify(str) {\n return CLASSIFY_CACHE.get(str);\n}\n/**\n More general than decamelize. Returns the lower\\_case\\_and\\_underscored\n form of a string.\n\n ```javascript\n import { underscore } from '@ember/string';\n\n underscore('innerHTML'); // 'inner_html'\n underscore('action_name'); // 'action_name'\n underscore('css-class-name'); // 'css_class_name'\n underscore('my favorite items'); // 'my_favorite_items'\n underscore('privateDocs/ownerInvoice'); // 'private_docs/owner_invoice'\n ```\n\n @method underscore\n @param {String} str The string to underscore.\n @return {String} the underscored string.\n @public\n*/\n\nexport function underscore(str) {\n return UNDERSCORE_CACHE.get(str);\n}\n/**\n Returns the Capitalized form of a string\n\n ```javascript\n import { capitalize } from '@ember/string';\n\n capitalize('innerHTML') // 'InnerHTML'\n capitalize('action_name') // 'Action_name'\n capitalize('css-class-name') // 'Css-class-name'\n capitalize('my favorite items') // 'My favorite items'\n capitalize('privateDocs/ownerInvoice'); // 'PrivateDocs/ownerInvoice'\n ```\n\n @method capitalize\n @param {String} str The string to capitalize.\n @return {String} The capitalized string.\n @public\n*/\n\nexport function capitalize(str) {\n return CAPITALIZE_CACHE.get(str);\n}\n/*\n The following are implemented here to give users adding `@ember/string` to\n their projects a useful error message. The `ember-source` implementation of\n `@ember/string` is clobbered by adding this addon, and so the deprecation of\n the import path is not triggered. This error message is intended to help\n users discover what they need to change.\n*/\n\nexport function htmlSafe(str) {\n throw new Error('htmlSafe is not implemented in the `@ember/string` package. Please import from `@ember/template` instead.');\n}\nexport function isHTMLSafe(str) {\n throw new Error('isHTMLSafe is not implemented in the `@ember/string` package. Please import from `@ember/template` instead.');\n}","import Ember from 'ember';\nimport { registerWaiter } from '@ember/test';\n\n// this ensures that if @ember/test-waiters exists in multiple places in the\n// build output we will still use a single map of waiters (there really should\n// only be one of them, or else `settled` will not work at all)\nconst WAITERS = function () {\n const HAS_SYMBOL = typeof Symbol !== 'undefined';\n let symbolName = 'TEST_WAITERS';\n let symbol = HAS_SYMBOL ? Symbol.for(symbolName) : symbolName;\n let global = getGlobal();\n let waiters = global[symbol];\n if (waiters === undefined) {\n waiters = global[symbol] = new Map();\n }\n return waiters;\n}();\nfunction indexable(input) {\n return input;\n}\nfunction getGlobal() {\n // eslint-disable-next-line node/no-unsupported-features/es-builtins\n if (typeof globalThis !== 'undefined') return indexable(globalThis);\n if (typeof self !== 'undefined') return indexable(self);\n if (typeof window !== 'undefined') return indexable(window);\n if (typeof global !== 'undefined') return indexable(global);\n throw new Error('unable to locate global object');\n}\n/**\n * Backwards compatibility with legacy waiters system.\n *\n * We want to always register a waiter using the legacy waiter system, as right\n * now if consumers are not on the right version of @ember/test-helpers, using\n * this addon will result in none of these waiters waiting.\n */\n// eslint-disable-next-line ember/new-module-imports\n\nif (Ember.Test) {\n registerWaiter(() => !hasPendingWaiters());\n}\n/**\n * Registers a waiter.\n *\n * @public\n * @param waiter {Waiter} A test waiter instance\n */\n\nexport function register(waiter) {\n WAITERS.set(waiter.name, waiter);\n}\n/**\n * Un-registers a waiter.\n *\n * @public\n * @param waiter {Waiter} A test waiter instance\n */\n\nexport function unregister(waiter) {\n WAITERS.delete(waiter.name);\n}\n/**\n * Gets an array of all waiters current registered.\n *\n * @public\n * @returns {Waiter[]}\n */\n\nexport function getWaiters() {\n let result = [];\n WAITERS.forEach(value => {\n result.push(value);\n });\n return result;\n}\n/**\n * Clears all waiters.\n *\n * @private\n */\n\nexport function _reset() {\n for (let waiter of getWaiters()) {\n waiter.isRegistered = false;\n }\n WAITERS.clear();\n}\n/**\n * Gets the current state of all waiters. Any waiters whose\n * `waitUntil` method returns false will be considered `pending`.\n *\n * @returns {PendingWaiterState} An object containing a count of all waiters\n * pending and a `waiters` object containing the name of all pending waiters\n * and their debug info.\n */\n\nexport function getPendingWaiterState() {\n let result = {\n pending: 0,\n waiters: {}\n };\n WAITERS.forEach(waiter => {\n if (!waiter.waitUntil()) {\n result.pending++;\n let debugInfo = waiter.debugInfo();\n result.waiters[waiter.name] = debugInfo || true;\n }\n });\n return result;\n}\n/**\n * Determines if there are any pending waiters.\n *\n * @returns {boolean} `true` if there are pending waiters, otherwise `false`.\n */\n\nexport function hasPendingWaiters() {\n let state = getPendingWaiterState();\n return state.pending > 0;\n}","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { DEBUG } from '@glimmer/env';\nimport { warn } from '@ember/debug';\nimport Token from './token';\nimport { register } from './waiter-manager';\nconst WAITER_NAME_PATTERN = /^[^:]*:?.*/;\nlet WAITER_NAMES = DEBUG ? new Set() : undefined;\nexport function _resetWaiterNames() {\n WAITER_NAMES = new Set();\n}\nfunction getNextToken() {\n return new Token();\n}\nclass TestWaiterImpl {\n constructor(name, nextToken) {\n _defineProperty(this, \"isRegistered\", false);\n _defineProperty(this, \"items\", new Map());\n _defineProperty(this, \"completedOperationsForTokens\", new WeakMap());\n _defineProperty(this, \"completedOperationsForPrimitives\", new Map());\n this.name = name; // @ts-ignore\n\n this.nextToken = nextToken || getNextToken;\n }\n beginAsync(token = this.nextToken(), label) {\n this._register();\n if (this.items.has(token)) {\n throw new Error(`beginAsync called for ${token} but it is already pending.`);\n }\n let error = new Error();\n this.items.set(token, {\n get stack() {\n return error.stack;\n },\n label\n });\n return token;\n }\n endAsync(token) {\n if (!this.items.has(token) && !this._getCompletedOperations(token).has(token)) {\n throw new Error(`testWaiter.endAsync called with no preceding testWaiter.beginAsync call.\n Test waiter calls should always be paired. This can occur when a test waiter's paired calls are invoked in a non-deterministic order.\n\n See https://github.com/emberjs/ember-test-waiters#keep-beginasyncendasync-in-same-block-scope for more information.`);\n }\n this.items.delete(token); // Mark when a waiter operation has completed so we can distinguish\n // whether endAsync is being called before a prior beginAsync call above.\n\n this._getCompletedOperations(token).set(token, true);\n }\n waitUntil() {\n return this.items.size === 0;\n }\n debugInfo() {\n let result = [];\n this.items.forEach(value => {\n result.push(value);\n });\n return result;\n }\n reset() {\n this.items.clear();\n }\n _register() {\n if (!this.isRegistered) {\n register(this);\n this.isRegistered = true;\n }\n }\n _getCompletedOperations(token) {\n let type = typeof token;\n let isFunction = type === 'function';\n let isObject = token !== null && type === 'object';\n let isPrimitive = !isFunction && !isObject;\n return isPrimitive ? this.completedOperationsForPrimitives : this.completedOperationsForTokens;\n }\n}\nclass NoopTestWaiter {\n constructor(name) {\n this.name = name;\n }\n beginAsync() {\n return this;\n }\n endAsync() {}\n waitUntil() {\n return true;\n }\n debugInfo() {\n return [];\n }\n reset() {}\n}\n/**\n * Builds and returns a test waiter. The type of the\n * returned waiter is dependent on whether the app or\n * addon is in `DEBUG` mode or not.\n *\n * @public\n *\n * @param name {string} The name of the test waiter\n * @returns {TestWaiter}\n *\n * @example\n *\n * import Component from '@ember/component';\n * import { buildWaiter } from '@ember/test-waiters';\n *\n * if (DEBUG) {\n * let waiter = buildWaiter('friend-waiter');\n * }\n *\n * export default class Friendz extends Component {\n * didInsertElement() {\n * let token = waiter.beginAsync(this);\n *\n * someAsyncWork().then(() => {\n * waiter.endAsync(token);\n * });\n * }\n * }\n */\n\nexport default function buildWaiter(name) {\n if (DEBUG) {\n warn(`The waiter name '${name}' is already in use`, !WAITER_NAMES.has(name), {\n id: '@ember/test-waiters.duplicate-waiter-name'\n });\n WAITER_NAMES.add(name);\n }\n if (!DEBUG) {\n return new NoopTestWaiter(name);\n } else {\n warn(`You must provide a name that contains a descriptive prefix separated by a colon.\n\n Example: ember-fictitious-addon:some-file\n\n You passed: ${name}`, WAITER_NAME_PATTERN.test(name), {\n id: '@ember/test-waiters.invalid-waiter-name'\n });\n return new TestWaiterImpl(name);\n }\n}","import { DEBUG } from '@glimmer/env';\nimport buildWaiter from './build-waiter';\nconst PROMISE_WAITER = buildWaiter('@ember/test-waiters:promise-waiter');\n/**\n * A convenient utility function to simplify waiting for a promise.\n *\n * @public\n * @param promise {Promise<T> | RSVP.Promise<T>} The promise to track async operations for\n * @param label {string} An optional string to identify the promise\n *\n * @example\n *\n * import Component from '@ember/component';\n * import { waitForPromise } from '@ember/test-waiters';\n *\n * export default class Friendz extends Component {\n * didInsertElement() {\n * waitForPromise(new Promise(resolve => {\n * doSomeWork();\n * resolve();\n * }));\n * }\n * }\n */\n\nexport default function waitForPromise(promise, label) {\n let result = promise;\n if (DEBUG) {\n PROMISE_WAITER.beginAsync(promise, label);\n result = promise.then(value => {\n PROMISE_WAITER.endAsync(promise);\n return value;\n }, error => {\n PROMISE_WAITER.endAsync(promise);\n throw error;\n });\n }\n return result;\n}","import { DEBUG } from '@glimmer/env';\nimport waitForPromise from './wait-for-promise';\nimport buildWaiter from './build-waiter';\nexport default function waitFor(...args) {\n let isFunction = args.length < 3;\n if (isFunction) {\n let [fn, label] = args;\n return wrapFunction(fn, label);\n } else {\n let [,, descriptor, label] = args;\n if (!DEBUG) {\n return descriptor;\n }\n let fn = descriptor.value;\n descriptor.value = wrapFunction(fn, label);\n return descriptor;\n }\n}\nfunction wrapFunction(fn, label) {\n if (!DEBUG) {\n return fn;\n }\n return function (...args) {\n let result = fn.call(this, ...args);\n if (isThenable(result)) {\n return waitForPromise(result, label);\n } else if (isGenerator(result)) {\n return waitForGenerator(result, label);\n } else {\n return result;\n }\n };\n}\nfunction isThenable(maybePromise) {\n let type = typeof maybePromise;\n return (maybePromise !== null && type === 'object' || type === 'function') && typeof maybePromise.then === 'function';\n}\nfunction isGenerator(maybeGenerator) {\n // Because we don't have Symbol.iterator in IE11\n return typeof maybeGenerator.next === 'function' && typeof maybeGenerator.return === 'function' && typeof maybeGenerator.throw === 'function';\n}\nconst GENERATOR_WAITER = buildWaiter('@ember/test-waiters:generator-waiter');\nfunction waitForGenerator(generator, label) {\n GENERATOR_WAITER.beginAsync(generator, label);\n let isWaiting = true;\n function stopWaiting() {\n if (isWaiting) {\n GENERATOR_WAITER.endAsync(generator);\n isWaiting = false;\n }\n }\n return {\n next(...args) {\n let hasErrored = true;\n try {\n let val = generator.next(...args);\n hasErrored = false;\n if (val.done) {\n stopWaiting();\n }\n return val;\n } finally {\n // If generator.next() throws, we need to stop waiting. But if we catch\n // and re-throw exceptions, it could move the location from which the\n // uncaught exception is thrown, interfering with the developer\n // debugging experience if they have break-on-exceptions enabled. So we\n // use a boolean flag and a finally block to emulate a catch block.\n if (hasErrored) {\n stopWaiting();\n }\n }\n },\n return(...args) {\n stopWaiting();\n return generator.return(...args);\n },\n throw(...args) {\n stopWaiting();\n return generator.throw(...args);\n }\n };\n}","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { DEBUG } from '@glimmer/env';\nimport { setOwner } from './owner';\nimport { isDestroying, isDestroyed } from './destroyables';\n\n// This provides a type-safe `WeakMap`: the getter and setter link the key to a\n// specific value. This is how `WeakMap`s actually behave, but the TS type\n// system does not (yet!) have a good way to capture that for types like\n// `WeakMap` where the type is generic over another generic type (here, `Args`).\n\n// SAFETY: this only holds because we *only* acces this when `DEBUG` is `true`.\n// There is not a great way to connect that data in TS at present.\nexport let ARGS_SET;\nif (DEBUG) {\n ARGS_SET = new WeakMap();\n}\n\n// --- Type utilities for component signatures --- //\n// Type-only \"symbol\" to use with `EmptyObject` below, so that it is *not*\n// equivalent to an empty interface.\n\n/**\n * This provides us a way to have a \"fallback\" which represents an empty object,\n * without the downsides of how TS treats `{}`. Specifically: this will\n * correctly leverage \"excess property checking\" so that, given a component\n * which has no named args, if someone invokes it with any named args, they will\n * get a type error.\n *\n * @internal This is exported so declaration emit works (if it were not emitted,\n * declarations which fall back to it would not work). It is *not* intended for\n * public usage, and the specific mechanics it uses may change at any time.\n * The location of this export *is* part of the public API, because moving it\n * will break existing declarations, but is not legal for end users to import\n * themselves, so ***DO NOT RELY ON IT***.\n */\n\n/** Given a signature `S`, get back the `Args` type. */\n\n/**\n * Given any allowed shorthand form of a signature, desugars it to its full\n * expanded type.\n *\n * @internal This is only exported so we can avoid duplicating it in\n * [Glint](https://github.com/typed-ember/glint) or other such tooling. It is\n * *not* intended for public usage, and the specific mechanics it uses may\n * change at any time. Although the signature produced by is part of Glimmer's\n * public API the existence and mechanics of this specific symbol are *not*,\n * so ***DO NOT RELY ON IT***.\n */\n// The conditional type here is because TS applies conditional types\n// distributively. This means that for union types, checks like `keyof T` get\n// all the keys from all elements of the union, instead of ending up as `never`\n// and then always falling into the `Signature` path instead of falling back to\n// the legacy args handling path.\n\n/**\n * @internal we use this type for convenience internally; inference means users\n * should not normally need to name it\n */\n\n/**\n * The `Component` class defines an encapsulated UI element that is rendered to\n * the DOM. A component is made up of a template and, optionally, this component\n * object.\n *\n * ## Defining a Component\n *\n * To define a component, subclass `Component` and add your own properties,\n * methods and lifecycle hooks:\n *\n * ```ts\n * import Component from '@glimmer/component';\n *\n * export default class extends Component {\n * }\n * ```\n *\n * ## Lifecycle Hooks\n *\n * Lifecycle hooks allow you to respond to changes to a component, such as when\n * it gets created, rendered, updated or destroyed. To add a lifecycle hook to a\n * component, implement the hook as a method on your component subclass.\n *\n * For example, to be notified when Glimmer has rendered your component so you\n * can attach a legacy jQuery plugin, implement the `didInsertElement()` method:\n *\n * ```ts\n * import Component from '@glimmer/component';\n *\n * export default class extends Component {\n * didInsertElement() {\n * $(this.element).pickadate();\n * }\n * }\n * ```\n *\n * ## Data for Templates\n *\n * `Component`s have two different kinds of data, or state, that can be\n * displayed in templates:\n *\n * 1. Arguments\n * 2. Properties\n *\n * Arguments are data that is passed in to a component from its parent\n * component. For example, if I have a `UserGreeting` component, I can pass it\n * a name and greeting to use:\n *\n * ```hbs\n * <UserGreeting @name=\"Ricardo\" @greeting=\"Olá\" />\n * ```\n *\n * Inside my `UserGreeting` template, I can access the `@name` and `@greeting`\n * arguments that I've been given:\n *\n * ```hbs\n * {{@greeting}}, {{@name}}!\n * ```\n *\n * Arguments are also available inside my component:\n *\n * ```ts\n * console.log(this.args.greeting); // prints \"Olá\"\n * ```\n *\n * Properties, on the other hand, are internal to the component and declared in\n * the class. You can use properties to store data that you want to show in the\n * template, or pass to another component as an argument.\n *\n * ```ts\n * import Component from '@glimmer/component';\n *\n * export default class extends Component {\n * user = {\n * name: 'Robbie'\n * }\n * }\n * ```\n *\n * In the above example, we've defined a component with a `user` property that\n * contains an object with its own `name` property.\n *\n * We can render that property in our template:\n *\n * ```hbs\n * Hello, {{user.name}}!\n * ```\n *\n * We can also take that property and pass it as an argument to the\n * `UserGreeting` component we defined above:\n *\n * ```hbs\n * <UserGreeting @greeting=\"Hello\" @name={{user.name}} />\n * ```\n *\n * ## Arguments vs. Properties\n *\n * Remember, arguments are data that was given to your component by its parent\n * component, and properties are data your component has defined for itself.\n *\n * You can tell the difference between arguments and properties in templates\n * because arguments always start with an `@` sign (think \"A is for arguments\"):\n *\n * ```hbs\n * {{@firstName}}\n * ```\n *\n * We know that `@firstName` came from the parent component, not the current\n * component, because it starts with `@` and is therefore an argument.\n *\n * On the other hand, if we see:\n *\n * ```hbs\n * {{name}}\n * ```\n *\n * We know that `name` is a property on the component. If we want to know where\n * the data is coming from, we can go look at our component class to find out.\n *\n * Inside the component itself, arguments always show up inside the component's\n * `args` property. For example, if `{{@firstName}}` is `Tom` in the template,\n * inside the component `this.args.firstName` would also be `Tom`.\n */\nexport default class BaseComponent {\n /**\n * Constructs a new component and assigns itself the passed properties. You\n * should not construct new components yourself. Instead, Glimmer will\n * instantiate new components automatically as it renders.\n *\n * @param owner\n * @param args\n */\n constructor(owner, args) {\n /**\n * Named arguments passed to the component from its parent component.\n * They can be accessed in JavaScript via `this.args.argumentName` and in the template via `@argumentName`.\n *\n * Say you have the following component, which will have two `args`, `firstName` and `lastName`:\n *\n * ```hbs\n * <my-component @firstName=\"Arthur\" @lastName=\"Dent\" />\n * ```\n *\n * If you needed to calculate `fullName` by combining both of them, you would do:\n *\n * ```ts\n * didInsertElement() {\n * console.log(`Hi, my full name is ${this.args.firstName} ${this.args.lastName}`);\n * }\n * ```\n *\n * While in the template you could do:\n *\n * ```hbs\n * <p>Welcome, {{@firstName}} {{@lastName}}!</p>\n * ```\n */\n _defineProperty(this, \"args\", void 0);\n if (DEBUG && !(owner !== null && typeof owner === 'object' && ARGS_SET.has(args))) {\n throw new Error(`You must pass both the owner and args to super() in your component: ${this.constructor.name}. You can pass them directly, or use ...arguments to pass all arguments through.`);\n }\n this.args = args;\n setOwner(this, owner);\n }\n get isDestroying() {\n return isDestroying(this);\n }\n get isDestroyed() {\n return isDestroyed(this);\n }\n\n /**\n * Called before the component has been removed from the DOM.\n */\n willDestroy() {}\n}","import Ember from 'ember';\nexport const isDestroying = Ember._isDestroying;\nexport const isDestroyed = Ember._isDestroyed;","import { DEBUG } from '@glimmer/env';\nimport Ember from 'ember';\nimport { set } from '@ember/object';\nimport { getOwner, setOwner } from '@ember/application';\nimport { capabilities } from '@ember/component';\nimport { schedule } from '@ember/runloop';\nimport BaseComponentManager from './base-component-manager';\nimport * as destroyables from './destroyables';\nconst {\n setDestroyed,\n setDestroying\n} = destroyables;\nconst CAPABILITIES = true // @ts-ignore\n// @ts-ignore\n? capabilities('3.13', {\n destructor: true,\n asyncLifecycleCallbacks: false,\n updateHook: false\n}) : capabilities('3.4', {\n destructor: true,\n asyncLifecycleCallbacks: false\n});\nconst scheduledDestroyComponent = true ? undefined : (component, meta) => {\n if (component.isDestroyed) {\n return;\n }\n Ember.destroy(component);\n meta.setSourceDestroyed();\n setDestroyed(component);\n};\nconst destroy = true ? Ember.destroy : component => {\n if (component.isDestroying) {\n return;\n }\n let meta = Ember.meta(component);\n meta.setSourceDestroying();\n setDestroying(component);\n schedule('actions', component, component.willDestroy);\n schedule('destroy', this, scheduledDestroyComponent, component, meta);\n};\nconst registerDestructor = true ? Ember._registerDestructor : true ? Ember.__loader.require('@glimmer/runtime').registerDestructor : undefined;\n\n/**\n * This component manager runs in Ember.js environments and extends the base component manager to:\n *\n * 1. Properly destroy the component's associated `meta` data structure\n * 2. Schedule destruction using Ember's runloop\n */\nclass EmberGlimmerComponentManager extends BaseComponentManager(setOwner, getOwner, CAPABILITIES) {\n createComponent(ComponentClass, args) {\n const component = super.createComponent(ComponentClass, args);\n if (true) {\n registerDestructor(component, () => {\n component.willDestroy();\n });\n }\n return component;\n }\n destroyComponent(component) {\n destroy(component);\n }\n}\n// In Ember 3.12 and earlier, the updateComponent hook was mandatory.\n// As of Ember 3.13, the `args` object is stable and each property of the\n// object participates in the autotrack stack on its own. This means we do not\n// need to set the `args` property on the component instance to invalidate\n// tracked getters that rely on `args`, and therefore don't require the `updateComponent`\n// hook at all.\nif (!true) {\n EmberGlimmerComponentManager.prototype.updateComponent = function updateComponent(component, args) {\n let argSnapshot = args.named;\n if (DEBUG) {\n argSnapshot = Object.freeze(argSnapshot);\n }\n set(component, 'args', argSnapshot);\n };\n}\nexport default EmberGlimmerComponentManager;","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { DEBUG } from '@glimmer/env';\nimport { ARGS_SET } from './component';\n/**\n * This factory function returns a component manager class with common behavior\n * that can be extend to add Glimmer.js- or Ember.js-specific functionality. As\n * these environments converge, the need for two component manager\n * implementations (and thus this factory) should go away.\n */\nexport default function BaseComponentManager(setOwner, getOwner, capabilities) {\n return class {\n static create(attrs) {\n let owner = getOwner(attrs);\n return new this(owner);\n }\n constructor(owner) {\n _defineProperty(this, \"capabilities\", capabilities);\n setOwner(this, owner);\n }\n createComponent(ComponentClass, args) {\n if (DEBUG) {\n ARGS_SET.set(args.named, true);\n }\n return new ComponentClass(getOwner(this), args.named);\n }\n getContext(component) {\n return component;\n }\n };\n}","import { DEBUG } from '@glimmer/env';\nimport { setComponentManager } from '@ember/component';\n\n// Hax because the old version of `@types/ember__component` the `1.x` branch\n// uses does not provide any types for `setComponentManager` *and* because we\n// are using a very old version of `setComponentManager` for versions before\n// Ember 3.8.\n\nimport GlimmerComponentManager from './-private/ember-component-manager';\nimport GlimmerComponentBase from './-private/component';\nlet GlimmerComponent = GlimmerComponentBase;\nif (DEBUG) {\n // Add assertions against using Glimmer.js only APIs\n\n // TODO: Add GlimmerComponent API docs link to these messages once API docs are live\n function throwMethodUseError(methodName) {\n throw new Error(`You attempted to define the '${methodName}' method on a Glimmer Component, but that lifecycle hook does not exist in Ember.js applications, it only exists in Glimmer.js apps. You can rename this method, and you can trigger it using a modifier such as {{did-insert}} from '@ember/render-modifiers': https://github.com/emberjs/ember-render-modifiers.`);\n }\n function throwPropertyUseError(propertyName) {\n throw new Error(`You attempted to access the '${propertyName}' property on a Glimmer Component, but that property does not exist in Ember.js applications, it only exists in Glimmer.js apps. You define a class field with the same name on your component class and it will overwrite this error message, but it will not be used by the framework.`);\n }\n GlimmerComponent = class GlimmerDebugComponent extends GlimmerComponent {\n constructor(owner, args) {\n super(owner, args);\n if (typeof this['didInsertElement'] === 'function') {\n throwMethodUseError('didInsertElement');\n }\n if (typeof this['didUpdate'] === 'function') {\n throwMethodUseError('didUpdate');\n }\n }\n };\n let proto = GlimmerComponent.prototype;\n function defineErrorProp(proto, key, getterMethod) {\n Object.defineProperty(proto, key, {\n get: () => getterMethod(key),\n set(value) {\n Object.defineProperty(this, key, {\n value\n });\n }\n });\n }\n\n // Methods should still throw whenever they are accessed\n defineErrorProp(proto, 'bounds', throwPropertyUseError);\n defineErrorProp(proto, 'element', throwPropertyUseError);\n defineErrorProp(proto, 'debugName', throwPropertyUseError);\n}\nif (true) {\n setComponentManager(owner => {\n return new GlimmerComponentManager(owner);\n }, GlimmerComponent);\n} else {\n setComponentManager('glimmer', GlimmerComponent);\n}\nexport default GlimmerComponent;","import * as metal from \"@ember/-internals/metal\";\n const { cached, tracked } = metal;\n export { cached, tracked };","export const versionRegExp = /\\d+[.]\\d+[.]\\d+/; // Match any number of 3 sections of digits separated by .\nexport const versionExtendedRegExp = /\\d+[.]\\d+[.]\\d+-[a-z]*([.]\\d+)?/; // Match the above but also hyphen followed by any number of lowercase letters, then optionally period and digits\nexport const shaRegExp = /[a-z\\d]{8}$/; // Match 8 lowercase letters and digits, at the end of the string only (to avoid matching with version extended part)\n","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n shaRegExp,\n versionRegExp,\n versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n const version = config.APP.version;\n // e.g. 1.0.0-alpha.1+4jds75hf\n\n // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n let versionOnly = hash.versionOnly || hash.hideSha;\n let shaOnly = hash.shaOnly || hash.hideVersion;\n\n let match = null;\n\n if (versionOnly) {\n if (hash.showExtended) {\n match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n }\n // Fallback to just version\n if (!match) {\n match = version.match(versionRegExp); // 1.0.0\n }\n }\n\n if (shaOnly) {\n match = version.match(shaRegExp); // 4jds75hf\n }\n\n return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n name = config.APP.name;\n version = config.APP.version;\n}\n\nexport default {\n name: 'App Version',\n initialize: initializerFactory(name, version),\n};\n","import { libraries } from '@ember/-internals/metal';\n\nexport default function initializerFactory(name, version) {\n let registered = false;\n\n return function () {\n if (!registered && name && version) {\n libraries.register(name, version);\n registered = true;\n }\n };\n}\n","import { macroCondition, isDevelopingApp } from '@embroider/macros';\nlet throwConsoleError;\nif (macroCondition(isDevelopingApp())) {\n throwConsoleError = (fn, enabled = true) => {\n const original = console.error;\n console.error = enabled ? msg => {\n const errorMsg = msg.replace(/^Warning: /, '');\n throw new Error(errorMsg);\n } : original;\n try {\n fn();\n // eslint-disable-next-line no-useless-catch\n } catch (e) {\n throw e;\n } finally {\n console.error = original;\n }\n };\n} else {\n throwConsoleError = () => {\n throw new Error('throwConsoleError() is not available in production');\n };\n}\nexport default throwConsoleError;","/* eslint-disable no-inner-declarations */\nimport { macroCondition, isDevelopingApp } from '@embroider/macros';\nexport let closest;\nif (macroCondition(isDevelopingApp())) {\n // https://stackoverflow.com/a/36566052\n function editDistance(s1, s2) {\n s1 = s1.toLowerCase();\n s2 = s2.toLowerCase();\n const costs = [];\n for (let i = 0; i <= s1.length; i++) {\n let lastValue = i;\n for (let j = 0; j <= s2.length; j++) {\n if (i == 0) costs[j] = j;else {\n if (j > 0) {\n let newValue = costs[j - 1];\n if (s1.charAt(i - 1) != s2.charAt(j - 1)) {\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n }\n costs[j - 1] = lastValue;\n lastValue = newValue;\n }\n }\n }\n if (i > 0) costs[s2.length] = lastValue;\n }\n return costs[s2.length];\n }\n function similar(s1, s2) {\n let longer = s1;\n let shorter = s2;\n if (s1.length < s2.length) {\n longer = s2;\n shorter = s1;\n }\n const longerLength = longer.length;\n if (longerLength == 0) {\n return 1.0;\n }\n return (longerLength - editDistance(longer, shorter)) / longerLength;\n }\n closest = (str, options) => {\n let score = 0;\n let index = 0;\n for (let i = 0; i < options.length; i++) {\n const currentScore = similar(str, options[i]);\n if (currentScore > score) {\n index = i;\n score = currentScore;\n }\n }\n if (score > 0.4) {\n return options[index];\n }\n return undefined;\n };\n} else {\n closest = () => {\n throw new Error('closest() is not available in production');\n };\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport isElementDescriptor from './-private/is-element-descriptor';\nimport throwConsoleError from './-private/throw-console-error';\nimport * as PropTypes from 'prop-types';\nimport config from 'ember-get-config';\nimport { isNone } from '@ember/utils';\nimport { closest } from './-private/closest-string';\nimport { macroCondition, isDevelopingApp } from '@embroider/macros';\nconst REGISTERED_ARGS = Symbol('args');\nconst INTERCEPT_CLASS = 'ForbidExtraArgsIntercept';\nfunction shouldThrowErrors() {\n const throwErrors = config['ember-arg-types']?.throwErrors;\n return isNone(throwErrors) ? true : throwErrors;\n}\nfunction getClassName(instance) {\n return instance.constructor.name === INTERCEPT_CLASS // if the current class is this override\n ? Object.getPrototypeOf(instance.constructor).name // get parent class name\n : instance.constructor.name; // use current class name\n}\nfunction createGetter(target, key, descriptor, validator) {\n if (macroCondition(isDevelopingApp())) {\n const registeredArgs = target[REGISTERED_ARGS] ?? new Set();\n registeredArgs.add(key);\n target[REGISTERED_ARGS] = registeredArgs;\n }\n const defaultInitializer = descriptor.initializer || descriptor.get || (() => undefined);\n return {\n get() {\n const argValue = this.args[key];\n const returnValue = argValue !== undefined ? argValue : defaultInitializer.call(this);\n if (macroCondition(isDevelopingApp())) {\n const shouldThrow = shouldThrowErrors();\n if (validator) {\n throwConsoleError(() => {\n PropTypes.checkPropTypes({\n [key]: validator\n }, {\n [key]: returnValue\n }, 'prop', getClassName(this));\n }, shouldThrow);\n }\n }\n return returnValue;\n }\n };\n}\nexport default function arg(...args) {\n if (isElementDescriptor(...args)) {\n return createGetter(...args);\n }\n const [validator] = args;\n return function argument(...args) {\n return createGetter(...[...args, validator]);\n };\n}\nexport function forbidExtraArgs(target) {\n let returnClass = target;\n\n // only subclass in debug mode\n if (macroCondition(isDevelopingApp())) {\n returnClass = class ForbidExtraArgsIntercept extends target {\n constructor(_owner, args) {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n const component = getClassName(this);\n const registeredArgs = this[REGISTERED_ARGS] ?? new Set();\n const unRegisteredArg = Object.keys(args).find(arg => !registeredArgs.has(arg));\n if (unRegisteredArg) {\n const guessedArg = closest(unRegisteredArg, [...registeredArgs]);\n const suggestion = guessedArg ? `(did you mean \\`@${guessedArg}\\`?) ` : '';\n const expected = [...registeredArgs].map(arg => `'${arg}'`);\n const msg = `Failed extra args check: Invalid argument \\`@${unRegisteredArg}\\` ${suggestion}supplied to \\`${component}\\`, expected [${expected}]`;\n const shouldThrow = shouldThrowErrors();\n if (shouldThrow) {\n throw new Error(msg);\n } else {\n console.error(msg);\n }\n }\n }\n };\n }\n return returnClass;\n}","//https://github.com/emberjs/ember.js/blob/d1ad76a2b22ce470639df3dfc6efb6864a70f588/packages/%40ember/-internals/metal/lib/decorator.ts\n\nexport default function isElementDescriptor(...args) {\n const [maybeTarget, maybeKey, maybeDesc] = args;\n return (\n // Ensure we have the right number of args\n args.length === 3 && (\n // Make sure the target is a class or object (prototype)\n typeof maybeTarget === 'function' || typeof maybeTarget === 'object' && maybeTarget !== null) &&\n // Make sure the key is a string\n typeof maybeKey === 'string' && (\n // Make sure the descriptor is the right shape\n typeof maybeDesc === 'object' && maybeDesc !== null && 'enumerable' in maybeDesc && 'configurable' in maybeDesc ||\n // TS compatibility\n maybeDesc === undefined)\n );\n}","/* global require */\nimport { getOwnConfig } from '@embroider/macros';\nlet configModulePath = `${getOwnConfig().modulePrefix}/config/environment`;\nexport default require(configModulePath).default;","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"<button\\n class=\\'copy-btn\\'\\n type={{this.buttonType}}\\n data-clipboard-id={{this.guid}}\\n ...attributes\\n {{clipboard\\n text=this.text\\n target=this.target\\n action=this.action\\n delegateClickEvent=this.delegateClickEvent\\n container=this.container\\n onError=this.onError\\n onSuccess=this.onSuccess\\n }}\\n>\\n {{yield}}\\n</button>\",{ moduleName: \"C:/JenkinsWS/workspace/ls-Cloud_adcdriver-cd_Deploy_Dev/node_modules/.embroider/rewritten-packages/ember-cli-clipboard.8d552789/node_modules/ember-cli-clipboard/components/copy-button.hbs\" })","/* import __COLOCATED_TEMPLATE__ from './copy-button.hbs'; */\nvar _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\n// eslint-disable-next-line ember/no-classic-components\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { arg, forbidExtraArgs } from 'ember-arg-types';\nimport { string, oneOf, boolean, oneOfType, func, element } from 'prop-types';\nlet CopyButtonComponent = (_dec = arg(oneOfType([string, func])), _dec2 = arg(oneOfType([string, func])), _dec3 = arg(oneOf(['copy', 'cut'])), _dec4 = arg(boolean), _dec5 = arg(oneOfType([string, element])), _dec6 = arg(string), _dec7 = arg(boolean), _dec8 = arg(boolean), forbidExtraArgs(_class = (_class2 = class CopyButtonComponent extends Component {\n constructor(...args) {\n super(...args);\n _defineProperty(this, \"guid\", guidFor(this));\n _initializerDefineProperty(this, \"text\", _descriptor, this);\n _initializerDefineProperty(this, \"target\", _descriptor2, this);\n _initializerDefineProperty(this, \"action\", _descriptor3, this);\n _initializerDefineProperty(this, \"delegateClickEvent\", _descriptor4, this);\n _initializerDefineProperty(this, \"container\", _descriptor5, this);\n _initializerDefineProperty(this, \"buttonType\", _descriptor6, this);\n _initializerDefineProperty(this, \"onError\", _descriptor7, this);\n _initializerDefineProperty(this, \"onSuccess\", _descriptor8, this);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, \"text\", [_dec], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"target\", [_dec2], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, \"action\", [_dec3], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, \"delegateClickEvent\", [_dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, \"container\", [_dec5], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, \"buttonType\", [_dec6], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function () {\n return 'button';\n }\n}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, \"onError\", [_dec7], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, \"onSuccess\", [_dec8], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class2)) || _class);\nexport { CopyButtonComponent as default };","import Helper from '@ember/component/helper';\nimport ClipboardJS from 'clipboard';\nimport { getOwner } from '@ember/application';\nexport default class IsClipboardSupportedHelper extends Helper {\n constructor() {\n super(...arguments);\n const service = getOwner(this).lookup('service:fastboot');\n this.isFastBoot = service ? service.isFastBoot : false;\n }\n compute([action]) {\n const {\n isFastBoot\n } = this;\n return isFastBoot ? false : ClipboardJS.isSupported(action);\n }\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\nexport default class Cache<T, V> {\n public size = 0;\n public misses = 0;\n public hits = 0;\n\n constructor(\n private limit: number,\n private func: (obj: T) => V,\n private store?: any,\n ) {\n this.store = store || new Map();\n }\n\n get(key: T): V {\n let value = this.store.get(key);\n\n if (this.store.has(key)) {\n this.hits++;\n\n return this.store.get(key);\n } else {\n this.misses++;\n value = this.set(key, this.func(key));\n }\n\n return value;\n }\n\n set(key: T, value: V) {\n if (this.limit > this.size) {\n this.size++;\n this.store.set(key, value);\n }\n\n return value;\n }\n\n purge() {\n this.store.clear();\n this.size = 0;\n this.hits = 0;\n this.misses = 0;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-useless-escape */\n/**\n @module @ember/string\n */\nimport Cache from './cache.ts';\n\n// STATE within a module is frowned upon, this exists\n// to support Ember.STRINGS but shield ember internals from this legacy global\n// API.\nlet STRINGS: { [key: string]: string } = {};\n\nexport function setStrings(strings: { [key: string]: string }) {\n STRINGS = strings;\n}\n\nexport function getStrings(): { [key: string]: string } {\n return STRINGS;\n}\n\nexport function getString(name: string): string | undefined {\n return STRINGS[name];\n}\n\nconst STRING_DASHERIZE_REGEXP = /[ _]/g;\n\nconst STRING_DASHERIZE_CACHE = new Cache<string, string>(1000, (key) =>\n decamelize(key).replace(STRING_DASHERIZE_REGEXP, '-'),\n);\n\nconst STRING_CAMELIZE_REGEXP_1 = /(\\-|\\_|\\.|\\s)+(.)?/g;\nconst STRING_CAMELIZE_REGEXP_2 = /(^|\\/)([A-Z])/g;\n\nconst CAMELIZE_CACHE = new Cache<string, string>(1000, (key) =>\n key\n .replace(STRING_CAMELIZE_REGEXP_1, (_match, _separator, chr) =>\n chr ? chr.toUpperCase() : '',\n )\n .replace(STRING_CAMELIZE_REGEXP_2, (match /*, separator, chr */) =>\n match.toLowerCase(),\n ),\n);\n\nconst STRING_CLASSIFY_REGEXP_1 = /^(\\-|_)+(.)?/;\nconst STRING_CLASSIFY_REGEXP_2 = /(.)(\\-|\\_|\\.|\\s)+(.)?/g;\nconst STRING_CLASSIFY_REGEXP_3 = /(^|\\/|\\.)([a-z])/g;\n\nconst CLASSIFY_CACHE = new Cache<string, string>(1000, (str) => {\n const replace1 = (_match: string, _separator: string, chr: string) =>\n chr ? `_${chr.toUpperCase()}` : '';\n const replace2 = (\n _match: string,\n initialChar: string,\n _separator: string,\n chr: string,\n ) => initialChar + (chr ? chr.toUpperCase() : '');\n const parts = str.split('/');\n\n for (let i = 0; i < parts.length; i++) {\n parts[i] = (parts as any)[i]\n .replace(STRING_CLASSIFY_REGEXP_1, replace1)\n .replace(STRING_CLASSIFY_REGEXP_2, replace2);\n }\n\n return parts\n .join('/')\n .replace(STRING_CLASSIFY_REGEXP_3, (match /*, separator, chr */) =>\n match.toUpperCase(),\n );\n});\n\nconst STRING_UNDERSCORE_REGEXP_1 = /([a-z\\d])([A-Z]+)/g;\nconst STRING_UNDERSCORE_REGEXP_2 = /\\-|\\s+/g;\n\nconst UNDERSCORE_CACHE = new Cache<string, string>(1000, (str) =>\n str\n .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')\n .replace(STRING_UNDERSCORE_REGEXP_2, '_')\n .toLowerCase(),\n);\n\nconst STRING_CAPITALIZE_REGEXP = /(^|\\/)([a-z\\u00C0-\\u024F])/g;\n\nconst CAPITALIZE_CACHE = new Cache<string, string>(1000, (str) =>\n str.replace(STRING_CAPITALIZE_REGEXP, (match /*, separator, chr */) =>\n match.toUpperCase(),\n ),\n);\n\nconst STRING_DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\n\nconst DECAMELIZE_CACHE = new Cache<string, string>(1000, (str) =>\n str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase(),\n);\n\n/**\n Splits a string into separate units separated by spaces, eliminating any\n empty strings in the process. This is a convenience method for split that\n is mostly useful when applied to the `String.prototype`.\n\n ```javascript\n import { w } from '@ember/string';\n\n w(\"alpha beta gamma\").forEach(function(key) {\n console.log(key);\n });\n\n // > alpha\n // > beta\n // > gamma\n ```\n\n @method w\n @param {String} str The string to split\n @return {Array} array containing the split strings\n @public\n*/\nexport function w(str: string): string[] {\n return str.split(/\\s+/);\n}\n\n/**\n Converts a camelized string into all lower case separated by underscores.\n\n ```javascript\n import { decamelize } from '@ember/string';\n\n decamelize('innerHTML'); // 'inner_html'\n decamelize('action_name'); // 'action_name'\n decamelize('css-class-name'); // 'css-class-name'\n decamelize('my favorite items'); // 'my favorite items'\n ```\n\n @method decamelize\n @param {String} str The string to decamelize.\n @return {String} the decamelized string.\n @public\n*/\nexport function decamelize(str: string): string {\n return DECAMELIZE_CACHE.get(str);\n}\n\n/**\n Replaces underscores, spaces, or camelCase with dashes.\n\n ```javascript\n import { dasherize } from '@ember/string';\n\n dasherize('innerHTML'); // 'inner-html'\n dasherize('action_name'); // 'action-name'\n dasherize('css-class-name'); // 'css-class-name'\n dasherize('my favorite items'); // 'my-favorite-items'\n dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n ```\n\n @method dasherize\n @param {String} str The string to dasherize.\n @return {String} the dasherized string.\n @public\n*/\nexport function dasherize(str: string): string {\n return STRING_DASHERIZE_CACHE.get(str);\n}\n\n/**\n Returns the lowerCamelCase form of a string.\n\n ```javascript\n import { camelize } from '@ember/string';\n\n camelize('innerHTML'); // 'innerHTML'\n camelize('action_name'); // 'actionName'\n camelize('css-class-name'); // 'cssClassName'\n camelize('my favorite items'); // 'myFavoriteItems'\n camelize('My Favorite Items'); // 'myFavoriteItems'\n camelize('private-docs/owner-invoice'); // 'privateDocs/ownerInvoice'\n ```\n\n @method camelize\n @param {String} str The string to camelize.\n @return {String} the camelized string.\n @public\n*/\nexport function camelize(str: string): string {\n return CAMELIZE_CACHE.get(str);\n}\n\n/**\n Returns the UpperCamelCase form of a string.\n\n ```javascript\n import { classify } from '@ember/string';\n\n classify('innerHTML'); // 'InnerHTML'\n classify('action_name'); // 'ActionName'\n classify('css-class-name'); // 'CssClassName'\n classify('my favorite items'); // 'MyFavoriteItems'\n classify('private-docs/owner-invoice'); // 'PrivateDocs/OwnerInvoice'\n ```\n\n @method classify\n @param {String} str the string to classify\n @return {String} the classified string\n @public\n*/\nexport function classify(str: string): string {\n return CLASSIFY_CACHE.get(str);\n}\n\n/**\n More general than decamelize. Returns the lower\\_case\\_and\\_underscored\n form of a string.\n\n ```javascript\n import { underscore } from '@ember/string';\n\n underscore('innerHTML'); // 'inner_html'\n underscore('action_name'); // 'action_name'\n underscore('css-class-name'); // 'css_class_name'\n underscore('my favorite items'); // 'my_favorite_items'\n underscore('privateDocs/ownerInvoice'); // 'private_docs/owner_invoice'\n ```\n\n @method underscore\n @param {String} str The string to underscore.\n @return {String} the underscored string.\n @public\n*/\nexport function underscore(str: string): string {\n return UNDERSCORE_CACHE.get(str);\n}\n\n/**\n Returns the Capitalized form of a string\n\n ```javascript\n import { capitalize } from '@ember/string';\n\n capitalize('innerHTML') // 'InnerHTML'\n capitalize('action_name') // 'Action_name'\n capitalize('css-class-name') // 'Css-class-name'\n capitalize('my favorite items') // 'My favorite items'\n capitalize('privateDocs/ownerInvoice'); // 'PrivateDocs/ownerInvoice'\n ```\n\n @method capitalize\n @param {String} str The string to capitalize.\n @return {String} The capitalized string.\n @public\n*/\nexport function capitalize(str: string): string {\n return CAPITALIZE_CACHE.get(str);\n}\n\n/*\n The following are implemented here to give users adding `@ember/string` to\n their projects a useful error message. The `ember-source` implementation of\n `@ember/string` is clobbered by adding this addon, and so the deprecation of\n the import path is not triggered. This error message is intended to help\n users discover what they need to change.\n*/\nexport function htmlSafe(str: string): void {\n throw new Error(\n 'htmlSafe is not implemented in the `@ember/string` package. Please import from `@ember/template` instead.',\n );\n}\n\nexport function isHTMLSafe(str: any | null | undefined): void {\n throw new Error(\n 'isHTMLSafe is not implemented in the `@ember/string` package. Please import from `@ember/template` instead.',\n );\n}\n","import { modifier } from 'ember-modifier';\nimport ClipboardJS from 'clipboard';\nimport { isBlank } from '@ember/utils';\nimport { capitalize } from '@ember/string';\nimport { guidFor } from '@ember/object/internals';\nimport { macroCondition, dependencySatisfies } from '@embroider/macros';\nconst CLIPBOARD_EVENTS = ['success', 'error'];\nfunction clipboard(element, params, hash) {\n const {\n action = 'copy',\n container,\n /*\n * delegateClickEvent true - scope event listener to this element\n * delegateClickEvent false - scope event listener to document.body (ClipboardJS)\n */\n delegateClickEvent = true,\n target,\n text\n } = hash;\n element.setAttribute('data-clipboard-action', action);\n if (!isBlank(text)) {\n element.setAttribute('data-clipboard-text', text);\n }\n if (!isBlank(target)) {\n element.setAttribute('data-clipboard-target', target);\n }\n if (isBlank(element.dataset.clipboardId)) {\n element.setAttribute('data-clipboard-id', guidFor(element));\n }\n const trigger = delegateClickEvent === false ? element : `[data-clipboard-id=${element.dataset.clipboardId}]`;\n const clipboard = new ClipboardJS(trigger, {\n text: typeof text === 'function' ? text : undefined,\n container: typeof container === 'string' ? document.querySelector(container) : container,\n target\n });\n CLIPBOARD_EVENTS.forEach(event => {\n clipboard.on(event, () => {\n if (!element.disabled) {\n const action = hash[`on${capitalize(event)}`];\n action?.(...arguments);\n }\n });\n });\n return () => clipboard.destroy();\n}\nlet clipboardModifier;\nif (macroCondition(dependencySatisfies('ember-modifier', '4.x'))) {\n clipboardModifier = modifier(clipboard, {\n eager: false\n });\n} else {\n clipboardModifier = modifier(clipboard);\n}\nexport default clipboardModifier;","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatDateHelper = (_class = class FormatDateHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", true);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n\n /*\n TODO: {{format-date}} is the only helper that always allows\n an undefined value. That is, it can never throw an error.\n For ember-intl@v7, unify the options of all helpers.\n */\n // if (typeof value === 'undefined') {\n // throw new Error('{{format-date}} helper requires a value.');\n // }\n }\n return this.intl.formatDate(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatDateHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatListHelper = (_class = class FormatListHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{format-list}} helper requires a value.');\n }\n }\n return this.intl.formatList(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatListHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatMessageHelper = (_class = class FormatMessageHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{format-message}} helper requires a value.');\n }\n }\n return this.intl.formatMessage(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatMessageHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatNumberHelper = (_class = class FormatNumberHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{format-number}} helper requires a value.');\n }\n }\n return this.intl.formatNumber(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatNumberHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatRelativeHelper = (_class = class FormatRelativeHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{format-relative}} helper requires a value.');\n }\n }\n return this.intl.formatRelative(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatRelativeHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet FormatTimeHelper = (_class = class FormatTimeHelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{format-time}} helper requires a value.');\n }\n }\n return this.intl.formatTime(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { FormatTimeHelper as default };","var _class, _descriptor;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport Helper from '@ember/component/helper';\nimport { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nlet THelper = (_class = class THelper extends Helper {\n constructor() {\n // eslint-disable-next-line prefer-rest-params\n super(...arguments);\n\n // @ts-expect-error: Property 'onLocaleChanged' is private and only accessible within class 'IntlService'.\n _initializerDefineProperty(this, \"intl\", _descriptor, this);\n _defineProperty(this, \"allowEmpty\", false);\n this.intl.onLocaleChanged(this.recompute, this);\n }\n compute([value, positionalOptions], namedOptions) {\n const options = positionalOptions ? Object.assign({}, positionalOptions, namedOptions) : namedOptions;\n if (isEmpty(value)) {\n if (options?.allowEmpty ?? this.allowEmpty) {\n return '';\n }\n if (typeof value === 'undefined') {\n throw new Error('{{t}} helper requires a value.');\n }\n }\n return this.intl.t(value, options);\n }\n}, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"intl\", [service], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n})), _class);\nexport { THelper as default };","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @private\n * @hide\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport default class FormatterBase {\n get options() {\n return [];\n }\n}\n_defineProperty(FormatterBase, \"type\", void 0);","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Formatter from './-base';\n/**\n * @private\n * @hide\n */\nexport default class FormatDate extends Formatter {\n format(intl, ...[value, opts]) {\n return intl.formatDate(value, opts);\n }\n}\n_defineProperty(FormatDate, \"type\", 'date');","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Formatter from './-base';\n\n/**\n * @private\n * @hide\n */\nexport default class FormatList extends Formatter {\n format(intl, ...[value, opts]) {\n return intl.formatList(value, opts);\n }\n}\n_defineProperty(FormatList, \"type\", 'list');","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { htmlSafe, isHTMLSafe } from '@ember/template';\nimport Formatter from './-base';\nconst escaped = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\nconst needToEscape = /[&<>\"'`=]/;\nconst badCharacters = /[&<>\"'`=]/g;\n\n// https://github.com/emberjs/ember.js/blob/v5.6.0/packages/%40ember/-internals/glimmer/lib/utils/string.ts#L103-L118\nfunction escapeExpression(value) {\n if (!needToEscape.test(value)) {\n return value;\n }\n return value.replace(badCharacters, character => {\n return escaped[character];\n });\n}\nfunction escapeOptions(object) {\n if (typeof object !== 'object') {\n return;\n }\n const escapedOpts = {};\n Object.keys(object).forEach(key => {\n const value = object[key];\n if (isHTMLSafe(value)) {\n // If the option is an instance of Ember SafeString,\n // we don't want to pass it into the formatter, since the\n // formatter won't know what to do with it. Instead, we cast\n // the SafeString to a regular string using `toHTML`.\n // Since it was already marked as safe we should *not* escape it.\n // @ts-ignore: see comment above\n escapedOpts[key] = value.toHTML();\n } else if (typeof value === 'string') {\n // @ts-ignore: see comment above\n escapedOpts[key] = escapeExpression(value);\n } else {\n // @ts-ignore: see comment above\n escapedOpts[key] = value; // copy as-is\n }\n });\n return escapedOpts;\n}\n/**\n * @private\n * @hide\n */\nexport default class FormatMessage extends Formatter {\n // ! Function overloads are not passed through generic types for reasons that\n // evade my knowledge. ¯\\_(ツ)_/¯\n // For this reason these types need to be manually copied over to the\n // `IntlService#formatMessage`.\n\n format(intl, stringOrDesc, options) {\n const isHTMLSafe = options && options.htmlSafe;\n const escapedOptions = isHTMLSafe ? escapeOptions(options) : options;\n const desc = stringOrDesc && typeof stringOrDesc === 'object' ? stringOrDesc : {\n id: stringOrDesc,\n defaultMessage: stringOrDesc\n };\n const result = intl.formatMessage(desc, escapedOptions, {\n ignoreTag: true\n });\n return isHTMLSafe ? htmlSafe(result) : result;\n }\n}\n_defineProperty(FormatMessage, \"type\", 'message');","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Formatter from './-base';\n\n/**\n * @private\n * @hide\n */\nexport default class FormatNumber extends Formatter {\n format(intl, ...[value, opts]) {\n return intl.formatNumber(value, opts);\n }\n}\n_defineProperty(FormatNumber, \"type\", 'number');","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { assert } from '@ember/debug';\nimport Formatter from './-base';\n\n/**\n * An object with some or all of properties of `options` parameter\n * of `Intl.RelativeTimeFormat` constructor.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n *\n * [Specification](https://tc39.es/ecma402/#sec-InitializeRelativeTimeFormat).\n */\n\n/**\n * @private\n * @hide\n */\nexport default class FormatRelative extends Formatter {\n format(intl, value, formatOptions) {\n assert(`[ember-intl] FormatRelative: Missing option`, formatOptions);\n const {\n format\n } = formatOptions;\n let unit = formatOptions.unit;\n let opts = formatOptions;\n if (!unit && format && intl.formats.relative && (opts = intl.formats.relative[format])) {\n unit = opts.unit;\n }\n assert(`[ember-intl] FormatRelative: 'formatOptions' are missing a 'unit'. ${JSON.stringify(formatOptions)}`, unit);\n return intl.formatRelativeTime(value, unit, opts);\n }\n}\n_defineProperty(FormatRelative, \"type\", 'relative');","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Formatter from './-base';\n\n/**\n * @private\n * @hide\n */\nexport default class FormatTime extends Formatter {\n format(intl, ...[value, opts]) {\n return intl.formatTime(value, opts);\n }\n}\n_defineProperty(FormatTime, \"type\", 'time');","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n _this.locale = locale;\n return _this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n _this.locale = locale;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n ? descriptor.defaultMessage\n : descriptor.defaultMessage\n .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n .join(), \")\")\n : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { IntlFormatError } from './error';\nimport { filterProps, getNamedFormat } from './utils';\nvar NUMBER_FORMAT_OPTIONS = [\n 'style',\n 'currency',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n // ES2023 NumberFormat\n 'trailingZeroDisplay',\n 'roundingPriority',\n 'roundingIncrement',\n 'roundingMode',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n 'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n};\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting list.', locale, e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'style',\n 'type',\n 'fallback',\n 'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting display name.', locale, e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n // @ts-expect-error TODO: will get to this later\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n // @ts-expect-error TODO: will get to this later\n $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { createIntl, createIntlCache, IntlErrorCode } from '@formatjs/intl';\nexport { createIntl, createIntlCache };\nexport function onFormatjsIntlError(error) {\n switch (error.code) {\n case IntlErrorCode.MISSING_TRANSLATION:\n {\n // Do nothing\n break;\n }\n default:\n {\n throw error;\n }\n }\n}","export default [[\"en-us\", {\n \"adc_modal\": {\n \"row-count\": \"'{count, plural, =0 {Displaying # of {total} ADCs. Please check the filters provided.} other {Displaying # of {total} ADCs.}}'\",\n \"title\": \"Select an ADC\",\n \"tooltip\": \"Select an ADC\"\n },\n \"adc_type_display\": {\n \"differential\": \"Differential\",\n \"single_ended\": \"Single-ended\"\n },\n \"chart_buttons\": {\n \"reset_zoom\": \"Reset to default\",\n \"zoom_fit\": \"Zoom Fit\"\n },\n \"chart_labels\": {\n \"acquisition_cycle\": \"Acquisition Cycle\",\n \"conversion_cycle\": \"Conversion Cycle\",\n \"enob\": \"ENOB\",\n \"frequency\": \"Frequency (Hz)\",\n \"general_settling\": \"Settling Error = {error} {uom}\",\n \"sinad\": \"SINAD (dB)\",\n \"thd\": \"THD (dB)\",\n \"time\": \"Time (s)\",\n \"volts_kickback\": \"Kickback ~ {value}V\",\n \"volts_settling\": \"Settling Error = {volts}{uom}\"\n },\n \"chart_tabs\": {\n \"adc_input\": \"ADC Input (Volts)\",\n \"lsb\": \"LSB Error\",\n \"ppm\": \"PPM Error\",\n \"volts\": \"Volts\"\n },\n \"column_headers\": {\n \"adc_bw\": \"ADC BW\",\n \"adc_channels\": \"ADC Channels\",\n \"adc_eff_sample_rate\": \"ADC Effective sample rate\",\n \"amps_per_package\": \"Amps/Package\",\n \"bw\": \"Bandwidth\",\n \"device\": \"Device\",\n \"driver_type\": \"Type\",\n \"eff_noise_bw_of_driver_noise\": \"Effective noise BW of driver noise\",\n \"gbw\": \"GBW\",\n \"input_noise_density\": \"Noise Density\",\n \"input_polarity\": \"Analog Input Polarity\",\n \"input_type\": \"Analog Input Type\",\n \"iq\": \"Iq\",\n \"noise\": \"Noise\",\n \"noise_bw\": \"Equiv. Noise BW\",\n \"noise_density\": \"Noise Density\",\n \"noise_gain_factor\": \"Noise Gain Factor\",\n \"num_aliased_passbands\": \"Number of aliased passbands\",\n \"output_referred\": \"Output Referred Noise Density\",\n \"package\": \"Package\",\n \"price\": \"Price\",\n \"rc_filter_equiv_bw\": \"RC Filter Equiv BW\",\n \"resolution\": \"Resolution\",\n \"sampling_rate\": \"Sample Rate\",\n \"slew_rate\": \"Slew Rate\",\n \"snr\": \"SNR\",\n \"thd\": \"THD\",\n \"vnoise_density\": \"VNoise Density\",\n \"vref_max\": \"Vref Max\",\n \"vref_min\": \"Vref Min\",\n \"vs_span_max\": \"Vs Span Max\",\n \"vs_span_min\": \"Vs Span Min\"\n },\n \"driver_modal\": {\n \"subheadings\": {\n \"also_view_recommended_drivers\": \"Also view recommended drivers for {part} on product page\",\n \"recommended_drivers_for\": \"Recommended Drivers for {part}\"\n },\n \"title\": \"Select a Driver\",\n \"tooltip\": \"Select a Driver\"\n },\n \"driver_types\": {\n \"amp\": \"Op Amp\",\n \"diffamp\": \"Diff Amp\"\n },\n \"ember-aditools-page\": {\n \"card\": {\n \"checkbox-tooltip\": \"Toggle\",\n \"help-tooltip\": \"Click for help\",\n \"part-number-tooltip\": \"Click to select part\"\n },\n \"common\": {\n \"cancel\": \"Cancel\",\n \"close\": \"Close\",\n \"load\": \"Load\",\n \"ok\": \"OK\",\n \"open\": \"Open\",\n \"save\": \"Save\",\n \"select\": \"Select\"\n },\n \"dialogs\": {\n \"feedback\": {\n \"email\": \"EMail: \",\n \"feedback\": \"Your Feedback\",\n \"give-feedback\": \"Tell us\",\n \"invitation\": \"Please let us know your opinion of this tool, good and bad.\",\n \"name\": \"Name: \",\n \"optional\": \"(Optional)\",\n \"title\": \"Give us your feedback!\"\n },\n \"load\": {\n \"choose-button\": \"Choose File\",\n \"message\": \"Load a design from a file on your computer.\",\n \"no-file-selected\": \"No file selected.\",\n \"title\": \"Load Design\"\n },\n \"samples\": {\n \"add-button\": \"Add Selected Samples to Cart\",\n \"add-link\": \"Add to Order\",\n \"add-to-cart-column\": \"Add Sample to Cart\",\n \"model-column\": \"Device Model/Package\",\n \"part-column\": \"Device Name\",\n \"quantities-warning\": \"Analog Devices offers a limited amount of free samples to qualified customers. Due to the large demand for our product samples we ask that you limit your sample request to 2 pieces per part with a maximum of 4 parts per request within a 14 day time period. Should your design needs require additional product quantities, you can purchase them on the web through Buy Online, or you can contact one of our authorized distributors.\",\n \"title\": \"Order Samples\",\n \"unavailable-message\": \"Not available for sample\"\n },\n \"save\": {\n \"save-desc-error\": \"Please provide a Description\",\n \"save-desc-field\": \"Description\",\n \"save-name-error\": \"Please provide a Design Name\",\n \"save-name-field\": \"Design Name\",\n \"title\": \"Save Design\"\n },\n \"share\": {\n \"share-button\": \"Email\",\n \"share-design-information\": \"<p>To share a copy of your design, enter your name into the <b>Sender name</b> field. Then enter the email address of the recipients in the <b>Share design with</b> field.</p><p>The recipients will receive an email from Analog Devices with an attachment containing a ZIP archive of the shared design. All you have to do is extract the design from the ZIP file and upload it using the Load Design functionality of the application</p><p>This process creates a copy of the design for each recipient. If recipients choose to make edits on their copies, it will have no effect on your design you saved to your own computer.</p>\",\n \"share-dialog-ng-message\": \"Unable to share design. This is likely due to a server connection error. Please try again.\",\n \"share-dialog-ok-message\": \"Design has been shared\",\n \"share-duplicate-email\": \"Duplicate emails found\",\n \"share-email-empty-error\": \"Please enter an email address\",\n \"share-email-field\": \"Share design with\",\n \"share-email-format-error\": \"At least one of the email addresses you entered is invalid. Please correct and try again\",\n \"share-email-placeholder\": \"Email Address\",\n \"share-name-error\": \"Please provide a Design Name\",\n \"share-name-field\": \"Design Name\",\n \"share-sender-error\": \"Please provide a Sender Name\",\n \"share-sender-field\": \"Sender Name\",\n \"title\": \"Share My Design\"\n },\n \"system\": {\n \"application-busy\": \"Working...\",\n \"title\": \"Application Message\"\n }\n },\n \"footer\": {\n \"accessibility\": \"Accessibility\",\n \"cookie-settings\": \"Cookie Settings\",\n \"copyright-text\": \"1995 - 2025 Analog Devices, Inc. All Rights Reserved\",\n \"icp-id\": \"\",\n \"legal\": \"Legal and Risk\",\n \"privacy-policy\": \"Privacy Policy\",\n \"privacy-settings\": \"Privacy Settings\",\n \"sitemap\": \"Sitemap\"\n },\n \"header\": {\n \"applications\": \"Applications\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"parametric-search\": \"Parametric Search\",\n \"products\": \"Products\",\n \"spoken\": {\n \"homepage\": \"ADI Home Page\",\n \"sitelinks\": \"ADI Site Links\"\n },\n \"support\": \"Support\"\n },\n \"menubar\": {\n \"chinese\": \"简体中文\",\n \"english\": \"English\",\n \"help\": \"Help\",\n \"japanese\": \"日本語\",\n \"load\": \"Load Design\",\n \"save\": \"Save\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"noise\": \"Noise\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI<span class=''service-mark''>℠</span> Precision Studio\",\n \"signalchaindesigner\": \"Signal Chain\",\n \"simdds\": \"DDS\",\n \"spoken\": {\n \"studiolinks\": \"ADI Precision Studio Links\"\n },\n \"virteval\": \"Virtual Eval\"\n },\n \"toolbar\": {\n \"actions\": \"Actions\"\n }\n },\n \"footnote\": \"†\",\n \"icon_modal\": {\n \"about_help\": {\n \"body\": \"<p>The Precision ADC Driver Tool provides a specialized simulation environment where the engineer can quickly determine the impact of the driver and RC filter selection on the overall system performance of an ADC signal chain.</p><ul><li>Allows the user to optimize the driver and RC filter choice for their end application requirements, and provides an estimate of the impact of the selected driver and RC filter on overall system noise and distortion.</li><li>Enables the user to simulate the settling of the ADC input for various input scenarios, given the selected driver and RC filter.</li><li>Allows the user to quickly determine the performance tradeoffs between various ADCs and drivers, which would otherwise require complex calculations and simulations.</li></ul>\",\n \"icon_text\": \"Help\",\n \"title\": \"About the Precision ADC Driver Tool\"\n },\n \"feedback\": {\n \"email_label\": \"EMail:\",\n \"feedbackDialogNgMessage\": \"Failed to send user feedback. This may be due to a poor connection to the server. Please try again.\",\n \"feedbackDialogOkMessage\": \"Your feedback has been sent.\",\n \"icon_text\": \"Feedback\",\n \"intro\": \"Please let us know your opinion of this tool, good and bad.\",\n \"label\": \"Your feedback\",\n \"name_label\": \"Name:\",\n \"placeholder\": \"(Optional)\",\n \"submit\": \"Tell Us\",\n \"title\": \"Give us your feedback!\"\n },\n \"share\": {\n \"blog\": \"ADC Drivers support community\",\n \"copy\": \"Copied \",\n \"copyFail\": \"Copying failed \",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"icon_text\": \"Share\",\n \"p1\": \"1. Copy this link to your clipboard\",\n \"p2\": \"2. Paste it into an email, EngineerZone® forum or a social media post\",\n \"subHeader2\": \"Want ADC driver tips? Check out EngineerZone®\",\n \"title\": \"Sharing This Circuit Configuration Is Easy!\"\n },\n \"system\": {\n \"applicationBusy\": \"Working...\",\n \"header\": \"Application Message\"\n },\n \"video\": {\n \"body\": \"\\n <strong>Driving SAR ADCs Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{analogInputModel}\\\">Analog Input Model</a></li>\\n <li><a target='_blank' href=\\\"{kickbackCalculations}\\\">Kickback Calculations</a></li>\\n <li><a target='_blank' href=\\\"{designingRCFilter}\\\">Designing the RC Filter</a></li>\\n <li><a target='_blank' href=\\\"{simulatingAnalogInputModel}\\\">Simulating the Analog Input Model in LTspice</a></li>\\n <li><a target='_blank' href=\\\"{precisionAdcDriverTool}\\\">Precision ADC Driver Tool</a></li>\\n <li><a target='_blank' href=\\\"{driverRingingAndInstability}\\\">Driver Ringing and Instability</a></li>\\n <li><a target='_blank' href=\\\"{distortionCausedByLargeRfilt}\\\">Distortion Caused by Large Rfilt</a></li>\\n <li><a target='_blank' href=\\\"{sarAdcsWithReducedKickback}\\\">SAR ADCs with Reduced Kickback</a></li>\\n </ul>\\n <strong>Stability 101 Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{loopGainInOpAmps}\\\">Loop Gain in Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{bodePlotsAndOpAmps}\\\">Bode Plots and Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{decompensatedOpAmps}\\\">Decompensated Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{drivingACapacitiveLoad}\\\">Driving a Capacitive Load</a></li>\\n <li><a target='_blank' href=\\\"{parasiticCapacitanceInOpAmps}\\\">Parasitic Capacitance in Op Amps</a></li>\\n </ul>\\n \",\n \"icon_text\": \"Videos\",\n \"title\": \"Videos\"\n }\n },\n \"info_modal\": {\n \"HiZ\": {\n \"body\": \"<p>The {adc} includes a high-Z mode feature, which reduces the charge kickback that occurs at the start of each acquisition cycle. The reduced kickback makes the {adc} easier to drive, and can be enabled via register setting.</p><p>High-Z mode should not be enabled for higher input frequencies (>100kHz) or for multiplexed input applications. </p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> and <a target=\\\"_blank\\\" href=\\\"{analogPinCompatibleArticleLink}\\\">related article</a> for more information on high-Z mode.</p>\",\n \"title\": \"High-Z mode\"\n },\n \"LP\": {\n \"body\": \"<p>The {driver} implements two fully characterized active power modes (full power, low power) to optimize system power and performance trade-offs.</p><p>See the datasheet at <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">link</a> for more information</p>\",\n \"title\": \"Low Power Mode\"\n },\n \"PrechargeOn\": {\n \"body\": \"<p>The {adc} has analog input precharge buffers that reduce the switching kickback from the sampling stage to the external circuitry. The precharge buffers reduce the average input current and reduce the effects of sampling distortion.</p><p>This reduction in drive requirements allows pairing of the {adc} with lower power, lower bandwidth driver amplifiers.</p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> for more information</p>\",\n \"title\": \"Precharge Mode\"\n },\n \"Seq\": {\n \"body\": \"<div id=\\\"sequencer-modal-content\\\"><div><p><b>Sequencer Disabled (Static):</b></p><ul><li>No channel Sequence</li><li>AD4696 samples Channel INx only</li><li>two CNV rising edges indicating conversion on channel INx, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] of sample 0 occurs at t = 0 seconds</li><li>Kickback occurs at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 T_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Static.png\\\"/></div><div><p><b>Sequencer Enabled (Dynamic):</b></p><ul><li>Simulation equivalent programing channel sequencer going from INy going to INx</li><li>AD4696 samples INx</li><li>Simulation includes two CNV rising edges, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] occurs at t = 0 seconds</li><li>Kickback occurs on channel INx at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 t_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Dynamic.png\\\"/></div></div>\",\n \"title\": \"Sequencer mode\"\n },\n \"ac_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The AC Input Settling simulation will run when the input signal conditions would result in kickback that is more difficult to settle than the DC Input Settling simulation. For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for DC Input Settling first.</p><p>The AC Input Settling simulation will run for scenarios where the input frequency/bandwidth of interest will result in a larger kickback to settle compared to lower frequency (or DC) input signals. These scenarios will include ADCs with architectures where the kickback is dependent on the voltage difference between samples, and where the frequency of the input signal has a high enough slew to impact the kickback size. </p><p>For ADCs where kickback is not dependent on sample-to-sample voltage difference, or for lower input frequencies (and lower slew), this simulation is not relevant and will not run.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information on input slew-related kickback calculations.</p><p>The AC Settling simulation corresponds to scenarios in hardware where the AC performance degrades significantly as input frequency (and corresponding input slew) increases.</p><p>Issues related to AC settling can be examined at the bench with a high quality sinusoidal input source. If AC performance (SNR, THD, etc) can be improved by slowing the sample rate down, then insufficient settling from kickback is a possible issue. </p>\",\n \"title\": \"AC input settling simulation\"\n },\n \"adc_input\": {\n \"body\": \"<p>This section allows the user to change the selected ADC, as well as change operating conditions of the selected ADC.</p><ul><li>Clicking the ADC name will bring up the selection table. The selection table can be sorted and filtered.</li><li>When selecting an ADC, the sample rate will be automatically set to the maximum sample rate and the Vref will be set using the Vref value used in specifications table of the ADC datasheet.</li><li>Changing the sample rate will impact the sample period and acquisition time of the ADC, which can be observed in the Input Settling tab.</li><li>Changing the Vref will reduce the full scale range of the ADC, which will impact SNR.</li></ul><p>This tool focuses on SAR ADCs, but the selection list does not include all SAR ADCs in the ADI portfolio. In general, it's the higher sample rate, higher precision SAR ADCs that are included in this tool. </p><p>See <a target=\\\"_blank\\\" href=\\\"{sarAdcParametricSearchUrl}\\\">the parametric table of all SAR ADCs</a> and <a target=\\\"_blank\\\" href=\\\"{precisionAdcParametricSearchUrl}\\\">parametric table of all precision ADCs</a></p>\",\n \"title\": \"ADC and settings\"\n },\n \"adc_noise_bandwidth\": {\n \"alt\": \"Sigma Delta Equiv Bandwidth\",\n \"body\": \"<p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth.</p><p>The equivalent noise bandwidth calculation also factors the dominant bandwidth for each contribution, which may not be limited by bandwidth of the individual stage. For example, if the RC filter bandwidth is lower than the driver bandwidth, the RC filter will limit the bandwidth of all noise contributions in the driver and source, and the RC filter bandwidth is the value that will be reported in the 'Equivalent Noise Bandwidth' column for the source, driver, and RC filter contributions.</p><p>For SAR ADCs, the Equivalent Noise Bandwidth is a characteristic of the ADC and is not impacted by the signal chain.</p><p>For Sigma-Delta ADCs with decimation (digital filtering), the filter and decimation settings will impact both the ADC bandwidth as well as the signal chain effective bandwidth. </p>\",\n \"formula_labels\": {\n \"aliased_passbands\": \"N = ceiling((1.57 * Fp)/Fs) + 1\",\n \"eff_noise\": \"(2N-1)*fc\",\n \"fc\": \"Fc\",\n \"fp\": \"1.57 * Fp\",\n \"fs\": \"Fs\"\n },\n \"image_details\": \"<ul><li>The digital filtering of the ADC is illustrated in blue, with passbands (Fc) repeating at integer values of effective sample rate (Fs) of the ADC. The response is simplified as a brick wall response for this calculation.</li><li>The analog RC filter is illustrated in red, with a simplified brick wall passband (Fp).</li><li>The bandwidth of the RC filter (Fp) will likely need to be much larger than the sample rate (Fs). As a result, the noise from the signal chain (including noise from the driver) will be captured by the ADC at multiple aliased passbands, N being the first passband that is adequately filtered out by the RC filter.</li></ul>\",\n \"table_header\": \"Calculations for the current tool configuration:\",\n \"title\": \"Equivalent Noise Bandwidth Calculations\"\n },\n \"dc_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>For each sample cycle, the ADC switches between a conversion cycle and an acquisition cycle. As the ADC switches from conversion to acquisition, charge on the ADC sampling cap is dumped onto the input node of the ADC, which causes a \\\"kickback\\\" that must be settled by the driver. This kickback must be sufficiently settled by the end of the acquisition cycle - unsettled kickback will result in measurement errors.</p><p>The size of the kickback disturbance on the input of the ADC (and the output of the driver) is dependent on the ADC architecture, especially for low frequency or DC input signals. Some ADCs contain \\\"pre-charge\\\" circuitry, that will minimize the charge that is dumped on the ADC input if the voltage difference between each sample is small. Other ADCs will have kickback that is not related to the voltage difference between samples. This tool accounts for ADC architecture differences in the simulation models for each ADC.</p><p>The kickback size is also dependent on the value of the external filter capacitor, Cext. This capacitor dampens the kickback - the amount of kickback required to settle is partially dependent on the value of this capacitor. A larger value capacitor will provide more dampening, but also has the effect of lowering the filter bandwidth, and slowing the rate of settling. In other words, more dampening due to larger Cext does not necessarily improve settling.</p><p>The response of the driver to this kickback is dependent on several parameters, including gain bandwidth, slew rate, and output impedance.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> and <a target=\\\"_blank\\\" href=\\\"{analogLtSpiceSimulatingSarArticleLink}\\\">LTspice: Simulating SAR ADC Analog Inputs</a> for more information on driving SAR ADCs.</p><p>The DC Input Settling plot in this tool is a simulation of a simple scenario that is not difficult to setup and measure in hardware. The input is a simple DC signal at the full scale voltage of the ADC, based on the Vref setting in the ADC input panel. For ADCs that contain \\\"pre-charge\\\" circuitry, the kickback can vary depending on the DC input voltage - the simulation for these ADCs assumes a worst-case kickback, so the user can design a circuit that ensures kickback for all DC input values will be sufficiently settled.</p><p>Issues related to DC settling can be examined at the bench with a DC input source. Slowing the sample rate of the ADC down will increase the acquisition cycle time - and increasing the acquisition cycle will allow more time for the kickback to settle. With hardware, if slowing the sample rate results in the ADC measurement results changing (but there was no change to the input voltage) - a measurement error due to unsettled kickback could be occurring.</p><p>Clicking on \\\"Download LTspice simulation\\\" in this tab will provide an equivalent schematic/simulation for the DC Input settling plot. Unzip the downloaded .zip file, and open \\\"Settling simulation for ADC and driver circuit.asc\\\". The corresponding .plt file will add traces to the plot window automatically when simulation is run.</p>\",\n \"title\": \"DC input settling simulation\"\n },\n \"default\": {\n \"body\": \"WIP\",\n \"title\": \"WIP Title\"\n },\n \"driver_input\": {\n \"body\": \"<p>The section allows the user to change the selected driver, as well as change the configuration of the driver circuitry.</p><ul><li>Clicking the driver name will bring up the driver selection table. The selection table can be sorted and filtered.</li><li>Recommended drivers for the selected ADC will be highlighted at the top of the table. The ADC product page and datasheet also provides driver recommendations.</li><li>The topology of the driver circuit can be modified - options are inverting, non-inverting, and follower. Topologies that are not compatible with the selected ADC/driver will not be selectable.</li><li>The circuit gain and feedback network can be adjusted using the gain and Rf input fields.</li><li>The driver supplies (+Vs and -Vs) are automatically calculated for the selected topology, driver, and specified Vref.</li></ul><p>+Vs and -Vs are automatically set to values that allow the driver to operate properly while providing enough headroom to drive the full input range of the ADC, determined by Vref. Changing the driver, topology, or Vref will cause the supplies to be recalculated. The user can adjust the supplies to verify proper operation at a specific supply voltage - the tool will issue a warning if there is a headroom or supply span violation.</p><p>For driver topologies that include Rf and Rg, the maximum allowed Rf and Rg limits are to ensure the circuit remains stable. The minimum allowed Rf and Rg limits are to ensure the increased output current does not degrade distortion performance on driver.<p>Selected driver, topology, and feedback network will all impact the settling behavior of the system. See the Input Settling tab to verify kickback will settle sufficiently with specified driver, topology, and feedback network.</p>\",\n \"title\": \"Driver and settings\"\n },\n \"enob\": {\n \"body\": \"WIP\",\n \"title\": \"ENOB Help\"\n },\n \"filter_input\": {\n \"body\": \"<p>The Rext and Cext input fields allow the user to change the filter component values in the interface circuitry.</p><p>The default Rext and Cext and automatically set to a recommended value for the selected ADC. While these default values are a good starting point, they may not be ideal for all drivers, driver configurations, and input frequencies.</p><p>Some things to consider when making changes to the RC filter values:</p><ul><li>Settling issues in the Input Settling tab can sometimes be resolved by increasing the bandwidth of the RC filter. Be aware that lowering the Rext can cause excess ringing and instability. Lowering the Cext can be a good option for increasing RC bandwidth, but it will also result in increased noise. Changes in noise and SNR can be observed in the Noise and Distortion tab</li><li>Sometimes, increasing Rext can help with ringing - be sure to decrease Cext as well, to ensure bandwidth is high enough for kickback to settle.</li><li>Increasing Rext can help with ringing and instability, but can sometimes cause increased ADC distortion at the input frequency of interest. Check the Noise and Distortion tab to view how changes to Rext may impact the ADC distortion.</li><li>Multiplexed Inputs may require a higher bandwidth RC filter than the default settings for Rext and Cext. Adjustments will probably need to be made to the RC filter for these circuits. See the input Settling tab for the Multiplexed Input simulation to verify kickback will settle sufficiently with specified Rext and Cext.</li></ul>\",\n \"title\": \"Filter settings\"\n },\n \"help-tooltip\": \"Click for help\",\n \"input_signal_input\": {\n \"body\": \"<p>This section allows the user to change the configuration of the input signal.</p><ul><li>For fully-differential ADC circuits, a single-ended or differential input signal can be selected. The resulting circuitry can be viewed in the Circuit tab.</li><li>The target frequency/bandwidth of interest can be specified. This will be used in the distortion and settling simulations.</li><li>The user can specify if the signal chain will include a multiplexer, by checking \\\"Input will be multiplexed.\\\" See the help topic for that check box for more information.</li></ul><p>Distortion of both the ADC and driver can be highly dependent on the input frequency of interest. Distortion across input frequency for the ADC, driver, and overall system can be viewed in the Noise and Distortion tab.</p>\",\n \"title\": \"Input signal settings\"\n },\n \"multiplexed\": {\n \"body\": \"<p>When the \\\"Input will be multiplexed\\\" option is checked, the Precision ADC Driver tool input settling simulations will include a simulation for a multiplexed input circuit configuration. See the \\\"Multiplexed Input\\\" simulation plot in the \\\"Input Settling\\\" simulation tab.</p><p>In the case of a multiplexed input, the driver + ADC must be able to settle extreme signal swing cases, where a multiplexer might switch between inputs that differ by the full scale of the ADC. For this simulation, a \\\"worst case\\\" scenario is assumed, where the ADC input must swing from 0V to the full scale of the ADC (Vref) within a single sample cycle.</p><p>To settle this \\\"worst case\\\" scenario, the swing of the ADC input (and resulting kickback) will require an RC filter bandwidth that is higher than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR Analog-to-Digital Converter</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Multiplexed input\"\n },\n \"muxed_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The Multiplexed Input simulation will run when the \\\"Input will be multiplexed\\\" box in the Input Signal panel on the left is checked. This simulation uses the same modelling techniques that are used in the DC Input Settling simulation, but the input signal is modified to account for a worst-case input multiplexing scenario where the multiplexer switches from a mux input with a 0V input value to a mux input with a full scale (Vref) value.</p><p><i>For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for ADC Input Settling first.</i></p><p>In a multiplexed input configuration, the driver must be able to drive full scale signal changes in a single sampling cycle, in addition to settling the kickback. A multiplexed input configuration may require the external RC filter to have a higher bandwidth than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Muxed Input Signal\"\n },\n \"noise_contributions\": {\n \"body\": \"<p>The noise table shows the contribution of each circuit element to the overall noise of the circuit. These noise calculations are combined with the THD curves (in the \\\"THD\\\" tab) to calculate SINAD and ENOB curves across input frequency.</p>{sourceNoiseText}<p><b>Driver Noise:</b></p><p>The driver noise estimation is a combination of the amplifier noise (voltage and current, referred to the output) and noise from the resistors in the circuit. The driver noise can be reduced by lowering the bandwidth of the external RC filter - but the RC filter also impacts the settling behavior as well THD of the ADC.</p><p>While a lower RC bandwidth helps with noise, a bandwidth that's too low will not allow the output of the driver to settle within the acquisition time (See the \\\"Input Settling\\\" tab to check settling simulation).</p><p><a target=\\\"_blank\\\" href=\\\"{opAmpVideoLink}\\\">VideoTutorial - Noise of a Non-inverting Operational Amplifier Circuit</a></p><p><a target=\\\"_blank\\\" href=\\\"{mt047Pdf}\\\">Tutorial - Op Amp Noise</a></p><br><p><b>ADC Noise:</b></p><p>The noise of the ADC is estimated using SNR specifications from the datasheet. To get optimal SNR performance from the Driver + ADC circuit, select a driver with low enough noise performance that noise from the driver is not the primary contributor to the system noise.</p><br><p><b>System Noise:</b></p><p>The noise contribution of the source, driver, and ADC are combined via root sum squared (RSS) method to calculate an overall system noise estimate.</p>\",\n \"source_noise_text\": \"<p><b>Source Noise:</b></p><p>The source noise is derived from the Source Wide-band (WB) noise input field, and allows the user to incorporate estimated source noise into the overall noise estimation.</p><br>\",\n \"title\": \"Noise Contributions\"\n },\n \"noise_density\": {\n \"body\": \"<p>The 'Details of Noise Density Calculations' table contains the noise density calculations for the source (when enabled), the amplifier, the amplifier's feedback network, and the RC filter between the amplifier and the ADC.</p><p>The 'Input Noise Density' column show the noise of each contribution. Amplifier voltage and current noise density can be found in the amplifier datasheet. The low frequency 1/f noise contribution of the amplifier voltage and current noise density is not included in the tool calculations. Resistor noise density can be calculated using the equation sqrt(4kTR), where k is Boltzmann's Constant (1.38e-23 J/K), T is the absolute temperature, and R is the resistor value.</p><p>The 'Noise Gain Factor' column shows the noise gain of each contribution. Details about calculating noise gain for op amps can be found in <a href=\\\"{mt049Pdf}\\\" target=\\\"_blank\\\">MT-049</a> and <a href=\\\"{nonInvertingOpAmpVideo}\\\" target=\\\"_blank\\\">Noise of a Non-Inverting Operational Amplifier Circuit</a> whiteboard video. Details about calculating noise gain for fully differential amplifiers can be found in the 'Estimating the Output Noise Voltage' section of the datasheet (see the ADA4945-1 datasheet for an example).</p><p>The 'Output Referred Noise Density' column shows the product of the noise density and the noise gain for each contribution. This is noise density of each contribution seen at the output of the signal chain (and at the input of the ADC). These results are used to calculate the RMS noise in the 'Details of RMS Noise Calculations' table above.</p>\",\n \"title\": \"Noise Density Calculations\"\n },\n \"optional_source_settings\": {\n \"body\": \"The \\\"Include source noise and distortion\\\" option allows users to include additional noise and distortion from source and other circuitry that occurs prior to the driver input.</p><p> The noise and distortion entered into the source fields will be included in the system performance calculations when the box is checked. When the \\\"Include source noise and distortion\\\" box is unchecked, source contributions to the system performance are ignored in the calculations.\",\n \"title\": \"Source setting information\"\n },\n \"rc_filter_bandwidth\": {\n \"body\": \"<p>The bandwidth of the RC Filter is determined from the combined values of Rext, Cext, and the ADC input capacitance. The input capacitance of the ADC is combines with the filter capacitance when the input signal is being captured by the ADC.</p><p>Filter BW = 1 / (2 * pi * Rext * (Cext + Cadc))</p><p>Where Cadc of selected ADC ({selectedAdc}) is {cadc}{cadcUom}</p><img src=\\\"svgs/RC_Filter_Bandwidth.svg\\\" alt=\\\"RC Filter Bandwidth\\\" title=\\\"RC Filter Bandwidth\\\" />\",\n \"title\": \"RC Filter Bandwidth\"\n },\n \"rms_noise\": {\n \"body\": \"<p>The 'Details of RMS Noise Calculations' table contains the RMS noise calculations for the source (when enabled), the amplifier, the amplifier's feedback network, the RC filter, and the ADC.</p><p>The 'Output Referred Noise Density' column contains the results of the calculations in the 'Details of Noise Density Calculations' table.</p><p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth. For more information about equivalent noise bandwidth calculations, see the help topic in the 'Equivalent Noise Bandwidth' column.</p><p>The 'RMS Noise' column contains the product of the Output Referred Noise and the square root of the Equivalent Noise Bandwidth. Details about calculating RMS noise from noise density can be found in the <a href=\\\"{video}\\\" target=\\\"_blank\\\">Calculating Spectral Noise Density to RMS Noise</a> whiteboard video.</p>\",\n \"title\": \"RMS Noise Calculations\"\n },\n \"sinad\": {\n \"body\": \"WIP\",\n \"title\": \"SINAD Help\"\n },\n \"thd\": {\n \"body\": \"<p>The THD plot shows an approximation of THD contributions of the various components of the overall circuit, along with an estimate of the combined THD due to all contributions. This plot shows an estimation of THD across a range of input frequencies.</p><p>The THD curves are combined with the overall noise (in the \\\"Noise\\\" tab) to calculate SINAD and ENOB at the given input frequency. The Noise and Distortion Summary panel lists calculations for THD, SINAD, and ENOB at the input frequency specified in the input panel on the left side of the tool.</p><br><div style=\\\"{freqContainerStyle}\\\"><p><b>Input Frequency Marker:</b></p><p>This vertical line marker corresponds to the frequency entered in the Input section of the input panel, to the left. Even though the THD plot shows THD performance across a range of input frequencies, the results in the Simulation Summary (THD, SINAD, ENOB) are calculated at this input frequency.</p></div><br><div style=\\\"{sourceContainerStyle}\\\"><p><b>Source THD Curve:</b></p><p>This is a horizontal line on the plot that can be used to approximate THD introduced at the input of the circuit, and can be set using the optional input fields below the summary panel. This is THD that is not contributed by the ADC and Driver circuitry, but is counted in the overall system THD estimate.</p></div><br><div style=\\\"{driverContainerStyle}\\\"><p><b>Amplifier THD Curve:</b></p><p>The THD of the amplifier is estimated using approximations of the datasheet 2nd and 3rd Harmonic Distortion curves, and combining them into an overall estimated THD curve for the amplifier.</p></div><br><div style=\\\"{adcContainerStyle}\\\"><p><b>ADC THD Curve:</b></p><p>The ADC THD curve is an estimation of the THD performance across frequency, and can degrade with higher external R values. The ADC THD curve is an estimated model built from a combination of datasheet curves and other lab measurements, and is only an approximation of THD performance - actual hardware measured is required to verify performance of overall circuit (driver, RC filter, ADC).</p><p>The ADC THD curve not include THD performance degradation due to inadequate settling of circuit from ADC kickback. See the \\\"Input Settling\\\" tab for simulation of ADC kickback and settling. THD degradation due to settling issues can often be improved by slowing down the sample rate (increasing the sample period, and as a result, the acquisition time). If THD improves with slower sample rate, investigate driver and RC selection as a contributing factor. See \\\"Input Settling\\\" tab for more information about settling issues.</p></div><br><div style=\\\"{systemContainerStyle}\\\"><p><b>Combined System THD:</b></p><p>The estimated THD contribution of the amplifier, ADC, and source are combined into an estimated THD for the circuit, and is shown as a heavy black curve.</p></div>\",\n \"title\": \"THD Help\"\n },\n \"thd_driver\": {\n \"body\": \"<p>This warning is displayed when the Precision ADC Driver Tool detects that the driver is degrading the distortion performance of the overall signal chain.</p><p>If the driver THD is estimated to be higher than the ADC THD at the input frequency of interest (set in the left-side input panel), then the given circuit will not achieve the distortion/THD performance specified in the ADC datasheet.</p><p>The driver and ADC THD curves in this tool are built using curves and specifications from the datasheets - please refer to the datasheet for more details on THD performance of those devices.</p>\",\n \"title\": \"Driver may be dominant THD contribution\"\n },\n \"thd_rfilt\": {\n \"body\": \"<p>The ADC input capacitance has a small amount of non-linearity - this non-linearity is usually negligible for lower input frequencies. But at higher input frequencies, this non-linear capacitance can start to dominate the distortion/THD performance.</p><p>This distortion contribution will also increase when higher Rext values are used. Lowering the Rext value can help, if this is the dominant distortion contribution.</p><p>See <a target='_blank' href=\\\"{distortionUrl}\\\">Distortion caused by Large Rfilt</a> video tutorial for more information on this topic.</p>\",\n \"title\": \"Distortion caused by large Rext\"\n }\n },\n \"input_labels\": {\n \"cext\": \"Cext\",\n \"channelAveraging\": \"Channel Averaging\",\n \"decimationRate\": \"Decimation\",\n \"enable_filter\": \"Filter enable\",\n \"filterType\": \"Filter Type\",\n \"frequency\": \"Frequency\",\n \"gain\": \"Gain\",\n \"mclk\": \"MCLK\",\n \"mclkDiv\": \"MCLK_DIV\",\n \"multiplexed\": \"Input will be multiplexed\",\n \"output_data_rate\": \"Output Data Rate (ODR)\",\n \"powerMode\": \"Power Mode\",\n \"rext\": \"Rext\",\n \"rf\": \"Rf\",\n \"sampling_rate\": \"Sample Rate\",\n \"thd\": \"THD\",\n \"vSupplyNeg\": \"-Vs\",\n \"vSupplyPos\": \"+Vs\",\n \"variant\": \"Enable {variant} mode\",\n \"vcm\": \"Vcm\",\n \"vin\": \"Vin\",\n \"vocm\": \"Vocm\",\n \"vout\": \"Vout\",\n \"vref\": \"Vref\",\n \"wb_noise\": \"WB noise\"\n },\n \"input_panels\": {\n \"headings\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"filter\": \"Filter\",\n \"input_signal\": \"Input\"\n }\n },\n \"labels\": {\n \"adi_logo\": \"ADI Logo\",\n \"adi_precision_studio_links\": \"ADI Precision Studio Links\",\n \"browsers\": {\n \"chrome\": \"Chrome\",\n \"firefox\": \"Firefox\",\n \"ie\": \"Internet Explorer 11 (or newer)\",\n \"msie\": \"MSIE\"\n },\n \"close\": \"Close\",\n \"collapse\": \"Collapse\",\n \"error\": \"Error\",\n \"expand\": \"Expand\",\n \"logo\": \"Logo\",\n \"ok\": \"Ok\",\n \"tools\": \"Tools\",\n \"unable_to_calc\": \"Unable to Calculate\",\n \"with_driver\": \"With Driver:\"\n },\n \"legend_labels\": {\n \"actual_adc_input\": \"Actual ADC Input\",\n \"ideal_adc_input\": \"Ideal ADC Input\",\n \"inx\": \"INX\",\n \"iny\": \"INY\",\n \"thd_noise_adc\": \"ADC and RC Filter Contribution\",\n \"thd_noise_driver\": \"Driver Contribution\",\n \"thd_noise_signal\": \"Frequency\",\n \"thd_noise_source\": \"Source Contribution\",\n \"thd_noise_system\": \"Overall System\"\n },\n \"logo_menu\": {\n \"applications\": \"Applications\",\n \"community\": \"Community\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"products\": \"Products\",\n \"support\": \"Support\"\n },\n \"lsb_settling\": {\n \"eighth\": \"1/8\",\n \"half\": \"1/2\",\n \"one\": \"1\",\n \"quarter\": \"1/4\",\n \"sixteenth\": \"1/16\"\n },\n \"messages\": {\n \"ac_kickback\": \"Signals below {frequencyCutoff}Hz have the same settling time as DC for {adc}\",\n \"ad4080_rext_error\": \"The {adc} required Rext to be between {rfiltMin} and {rfiltMax}.\",\n \"adc\": \"For {partNumber}, maximum sample rate is {maxSampleRate} and maximum voltage for Vref is {vrefMax}{vrefUom}\",\n \"adc_note\": \"<sup>{footnote}</sup>ADC THD estimated using user selected Input Frequency = {freq}, and datasheet recommended Rext. Input Frequency and Rext can be modified in the right-side input panel.\",\n \"blanked_thd_tab\": \"Distortion results are not available for {part}\",\n \"blanked_thd_tab_filter_type\": \"Distortion results are not available for this filter configuration.\",\n \"browser_zoom\": \"Your browser is zoomed out too far to correctly export this PDF. Please reset your browser's zoom level.\",\n \"browser_zoom_instructions\": \"Ctrl+0 can be used to zoom out on most browsers.\",\n \"circuit_diff\": \"Using a differential driver - Please select inverting topology\",\n \"driver_output\": {\n \"filt_check_error\": \"The current required to drive the RC filter on the output of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try reducing Cfilt.\",\n \"rf_check_error\": \"The current required to drive the feedback network of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try increasing Rf.\"\n },\n \"driver_se\": \"Single-ended ADC and source selected - Please select a single-ended driver\",\n \"feedback_thanks\": \"Thank you for your feedback!\",\n \"fmod\": \"FMOD = MCLK / MCLK_DIV = {fmod}\",\n \"fmodMax\": \"It is suggested that FMOD is less than {maxFmod}Hz in {powerMode} power mode.\",\n \"fmodMin\": \"Operating FMOD lower than {minFmod}Hz in {powerMode} power mode is not recommended.\",\n \"gain_max\": \"Increasing the gain of the driver stage will result in additional noise in the driver stage - consider using a gain/filtering stage prior to the driver stage.\",\n \"gain_to_not_one\": \"Change Gain to not equal 1\",\n \"headroom\": {\n \"neg_decrease_input\": \"-Vs is not supplying enough headroom to the driver input when Vin = {vinMin}\",\n \"neg_decrease_output\": \"-Vs is not supplying enough headroom to the driver output when Vin = {voutMin}\",\n \"pos_increase_input\": \"+Vs is not supplying enough headroom to the driver input when Vin = {vinMax}\",\n \"pos_increase_output\": \"+Vs is not supplying enough headroom to the driver output when Vout = {voutMax}\",\n \"supplies_too_high\": \"Supplies are too high for the maximum allowed Vspan of the selected driver\",\n \"supplies_too_low\": \"Supplies are too low for the minimum allowed Vspan of the selected driver\"\n },\n \"input_frequency_slew\": \"The maximum slew rate of the signal at the driver output (2*pi*f*Vp = {inputSR} V/us) is greater than the slew rate of the {driver} ({driverSR} V/us). Please lower the frequency, or select a driver with a higher slew rate.\",\n \"input_panel\": \"Plots will not display when there is an error in the input panel. Please resolve errors in the input panel to continue.\",\n \"input_source_type\": \"Cannot select differential source for selected ADC\",\n \"max\": \"The max {field} is: {value}\",\n \"max_input_frequency\": \"The max Input Frequency is 1/2 of the Sampling Rate - For Sampling Rate of {sample}SPS, the maximum Input Frequency this tool allows is {max}Hz.\",\n \"mclk\": \"MCLK must be between {minMclk}Hz and {maxMclk}Hz\",\n \"min\": \"The min {field} is: {value}\",\n \"min_adc_sampling_rate\": \"This tool allows a sample rate of {minRate}SPS or higher - please adjust the sample rate.\",\n \"multiplier\": \"No multiplier accepted\",\n \"multiplier_numeric\": \"Only numeric values and multiplier\",\n \"noise_settling\": \"The current circuit configuration is not able to sufficiently settle the kickback on the ADC input prior to acquisition - this tool cannot estimate THD performance of this circuit. Go to Input Settling tab to resolve this issue.\",\n \"noise_thd\": \"THD estimate includes distortion caused by insufficient settling of the ADC kickback prior to acquisition. See the Input Settling tab for tips to resolve this issue.\",\n \"not_settling_AC\": \"AC input Settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_DC\": \"DC input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_Muxed\": \"Multiplexed input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW or slew rate, or lower the sample rate of the ADC.\",\n \"numeric\": \"Only numeric values\",\n \"odr\": \"ODR = FMOD / Decimation = {odr}\",\n \"odr_out_of_range\": \"ODR range for {filter} filter is {min}SPS to {max}SPS\",\n \"purely_resistive_input\": \"The {adc} has a purely resistive input, and does not have switched capacitors at the inputs - hence there won't be any kickback.\",\n \"rc_bw_AC\": \"AC input settling: The bandwidth of the RC filter is too low for AC signals (up to the frequency entered in the Frequency input field). The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the AC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in AC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_DC\": \"DC input settling: The bandwidth of the RC filter is too low, the ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the DC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in DC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_MuxKick\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rc_bw_MuxTransition\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rext_filter_min\": \"The {driver} required Rext to be a minimum of {rextMin}Ω\",\n \"rf\": \"Rf must be non-zero for Inverting topology\",\n \"rf_max\": \"For gain = {gain} V/V, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rf_min\": \"This tool does not allow Rf less than {minimum}Ω for {driver}\",\n \"rf_secondstage_max\": \"For gain = {gain} V/V in the inverting stage, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rg_inf\": \"Rg cannot be InfΩ\",\n \"sampling_rate\": \"SAMPLING RATE = {samplingRate}\",\n \"source_se\": \"Single-ended ADC selected - Please select single-ended for source\",\n \"system_driver_contrib\": \"<p>The driver noise is the dominant contributor of noise in this circuit, and will significantly degrade the overall noise performance of the circuit. Either reduce the bandwidth of the external RC filter (The bandwidth is currently {rcBandwidth}), or consider selecting a driver with lower voltage noise.</p> <p>Excessive noise can also be caused by driver topologies with gain greater than 1, or high Rf and Rg values - consider lowering the gain or Rf and Rg values. Click the info icon next to System Noise for more information regarding the driver circuit noise contributions.</p>\",\n \"thd_driver\": \"The selected driver may be the dominant contributor of distortion in this circuit. To achieve the optimal THD performance of the selected ADC, please consider selecting a different driver.\",\n \"thd_rfilt\": \"The THD performance of the {adc} at {freq} is approximately {diff} lower than typical THD performance - This degradation is caused by a higher than recommended Rext value.\",\n \"topology_to_inv\": \"Change Driver Topology to Inverting\",\n \"vcm_range\": \"{label} should be in the range of {min} to {max}V\",\n \"vsupply\": \"There are issues with the driver configuration that need to be resolved - Noise, Distortion, and Input settling will not be calculated. See the Driver section of the input panel for more information\"\n },\n \"modal\": {\n \"browserIssue\": {\n \"body\": \"We have detected you are using an older version of Edge, likely EdgeHTML 15 or 16. These browser versions have a bug where some numbers may be displayed inaccurately: with as much as 50% error. Please upgrade to EdgeHTML 17 or higher, or use another browser to get accurate results.\",\n \"title\": \"Browser Number Display Issue\"\n }\n },\n \"modal_buttons\": {\n \"cancel\": \"Cancel\",\n \"reset\": \"Reset\",\n \"select\": \"Select\"\n },\n \"next_steps_panel\": {\n \"download_simulation\": \"Download LTspice Simulation\",\n \"download_summary\": \"Download Summary PDF\"\n },\n \"noise_calculations\": {\n \"row_headers\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"ibminus\": \"Ib-\",\n \"ibplus\": \"Ib+\",\n \"noise\": \"Total Noise\",\n \"rc_filter\": \"RC Filter\",\n \"rf\": \"Rf\",\n \"rfilt\": \"Rfilt\",\n \"rg\": \"Rg\",\n \"source\": \"Source\",\n \"vn\": \"Vn\"\n },\n \"table_headers\": {\n \"noise_density\": \"Details of Noise Density Calculations\",\n \"rms\": \"Details of RMS noise calculations\"\n }\n },\n \"parametric_search\": {\n \"ad_converters\": {\n \"all\": \"all precision ADCs\",\n \"in_this_tool\": \"ADCs included in this tool\"\n },\n \"diff_amps\": {\n \"all\": \"all Diff Amps\",\n \"in_this_tool\": \"Diff Amps included in this tool\"\n },\n \"op_amps\": {\n \"all\": \"all Op Amps\",\n \"in_this_tool\": \"Op Amps included in this tool\"\n },\n \"view_parametrics\": \"View parametrics for \\n <a href=\\\"{inThisToolHref}\\\" target=\\\"_blank\\\">\\n {inThisToolName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\\n or\\n <a href=\\\"{allHref}\\\" target=\\\"_blank\\\">\\n {allName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\"\n },\n \"sigma_delta_data\": {\n \"channel_averaging\": {\n \"four_to_one\": \"4:1 Averaging\",\n \"none\": \"No Averaging\",\n \"two_to_one\": \"2:1 Averaging\"\n },\n \"filter_type\": {\n \"fir\": \"FIR\",\n \"fir_wb01\": \"FIR WB01\",\n \"fir_wb04\": \"FIR WB04\",\n \"sinc3\": \"SINC3\",\n \"sinc5\": \"SINC5\",\n \"sinc6\": \"SINC6\"\n },\n \"power_mode\": {\n \"fast\": \"Fast\",\n \"high_performance\": \"High Performance\",\n \"low\": \"Low\",\n \"low_power\": \"Low Power\",\n \"median\": \"Median\"\n }\n },\n \"source_type\": {\n \"diff\": \"Differential\",\n \"se\": \"Single-ended\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI Precision Studio\",\n \"simdds\": \"DDS\",\n \"virteval\": \"Virtual Eval\"\n },\n \"summary\": {\n \"adc_input_settling\": {\n \"labels\": {\n \"acquisition_time\": \"ADC Acquisition Time:\",\n \"conversion_time\": \"ADC Conversion Time:\",\n \"filter_bandwidth\": \"RC Filter Bandwidth:\",\n \"one_lsb\": \"1 LSB:\",\n \"sample_period\": \"ADC Sample Period:\"\n },\n \"title\": \"ADC Input Settling Summary\"\n },\n \"noise_and_distortion\": {\n \"labels\": {\n \"driver_noise\": \"Driver Noise Contribution = \",\n \"enob\": \"ENOB @ {freq}:\",\n \"noise\": \"System Noise:\",\n \"sinad\": \"SINAD @ {freq}:\",\n \"snr\": \"SNR:\",\n \"thd\": \"THD @ {freq}:\"\n },\n \"title\": \"Noise and Distortion Summary\"\n },\n \"optional_source_settings\": {\n \"labels\": {\n \"source_noise_and_distortion\": \"Include source noise and distortion\",\n \"thd\": \"Source THD:\",\n \"wb_noise\": \"Source WB Noise:\"\n },\n \"title\": \"Optional Source Settings\"\n }\n },\n \"sup\": \"<sup>{val}</sup>\",\n \"tabs\": {\n \"ac\": {\n \"static_text\": \"Static AC Input Signal\",\n \"switching_text\": \"Switching AC Input Signal\",\n \"text\": \"AC Input Signal\",\n \"title\": \"Time Domain Simulation - {frequency}Hz Input Signal\"\n },\n \"circuit\": {\n \"text\": \"Circuit\"\n },\n \"dc\": {\n \"static_text\": \"Static DC Input Signal\",\n \"switching_text\": \"Switching DC Input Signal\",\n \"text\": \"DC Input Signal\",\n \"title\": \"Time Domain Simulation - DC Input Signal\"\n },\n \"driver_performance\": {\n \"text\": \"Driver Performance\"\n },\n \"muxed\": {\n \"text\": \"Multiplexed Input\",\n \"title\": \"Time Domain Simulation - Muxed Input Signal\"\n },\n \"next_steps\": {\n \"text\": \"Next Steps\"\n },\n \"noise\": {\n \"text\": \"Noise & Distortion\"\n },\n \"noise_calculations\": {\n \"text\": \"Noise\",\n \"title\": \"System Noise Contributions\"\n },\n \"settling\": {\n \"text\": \"Input Settling\"\n },\n \"thd\": {\n \"text\": \"THD\",\n \"title\": \"Contributions to System THD\"\n }\n },\n \"title\": \"Precision ADC Driver Tool\",\n \"title_alpha\": \"Precision ADC Driver Tool - ALPHA\",\n \"title_beta\": \"Precision ADC Driver Tool - BETA\",\n \"topology\": {\n \"follower\": \"Follower\",\n \"inverting\": \"Inverting\",\n \"non_inverting\": \"Non-Inverting\"\n },\n \"units\": {\n \"a\": \"A\",\n \"bits\": \"bits\",\n \"db\": \"dB\",\n \"f\": \"F\",\n \"hz\": \"Hz\",\n \"lsbs\": \"LSBs\",\n \"ohms\": \"Ω\",\n \"percent\": \"%\",\n \"ppms\": \"ppm\",\n \"price\": \"$ per 1k\",\n \"s\": \"s\",\n \"sps\": \"SPS\",\n \"v\": \"V\",\n \"v_rthz\": \"V/rtHz\",\n \"v_us\": \"V/us\",\n \"v_v\": \"V/V\",\n \"vp_p\": \"Vp-p\",\n \"vrms\": \"Vrms\"\n },\n \"urls\": {\n \"articles\": {\n \"demystifyingData\": \"https://www.analog.com/en/resources/analog-dialogue/articles/demystifying-data-acquisition-systems.html\",\n \"frontEndDesign\": \"https://www.analog.com/en/resources/analog-dialogue/articles/front-end-amp-and-rc-filter-design.html\",\n \"ltSpiceSimulatingSar\": \"https://www.analog.com/en/resources/technical-articles/ltspice-simulating-sar-adc-analog-inputs.html\",\n \"mt047\": \"https://www.analog.com/MT-047\",\n \"mt049\": \"https://www.analog.com/MT-049\",\n \"pinCompatible\": \"https://www.analog.com/en/resources/analog-dialogue/articles/pin-compatible-high-input-impedance-adc-family-enables-ease-of-drive.html\"\n },\n \"shareForum\": \"https://ez.analog.com/amplifiers/differential-amplifiers/\",\n \"videos\": {\n \"analogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990687361001.html\",\n \"bodePlotsAndOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664076001.html\",\n \"calculatingSpectralNoiseDensityToRMSNoise\": \"https://www.analog.com/en/resources/media-center/videos/756529027001.html\",\n \"decompensatedOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664087001.html\",\n \"designingRCFilter\": \"https://www.analog.com/en/resources/media-center/videos/5990689641001.html\",\n \"distortionCausedByLargeRfilt\": \"https://www.analog.com/en/resources/media-center/videos/5995980836001.html\",\n \"driverRingingAndInstability\": \"https://www.analog.com/en/resources/media-center/videos/5990689578001.html\",\n \"drivingACapacitiveLoad\": \"https://www.analog.com/en/resources/media-center/videos/1834672124001.html\",\n \"kickbackCalculations\": \"https://www.analog.com/en/resources/media-center/videos/5990687360001.html\",\n \"loopGainInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834668354001.html\",\n \"nonInvertingOpAmp\": \"https://www.analog.com/en/resources/media-center/videos/756529037001.html\",\n \"parasiticCapacitanceInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834684002001.html\",\n \"precisionAdcDriverTool\": \"https://www.analog.com/en/resources/media-center/videos/5990688166001.html\",\n \"sarAdcsWithReducedKickback\": \"https://www.analog.com/en/resources/media-center/videos/5995985507001.html\",\n \"simulatingAnalogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990689579001.html\"\n }\n },\n \"validation\": {\n \"alternate\": \"One of these properties [{properties}] must be provided. Values provided: [{values}]\",\n \"blank_thd_tab\": {\n \"category\": \"BlankTHDTab PARAMS: Required when the blankTHDTab flag is not set\"\n },\n \"default_driver\": {\n \"category\": \"DEFAULT DRIVER: This is always required and should be in the adc's list of recommended drivers\",\n \"item\": \"Value [{value}] is not in the adc's [{adc}] list of recommended drivers: [{drivers}]\"\n },\n \"recommended_driver\": {\n \"category\": \"RECOMMENDED DRIVERS: All of the adc's recommended drivers should be found in the driver library\",\n \"item\": \"Values [{invalidDrivers}] are not in the driver library\"\n },\n \"required\": {\n \"boolean\": \"Value [{value}] is not a valid boolean\",\n \"category\": \"REQUIRED PARAMS: These params are always required\",\n \"number\": \"Value [{value}] is not a valid number\",\n \"string\": \"Value: [{value}] is not a valid string\"\n },\n \"settling_thd_adj\": {\n \"category\": \"SettlingTHDAdj PARAMS: Required when the settlingTHDAdj flag is set\"\n },\n \"value_set\": \"Value [{value}] is not a valid value. Expected: [{valueSet}]\"\n }\n}], [\"ja-jp\", {\n \"adc_modal\": {\n \"row-count\": \"'{count, plural, =0 {Displaying # of {total} ADCs. Please check the filters provided.} other {Displaying # of {total} ADCs.}}'\",\n \"title\": \"Select an ADC\",\n \"tooltip\": \"Select an ADC\"\n },\n \"adc_type_display\": {\n \"differential\": \"Differential\",\n \"single_ended\": \"Single-ended\"\n },\n \"chart_buttons\": {\n \"reset_zoom\": \"Reset to default\",\n \"zoom_fit\": \"Zoom Fit\"\n },\n \"chart_labels\": {\n \"acquisition_cycle\": \"Acquisition Cycle\",\n \"conversion_cycle\": \"Conversion Cycle\",\n \"enob\": \"ENOB\",\n \"frequency\": \"Frequency (Hz)\",\n \"general_settling\": \"Settling Error = {error} {uom}\",\n \"sinad\": \"SINAD (dB)\",\n \"thd\": \"THD (dB)\",\n \"time\": \"Time (s)\",\n \"volts_kickback\": \"Kickback ~ {value}V\",\n \"volts_settling\": \"Settling Error = {volts}{uom}\"\n },\n \"chart_tabs\": {\n \"adc_input\": \"ADC Input (Volts)\",\n \"lsb\": \"LSB Error\",\n \"ppm\": \"PPM Error\",\n \"volts\": \"Volts\"\n },\n \"column_headers\": {\n \"adc_bw\": \"ADC BW\",\n \"adc_channels\": \"ADC Channels\",\n \"adc_eff_sample_rate\": \"ADC Effective sample rate\",\n \"amps_per_package\": \"Amps/Package\",\n \"bw\": \"Bandwidth\",\n \"device\": \"Device\",\n \"driver_type\": \"Type\",\n \"eff_noise_bw_of_driver_noise\": \"Effective noise BW of driver noise\",\n \"gbw\": \"GBW\",\n \"input_noise_density\": \"Noise Density\",\n \"input_polarity\": \"Analog Input Polarity\",\n \"input_type\": \"Analog Input Type\",\n \"iq\": \"Iq\",\n \"noise\": \"Noise\",\n \"noise_bw\": \"Equiv. Noise BW\",\n \"noise_density\": \"Noise Density\",\n \"noise_gain_factor\": \"Noise Gain Factor\",\n \"num_aliased_passbands\": \"Number of aliased passbands\",\n \"output_referred\": \"Output Referred Noise Density\",\n \"package\": \"Package\",\n \"price\": \"Price\",\n \"rc_filter_equiv_bw\": \"RC Filter Equiv BW\",\n \"resolution\": \"Resolution\",\n \"sampling_rate\": \"Sample Rate\",\n \"slew_rate\": \"Slew Rate\",\n \"snr\": \"SNR\",\n \"thd\": \"THD\",\n \"vnoise_density\": \"VNoise Density\",\n \"vref_max\": \"Vref Max\",\n \"vref_min\": \"Vref Min\",\n \"vs_span_max\": \"Vs Span Max\",\n \"vs_span_min\": \"Vs Span Min\"\n },\n \"driver_modal\": {\n \"subheadings\": {\n \"also_view_recommended_drivers\": \"Also view recommended drivers for {part} on product page\",\n \"recommended_drivers_for\": \"Recommended Drivers for {part}\"\n },\n \"title\": \"Select a Driver\",\n \"tooltip\": \"Select a Driver\"\n },\n \"driver_types\": {\n \"amp\": \"Op Amp\",\n \"diffamp\": \"Diff Amp\"\n },\n \"ember-aditools-page\": {\n \"card\": {\n \"checkbox-tooltip\": \"Toggle\",\n \"help-tooltip\": \"Click for help\",\n \"part-number-tooltip\": \"Click to select part\"\n },\n \"common\": {\n \"cancel\": \"キャンセル\",\n \"close\": \"閉じる\",\n \"load\": \"読み込む\",\n \"ok\": \"OK\",\n \"open\": \"開く\",\n \"save\": \"保存する\",\n \"select\": \"選ぶ\"\n },\n \"dialogs\": {\n \"feedback\": {\n \"email\": \"お客様のメールアドレス:\",\n \"feedback\": \"ご意見、ご要望:\",\n \"give-feedback\": \"意見または感想を送る\",\n \"invitation\": \"このツールに関する率直なご意見、ご要望をお聞かせください。 \",\n \"name\": \"お客様のお名前:\",\n \"optional\": \"(Optional)\",\n \"title\": \"皆様のご意見をお聞かせください!\"\n },\n \"load\": {\n \"choose-button\": \"ファイルを選択\",\n \"message\": \"ローカルPC上の設計ファイルを読み込む\",\n \"no-file-selected\": \"No file selected.\",\n \"title\": \"設計を読み込む\"\n },\n \"samples\": {\n \"add-button\": \"選択したサンプルをカートに入れる\",\n \"add-link\": \"Add to Order\",\n \"add-to-cart-column\": \"サンプルをカートに入れる\",\n \"model-column\": \"モデル/パッケージ\",\n \"part-column\": \"構成部品\",\n \"quantities-warning\": \"アナログ・デバイセズは認証させていただいたお客様に限り、無料サンプルのご注文を受け付けています。 サンプルについては大変多くのご要望をいただいておりますため、おひとり様2週間あたり最大で4製品、各2個ずつまでのご注文とさせていただきます。無料サンプルとしてご注文いただける以上の量が必要な場合は、オンライン購入をしていただくか(在庫がある場合に限ります)、販売代理店にお問い合わせください。\",\n \"title\": \"サンプル注文\",\n \"unavailable-message\": \"サンプルの提供はありません。\"\n },\n \"save\": {\n \"save-desc-error\": \"概要を入力してください。\",\n \"save-desc-field\": \"概要\",\n \"save-name-error\": \"デザイン名を入力してください。\",\n \"save-name-field\": \"デザイン名\",\n \"title\": \"保存\"\n },\n \"share\": {\n \"share-button\": \"Email\",\n \"share-design-information\": \"<p>設計ファイルのコピーを共有するには、<b>“差出人名”</b>にお客様のお名前を、共有したい方のメールアドレスを<b>“設計を共有”</b>項目にご入力ください。送信先が複数の場合には、それぞれのメールアドレスを改行してご入力ください。</p><p>アナログ・デバイセズよりZIPファイルにまとめられた設計ファイルが添付されたメールを、ご入力いただいたメールアドレスにお送りします。添付されたZIPファイルを解凍して、各ツールのアップロード機能を使用して設計ファイルをアップロードするだけで、その設計ファイルを使用することが出来ます。</p><p>上記手順により、共有された設計ファイルのコピーを使用することが出来ます。ただし、共有された設計ファイルのコピーが編集されても、お客様のオリジナルの設計ファイルが編集されることはありません。</p>\",\n \"share-dialog-ng-message\": \"回路を共有できません。サーバーの接続不良による可能性があります。再度お試しください。\",\n \"share-dialog-ok-message\": \"回路は共有されました\",\n \"share-duplicate-email\": \"同じメールアドレスが複数含まれています\",\n \"share-email-empty-error\": \"メールアドレスを入力してください。\",\n \"share-email-field\": \"設計を共有\",\n \"share-email-format-error\": \"お客様が入力したメールアドレスの中で少なくとも1つは無効です。修正して再度お試しください。\",\n \"share-email-placeholder\": \"メールアドレス\",\n \"share-name-error\": \"デザイン名を入力してください。\",\n \"share-name-field\": \"デザイン名\",\n \"share-sender-error\": \"差出人名を入力してください。\",\n \"share-sender-field\": \"差出人名\",\n \"title\": \"自分の設計をメールで送信\"\n },\n \"system\": {\n \"application-busy\": \"処理中・・・\",\n \"title\": \"アプリケーション・メッセージ\"\n }\n },\n \"footer\": {\n \"accessibility\": \"アクセシビリティ\",\n \"cookie-settings\": \"Cookieの設定\",\n \"copyright-text\": \"1995 - 2025 Analog Devices, Inc. 全著作権所有\",\n \"icp-id\": \"\",\n \"legal\": \"法的事項およびリスク約\",\n \"privacy-policy\": \"プライバシーポリシー\",\n \"privacy-settings\": \"プライバシー設定\",\n \"sitemap\": \"サイトマップ\"\n },\n \"header\": {\n \"applications\": \"アプリケーション\",\n \"company\": \"企業情報\",\n \"design-center\": \"設計支援\",\n \"education\": \"調べる/学ぶ\",\n \"parametric-search\": \"パラメータ検索\",\n \"products\": \"製品\",\n \"spoken\": {\n \"homepage\": \"ホームページ\",\n \"sitelinks\": \"アナログ・デバイセズのサイトへのリンク\"\n },\n \"support\": \"サポート\"\n },\n \"menubar\": {\n \"chinese\": \"简体中文\",\n \"english\": \"English\",\n \"help\": \"ヘルプ\",\n \"japanese\": \"日本語\",\n \"load\": \"設計を読み込む\",\n \"save\": \"保存\"\n },\n \"studio\": {\n \"adcdriver\": \"ADCドライバ\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"計装アンプ\",\n \"filterwizard\": \"アナログ・フィルタ\",\n \"noise\": \"ノイズ\",\n \"photodiode\": \"フォトダイオード\",\n \"precisionstudio\": \"ADI<span class=''service-mark''>℠</span> Precision Studio\",\n \"signalchaindesigner\": \"Signal Chain\",\n \"simdds\": \"DDS\",\n \"spoken\": {\n \"studiolinks\": \"ADI Precision Studio へのリンク\"\n },\n \"virteval\": \"Virtual Eval\"\n },\n \"toolbar\": {\n \"actions\": \"Actions\"\n }\n },\n \"footnote\": \"†\",\n \"icon_modal\": {\n \"about_help\": {\n \"body\": \"<p>The Precision ADC Driver Tool provides a specialized simulation environment where the engineer can quickly determine the impact of the driver and RC filter selection on the overall system performance of an ADC signal chain.</p><ul><li>Allows the user to optimize the driver and RC filter choice for their end application requirements, and provides an estimate of the impact of the selected driver and RC filter on overall system noise and distortion.</li><li>Enables the user to simulate the settling of the ADC input for various input scenarios, given the selected driver and RC filter.</li><li>Allows the user to quickly determine the performance tradeoffs between various ADCs and drivers, which would otherwise require complex calculations and simulations.</li></ul>\",\n \"icon_text\": \"Help\",\n \"title\": \"About the Precision ADC Driver Tool\"\n },\n \"feedback\": {\n \"email_label\": \"EMail:\",\n \"feedbackDialogNgMessage\": \"Failed to send user feedback. This may be due to a poor connection to the server. Please try again.\",\n \"feedbackDialogOkMessage\": \"Your feedback has been sent.\",\n \"icon_text\": \"Feedback\",\n \"intro\": \"Please let us know your opinion of this tool, good and bad.\",\n \"label\": \"Your feedback\",\n \"name_label\": \"Name:\",\n \"placeholder\": \"(Optional)\",\n \"submit\": \"Tell Us\",\n \"title\": \"Give us your feedback!\"\n },\n \"share\": {\n \"blog\": \"ADC Drivers support community\",\n \"copy\": \"Copied \",\n \"copyFail\": \"Copying failed \",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"icon_text\": \"Share\",\n \"p1\": \"1. Copy this link to your clipboard\",\n \"p2\": \"2. Paste it into an email, EngineerZone® forum or a social media post\",\n \"subHeader2\": \"Want ADC driver tips? Check out EngineerZone®\",\n \"title\": \"Sharing This Circuit Configuration Is Easy!\"\n },\n \"system\": {\n \"applicationBusy\": \"Working...\",\n \"header\": \"Application Message\"\n },\n \"video\": {\n \"body\": \"\\n <strong>Driving SAR ADCs Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{analogInputModel}\\\">Analog Input Model</a></li>\\n <li><a target='_blank' href=\\\"{kickbackCalculations}\\\">Kickback Calculations</a></li>\\n <li><a target='_blank' href=\\\"{designingRCFilter}\\\">Designing the RC Filter</a></li>\\n <li><a target='_blank' href=\\\"{simulatingAnalogInputModel}\\\">Simulating the Analog Input Model in LTspice</a></li>\\n <li><a target='_blank' href=\\\"{precisionAdcDriverTool}\\\">Precision ADC Driver Tool</a></li>\\n <li><a target='_blank' href=\\\"{driverRingingAndInstability}\\\">Driver Ringing and Instability</a></li>\\n <li><a target='_blank' href=\\\"{distortionCausedByLargeRfilt}\\\">Distortion Caused by Large Rfilt</a></li>\\n <li><a target='_blank' href=\\\"{sarAdcsWithReducedKickback}\\\">SAR ADCs with Reduced Kickback</a></li>\\n </ul>\\n <strong>Stability 101 Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{loopGainInOpAmps}\\\">Loop Gain in Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{bodePlotsAndOpAmps}\\\">Bode Plots and Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{decompensatedOpAmps}\\\">Decompensated Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{drivingACapacitiveLoad}\\\">Driving a Capacitive Load</a></li>\\n <li><a target='_blank' href=\\\"{parasiticCapacitanceInOpAmps}\\\">Parasitic Capacitance in Op Amps</a></li>\\n </ul>\\n \",\n \"icon_text\": \"Videos\",\n \"title\": \"Videos\"\n }\n },\n \"info_modal\": {\n \"HiZ\": {\n \"body\": \"<p>The {adc} includes a high-Z mode feature, which reduces the charge kickback that occurs at the start of each acquisition cycle. The reduced kickback makes the {adc} easier to drive, and can be enabled via register setting.</p><p>High-Z mode should not be enabled for higher input frequencies (>100kHz) or for multiplexed input applications. </p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> and <a target=\\\"_blank\\\" href=\\\"{analogPinCompatibleArticleLink}\\\">related article</a> for more information on high-Z mode.</p>\",\n \"title\": \"High-Z mode\"\n },\n \"LP\": {\n \"body\": \"<p>The {driver} implements two fully characterized active power modes (full power, low power) to optimize system power and performance trade-offs.</p><p>See the datasheet at <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">link</a> for more information</p>\",\n \"title\": \"Low Power Mode\"\n },\n \"PrechargeOn\": {\n \"body\": \"<p>The {adc} has analog input precharge buffers that reduce the switching kickback from the sampling stage to the external circuitry. The precharge buffers reduce the average input current and reduce the effects of sampling distortion.</p><p>This reduction in drive requirements allows pairing of the {adc} with lower power, lower bandwidth driver amplifiers.</p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> for more information</p>\",\n \"title\": \"Precharge Mode\"\n },\n \"Seq\": {\n \"body\": \"<div id=\\\"sequencer-modal-content\\\"><div><p><b>Sequencer Disabled (Static):</b></p><ul><li>No channel Sequence</li><li>AD4696 samples Channel INx only</li><li>two CNV rising edges indicating conversion on channel INx, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] of sample 0 occurs at t = 0 seconds</li><li>Kickback occurs at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 T_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Static.png\\\"/></div><div><p><b>Sequencer Enabled (Dynamic):</b></p><ul><li>Simulation equivalent programing channel sequencer going from INy going to INx</li><li>AD4696 samples INx</li><li>Simulation includes two CNV rising edges, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] occurs at t = 0 seconds</li><li>Kickback occurs on channel INx at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 t_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Dynamic.png\\\"/></div></div>\",\n \"title\": \"Sequencer mode\"\n },\n \"ac_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The AC Input Settling simulation will run when the input signal conditions would result in kickback that is more difficult to settle than the DC Input Settling simulation. For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for DC Input Settling first.</p><p>The AC Input Settling simulation will run for scenarios where the input frequency/bandwidth of interest will result in a larger kickback to settle compared to lower frequency (or DC) input signals. These scenarios will include ADCs with architectures where the kickback is dependent on the voltage difference between samples, and where the frequency of the input signal has a high enough slew to impact the kickback size. </p><p>For ADCs where kickback is not dependent on sample-to-sample voltage difference, or for lower input frequencies (and lower slew), this simulation is not relevant and will not run.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information on input slew-related kickback calculations.</p><p>The AC Settling simulation corresponds to scenarios in hardware where the AC performance degrades significantly as input frequency (and corresponding input slew) increases.</p><p>Issues related to AC settling can be examined at the bench with a high quality sinusoidal input source. If AC performance (SNR, THD, etc) can be improved by slowing the sample rate down, then insufficient settling from kickback is a possible issue. </p>\",\n \"title\": \"AC input settling simulation\"\n },\n \"adc_input\": {\n \"body\": \"<p>This section allows the user to change the selected ADC, as well as change operating conditions of the selected ADC.</p><ul><li>Clicking the ADC name will bring up the selection table. The selection table can be sorted and filtered.</li><li>When selecting an ADC, the sample rate will be automatically set to the maximum sample rate and the Vref will be set using the Vref value used in specifications table of the ADC datasheet.</li><li>Changing the sample rate will impact the sample period and acquisition time of the ADC, which can be observed in the Input Settling tab.</li><li>Changing the Vref will reduce the full scale range of the ADC, which will impact SNR.</li></ul><p>This tool focuses on SAR ADCs, but the selection list does not include all SAR ADCs in the ADI portfolio. In general, it's the higher sample rate, higher precision SAR ADCs that are included in this tool. </p><p>See <a target=\\\"_blank\\\" href=\\\"{sarAdcParametricSearchUrl}\\\">the parametric table of all SAR ADCs</a> and <a target=\\\"_blank\\\" href=\\\"{precisionAdcParametricSearchUrl}\\\">parametric table of all precision ADCs</a></p>\",\n \"title\": \"ADC and settings\"\n },\n \"adc_noise_bandwidth\": {\n \"alt\": \"Sigma Delta Equiv Bandwidth\",\n \"body\": \"<p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth.</p><p>The equivalent noise bandwidth calculation also factors the dominant bandwidth for each contribution, which may not be limited by bandwidth of the individual stage. For example, if the RC filter bandwidth is lower than the driver bandwidth, the RC filter will limit the bandwidth of all noise contributions in the driver and source, and the RC filter bandwidth is the value that will be reported in the 'Equivalent Noise Bandwidth' column for the source, driver, and RC filter contributions.</p><p>For SAR ADCs, the Equivalent Noise Bandwidth is a characteristic of the ADC and is not impacted by the signal chain.</p><p>For Sigma-Delta ADCs with decimation (digital filtering), the filter and decimation settings will impact both the ADC bandwidth as well as the signal chain effective bandwidth. </p>\",\n \"formula_labels\": {\n \"aliased_passbands\": \"N = ceiling((1.57 * Fp)/Fs) + 1\",\n \"eff_noise\": \"(2N-1)*fc\",\n \"fc\": \"Fc\",\n \"fp\": \"1.57 * Fp\",\n \"fs\": \"Fs\"\n },\n \"image_details\": \"<ul><li>The digital filtering of the ADC is illustrated in blue, with passbands (Fc) repeating at integer values of effective sample rate (Fs) of the ADC. The response is simplified as a brick wall response for this calculation.</li><li>The analog RC filter is illustrated in red, with a simplified brick wall passband (Fp).</li><li>The bandwidth of the RC filter (Fp) will likely need to be much larger than the sample rate (Fs). As a result, the noise from the signal chain (including noise from the driver) will be captured by the ADC at multiple aliased passbands, N being the first passband that is adequately filtered out by the RC filter.</li></ul>\",\n \"table_header\": \"Calculations for the current tool configuration:\",\n \"title\": \"Equivalent Noise Bandwidth Calculations\"\n },\n \"dc_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>For each sample cycle, the ADC switches between a conversion cycle and an acquisition cycle. As the ADC switches from conversion to acquisition, charge on the ADC sampling cap is dumped onto the input node of the ADC, which causes a \\\"kickback\\\" that must be settled by the driver. This kickback must be sufficiently settled by the end of the acquisition cycle - unsettled kickback will result in measurement errors.</p><p>The size of the kickback disturbance on the input of the ADC (and the output of the driver) is dependent on the ADC architecture, especially for low frequency or DC input signals. Some ADCs contain \\\"pre-charge\\\" circuitry, that will minimize the charge that is dumped on the ADC input if the voltage difference between each sample is small. Other ADCs will have kickback that is not related to the voltage difference between samples. This tool accounts for ADC architecture differences in the simulation models for each ADC.</p><p>The kickback size is also dependent on the value of the external filter capacitor, Cext. This capacitor dampens the kickback - the amount of kickback required to settle is partially dependent on the value of this capacitor. A larger value capacitor will provide more dampening, but also has the effect of lowering the filter bandwidth, and slowing the rate of settling. In other words, more dampening due to larger Cext does not necessarily improve settling.</p><p>The response of the driver to this kickback is dependent on several parameters, including gain bandwidth, slew rate, and output impedance.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> and <a target=\\\"_blank\\\" href=\\\"{analogLtSpiceSimulatingSarArticleLink}\\\">LTspice: Simulating SAR ADC Analog Inputs</a> for more information on driving SAR ADCs.</p><p>The DC Input Settling plot in this tool is a simulation of a simple scenario that is not difficult to setup and measure in hardware. The input is a simple DC signal at the full scale voltage of the ADC, based on the Vref setting in the ADC input panel. For ADCs that contain \\\"pre-charge\\\" circuitry, the kickback can vary depending on the DC input voltage - the simulation for these ADCs assumes a worst-case kickback, so the user can design a circuit that ensures kickback for all DC input values will be sufficiently settled.</p><p>Issues related to DC settling can be examined at the bench with a DC input source. Slowing the sample rate of the ADC down will increase the acquisition cycle time - and increasing the acquisition cycle will allow more time for the kickback to settle. With hardware, if slowing the sample rate results in the ADC measurement results changing (but there was no change to the input voltage) - a measurement error due to unsettled kickback could be occurring.</p><p>Clicking on \\\"Download LTspice simulation\\\" in this tab will provide an equivalent schematic/simulation for the DC Input settling plot. Unzip the downloaded .zip file, and open \\\"Settling simulation for ADC and driver circuit.asc\\\". The corresponding .plt file will add traces to the plot window automatically when simulation is run.</p>\",\n \"title\": \"DC input settling simulation\"\n },\n \"default\": {\n \"body\": \"WIP\",\n \"title\": \"WIP Title\"\n },\n \"driver_input\": {\n \"body\": \"<p>The section allows the user to change the selected driver, as well as change the configuration of the driver circuitry.</p><ul><li>Clicking the driver name will bring up the driver selection table. The selection table can be sorted and filtered.</li><li>Recommended drivers for the selected ADC will be highlighted at the top of the table. The ADC product page and datasheet also provides driver recommendations.</li><li>The topology of the driver circuit can be modified - options are inverting, non-inverting, and follower. Topologies that are not compatible with the selected ADC/driver will not be selectable.</li><li>The circuit gain and feedback network can be adjusted using the gain and Rf input fields.</li><li>The driver supplies (+Vs and -Vs) are automatically calculated for the selected topology, driver, and specified Vref.</li></ul><p>+Vs and -Vs are automatically set to values that allow the driver to operate properly while providing enough headroom to drive the full input range of the ADC, determined by Vref. Changing the driver, topology, or Vref will cause the supplies to be recalculated. The user can adjust the supplies to verify proper operation at a specific supply voltage - the tool will issue a warning if there is a headroom or supply span violation.</p><p>For driver topologies that include Rf and Rg, the maximum allowed Rf and Rg limits are to ensure the circuit remains stable. The minimum allowed Rf and Rg limits are to ensure the increased output current does not degrade distortion performance on driver.<p>Selected driver, topology, and feedback network will all impact the settling behavior of the system. See the Input Settling tab to verify kickback will settle sufficiently with specified driver, topology, and feedback network.</p>\",\n \"title\": \"Driver and settings\"\n },\n \"enob\": {\n \"body\": \"WIP\",\n \"title\": \"ENOB Help\"\n },\n \"filter_input\": {\n \"body\": \"<p>The Rext and Cext input fields allow the user to change the filter component values in the interface circuitry.</p><p>The default Rext and Cext and automatically set to a recommended value for the selected ADC. While these default values are a good starting point, they may not be ideal for all drivers, driver configurations, and input frequencies.</p><p>Some things to consider when making changes to the RC filter values:</p><ul><li>Settling issues in the Input Settling tab can sometimes be resolved by increasing the bandwidth of the RC filter. Be aware that lowering the Rext can cause excess ringing and instability. Lowering the Cext can be a good option for increasing RC bandwidth, but it will also result in increased noise. Changes in noise and SNR can be observed in the Noise and Distortion tab</li><li>Sometimes, increasing Rext can help with ringing - be sure to decrease Cext as well, to ensure bandwidth is high enough for kickback to settle.</li><li>Increasing Rext can help with ringing and instability, but can sometimes cause increased ADC distortion at the input frequency of interest. Check the Noise and Distortion tab to view how changes to Rext may impact the ADC distortion.</li><li>Multiplexed Inputs may require a higher bandwidth RC filter than the default settings for Rext and Cext. Adjustments will probably need to be made to the RC filter for these circuits. See the input Settling tab for the Multiplexed Input simulation to verify kickback will settle sufficiently with specified Rext and Cext.</li></ul>\",\n \"title\": \"Filter settings\"\n },\n \"help-tooltip\": \"Click for help\",\n \"input_signal_input\": {\n \"body\": \"<p>This section allows the user to change the configuration of the input signal.</p><ul><li>For fully-differential ADC circuits, a single-ended or differential input signal can be selected. The resulting circuitry can be viewed in the Circuit tab.</li><li>The target frequency/bandwidth of interest can be specified. This will be used in the distortion and settling simulations.</li><li>The user can specify if the signal chain will include a multiplexer, by checking \\\"Input will be multiplexed.\\\" See the help topic for that check box for more information.</li></ul><p>Distortion of both the ADC and driver can be highly dependent on the input frequency of interest. Distortion across input frequency for the ADC, driver, and overall system can be viewed in the Noise and Distortion tab.</p>\",\n \"title\": \"Input signal settings\"\n },\n \"multiplexed\": {\n \"body\": \"<p>When the \\\"Input will be multiplexed\\\" option is checked, the Precision ADC Driver tool input settling simulations will include a simulation for a multiplexed input circuit configuration. See the \\\"Multiplexed Input\\\" simulation plot in the \\\"Input Settling\\\" simulation tab.</p><p>In the case of a multiplexed input, the driver + ADC must be able to settle extreme signal swing cases, where a multiplexer might switch between inputs that differ by the full scale of the ADC. For this simulation, a \\\"worst case\\\" scenario is assumed, where the ADC input must swing from 0V to the full scale of the ADC (Vref) within a single sample cycle.</p><p>To settle this \\\"worst case\\\" scenario, the swing of the ADC input (and resulting kickback) will require an RC filter bandwidth that is higher than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR Analog-to-Digital Converter</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Multiplexed input\"\n },\n \"muxed_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The Multiplexed Input simulation will run when the \\\"Input will be multiplexed\\\" box in the Input Signal panel on the left is checked. This simulation uses the same modelling techniques that are used in the DC Input Settling simulation, but the input signal is modified to account for a worst-case input multiplexing scenario where the multiplexer switches from a mux input with a 0V input value to a mux input with a full scale (Vref) value.</p><p><i>For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for ADC Input Settling first.</i></p><p>In a multiplexed input configuration, the driver must be able to drive full scale signal changes in a single sampling cycle, in addition to settling the kickback. A multiplexed input configuration may require the external RC filter to have a higher bandwidth than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Muxed Input Signal\"\n },\n \"noise_contributions\": {\n \"body\": \"<p>The noise table shows the contribution of each circuit element to the overall noise of the circuit. These noise calculations are combined with the THD curves (in the \\\"THD\\\" tab) to calculate SINAD and ENOB curves across input frequency.</p>{sourceNoiseText}<p><b>Driver Noise:</b></p><p>The driver noise estimation is a combination of the amplifier noise (voltage and current, referred to the output) and noise from the resistors in the circuit. The driver noise can be reduced by lowering the bandwidth of the external RC filter - but the RC filter also impacts the settling behavior as well THD of the ADC.</p><p>While a lower RC bandwidth helps with noise, a bandwidth that's too low will not allow the output of the driver to settle within the acquisition time (See the \\\"Input Settling\\\" tab to check settling simulation).</p><p><a target=\\\"_blank\\\" href=\\\"{opAmpVideoLink}\\\">VideoTutorial - Noise of a Non-inverting Operational Amplifier Circuit</a></p><p><a target=\\\"_blank\\\" href=\\\"{mt047Pdf}\\\">Tutorial - Op Amp Noise</a></p><br><p><b>ADC Noise:</b></p><p>The noise of the ADC is estimated using SNR specifications from the datasheet. To get optimal SNR performance from the Driver + ADC circuit, select a driver with low enough noise performance that noise from the driver is not the primary contributor to the system noise.</p><br><p><b>System Noise:</b></p><p>The noise contribution of the source, driver, and ADC are combined via root sum squared (RSS) method to calculate an overall system noise estimate.</p>\",\n \"source_noise_text\": \"<p><b>Source Noise:</b></p><p>The source noise is derived from the Source Wide-band (WB) noise input field, and allows the user to incorporate estimated source noise into the overall noise estimation.</p><br>\",\n \"title\": \"Noise Contributions\"\n },\n \"noise_density\": {\n \"body\": \"<p>The 'Details of Noise Density Calculations' table contains the noise density calculations for the source (when enabled), the amplifier, the amplifier's feedback network, and the RC filter between the amplifier and the ADC.</p><p>The 'Input Noise Density' column show the noise of each contribution. Amplifier voltage and current noise density can be found in the amplifier datasheet. The low frequency 1/f noise contribution of the amplifier voltage and current noise density is not included in the tool calculations. Resistor noise density can be calculated using the equation sqrt(4kTR), where k is Boltzmann's Constant (1.38e-23 J/K), T is the absolute temperature, and R is the resistor value.</p><p>The 'Noise Gain Factor' column shows the noise gain of each contribution. Details about calculating noise gain for op amps can be found in <a href=\\\"{mt049Pdf}\\\" target=\\\"_blank\\\">MT-049</a> and <a href=\\\"{nonInvertingOpAmpVideo}\\\" target=\\\"_blank\\\">Noise of a Non-Inverting Operational Amplifier Circuit</a> whiteboard video. Details about calculating noise gain for fully differential amplifiers can be found in the 'Estimating the Output Noise Voltage' section of the datasheet (see the ADA4945-1 datasheet for an example).</p><p>The 'Output Referred Noise Density' column shows the product of the noise density and the noise gain for each contribution. This is noise density of each contribution seen at the output of the signal chain (and at the input of the ADC). These results are used to calculate the RMS noise in the 'Details of RMS Noise Calculations' table above.</p>\",\n \"title\": \"Noise Density Calculations\"\n },\n \"optional_source_settings\": {\n \"body\": \"The \\\"Include source noise and distortion\\\" option allows users to include additional noise and distortion from source and other circuitry that occurs prior to the driver input.</p><p> The noise and distortion entered into the source fields will be included in the system performance calculations when the box is checked. When the \\\"Include source noise and distortion\\\" box is unchecked, source contributions to the system performance are ignored in the calculations.\",\n \"title\": \"Source setting information\"\n },\n \"rc_filter_bandwidth\": {\n \"body\": \"<p>The bandwidth of the RC Filter is determined from the combined values of Rext, Cext, and the ADC input capacitance. The input capacitance of the ADC is combines with the filter capacitance when the input signal is being captured by the ADC.</p><p>Filter BW = 1 / (2 * pi * Rext * (Cext + Cadc))</p><p>Where Cadc of selected ADC ({selectedAdc}) is {cadc}{cadcUom}</p><img src=\\\"svgs/RC_Filter_Bandwidth.svg\\\" alt=\\\"RC Filter Bandwidth\\\" title=\\\"RC Filter Bandwidth\\\" />\",\n \"title\": \"RC Filter Bandwidth\"\n },\n \"rms_noise\": {\n \"body\": \"<p>The 'Details of RMS Noise Calculations' table contains the RMS noise calculations for the source (when enabled), the amplifier, the amplifier's feedback network, the RC filter, and the ADC.</p><p>The 'Output Referred Noise Density' column contains the results of the calculations in the 'Details of Noise Density Calculations' table.</p><p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth. For more information about equivalent noise bandwidth calculations, see the help topic in the 'Equivalent Noise Bandwidth' column.</p><p>The 'RMS Noise' column contains the product of the Output Referred Noise and the square root of the Equivalent Noise Bandwidth. Details about calculating RMS noise from noise density can be found in the <a href=\\\"{video}\\\" target=\\\"_blank\\\">Calculating Spectral Noise Density to RMS Noise</a> whiteboard video.</p>\",\n \"title\": \"RMS Noise Calculations\"\n },\n \"sinad\": {\n \"body\": \"WIP\",\n \"title\": \"SINAD Help\"\n },\n \"thd\": {\n \"body\": \"<p>The THD plot shows an approximation of THD contributions of the various components of the overall circuit, along with an estimate of the combined THD due to all contributions. This plot shows an estimation of THD across a range of input frequencies.</p><p>The THD curves are combined with the overall noise (in the \\\"Noise\\\" tab) to calculate SINAD and ENOB at the given input frequency. The Noise and Distortion Summary panel lists calculations for THD, SINAD, and ENOB at the input frequency specified in the input panel on the left side of the tool.</p><br><div style=\\\"{freqContainerStyle}\\\"><p><b>Input Frequency Marker:</b></p><p>This vertical line marker corresponds to the frequency entered in the Input section of the input panel, to the left. Even though the THD plot shows THD performance across a range of input frequencies, the results in the Simulation Summary (THD, SINAD, ENOB) are calculated at this input frequency.</p></div><br><div style=\\\"{sourceContainerStyle}\\\"><p><b>Source THD Curve:</b></p><p>This is a horizontal line on the plot that can be used to approximate THD introduced at the input of the circuit, and can be set using the optional input fields below the summary panel. This is THD that is not contributed by the ADC and Driver circuitry, but is counted in the overall system THD estimate.</p></div><br><div style=\\\"{driverContainerStyle}\\\"><p><b>Amplifier THD Curve:</b></p><p>The THD of the amplifier is estimated using approximations of the datasheet 2nd and 3rd Harmonic Distortion curves, and combining them into an overall estimated THD curve for the amplifier.</p></div><br><div style=\\\"{adcContainerStyle}\\\"><p><b>ADC THD Curve:</b></p><p>The ADC THD curve is an estimation of the THD performance across frequency, and can degrade with higher external R values. The ADC THD curve is an estimated model built from a combination of datasheet curves and other lab measurements, and is only an approximation of THD performance - actual hardware measured is required to verify performance of overall circuit (driver, RC filter, ADC).</p><p>The ADC THD curve not include THD performance degradation due to inadequate settling of circuit from ADC kickback. See the \\\"Input Settling\\\" tab for simulation of ADC kickback and settling. THD degradation due to settling issues can often be improved by slowing down the sample rate (increasing the sample period, and as a result, the acquisition time). If THD improves with slower sample rate, investigate driver and RC selection as a contributing factor. See \\\"Input Settling\\\" tab for more information about settling issues.</p></div><br><div style=\\\"{systemContainerStyle}\\\"><p><b>Combined System THD:</b></p><p>The estimated THD contribution of the amplifier, ADC, and source are combined into an estimated THD for the circuit, and is shown as a heavy black curve.</p></div>\",\n \"title\": \"THD Help\"\n },\n \"thd_driver\": {\n \"body\": \"<p>This warning is displayed when the Precision ADC Driver Tool detects that the driver is degrading the distortion performance of the overall signal chain.</p><p>If the driver THD is estimated to be higher than the ADC THD at the input frequency of interest (set in the left-side input panel), then the given circuit will not achieve the distortion/THD performance specified in the ADC datasheet.</p><p>The driver and ADC THD curves in this tool are built using curves and specifications from the datasheets - please refer to the datasheet for more details on THD performance of those devices.</p>\",\n \"title\": \"Driver may be dominant THD contribution\"\n },\n \"thd_rfilt\": {\n \"body\": \"<p>The ADC input capacitance has a small amount of non-linearity - this non-linearity is usually negligible for lower input frequencies. But at higher input frequencies, this non-linear capacitance can start to dominate the distortion/THD performance.</p><p>This distortion contribution will also increase when higher Rext values are used. Lowering the Rext value can help, if this is the dominant distortion contribution.</p><p>See <a target='_blank' href=\\\"{distortionUrl}\\\">Distortion caused by Large Rfilt</a> video tutorial for more information on this topic.</p>\",\n \"title\": \"Distortion caused by large Rext\"\n }\n },\n \"input_labels\": {\n \"cext\": \"Cext\",\n \"channelAveraging\": \"Channel Averaging\",\n \"decimationRate\": \"Decimation\",\n \"enable_filter\": \"Filter enable\",\n \"filterType\": \"Filter Type\",\n \"frequency\": \"Frequency\",\n \"gain\": \"Gain\",\n \"mclk\": \"MCLK\",\n \"mclkDiv\": \"MCLK_DIV\",\n \"multiplexed\": \"Input will be multiplexed\",\n \"output_data_rate\": \"Output Data Rate (ODR)\",\n \"powerMode\": \"Power Mode\",\n \"rext\": \"Rext\",\n \"rf\": \"Rf\",\n \"sampling_rate\": \"Sample Rate\",\n \"thd\": \"THD\",\n \"vSupplyNeg\": \"-Vs\",\n \"vSupplyPos\": \"+Vs\",\n \"variant\": \"Enable {variant} mode\",\n \"vcm\": \"Vcm\",\n \"vin\": \"Vin\",\n \"vocm\": \"Vocm\",\n \"vout\": \"Vout\",\n \"vref\": \"Vref\",\n \"wb_noise\": \"WB noise\"\n },\n \"input_panels\": {\n \"headings\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"filter\": \"Filter\",\n \"input_signal\": \"Input\"\n }\n },\n \"labels\": {\n \"adi_logo\": \"ADI Logo\",\n \"adi_precision_studio_links\": \"ADI Precision Studio Links\",\n \"browsers\": {\n \"chrome\": \"Chrome\",\n \"firefox\": \"Firefox\",\n \"ie\": \"Internet Explorer 11 (or newer)\",\n \"msie\": \"MSIE\"\n },\n \"close\": \"Close\",\n \"collapse\": \"Collapse\",\n \"error\": \"Error\",\n \"expand\": \"Expand\",\n \"logo\": \"Logo\",\n \"ok\": \"Ok\",\n \"tools\": \"Tools\",\n \"unable_to_calc\": \"Unable to Calculate\",\n \"with_driver\": \"With Driver:\"\n },\n \"legend_labels\": {\n \"actual_adc_input\": \"Actual ADC Input\",\n \"ideal_adc_input\": \"Ideal ADC Input\",\n \"inx\": \"INX\",\n \"iny\": \"INY\",\n \"thd_noise_adc\": \"ADC and RC Filter Contribution\",\n \"thd_noise_driver\": \"Driver Contribution\",\n \"thd_noise_signal\": \"Frequency\",\n \"thd_noise_source\": \"Source Contribution\",\n \"thd_noise_system\": \"Overall System\"\n },\n \"logo_menu\": {\n \"applications\": \"Applications\",\n \"community\": \"Community\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"products\": \"Products\",\n \"support\": \"Support\"\n },\n \"lsb_settling\": {\n \"eighth\": \"1/8\",\n \"half\": \"1/2\",\n \"one\": \"1\",\n \"quarter\": \"1/4\",\n \"sixteenth\": \"1/16\"\n },\n \"messages\": {\n \"ac_kickback\": \"Signals below {frequencyCutoff}Hz have the same settling time as DC for {adc}\",\n \"ad4080_rext_error\": \"The {adc} required Rext to be between {rfiltMin} and {rfiltMax}.\",\n \"adc\": \"For {partNumber}, maximum sample rate is {maxSampleRate} and maximum voltage for Vref is {vrefMax}{vrefUom}\",\n \"adc_note\": \"<sup>{footnote}</sup>ADC THD estimated using user selected Input Frequency = {freq}, and datasheet recommended Rext. Input Frequency and Rext can be modified in the right-side input panel.\",\n \"blanked_thd_tab\": \"Distortion results are not available for {part}\",\n \"blanked_thd_tab_filter_type\": \"Distortion results are not available for this filter configuration.\",\n \"browser_zoom\": \"Your browser is zoomed out too far to correctly export this PDF. Please reset your browser's zoom level.\",\n \"browser_zoom_instructions\": \"Ctrl+0 can be used to zoom out on most browsers.\",\n \"circuit_diff\": \"Using a differential driver - Please select inverting topology\",\n \"driver_output\": {\n \"filt_check_error\": \"The current required to drive the RC filter on the output of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try reducing Cfilt.\",\n \"rf_check_error\": \"The current required to drive the feedback network of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try increasing Rf.\"\n },\n \"driver_se\": \"Single-ended ADC and source selected - Please select a single-ended driver\",\n \"feedback_thanks\": \"Thank you for your feedback!\",\n \"fmod\": \"FMOD = MCLK / MCLK_DIV = {fmod}\",\n \"fmodMax\": \"It is suggested that FMOD is less than {maxFmod}Hz in {powerMode} power mode.\",\n \"fmodMin\": \"Operating FMOD lower than {minFmod}Hz in {powerMode} power mode is not recommended.\",\n \"gain_max\": \"Increasing the gain of the driver stage will result in additional noise in the driver stage - consider using a gain/filtering stage prior to the driver stage.\",\n \"gain_to_not_one\": \"Change Gain to not equal 1\",\n \"headroom\": {\n \"neg_decrease_input\": \"-Vs is not supplying enough headroom to the driver input when Vin = {vinMin}\",\n \"neg_decrease_output\": \"-Vs is not supplying enough headroom to the driver output when Vin = {voutMin}\",\n \"pos_increase_input\": \"+Vs is not supplying enough headroom to the driver input when Vin = {vinMax}\",\n \"pos_increase_output\": \"+Vs is not supplying enough headroom to the driver output when Vout = {voutMax}\",\n \"supplies_too_high\": \"Supplies are too high for the maximum allowed Vspan of the selected driver\",\n \"supplies_too_low\": \"Supplies are too low for the minimum allowed Vspan of the selected driver\"\n },\n \"input_frequency_slew\": \"The maximum slew rate of the signal at the driver output (2*pi*f*Vp = {inputSR} V/us) is greater than the slew rate of the {driver} ({driverSR} V/us). Please lower the frequency, or select a driver with a higher slew rate.\",\n \"input_panel\": \"Plots will not display when there is an error in the input panel. Please resolve errors in the input panel to continue.\",\n \"input_source_type\": \"Cannot select differential source for selected ADC\",\n \"max\": \"The max {field} is: {value}\",\n \"max_input_frequency\": \"The max Input Frequency is 1/2 of the Sampling Rate - For Sampling Rate of {sample}SPS, the maximum Input Frequency this tool allows is {max}Hz.\",\n \"mclk\": \"MCLK must be between {minMclk}Hz and {maxMclk}Hz\",\n \"min\": \"The min {field} is: {value}\",\n \"min_adc_sampling_rate\": \"This tool allows a sample rate of {minRate}SPS or higher - please adjust the sample rate.\",\n \"multiplier\": \"No multiplier accepted\",\n \"multiplier_numeric\": \"Only numeric values and multiplier\",\n \"noise_settling\": \"The current circuit configuration is not able to sufficiently settle the kickback on the ADC input prior to acquisition - this tool cannot estimate THD performance of this circuit. Go to Input Settling tab to resolve this issue.\",\n \"noise_thd\": \"THD estimate includes distortion caused by insufficient settling of the ADC kickback prior to acquisition. See the Input Settling tab for tips to resolve this issue.\",\n \"not_settling_AC\": \"AC input Settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_DC\": \"DC input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_Muxed\": \"Multiplexed input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW or slew rate, or lower the sample rate of the ADC.\",\n \"numeric\": \"Only numeric values\",\n \"odr\": \"ODR = FMOD / Decimation = {odr}\",\n \"odr_out_of_range\": \"ODR range for {filter} filter is {min}SPS to {max}SPS\",\n \"purely_resistive_input\": \"The {adc} has a purely resistive input, and does not have switched capacitors at the inputs - hence there won't be any kickback.\",\n \"rc_bw_AC\": \"AC input settling: The bandwidth of the RC filter is too low for AC signals (up to the frequency entered in the Frequency input field). The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the AC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in AC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_DC\": \"DC input settling: The bandwidth of the RC filter is too low, the ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the DC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in DC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_MuxKick\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rc_bw_MuxTransition\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rext_filter_min\": \"The {driver} required Rext to be a minimum of {rextMin}Ω\",\n \"rf\": \"Rf must be non-zero for Inverting topology\",\n \"rf_max\": \"For gain = {gain} V/V, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rf_min\": \"This tool does not allow Rf less than {minimum}Ω for {driver}\",\n \"rf_secondstage_max\": \"For gain = {gain} V/V in the inverting stage, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rg_inf\": \"Rg cannot be InfΩ\",\n \"sampling_rate\": \"SAMPLING RATE = {samplingRate}\",\n \"source_se\": \"Single-ended ADC selected - Please select single-ended for source\",\n \"system_driver_contrib\": \"<p>The driver noise is the dominant contributor of noise in this circuit, and will significantly degrade the overall noise performance of the circuit. Either reduce the bandwidth of the external RC filter (The bandwidth is currently {rcBandwidth}), or consider selecting a driver with lower voltage noise.</p> <p>Excessive noise can also be caused by driver topologies with gain greater than 1, or high Rf and Rg values - consider lowering the gain or Rf and Rg values. Click the info icon next to System Noise for more information regarding the driver circuit noise contributions.</p>\",\n \"thd_driver\": \"The selected driver may be the dominant contributor of distortion in this circuit. To achieve the optimal THD performance of the selected ADC, please consider selecting a different driver.\",\n \"thd_rfilt\": \"The THD performance of the {adc} at {freq} is approximately {diff} lower than typical THD performance - This degradation is caused by a higher than recommended Rext value.\",\n \"topology_to_inv\": \"Change Driver Topology to Inverting\",\n \"vcm_range\": \"{label} should be in the range of {min} to {max}V\",\n \"vsupply\": \"There are issues with the driver configuration that need to be resolved - Noise, Distortion, and Input settling will not be calculated. See the Driver section of the input panel for more information\"\n },\n \"modal\": {\n \"browserIssue\": {\n \"body\": \"We have detected you are using an older version of Edge, likely EdgeHTML 15 or 16. These browser versions have a bug where some numbers may be displayed inaccurately: with as much as 50% error. Please upgrade to EdgeHTML 17 or higher, or use another browser to get accurate results.\",\n \"title\": \"Browser Number Display Issue\"\n }\n },\n \"modal_buttons\": {\n \"cancel\": \"Cancel\",\n \"reset\": \"Reset\",\n \"select\": \"Select\"\n },\n \"next_steps_panel\": {\n \"download_simulation\": \"Download LTspice Simulation\",\n \"download_summary\": \"Download Summary PDF\"\n },\n \"noise_calculations\": {\n \"row_headers\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"ibminus\": \"Ib-\",\n \"ibplus\": \"Ib+\",\n \"noise\": \"Total Noise\",\n \"rc_filter\": \"RC Filter\",\n \"rf\": \"Rf\",\n \"rfilt\": \"Rfilt\",\n \"rg\": \"Rg\",\n \"source\": \"Source\",\n \"vn\": \"Vn\"\n },\n \"table_headers\": {\n \"noise_density\": \"Details of Noise Density Calculations\",\n \"rms\": \"Details of RMS noise calculations\"\n }\n },\n \"parametric_search\": {\n \"ad_converters\": {\n \"all\": \"all precision ADCs\",\n \"in_this_tool\": \"ADCs included in this tool\"\n },\n \"diff_amps\": {\n \"all\": \"all Diff Amps\",\n \"in_this_tool\": \"Diff Amps included in this tool\"\n },\n \"op_amps\": {\n \"all\": \"all Op Amps\",\n \"in_this_tool\": \"Op Amps included in this tool\"\n },\n \"view_parametrics\": \"View parametrics for \\n <a href=\\\"{inThisToolHref}\\\" target=\\\"_blank\\\">\\n {inThisToolName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\\n or\\n <a href=\\\"{allHref}\\\" target=\\\"_blank\\\">\\n {allName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\"\n },\n \"sigma_delta_data\": {\n \"channel_averaging\": {\n \"four_to_one\": \"4:1 Averaging\",\n \"none\": \"No Averaging\",\n \"two_to_one\": \"2:1 Averaging\"\n },\n \"filter_type\": {\n \"fir\": \"FIR\",\n \"fir_wb01\": \"FIR WB01\",\n \"fir_wb04\": \"FIR WB04\",\n \"sinc3\": \"SINC3\",\n \"sinc5\": \"SINC5\",\n \"sinc6\": \"SINC6\"\n },\n \"power_mode\": {\n \"fast\": \"Fast\",\n \"high_performance\": \"High Performance\",\n \"low\": \"Low\",\n \"low_power\": \"Low Power\",\n \"median\": \"Median\"\n }\n },\n \"source_type\": {\n \"diff\": \"Differential\",\n \"se\": \"Single-ended\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI Precision Studio\",\n \"simdds\": \"DDS\",\n \"virteval\": \"Virtual Eval\"\n },\n \"summary\": {\n \"adc_input_settling\": {\n \"labels\": {\n \"acquisition_time\": \"ADC Acquisition Time:\",\n \"conversion_time\": \"ADC Conversion Time:\",\n \"filter_bandwidth\": \"RC Filter Bandwidth:\",\n \"one_lsb\": \"1 LSB:\",\n \"sample_period\": \"ADC Sample Period:\"\n },\n \"title\": \"ADC Input Settling Summary\"\n },\n \"noise_and_distortion\": {\n \"labels\": {\n \"driver_noise\": \"Driver Noise Contribution = \",\n \"enob\": \"ENOB @ {freq}:\",\n \"noise\": \"System Noise:\",\n \"sinad\": \"SINAD @ {freq}:\",\n \"snr\": \"SNR:\",\n \"thd\": \"THD @ {freq}:\"\n },\n \"title\": \"Noise and Distortion Summary\"\n },\n \"optional_source_settings\": {\n \"labels\": {\n \"source_noise_and_distortion\": \"Include source noise and distortion\",\n \"thd\": \"Source THD:\",\n \"wb_noise\": \"Source WB Noise:\"\n },\n \"title\": \"Optional Source Settings\"\n }\n },\n \"sup\": \"<sup>{val}</sup>\",\n \"tabs\": {\n \"ac\": {\n \"static_text\": \"Static AC Input Signal\",\n \"switching_text\": \"Switching AC Input Signal\",\n \"text\": \"AC Input Signal\",\n \"title\": \"Time Domain Simulation - {frequency}Hz Input Signal\"\n },\n \"circuit\": {\n \"text\": \"Circuit\"\n },\n \"dc\": {\n \"static_text\": \"Static DC Input Signal\",\n \"switching_text\": \"Switching DC Input Signal\",\n \"text\": \"DC Input Signal\",\n \"title\": \"Time Domain Simulation - DC Input Signal\"\n },\n \"driver_performance\": {\n \"text\": \"Driver Performance\"\n },\n \"muxed\": {\n \"text\": \"Multiplexed Input\",\n \"title\": \"Time Domain Simulation - Muxed Input Signal\"\n },\n \"next_steps\": {\n \"text\": \"Next Steps\"\n },\n \"noise\": {\n \"text\": \"Noise & Distortion\"\n },\n \"noise_calculations\": {\n \"text\": \"Noise\",\n \"title\": \"System Noise Contributions\"\n },\n \"settling\": {\n \"text\": \"Input Settling\"\n },\n \"thd\": {\n \"text\": \"THD\",\n \"title\": \"Contributions to System THD\"\n }\n },\n \"title\": \"Precision ADC Driver Tool\",\n \"title_alpha\": \"Precision ADC Driver Tool - ALPHA\",\n \"title_beta\": \"Precision ADC Driver Tool - BETA\",\n \"topology\": {\n \"follower\": \"Follower\",\n \"inverting\": \"Inverting\",\n \"non_inverting\": \"Non-Inverting\"\n },\n \"units\": {\n \"a\": \"A\",\n \"bits\": \"bits\",\n \"db\": \"dB\",\n \"f\": \"F\",\n \"hz\": \"Hz\",\n \"lsbs\": \"LSBs\",\n \"ohms\": \"Ω\",\n \"percent\": \"%\",\n \"ppms\": \"ppm\",\n \"price\": \"$ per 1k\",\n \"s\": \"s\",\n \"sps\": \"SPS\",\n \"v\": \"V\",\n \"v_rthz\": \"V/rtHz\",\n \"v_us\": \"V/us\",\n \"v_v\": \"V/V\",\n \"vp_p\": \"Vp-p\",\n \"vrms\": \"Vrms\"\n },\n \"urls\": {\n \"articles\": {\n \"demystifyingData\": \"https://www.analog.com/en/resources/analog-dialogue/articles/demystifying-data-acquisition-systems.html\",\n \"frontEndDesign\": \"https://www.analog.com/en/resources/analog-dialogue/articles/front-end-amp-and-rc-filter-design.html\",\n \"ltSpiceSimulatingSar\": \"https://www.analog.com/en/resources/technical-articles/ltspice-simulating-sar-adc-analog-inputs.html\",\n \"mt047\": \"https://www.analog.com/MT-047\",\n \"mt049\": \"https://www.analog.com/MT-049\",\n \"pinCompatible\": \"https://www.analog.com/en/resources/analog-dialogue/articles/pin-compatible-high-input-impedance-adc-family-enables-ease-of-drive.html\"\n },\n \"shareForum\": \"https://ez.analog.com/amplifiers/differential-amplifiers/\",\n \"videos\": {\n \"analogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990687361001.html\",\n \"bodePlotsAndOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664076001.html\",\n \"calculatingSpectralNoiseDensityToRMSNoise\": \"https://www.analog.com/en/resources/media-center/videos/756529027001.html\",\n \"decompensatedOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664087001.html\",\n \"designingRCFilter\": \"https://www.analog.com/en/resources/media-center/videos/5990689641001.html\",\n \"distortionCausedByLargeRfilt\": \"https://www.analog.com/en/resources/media-center/videos/5995980836001.html\",\n \"driverRingingAndInstability\": \"https://www.analog.com/en/resources/media-center/videos/5990689578001.html\",\n \"drivingACapacitiveLoad\": \"https://www.analog.com/en/resources/media-center/videos/1834672124001.html\",\n \"kickbackCalculations\": \"https://www.analog.com/en/resources/media-center/videos/5990687360001.html\",\n \"loopGainInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834668354001.html\",\n \"nonInvertingOpAmp\": \"https://www.analog.com/en/resources/media-center/videos/756529037001.html\",\n \"parasiticCapacitanceInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834684002001.html\",\n \"precisionAdcDriverTool\": \"https://www.analog.com/en/resources/media-center/videos/5990688166001.html\",\n \"sarAdcsWithReducedKickback\": \"https://www.analog.com/en/resources/media-center/videos/5995985507001.html\",\n \"simulatingAnalogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990689579001.html\"\n }\n },\n \"validation\": {\n \"alternate\": \"One of these properties [{properties}] must be provided. Values provided: [{values}]\",\n \"blank_thd_tab\": {\n \"category\": \"BlankTHDTab PARAMS: Required when the blankTHDTab flag is not set\"\n },\n \"default_driver\": {\n \"category\": \"DEFAULT DRIVER: This is always required and should be in the adc's list of recommended drivers\",\n \"item\": \"Value [{value}] is not in the adc's [{adc}] list of recommended drivers: [{drivers}]\"\n },\n \"recommended_driver\": {\n \"category\": \"RECOMMENDED DRIVERS: All of the adc's recommended drivers should be found in the driver library\",\n \"item\": \"Values [{invalidDrivers}] are not in the driver library\"\n },\n \"required\": {\n \"boolean\": \"Value [{value}] is not a valid boolean\",\n \"category\": \"REQUIRED PARAMS: These params are always required\",\n \"number\": \"Value [{value}] is not a valid number\",\n \"string\": \"Value: [{value}] is not a valid string\"\n },\n \"settling_thd_adj\": {\n \"category\": \"SettlingTHDAdj PARAMS: Required when the settlingTHDAdj flag is set\"\n },\n \"value_set\": \"Value [{value}] is not a valid value. Expected: [{valueSet}]\"\n }\n}], [\"zh-cn\", {\n \"adc_modal\": {\n \"row-count\": \"'{count, plural, =0 {Displaying # of {total} ADCs. Please check the filters provided.} other {Displaying # of {total} ADCs.}}'\",\n \"title\": \"Select an ADC\",\n \"tooltip\": \"Select an ADC\"\n },\n \"adc_type_display\": {\n \"differential\": \"Differential\",\n \"single_ended\": \"Single-ended\"\n },\n \"chart_buttons\": {\n \"reset_zoom\": \"Reset to default\",\n \"zoom_fit\": \"Zoom Fit\"\n },\n \"chart_labels\": {\n \"acquisition_cycle\": \"Acquisition Cycle\",\n \"conversion_cycle\": \"Conversion Cycle\",\n \"enob\": \"ENOB\",\n \"frequency\": \"Frequency (Hz)\",\n \"general_settling\": \"Settling Error = {error} {uom}\",\n \"sinad\": \"SINAD (dB)\",\n \"thd\": \"THD (dB)\",\n \"time\": \"Time (s)\",\n \"volts_kickback\": \"Kickback ~ {value}V\",\n \"volts_settling\": \"Settling Error = {volts}{uom}\"\n },\n \"chart_tabs\": {\n \"adc_input\": \"ADC Input (Volts)\",\n \"lsb\": \"LSB Error\",\n \"ppm\": \"PPM Error\",\n \"volts\": \"Volts\"\n },\n \"column_headers\": {\n \"adc_bw\": \"ADC BW\",\n \"adc_channels\": \"ADC Channels\",\n \"adc_eff_sample_rate\": \"ADC Effective sample rate\",\n \"amps_per_package\": \"Amps/Package\",\n \"bw\": \"Bandwidth\",\n \"device\": \"Device\",\n \"driver_type\": \"Type\",\n \"eff_noise_bw_of_driver_noise\": \"Effective noise BW of driver noise\",\n \"gbw\": \"GBW\",\n \"input_noise_density\": \"Noise Density\",\n \"input_polarity\": \"Analog Input Polarity\",\n \"input_type\": \"Analog Input Type\",\n \"iq\": \"Iq\",\n \"noise\": \"Noise\",\n \"noise_bw\": \"Equiv. Noise BW\",\n \"noise_density\": \"Noise Density\",\n \"noise_gain_factor\": \"Noise Gain Factor\",\n \"num_aliased_passbands\": \"Number of aliased passbands\",\n \"output_referred\": \"Output Referred Noise Density\",\n \"package\": \"Package\",\n \"price\": \"Price\",\n \"rc_filter_equiv_bw\": \"RC Filter Equiv BW\",\n \"resolution\": \"Resolution\",\n \"sampling_rate\": \"Sample Rate\",\n \"slew_rate\": \"Slew Rate\",\n \"snr\": \"SNR\",\n \"thd\": \"THD\",\n \"vnoise_density\": \"VNoise Density\",\n \"vref_max\": \"Vref Max\",\n \"vref_min\": \"Vref Min\",\n \"vs_span_max\": \"Vs Span Max\",\n \"vs_span_min\": \"Vs Span Min\"\n },\n \"driver_modal\": {\n \"subheadings\": {\n \"also_view_recommended_drivers\": \"Also view recommended drivers for {part} on product page\",\n \"recommended_drivers_for\": \"Recommended Drivers for {part}\"\n },\n \"title\": \"Select a Driver\",\n \"tooltip\": \"Select a Driver\"\n },\n \"driver_types\": {\n \"amp\": \"Op Amp\",\n \"diffamp\": \"Diff Amp\"\n },\n \"ember-aditools-page\": {\n \"card\": {\n \"checkbox-tooltip\": \"Toggle\",\n \"help-tooltip\": \"Click for help\",\n \"part-number-tooltip\": \"Click to select part\"\n },\n \"common\": {\n \"cancel\": \"取消\",\n \"close\": \"关闭\",\n \"load\": \"加载\",\n \"ok\": \"确定\",\n \"open\": \"打开\",\n \"save\": \"保存\",\n \"select\": \"选择\"\n },\n \"dialogs\": {\n \"feedback\": {\n \"email\": \"电子邮件:\",\n \"feedback\": \"你的反馈:\",\n \"give-feedback\": \"给予反馈\",\n \"invitation\": \"请告诉我们你对这款工具的看法,任何好的或坏的。 \",\n \"name\": \"姓名:\",\n \"optional\": \"(Optional)\",\n \"title\": \"提交您的意见或反馈!\"\n },\n \"load\": {\n \"choose-button\": \"选择文档\",\n \"message\": \"从计算机文件中加载设计\",\n \"no-file-selected\": \"No file selected.\",\n \"title\": \"加载设计\"\n },\n \"samples\": {\n \"add-button\": \"添加所选样片至购物车\",\n \"add-link\": \"Add to Order\",\n \"add-to-cart-column\": \"样片加入购物车\",\n \"model-column\": \"元器件模型/封装\",\n \"part-column\": \"组成部分\",\n \"quantities-warning\": \"ADI公司向符合条件的客户免费限量提供样片。 出于客户对我们产品样片有大量需求,两周内,每款器件您只能申请2片,每份申请最多申请4款器件。 如果您的设计需要额外数量的产品,请在网站上通过在线购买或者联系我们的授权代理商购买。\",\n \"title\": \"申请样片\",\n \"unavailable-message\": \"无法申请样片\"\n },\n \"save\": {\n \"save-desc-error\": \"请提供描述\",\n \"save-desc-field\": \"介绍\",\n \"save-name-error\": \"请输入设计名称\",\n \"save-name-field\": \"设计名称\",\n \"title\": \"保存\"\n },\n \"share\": {\n \"share-button\": \"Email\",\n \"share-design-information\": \"<p>若要共享您的设计副本,请在 <b>发件人名称</b> 字段中输入您的姓名。然后在 <b>共享设计</b> 字段中输入收件人的电子邮件地址。多个收件人的地址需分行填写。</p><p>收件人将收到ADI发出的电子邮件,内含包括共享设计ZIP存档的附件。您只需要从ZIP文件中提取设计并使用应用的“加载设计”功能上传。</p><p>本过程为每个收件人创建一份设计副本。收件人编辑他们的副本并不会影响您保存在您自己的电脑中的设计。</p>\",\n \"share-dialog-ng-message\": \"无法共享设计,这可能是因为服务器连接问题。请重试。\",\n \"share-dialog-ok-message\": \"已共享设计\",\n \"share-duplicate-email\": \"找到重复的电子邮件\",\n \"share-email-empty-error\": \"请输入电子邮件地址\",\n \"share-email-field\": \"收件人\",\n \"share-email-format-error\": \"您输入的电子邮件地址中有一个或多个无效,请更正后重试。\",\n \"share-email-placeholder\": \"电子邮件地址\",\n \"share-name-error\": \"请输入设计名称\",\n \"share-name-field\": \"设计名称\",\n \"share-sender-error\": \"请提交收件人姓名\",\n \"share-sender-field\": \"收件人姓名\",\n \"title\": \"通过邮件发送我的设计\"\n },\n \"system\": {\n \"application-busy\": \"处理中...\",\n \"title\": \"应用消息\"\n }\n },\n \"footer\": {\n \"accessibility\": \"可访问性\",\n \"cookie-settings\": \"Cookie设置\",\n \"copyright-text\": \"1995 - 2025 Analog Devices, Inc. 保留所有权利\",\n \"icp-id\": \"<a href=\\\"https://beian.miit.gov.cn/\\\">沪ICP备09046653号-1</a>\",\n \"legal\": \"法律与风险\",\n \"privacy-policy\": \"隐私政策\",\n \"privacy-settings\": \"隐私设置\",\n \"sitemap\": \"网站地图\"\n },\n \"header\": {\n \"applications\": \"应用\",\n \"company\": \"公司\",\n \"design-center\": \"设计中心\",\n \"education\": \"教育培训\",\n \"parametric-search\": \"参数搜索\",\n \"products\": \"产品\",\n \"spoken\": {\n \"homepage\": \"ADI主页\",\n \"sitelinks\": \"ADI网站链接\"\n },\n \"support\": \"支持\"\n },\n \"menubar\": {\n \"chinese\": \"简体中文\",\n \"english\": \"English\",\n \"help\": \"帮助\",\n \"japanese\": \"日本語\",\n \"load\": \"加载设计\",\n \"save\": \"保存\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC驱动器\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"仪表放大器\",\n \"filterwizard\": \"模拟滤波器\",\n \"noise\": \"噪声\",\n \"photodiode\": \"光电二极管\",\n \"precisionstudio\": \"ADI<span class=''service-mark''>℠</span> Precision Studio\",\n \"signalchaindesigner\": \"Signal Chain\",\n \"simdds\": \"DDS\",\n \"spoken\": {\n \"studiolinks\": \"ADI Precision Studio链接\"\n },\n \"virteval\": \"Virtual Eval\"\n },\n \"toolbar\": {\n \"actions\": \"Actions\"\n }\n },\n \"footnote\": \"†\",\n \"icon_modal\": {\n \"about_help\": {\n \"body\": \"<p>The Precision ADC Driver Tool provides a specialized simulation environment where the engineer can quickly determine the impact of the driver and RC filter selection on the overall system performance of an ADC signal chain.</p><ul><li>Allows the user to optimize the driver and RC filter choice for their end application requirements, and provides an estimate of the impact of the selected driver and RC filter on overall system noise and distortion.</li><li>Enables the user to simulate the settling of the ADC input for various input scenarios, given the selected driver and RC filter.</li><li>Allows the user to quickly determine the performance tradeoffs between various ADCs and drivers, which would otherwise require complex calculations and simulations.</li></ul>\",\n \"icon_text\": \"Help\",\n \"title\": \"About the Precision ADC Driver Tool\"\n },\n \"feedback\": {\n \"email_label\": \"EMail:\",\n \"feedbackDialogNgMessage\": \"Failed to send user feedback. This may be due to a poor connection to the server. Please try again.\",\n \"feedbackDialogOkMessage\": \"Your feedback has been sent.\",\n \"icon_text\": \"Feedback\",\n \"intro\": \"Please let us know your opinion of this tool, good and bad.\",\n \"label\": \"Your feedback\",\n \"name_label\": \"Name:\",\n \"placeholder\": \"(Optional)\",\n \"submit\": \"Tell Us\",\n \"title\": \"Give us your feedback!\"\n },\n \"share\": {\n \"blog\": \"ADC Drivers support community\",\n \"copy\": \"Copied \",\n \"copyFail\": \"Copying failed \",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"icon_text\": \"Share\",\n \"p1\": \"1. Copy this link to your clipboard\",\n \"p2\": \"2. Paste it into an email, EngineerZone® forum or a social media post\",\n \"subHeader2\": \"Want ADC driver tips? Check out EngineerZone®\",\n \"title\": \"Sharing This Circuit Configuration Is Easy!\"\n },\n \"system\": {\n \"applicationBusy\": \"Working...\",\n \"header\": \"Application Message\"\n },\n \"video\": {\n \"body\": \"\\n <strong>Driving SAR ADCs Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{analogInputModel}\\\">Analog Input Model</a></li>\\n <li><a target='_blank' href=\\\"{kickbackCalculations}\\\">Kickback Calculations</a></li>\\n <li><a target='_blank' href=\\\"{designingRCFilter}\\\">Designing the RC Filter</a></li>\\n <li><a target='_blank' href=\\\"{simulatingAnalogInputModel}\\\">Simulating the Analog Input Model in LTspice</a></li>\\n <li><a target='_blank' href=\\\"{precisionAdcDriverTool}\\\">Precision ADC Driver Tool</a></li>\\n <li><a target='_blank' href=\\\"{driverRingingAndInstability}\\\">Driver Ringing and Instability</a></li>\\n <li><a target='_blank' href=\\\"{distortionCausedByLargeRfilt}\\\">Distortion Caused by Large Rfilt</a></li>\\n <li><a target='_blank' href=\\\"{sarAdcsWithReducedKickback}\\\">SAR ADCs with Reduced Kickback</a></li>\\n </ul>\\n <strong>Stability 101 Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{loopGainInOpAmps}\\\">Loop Gain in Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{bodePlotsAndOpAmps}\\\">Bode Plots and Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{decompensatedOpAmps}\\\">Decompensated Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{drivingACapacitiveLoad}\\\">Driving a Capacitive Load</a></li>\\n <li><a target='_blank' href=\\\"{parasiticCapacitanceInOpAmps}\\\">Parasitic Capacitance in Op Amps</a></li>\\n </ul>\\n \",\n \"icon_text\": \"Videos\",\n \"title\": \"Videos\"\n }\n },\n \"info_modal\": {\n \"HiZ\": {\n \"body\": \"<p>The {adc} includes a high-Z mode feature, which reduces the charge kickback that occurs at the start of each acquisition cycle. The reduced kickback makes the {adc} easier to drive, and can be enabled via register setting.</p><p>High-Z mode should not be enabled for higher input frequencies (>100kHz) or for multiplexed input applications. </p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> and <a target=\\\"_blank\\\" href=\\\"{analogPinCompatibleArticleLink}\\\">related article</a> for more information on high-Z mode.</p>\",\n \"title\": \"High-Z mode\"\n },\n \"LP\": {\n \"body\": \"<p>The {driver} implements two fully characterized active power modes (full power, low power) to optimize system power and performance trade-offs.</p><p>See the datasheet at <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">link</a> for more information</p>\",\n \"title\": \"Low Power Mode\"\n },\n \"PrechargeOn\": {\n \"body\": \"<p>The {adc} has analog input precharge buffers that reduce the switching kickback from the sampling stage to the external circuitry. The precharge buffers reduce the average input current and reduce the effects of sampling distortion.</p><p>This reduction in drive requirements allows pairing of the {adc} with lower power, lower bandwidth driver amplifiers.</p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> for more information</p>\",\n \"title\": \"Precharge Mode\"\n },\n \"Seq\": {\n \"body\": \"<div id=\\\"sequencer-modal-content\\\"><div><p><b>Sequencer Disabled (Static):</b></p><ul><li>No channel Sequence</li><li>AD4696 samples Channel INx only</li><li>two CNV rising edges indicating conversion on channel INx, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] of sample 0 occurs at t = 0 seconds</li><li>Kickback occurs at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 T_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Static.png\\\"/></div><div><p><b>Sequencer Enabled (Dynamic):</b></p><ul><li>Simulation equivalent programing channel sequencer going from INy going to INx</li><li>AD4696 samples INx</li><li>Simulation includes two CNV rising edges, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] occurs at t = 0 seconds</li><li>Kickback occurs on channel INx at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 t_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Dynamic.png\\\"/></div></div>\",\n \"title\": \"Sequencer mode\"\n },\n \"ac_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The AC Input Settling simulation will run when the input signal conditions would result in kickback that is more difficult to settle than the DC Input Settling simulation. For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for DC Input Settling first.</p><p>The AC Input Settling simulation will run for scenarios where the input frequency/bandwidth of interest will result in a larger kickback to settle compared to lower frequency (or DC) input signals. These scenarios will include ADCs with architectures where the kickback is dependent on the voltage difference between samples, and where the frequency of the input signal has a high enough slew to impact the kickback size. </p><p>For ADCs where kickback is not dependent on sample-to-sample voltage difference, or for lower input frequencies (and lower slew), this simulation is not relevant and will not run.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information on input slew-related kickback calculations.</p><p>The AC Settling simulation corresponds to scenarios in hardware where the AC performance degrades significantly as input frequency (and corresponding input slew) increases.</p><p>Issues related to AC settling can be examined at the bench with a high quality sinusoidal input source. If AC performance (SNR, THD, etc) can be improved by slowing the sample rate down, then insufficient settling from kickback is a possible issue. </p>\",\n \"title\": \"AC input settling simulation\"\n },\n \"adc_input\": {\n \"body\": \"<p>This section allows the user to change the selected ADC, as well as change operating conditions of the selected ADC.</p><ul><li>Clicking the ADC name will bring up the selection table. The selection table can be sorted and filtered.</li><li>When selecting an ADC, the sample rate will be automatically set to the maximum sample rate and the Vref will be set using the Vref value used in specifications table of the ADC datasheet.</li><li>Changing the sample rate will impact the sample period and acquisition time of the ADC, which can be observed in the Input Settling tab.</li><li>Changing the Vref will reduce the full scale range of the ADC, which will impact SNR.</li></ul><p>This tool focuses on SAR ADCs, but the selection list does not include all SAR ADCs in the ADI portfolio. In general, it's the higher sample rate, higher precision SAR ADCs that are included in this tool. </p><p>See <a target=\\\"_blank\\\" href=\\\"{sarAdcParametricSearchUrl}\\\">the parametric table of all SAR ADCs</a> and <a target=\\\"_blank\\\" href=\\\"{precisionAdcParametricSearchUrl}\\\">parametric table of all precision ADCs</a></p>\",\n \"title\": \"ADC and settings\"\n },\n \"adc_noise_bandwidth\": {\n \"alt\": \"Sigma Delta Equiv Bandwidth\",\n \"body\": \"<p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth.</p><p>The equivalent noise bandwidth calculation also factors the dominant bandwidth for each contribution, which may not be limited by bandwidth of the individual stage. For example, if the RC filter bandwidth is lower than the driver bandwidth, the RC filter will limit the bandwidth of all noise contributions in the driver and source, and the RC filter bandwidth is the value that will be reported in the 'Equivalent Noise Bandwidth' column for the source, driver, and RC filter contributions.</p><p>For SAR ADCs, the Equivalent Noise Bandwidth is a characteristic of the ADC and is not impacted by the signal chain.</p><p>For Sigma-Delta ADCs with decimation (digital filtering), the filter and decimation settings will impact both the ADC bandwidth as well as the signal chain effective bandwidth. </p>\",\n \"formula_labels\": {\n \"aliased_passbands\": \"N = ceiling((1.57 * Fp)/Fs) + 1\",\n \"eff_noise\": \"(2N-1)*fc\",\n \"fc\": \"Fc\",\n \"fp\": \"1.57 * Fp\",\n \"fs\": \"Fs\"\n },\n \"image_details\": \"<ul><li>The digital filtering of the ADC is illustrated in blue, with passbands (Fc) repeating at integer values of effective sample rate (Fs) of the ADC. The response is simplified as a brick wall response for this calculation.</li><li>The analog RC filter is illustrated in red, with a simplified brick wall passband (Fp).</li><li>The bandwidth of the RC filter (Fp) will likely need to be much larger than the sample rate (Fs). As a result, the noise from the signal chain (including noise from the driver) will be captured by the ADC at multiple aliased passbands, N being the first passband that is adequately filtered out by the RC filter.</li></ul>\",\n \"table_header\": \"Calculations for the current tool configuration:\",\n \"title\": \"Equivalent Noise Bandwidth Calculations\"\n },\n \"dc_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>For each sample cycle, the ADC switches between a conversion cycle and an acquisition cycle. As the ADC switches from conversion to acquisition, charge on the ADC sampling cap is dumped onto the input node of the ADC, which causes a \\\"kickback\\\" that must be settled by the driver. This kickback must be sufficiently settled by the end of the acquisition cycle - unsettled kickback will result in measurement errors.</p><p>The size of the kickback disturbance on the input of the ADC (and the output of the driver) is dependent on the ADC architecture, especially for low frequency or DC input signals. Some ADCs contain \\\"pre-charge\\\" circuitry, that will minimize the charge that is dumped on the ADC input if the voltage difference between each sample is small. Other ADCs will have kickback that is not related to the voltage difference between samples. This tool accounts for ADC architecture differences in the simulation models for each ADC.</p><p>The kickback size is also dependent on the value of the external filter capacitor, Cext. This capacitor dampens the kickback - the amount of kickback required to settle is partially dependent on the value of this capacitor. A larger value capacitor will provide more dampening, but also has the effect of lowering the filter bandwidth, and slowing the rate of settling. In other words, more dampening due to larger Cext does not necessarily improve settling.</p><p>The response of the driver to this kickback is dependent on several parameters, including gain bandwidth, slew rate, and output impedance.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> and <a target=\\\"_blank\\\" href=\\\"{analogLtSpiceSimulatingSarArticleLink}\\\">LTspice: Simulating SAR ADC Analog Inputs</a> for more information on driving SAR ADCs.</p><p>The DC Input Settling plot in this tool is a simulation of a simple scenario that is not difficult to setup and measure in hardware. The input is a simple DC signal at the full scale voltage of the ADC, based on the Vref setting in the ADC input panel. For ADCs that contain \\\"pre-charge\\\" circuitry, the kickback can vary depending on the DC input voltage - the simulation for these ADCs assumes a worst-case kickback, so the user can design a circuit that ensures kickback for all DC input values will be sufficiently settled.</p><p>Issues related to DC settling can be examined at the bench with a DC input source. Slowing the sample rate of the ADC down will increase the acquisition cycle time - and increasing the acquisition cycle will allow more time for the kickback to settle. With hardware, if slowing the sample rate results in the ADC measurement results changing (but there was no change to the input voltage) - a measurement error due to unsettled kickback could be occurring.</p><p>Clicking on \\\"Download LTspice simulation\\\" in this tab will provide an equivalent schematic/simulation for the DC Input settling plot. Unzip the downloaded .zip file, and open \\\"Settling simulation for ADC and driver circuit.asc\\\". The corresponding .plt file will add traces to the plot window automatically when simulation is run.</p>\",\n \"title\": \"DC input settling simulation\"\n },\n \"default\": {\n \"body\": \"WIP\",\n \"title\": \"WIP Title\"\n },\n \"driver_input\": {\n \"body\": \"<p>The section allows the user to change the selected driver, as well as change the configuration of the driver circuitry.</p><ul><li>Clicking the driver name will bring up the driver selection table. The selection table can be sorted and filtered.</li><li>Recommended drivers for the selected ADC will be highlighted at the top of the table. The ADC product page and datasheet also provides driver recommendations.</li><li>The topology of the driver circuit can be modified - options are inverting, non-inverting, and follower. Topologies that are not compatible with the selected ADC/driver will not be selectable.</li><li>The circuit gain and feedback network can be adjusted using the gain and Rf input fields.</li><li>The driver supplies (+Vs and -Vs) are automatically calculated for the selected topology, driver, and specified Vref.</li></ul><p>+Vs and -Vs are automatically set to values that allow the driver to operate properly while providing enough headroom to drive the full input range of the ADC, determined by Vref. Changing the driver, topology, or Vref will cause the supplies to be recalculated. The user can adjust the supplies to verify proper operation at a specific supply voltage - the tool will issue a warning if there is a headroom or supply span violation.</p><p>For driver topologies that include Rf and Rg, the maximum allowed Rf and Rg limits are to ensure the circuit remains stable. The minimum allowed Rf and Rg limits are to ensure the increased output current does not degrade distortion performance on driver.<p>Selected driver, topology, and feedback network will all impact the settling behavior of the system. See the Input Settling tab to verify kickback will settle sufficiently with specified driver, topology, and feedback network.</p>\",\n \"title\": \"Driver and settings\"\n },\n \"enob\": {\n \"body\": \"WIP\",\n \"title\": \"ENOB Help\"\n },\n \"filter_input\": {\n \"body\": \"<p>The Rext and Cext input fields allow the user to change the filter component values in the interface circuitry.</p><p>The default Rext and Cext and automatically set to a recommended value for the selected ADC. While these default values are a good starting point, they may not be ideal for all drivers, driver configurations, and input frequencies.</p><p>Some things to consider when making changes to the RC filter values:</p><ul><li>Settling issues in the Input Settling tab can sometimes be resolved by increasing the bandwidth of the RC filter. Be aware that lowering the Rext can cause excess ringing and instability. Lowering the Cext can be a good option for increasing RC bandwidth, but it will also result in increased noise. Changes in noise and SNR can be observed in the Noise and Distortion tab</li><li>Sometimes, increasing Rext can help with ringing - be sure to decrease Cext as well, to ensure bandwidth is high enough for kickback to settle.</li><li>Increasing Rext can help with ringing and instability, but can sometimes cause increased ADC distortion at the input frequency of interest. Check the Noise and Distortion tab to view how changes to Rext may impact the ADC distortion.</li><li>Multiplexed Inputs may require a higher bandwidth RC filter than the default settings for Rext and Cext. Adjustments will probably need to be made to the RC filter for these circuits. See the input Settling tab for the Multiplexed Input simulation to verify kickback will settle sufficiently with specified Rext and Cext.</li></ul>\",\n \"title\": \"Filter settings\"\n },\n \"help-tooltip\": \"Click for help\",\n \"input_signal_input\": {\n \"body\": \"<p>This section allows the user to change the configuration of the input signal.</p><ul><li>For fully-differential ADC circuits, a single-ended or differential input signal can be selected. The resulting circuitry can be viewed in the Circuit tab.</li><li>The target frequency/bandwidth of interest can be specified. This will be used in the distortion and settling simulations.</li><li>The user can specify if the signal chain will include a multiplexer, by checking \\\"Input will be multiplexed.\\\" See the help topic for that check box for more information.</li></ul><p>Distortion of both the ADC and driver can be highly dependent on the input frequency of interest. Distortion across input frequency for the ADC, driver, and overall system can be viewed in the Noise and Distortion tab.</p>\",\n \"title\": \"Input signal settings\"\n },\n \"multiplexed\": {\n \"body\": \"<p>When the \\\"Input will be multiplexed\\\" option is checked, the Precision ADC Driver tool input settling simulations will include a simulation for a multiplexed input circuit configuration. See the \\\"Multiplexed Input\\\" simulation plot in the \\\"Input Settling\\\" simulation tab.</p><p>In the case of a multiplexed input, the driver + ADC must be able to settle extreme signal swing cases, where a multiplexer might switch between inputs that differ by the full scale of the ADC. For this simulation, a \\\"worst case\\\" scenario is assumed, where the ADC input must swing from 0V to the full scale of the ADC (Vref) within a single sample cycle.</p><p>To settle this \\\"worst case\\\" scenario, the swing of the ADC input (and resulting kickback) will require an RC filter bandwidth that is higher than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR Analog-to-Digital Converter</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Multiplexed input\"\n },\n \"muxed_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The Multiplexed Input simulation will run when the \\\"Input will be multiplexed\\\" box in the Input Signal panel on the left is checked. This simulation uses the same modelling techniques that are used in the DC Input Settling simulation, but the input signal is modified to account for a worst-case input multiplexing scenario where the multiplexer switches from a mux input with a 0V input value to a mux input with a full scale (Vref) value.</p><p><i>For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for ADC Input Settling first.</i></p><p>In a multiplexed input configuration, the driver must be able to drive full scale signal changes in a single sampling cycle, in addition to settling the kickback. A multiplexed input configuration may require the external RC filter to have a higher bandwidth than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Muxed Input Signal\"\n },\n \"noise_contributions\": {\n \"body\": \"<p>The noise table shows the contribution of each circuit element to the overall noise of the circuit. These noise calculations are combined with the THD curves (in the \\\"THD\\\" tab) to calculate SINAD and ENOB curves across input frequency.</p>{sourceNoiseText}<p><b>Driver Noise:</b></p><p>The driver noise estimation is a combination of the amplifier noise (voltage and current, referred to the output) and noise from the resistors in the circuit. The driver noise can be reduced by lowering the bandwidth of the external RC filter - but the RC filter also impacts the settling behavior as well THD of the ADC.</p><p>While a lower RC bandwidth helps with noise, a bandwidth that's too low will not allow the output of the driver to settle within the acquisition time (See the \\\"Input Settling\\\" tab to check settling simulation).</p><p><a target=\\\"_blank\\\" href=\\\"{opAmpVideoLink}\\\">VideoTutorial - Noise of a Non-inverting Operational Amplifier Circuit</a></p><p><a target=\\\"_blank\\\" href=\\\"{mt047Pdf}\\\">Tutorial - Op Amp Noise</a></p><br><p><b>ADC Noise:</b></p><p>The noise of the ADC is estimated using SNR specifications from the datasheet. To get optimal SNR performance from the Driver + ADC circuit, select a driver with low enough noise performance that noise from the driver is not the primary contributor to the system noise.</p><br><p><b>System Noise:</b></p><p>The noise contribution of the source, driver, and ADC are combined via root sum squared (RSS) method to calculate an overall system noise estimate.</p>\",\n \"source_noise_text\": \"<p><b>Source Noise:</b></p><p>The source noise is derived from the Source Wide-band (WB) noise input field, and allows the user to incorporate estimated source noise into the overall noise estimation.</p><br>\",\n \"title\": \"Noise Contributions\"\n },\n \"noise_density\": {\n \"body\": \"<p>The 'Details of Noise Density Calculations' table contains the noise density calculations for the source (when enabled), the amplifier, the amplifier's feedback network, and the RC filter between the amplifier and the ADC.</p><p>The 'Input Noise Density' column show the noise of each contribution. Amplifier voltage and current noise density can be found in the amplifier datasheet. The low frequency 1/f noise contribution of the amplifier voltage and current noise density is not included in the tool calculations. Resistor noise density can be calculated using the equation sqrt(4kTR), where k is Boltzmann's Constant (1.38e-23 J/K), T is the absolute temperature, and R is the resistor value.</p><p>The 'Noise Gain Factor' column shows the noise gain of each contribution. Details about calculating noise gain for op amps can be found in <a href=\\\"{mt049Pdf}\\\" target=\\\"_blank\\\">MT-049</a> and <a href=\\\"{nonInvertingOpAmpVideo}\\\" target=\\\"_blank\\\">Noise of a Non-Inverting Operational Amplifier Circuit</a> whiteboard video. Details about calculating noise gain for fully differential amplifiers can be found in the 'Estimating the Output Noise Voltage' section of the datasheet (see the ADA4945-1 datasheet for an example).</p><p>The 'Output Referred Noise Density' column shows the product of the noise density and the noise gain for each contribution. This is noise density of each contribution seen at the output of the signal chain (and at the input of the ADC). These results are used to calculate the RMS noise in the 'Details of RMS Noise Calculations' table above.</p>\",\n \"title\": \"Noise Density Calculations\"\n },\n \"optional_source_settings\": {\n \"body\": \"The \\\"Include source noise and distortion\\\" option allows users to include additional noise and distortion from source and other circuitry that occurs prior to the driver input.</p><p> The noise and distortion entered into the source fields will be included in the system performance calculations when the box is checked. When the \\\"Include source noise and distortion\\\" box is unchecked, source contributions to the system performance are ignored in the calculations.\",\n \"title\": \"Source setting information\"\n },\n \"rc_filter_bandwidth\": {\n \"body\": \"<p>The bandwidth of the RC Filter is determined from the combined values of Rext, Cext, and the ADC input capacitance. The input capacitance of the ADC is combines with the filter capacitance when the input signal is being captured by the ADC.</p><p>Filter BW = 1 / (2 * pi * Rext * (Cext + Cadc))</p><p>Where Cadc of selected ADC ({selectedAdc}) is {cadc}{cadcUom}</p><img src=\\\"svgs/RC_Filter_Bandwidth.svg\\\" alt=\\\"RC Filter Bandwidth\\\" title=\\\"RC Filter Bandwidth\\\" />\",\n \"title\": \"RC Filter Bandwidth\"\n },\n \"rms_noise\": {\n \"body\": \"<p>The 'Details of RMS Noise Calculations' table contains the RMS noise calculations for the source (when enabled), the amplifier, the amplifier's feedback network, the RC filter, and the ADC.</p><p>The 'Output Referred Noise Density' column contains the results of the calculations in the 'Details of Noise Density Calculations' table.</p><p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth. For more information about equivalent noise bandwidth calculations, see the help topic in the 'Equivalent Noise Bandwidth' column.</p><p>The 'RMS Noise' column contains the product of the Output Referred Noise and the square root of the Equivalent Noise Bandwidth. Details about calculating RMS noise from noise density can be found in the <a href=\\\"{video}\\\" target=\\\"_blank\\\">Calculating Spectral Noise Density to RMS Noise</a> whiteboard video.</p>\",\n \"title\": \"RMS Noise Calculations\"\n },\n \"sinad\": {\n \"body\": \"WIP\",\n \"title\": \"SINAD Help\"\n },\n \"thd\": {\n \"body\": \"<p>The THD plot shows an approximation of THD contributions of the various components of the overall circuit, along with an estimate of the combined THD due to all contributions. This plot shows an estimation of THD across a range of input frequencies.</p><p>The THD curves are combined with the overall noise (in the \\\"Noise\\\" tab) to calculate SINAD and ENOB at the given input frequency. The Noise and Distortion Summary panel lists calculations for THD, SINAD, and ENOB at the input frequency specified in the input panel on the left side of the tool.</p><br><div style=\\\"{freqContainerStyle}\\\"><p><b>Input Frequency Marker:</b></p><p>This vertical line marker corresponds to the frequency entered in the Input section of the input panel, to the left. Even though the THD plot shows THD performance across a range of input frequencies, the results in the Simulation Summary (THD, SINAD, ENOB) are calculated at this input frequency.</p></div><br><div style=\\\"{sourceContainerStyle}\\\"><p><b>Source THD Curve:</b></p><p>This is a horizontal line on the plot that can be used to approximate THD introduced at the input of the circuit, and can be set using the optional input fields below the summary panel. This is THD that is not contributed by the ADC and Driver circuitry, but is counted in the overall system THD estimate.</p></div><br><div style=\\\"{driverContainerStyle}\\\"><p><b>Amplifier THD Curve:</b></p><p>The THD of the amplifier is estimated using approximations of the datasheet 2nd and 3rd Harmonic Distortion curves, and combining them into an overall estimated THD curve for the amplifier.</p></div><br><div style=\\\"{adcContainerStyle}\\\"><p><b>ADC THD Curve:</b></p><p>The ADC THD curve is an estimation of the THD performance across frequency, and can degrade with higher external R values. The ADC THD curve is an estimated model built from a combination of datasheet curves and other lab measurements, and is only an approximation of THD performance - actual hardware measured is required to verify performance of overall circuit (driver, RC filter, ADC).</p><p>The ADC THD curve not include THD performance degradation due to inadequate settling of circuit from ADC kickback. See the \\\"Input Settling\\\" tab for simulation of ADC kickback and settling. THD degradation due to settling issues can often be improved by slowing down the sample rate (increasing the sample period, and as a result, the acquisition time). If THD improves with slower sample rate, investigate driver and RC selection as a contributing factor. See \\\"Input Settling\\\" tab for more information about settling issues.</p></div><br><div style=\\\"{systemContainerStyle}\\\"><p><b>Combined System THD:</b></p><p>The estimated THD contribution of the amplifier, ADC, and source are combined into an estimated THD for the circuit, and is shown as a heavy black curve.</p></div>\",\n \"title\": \"THD Help\"\n },\n \"thd_driver\": {\n \"body\": \"<p>This warning is displayed when the Precision ADC Driver Tool detects that the driver is degrading the distortion performance of the overall signal chain.</p><p>If the driver THD is estimated to be higher than the ADC THD at the input frequency of interest (set in the left-side input panel), then the given circuit will not achieve the distortion/THD performance specified in the ADC datasheet.</p><p>The driver and ADC THD curves in this tool are built using curves and specifications from the datasheets - please refer to the datasheet for more details on THD performance of those devices.</p>\",\n \"title\": \"Driver may be dominant THD contribution\"\n },\n \"thd_rfilt\": {\n \"body\": \"<p>The ADC input capacitance has a small amount of non-linearity - this non-linearity is usually negligible for lower input frequencies. But at higher input frequencies, this non-linear capacitance can start to dominate the distortion/THD performance.</p><p>This distortion contribution will also increase when higher Rext values are used. Lowering the Rext value can help, if this is the dominant distortion contribution.</p><p>See <a target='_blank' href=\\\"{distortionUrl}\\\">Distortion caused by Large Rfilt</a> video tutorial for more information on this topic.</p>\",\n \"title\": \"Distortion caused by large Rext\"\n }\n },\n \"input_labels\": {\n \"cext\": \"Cext\",\n \"channelAveraging\": \"Channel Averaging\",\n \"decimationRate\": \"Decimation\",\n \"enable_filter\": \"Filter enable\",\n \"filterType\": \"Filter Type\",\n \"frequency\": \"Frequency\",\n \"gain\": \"Gain\",\n \"mclk\": \"MCLK\",\n \"mclkDiv\": \"MCLK_DIV\",\n \"multiplexed\": \"Input will be multiplexed\",\n \"output_data_rate\": \"Output Data Rate (ODR)\",\n \"powerMode\": \"Power Mode\",\n \"rext\": \"Rext\",\n \"rf\": \"Rf\",\n \"sampling_rate\": \"Sample Rate\",\n \"thd\": \"THD\",\n \"vSupplyNeg\": \"-Vs\",\n \"vSupplyPos\": \"+Vs\",\n \"variant\": \"Enable {variant} mode\",\n \"vcm\": \"Vcm\",\n \"vin\": \"Vin\",\n \"vocm\": \"Vocm\",\n \"vout\": \"Vout\",\n \"vref\": \"Vref\",\n \"wb_noise\": \"WB noise\"\n },\n \"input_panels\": {\n \"headings\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"filter\": \"Filter\",\n \"input_signal\": \"Input\"\n }\n },\n \"labels\": {\n \"adi_logo\": \"ADI Logo\",\n \"adi_precision_studio_links\": \"ADI Precision Studio Links\",\n \"browsers\": {\n \"chrome\": \"Chrome\",\n \"firefox\": \"Firefox\",\n \"ie\": \"Internet Explorer 11 (or newer)\",\n \"msie\": \"MSIE\"\n },\n \"close\": \"Close\",\n \"collapse\": \"Collapse\",\n \"error\": \"Error\",\n \"expand\": \"Expand\",\n \"logo\": \"Logo\",\n \"ok\": \"Ok\",\n \"tools\": \"Tools\",\n \"unable_to_calc\": \"Unable to Calculate\",\n \"with_driver\": \"With Driver:\"\n },\n \"legend_labels\": {\n \"actual_adc_input\": \"Actual ADC Input\",\n \"ideal_adc_input\": \"Ideal ADC Input\",\n \"inx\": \"INX\",\n \"iny\": \"INY\",\n \"thd_noise_adc\": \"ADC and RC Filter Contribution\",\n \"thd_noise_driver\": \"Driver Contribution\",\n \"thd_noise_signal\": \"Frequency\",\n \"thd_noise_source\": \"Source Contribution\",\n \"thd_noise_system\": \"Overall System\"\n },\n \"logo_menu\": {\n \"applications\": \"Applications\",\n \"community\": \"Community\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"products\": \"Products\",\n \"support\": \"Support\"\n },\n \"lsb_settling\": {\n \"eighth\": \"1/8\",\n \"half\": \"1/2\",\n \"one\": \"1\",\n \"quarter\": \"1/4\",\n \"sixteenth\": \"1/16\"\n },\n \"messages\": {\n \"ac_kickback\": \"Signals below {frequencyCutoff}Hz have the same settling time as DC for {adc}\",\n \"ad4080_rext_error\": \"The {adc} required Rext to be between {rfiltMin} and {rfiltMax}.\",\n \"adc\": \"For {partNumber}, maximum sample rate is {maxSampleRate} and maximum voltage for Vref is {vrefMax}{vrefUom}\",\n \"adc_note\": \"<sup>{footnote}</sup>ADC THD estimated using user selected Input Frequency = {freq}, and datasheet recommended Rext. Input Frequency and Rext can be modified in the right-side input panel.\",\n \"blanked_thd_tab\": \"Distortion results are not available for {part}\",\n \"blanked_thd_tab_filter_type\": \"Distortion results are not available for this filter configuration.\",\n \"browser_zoom\": \"Your browser is zoomed out too far to correctly export this PDF. Please reset your browser's zoom level.\",\n \"browser_zoom_instructions\": \"Ctrl+0 can be used to zoom out on most browsers.\",\n \"circuit_diff\": \"Using a differential driver - Please select inverting topology\",\n \"driver_output\": {\n \"filt_check_error\": \"The current required to drive the RC filter on the output of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try reducing Cfilt.\",\n \"rf_check_error\": \"The current required to drive the feedback network of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try increasing Rf.\"\n },\n \"driver_se\": \"Single-ended ADC and source selected - Please select a single-ended driver\",\n \"feedback_thanks\": \"Thank you for your feedback!\",\n \"fmod\": \"FMOD = MCLK / MCLK_DIV = {fmod}\",\n \"fmodMax\": \"It is suggested that FMOD is less than {maxFmod}Hz in {powerMode} power mode.\",\n \"fmodMin\": \"Operating FMOD lower than {minFmod}Hz in {powerMode} power mode is not recommended.\",\n \"gain_max\": \"Increasing the gain of the driver stage will result in additional noise in the driver stage - consider using a gain/filtering stage prior to the driver stage.\",\n \"gain_to_not_one\": \"Change Gain to not equal 1\",\n \"headroom\": {\n \"neg_decrease_input\": \"-Vs is not supplying enough headroom to the driver input when Vin = {vinMin}\",\n \"neg_decrease_output\": \"-Vs is not supplying enough headroom to the driver output when Vin = {voutMin}\",\n \"pos_increase_input\": \"+Vs is not supplying enough headroom to the driver input when Vin = {vinMax}\",\n \"pos_increase_output\": \"+Vs is not supplying enough headroom to the driver output when Vout = {voutMax}\",\n \"supplies_too_high\": \"Supplies are too high for the maximum allowed Vspan of the selected driver\",\n \"supplies_too_low\": \"Supplies are too low for the minimum allowed Vspan of the selected driver\"\n },\n \"input_frequency_slew\": \"The maximum slew rate of the signal at the driver output (2*pi*f*Vp = {inputSR} V/us) is greater than the slew rate of the {driver} ({driverSR} V/us). Please lower the frequency, or select a driver with a higher slew rate.\",\n \"input_panel\": \"Plots will not display when there is an error in the input panel. Please resolve errors in the input panel to continue.\",\n \"input_source_type\": \"Cannot select differential source for selected ADC\",\n \"max\": \"The max {field} is: {value}\",\n \"max_input_frequency\": \"The max Input Frequency is 1/2 of the Sampling Rate - For Sampling Rate of {sample}SPS, the maximum Input Frequency this tool allows is {max}Hz.\",\n \"mclk\": \"MCLK must be between {minMclk}Hz and {maxMclk}Hz\",\n \"min\": \"The min {field} is: {value}\",\n \"min_adc_sampling_rate\": \"This tool allows a sample rate of {minRate}SPS or higher - please adjust the sample rate.\",\n \"multiplier\": \"No multiplier accepted\",\n \"multiplier_numeric\": \"Only numeric values and multiplier\",\n \"noise_settling\": \"The current circuit configuration is not able to sufficiently settle the kickback on the ADC input prior to acquisition - this tool cannot estimate THD performance of this circuit. Go to Input Settling tab to resolve this issue.\",\n \"noise_thd\": \"THD estimate includes distortion caused by insufficient settling of the ADC kickback prior to acquisition. See the Input Settling tab for tips to resolve this issue.\",\n \"not_settling_AC\": \"AC input Settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_DC\": \"DC input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_Muxed\": \"Multiplexed input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW or slew rate, or lower the sample rate of the ADC.\",\n \"numeric\": \"Only numeric values\",\n \"odr\": \"ODR = FMOD / Decimation = {odr}\",\n \"odr_out_of_range\": \"ODR range for {filter} filter is {min}SPS to {max}SPS\",\n \"purely_resistive_input\": \"The {adc} has a purely resistive input, and does not have switched capacitors at the inputs - hence there won't be any kickback.\",\n \"rc_bw_AC\": \"AC input settling: The bandwidth of the RC filter is too low for AC signals (up to the frequency entered in the Frequency input field). The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the AC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in AC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_DC\": \"DC input settling: The bandwidth of the RC filter is too low, the ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the DC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in DC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_MuxKick\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rc_bw_MuxTransition\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rext_filter_min\": \"The {driver} required Rext to be a minimum of {rextMin}Ω\",\n \"rf\": \"Rf must be non-zero for Inverting topology\",\n \"rf_max\": \"For gain = {gain} V/V, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rf_min\": \"This tool does not allow Rf less than {minimum}Ω for {driver}\",\n \"rf_secondstage_max\": \"For gain = {gain} V/V in the inverting stage, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rg_inf\": \"Rg cannot be InfΩ\",\n \"sampling_rate\": \"SAMPLING RATE = {samplingRate}\",\n \"source_se\": \"Single-ended ADC selected - Please select single-ended for source\",\n \"system_driver_contrib\": \"<p>The driver noise is the dominant contributor of noise in this circuit, and will significantly degrade the overall noise performance of the circuit. Either reduce the bandwidth of the external RC filter (The bandwidth is currently {rcBandwidth}), or consider selecting a driver with lower voltage noise.</p> <p>Excessive noise can also be caused by driver topologies with gain greater than 1, or high Rf and Rg values - consider lowering the gain or Rf and Rg values. Click the info icon next to System Noise for more information regarding the driver circuit noise contributions.</p>\",\n \"thd_driver\": \"The selected driver may be the dominant contributor of distortion in this circuit. To achieve the optimal THD performance of the selected ADC, please consider selecting a different driver.\",\n \"thd_rfilt\": \"The THD performance of the {adc} at {freq} is approximately {diff} lower than typical THD performance - This degradation is caused by a higher than recommended Rext value.\",\n \"topology_to_inv\": \"Change Driver Topology to Inverting\",\n \"vcm_range\": \"{label} should be in the range of {min} to {max}V\",\n \"vsupply\": \"There are issues with the driver configuration that need to be resolved - Noise, Distortion, and Input settling will not be calculated. See the Driver section of the input panel for more information\"\n },\n \"modal\": {\n \"browserIssue\": {\n \"body\": \"We have detected you are using an older version of Edge, likely EdgeHTML 15 or 16. These browser versions have a bug where some numbers may be displayed inaccurately: with as much as 50% error. Please upgrade to EdgeHTML 17 or higher, or use another browser to get accurate results.\",\n \"title\": \"Browser Number Display Issue\"\n }\n },\n \"modal_buttons\": {\n \"cancel\": \"Cancel\",\n \"reset\": \"Reset\",\n \"select\": \"Select\"\n },\n \"next_steps_panel\": {\n \"download_simulation\": \"Download LTspice Simulation\",\n \"download_summary\": \"Download Summary PDF\"\n },\n \"noise_calculations\": {\n \"row_headers\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"ibminus\": \"Ib-\",\n \"ibplus\": \"Ib+\",\n \"noise\": \"Total Noise\",\n \"rc_filter\": \"RC Filter\",\n \"rf\": \"Rf\",\n \"rfilt\": \"Rfilt\",\n \"rg\": \"Rg\",\n \"source\": \"Source\",\n \"vn\": \"Vn\"\n },\n \"table_headers\": {\n \"noise_density\": \"Details of Noise Density Calculations\",\n \"rms\": \"Details of RMS noise calculations\"\n }\n },\n \"parametric_search\": {\n \"ad_converters\": {\n \"all\": \"all precision ADCs\",\n \"in_this_tool\": \"ADCs included in this tool\"\n },\n \"diff_amps\": {\n \"all\": \"all Diff Amps\",\n \"in_this_tool\": \"Diff Amps included in this tool\"\n },\n \"op_amps\": {\n \"all\": \"all Op Amps\",\n \"in_this_tool\": \"Op Amps included in this tool\"\n },\n \"view_parametrics\": \"View parametrics for \\n <a href=\\\"{inThisToolHref}\\\" target=\\\"_blank\\\">\\n {inThisToolName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\\n or\\n <a href=\\\"{allHref}\\\" target=\\\"_blank\\\">\\n {allName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\"\n },\n \"sigma_delta_data\": {\n \"channel_averaging\": {\n \"four_to_one\": \"4:1 Averaging\",\n \"none\": \"No Averaging\",\n \"two_to_one\": \"2:1 Averaging\"\n },\n \"filter_type\": {\n \"fir\": \"FIR\",\n \"fir_wb01\": \"FIR WB01\",\n \"fir_wb04\": \"FIR WB04\",\n \"sinc3\": \"SINC3\",\n \"sinc5\": \"SINC5\",\n \"sinc6\": \"SINC6\"\n },\n \"power_mode\": {\n \"fast\": \"Fast\",\n \"high_performance\": \"High Performance\",\n \"low\": \"Low\",\n \"low_power\": \"Low Power\",\n \"median\": \"Median\"\n }\n },\n \"source_type\": {\n \"diff\": \"Differential\",\n \"se\": \"Single-ended\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI Precision Studio\",\n \"simdds\": \"DDS\",\n \"virteval\": \"Virtual Eval\"\n },\n \"summary\": {\n \"adc_input_settling\": {\n \"labels\": {\n \"acquisition_time\": \"ADC Acquisition Time:\",\n \"conversion_time\": \"ADC Conversion Time:\",\n \"filter_bandwidth\": \"RC Filter Bandwidth:\",\n \"one_lsb\": \"1 LSB:\",\n \"sample_period\": \"ADC Sample Period:\"\n },\n \"title\": \"ADC Input Settling Summary\"\n },\n \"noise_and_distortion\": {\n \"labels\": {\n \"driver_noise\": \"Driver Noise Contribution = \",\n \"enob\": \"ENOB @ {freq}:\",\n \"noise\": \"System Noise:\",\n \"sinad\": \"SINAD @ {freq}:\",\n \"snr\": \"SNR:\",\n \"thd\": \"THD @ {freq}:\"\n },\n \"title\": \"Noise and Distortion Summary\"\n },\n \"optional_source_settings\": {\n \"labels\": {\n \"source_noise_and_distortion\": \"Include source noise and distortion\",\n \"thd\": \"Source THD:\",\n \"wb_noise\": \"Source WB Noise:\"\n },\n \"title\": \"Optional Source Settings\"\n }\n },\n \"sup\": \"<sup>{val}</sup>\",\n \"tabs\": {\n \"ac\": {\n \"static_text\": \"Static AC Input Signal\",\n \"switching_text\": \"Switching AC Input Signal\",\n \"text\": \"AC Input Signal\",\n \"title\": \"Time Domain Simulation - {frequency}Hz Input Signal\"\n },\n \"circuit\": {\n \"text\": \"Circuit\"\n },\n \"dc\": {\n \"static_text\": \"Static DC Input Signal\",\n \"switching_text\": \"Switching DC Input Signal\",\n \"text\": \"DC Input Signal\",\n \"title\": \"Time Domain Simulation - DC Input Signal\"\n },\n \"driver_performance\": {\n \"text\": \"Driver Performance\"\n },\n \"muxed\": {\n \"text\": \"Multiplexed Input\",\n \"title\": \"Time Domain Simulation - Muxed Input Signal\"\n },\n \"next_steps\": {\n \"text\": \"Next Steps\"\n },\n \"noise\": {\n \"text\": \"Noise & Distortion\"\n },\n \"noise_calculations\": {\n \"text\": \"Noise\",\n \"title\": \"System Noise Contributions\"\n },\n \"settling\": {\n \"text\": \"Input Settling\"\n },\n \"thd\": {\n \"text\": \"THD\",\n \"title\": \"Contributions to System THD\"\n }\n },\n \"title\": \"Precision ADC Driver Tool\",\n \"title_alpha\": \"Precision ADC Driver Tool - ALPHA\",\n \"title_beta\": \"Precision ADC Driver Tool - BETA\",\n \"topology\": {\n \"follower\": \"Follower\",\n \"inverting\": \"Inverting\",\n \"non_inverting\": \"Non-Inverting\"\n },\n \"units\": {\n \"a\": \"A\",\n \"bits\": \"bits\",\n \"db\": \"dB\",\n \"f\": \"F\",\n \"hz\": \"Hz\",\n \"lsbs\": \"LSBs\",\n \"ohms\": \"Ω\",\n \"percent\": \"%\",\n \"ppms\": \"ppm\",\n \"price\": \"$ per 1k\",\n \"s\": \"s\",\n \"sps\": \"SPS\",\n \"v\": \"V\",\n \"v_rthz\": \"V/rtHz\",\n \"v_us\": \"V/us\",\n \"v_v\": \"V/V\",\n \"vp_p\": \"Vp-p\",\n \"vrms\": \"Vrms\"\n },\n \"urls\": {\n \"articles\": {\n \"demystifyingData\": \"https://www.analog.com/en/resources/analog-dialogue/articles/demystifying-data-acquisition-systems.html\",\n \"frontEndDesign\": \"https://www.analog.com/en/resources/analog-dialogue/articles/front-end-amp-and-rc-filter-design.html\",\n \"ltSpiceSimulatingSar\": \"https://www.analog.com/en/resources/technical-articles/ltspice-simulating-sar-adc-analog-inputs.html\",\n \"mt047\": \"https://www.analog.com/MT-047\",\n \"mt049\": \"https://www.analog.com/MT-049\",\n \"pinCompatible\": \"https://www.analog.com/en/resources/analog-dialogue/articles/pin-compatible-high-input-impedance-adc-family-enables-ease-of-drive.html\"\n },\n \"shareForum\": \"https://ez.analog.com/amplifiers/differential-amplifiers/\",\n \"videos\": {\n \"analogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990687361001.html\",\n \"bodePlotsAndOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664076001.html\",\n \"calculatingSpectralNoiseDensityToRMSNoise\": \"https://www.analog.com/en/resources/media-center/videos/756529027001.html\",\n \"decompensatedOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664087001.html\",\n \"designingRCFilter\": \"https://www.analog.com/en/resources/media-center/videos/5990689641001.html\",\n \"distortionCausedByLargeRfilt\": \"https://www.analog.com/en/resources/media-center/videos/5995980836001.html\",\n \"driverRingingAndInstability\": \"https://www.analog.com/en/resources/media-center/videos/5990689578001.html\",\n \"drivingACapacitiveLoad\": \"https://www.analog.com/en/resources/media-center/videos/1834672124001.html\",\n \"kickbackCalculations\": \"https://www.analog.com/en/resources/media-center/videos/5990687360001.html\",\n \"loopGainInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834668354001.html\",\n \"nonInvertingOpAmp\": \"https://www.analog.com/en/resources/media-center/videos/756529037001.html\",\n \"parasiticCapacitanceInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834684002001.html\",\n \"precisionAdcDriverTool\": \"https://www.analog.com/en/resources/media-center/videos/5990688166001.html\",\n \"sarAdcsWithReducedKickback\": \"https://www.analog.com/en/resources/media-center/videos/5995985507001.html\",\n \"simulatingAnalogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990689579001.html\"\n }\n },\n \"validation\": {\n \"alternate\": \"One of these properties [{properties}] must be provided. Values provided: [{values}]\",\n \"blank_thd_tab\": {\n \"category\": \"BlankTHDTab PARAMS: Required when the blankTHDTab flag is not set\"\n },\n \"default_driver\": {\n \"category\": \"DEFAULT DRIVER: This is always required and should be in the adc's list of recommended drivers\",\n \"item\": \"Value [{value}] is not in the adc's [{adc}] list of recommended drivers: [{drivers}]\"\n },\n \"recommended_driver\": {\n \"category\": \"RECOMMENDED DRIVERS: All of the adc's recommended drivers should be found in the driver library\",\n \"item\": \"Values [{invalidDrivers}] are not in the driver library\"\n },\n \"required\": {\n \"boolean\": \"Value [{value}] is not a valid boolean\",\n \"category\": \"REQUIRED PARAMS: These params are always required\",\n \"number\": \"Value [{value}] is not a valid number\",\n \"string\": \"Value: [{value}] is not a valid string\"\n },\n \"settling_thd_adj\": {\n \"category\": \"SettlingTHDAdj PARAMS: Required when the settlingTHDAdj flag is set\"\n },\n \"value_set\": \"Value [{value}] is not a valid value. Expected: [{valueSet}]\"\n }\n}], [\"ru-ru\", {\n \"adc_modal\": {\n \"row-count\": \"'{count, plural, =0 {Displaying # of {total} ADCs. Please check the filters provided.} other {Displaying # of {total} ADCs.}}'\",\n \"title\": \"Select an ADC\",\n \"tooltip\": \"Select an ADC\"\n },\n \"adc_type_display\": {\n \"differential\": \"Differential\",\n \"single_ended\": \"Single-ended\"\n },\n \"chart_buttons\": {\n \"reset_zoom\": \"Reset to default\",\n \"zoom_fit\": \"Zoom Fit\"\n },\n \"chart_labels\": {\n \"acquisition_cycle\": \"Acquisition Cycle\",\n \"conversion_cycle\": \"Conversion Cycle\",\n \"enob\": \"ENOB\",\n \"frequency\": \"Frequency (Hz)\",\n \"general_settling\": \"Settling Error = {error} {uom}\",\n \"sinad\": \"SINAD (dB)\",\n \"thd\": \"THD (dB)\",\n \"time\": \"Time (s)\",\n \"volts_kickback\": \"Kickback ~ {value}V\",\n \"volts_settling\": \"Settling Error = {volts}{uom}\"\n },\n \"chart_tabs\": {\n \"adc_input\": \"ADC Input (Volts)\",\n \"lsb\": \"LSB Error\",\n \"ppm\": \"PPM Error\",\n \"volts\": \"Volts\"\n },\n \"column_headers\": {\n \"adc_bw\": \"ADC BW\",\n \"adc_channels\": \"ADC Channels\",\n \"adc_eff_sample_rate\": \"ADC Effective sample rate\",\n \"amps_per_package\": \"Amps/Package\",\n \"bw\": \"Bandwidth\",\n \"device\": \"Device\",\n \"driver_type\": \"Type\",\n \"eff_noise_bw_of_driver_noise\": \"Effective noise BW of driver noise\",\n \"gbw\": \"GBW\",\n \"input_noise_density\": \"Noise Density\",\n \"input_polarity\": \"Analog Input Polarity\",\n \"input_type\": \"Analog Input Type\",\n \"iq\": \"Iq\",\n \"noise\": \"Noise\",\n \"noise_bw\": \"Equiv. Noise BW\",\n \"noise_density\": \"Noise Density\",\n \"noise_gain_factor\": \"Noise Gain Factor\",\n \"num_aliased_passbands\": \"Number of aliased passbands\",\n \"output_referred\": \"Output Referred Noise Density\",\n \"package\": \"Package\",\n \"price\": \"Price\",\n \"rc_filter_equiv_bw\": \"RC Filter Equiv BW\",\n \"resolution\": \"Resolution\",\n \"sampling_rate\": \"Sample Rate\",\n \"slew_rate\": \"Slew Rate\",\n \"snr\": \"SNR\",\n \"thd\": \"THD\",\n \"vnoise_density\": \"VNoise Density\",\n \"vref_max\": \"Vref Max\",\n \"vref_min\": \"Vref Min\",\n \"vs_span_max\": \"Vs Span Max\",\n \"vs_span_min\": \"Vs Span Min\"\n },\n \"driver_modal\": {\n \"subheadings\": {\n \"also_view_recommended_drivers\": \"Also view recommended drivers for {part} on product page\",\n \"recommended_drivers_for\": \"Recommended Drivers for {part}\"\n },\n \"title\": \"Select a Driver\",\n \"tooltip\": \"Select a Driver\"\n },\n \"driver_types\": {\n \"amp\": \"Op Amp\",\n \"diffamp\": \"Diff Amp\"\n },\n \"ember-aditools-page\": {\n \"card\": {\n \"checkbox-tooltip\": \"Toggle\",\n \"help-tooltip\": \"Click for help\",\n \"part-number-tooltip\": \"Click to select part\"\n },\n \"common\": {\n \"cancel\": \"Cancel\",\n \"close\": \"Close\",\n \"load\": \"Load\",\n \"ok\": \"OK\",\n \"open\": \"Open\",\n \"save\": \"Save\",\n \"select\": \"Select\"\n },\n \"dialogs\": {\n \"feedback\": {\n \"email\": \"EMail: \",\n \"feedback\": \"Your Feedback\",\n \"give-feedback\": \"Tell us\",\n \"invitation\": \"Please let us know your opinion of this tool, good and bad.\",\n \"name\": \"Name: \",\n \"optional\": \"(Optional)\",\n \"title\": \"Give us your feedback!\"\n },\n \"load\": {\n \"choose-button\": \"Choose File\",\n \"message\": \"Load a design from a file on your computer.\",\n \"no-file-selected\": \"No file selected.\",\n \"title\": \"Load Design\"\n },\n \"samples\": {\n \"add-button\": \"Add Selected Samples to Cart\",\n \"add-link\": \"Add to Order\",\n \"add-to-cart-column\": \"Add Sample to Cart\",\n \"model-column\": \"Device Model/Package\",\n \"part-column\": \"Device Name\",\n \"quantities-warning\": \"Analog Devices offers a limited amount of free samples to qualified customers. Due to the large demand for our product samples we ask that you limit your sample request to 2 pieces per part with a maximum of 4 parts per request within a 14 day time period. Should your design needs require additional product quantities, you can purchase them on the web through Buy Online, or you can contact one of our authorized distributors.\",\n \"title\": \"Order Samples\",\n \"unavailable-message\": \"Not available for sample\"\n },\n \"save\": {\n \"save-desc-error\": \"Please provide a Description\",\n \"save-desc-field\": \"Description\",\n \"save-name-error\": \"Please provide a Design Name\",\n \"save-name-field\": \"Design Name\",\n \"title\": \"Save Design\"\n },\n \"share\": {\n \"share-button\": \"Email\",\n \"share-design-information\": \"<p>To share a copy of your design, enter your name into the <b>Sender name</b> field. Then enter the email address of the recipients in the <b>Share design with</b> field.</p><p>The recipients will receive an email from Analog Devices with an attachment containing a ZIP archive of the shared design. All you have to do is extract the design from the ZIP file and upload it using the Load Design functionality of the application</p><p>This process creates a copy of the design for each recipient. If recipients choose to make edits on their copies, it will have no effect on your design you saved to your own computer.</p>\",\n \"share-dialog-ng-message\": \"Unable to share design. This is likely due to a server connection error. Please try again.\",\n \"share-dialog-ok-message\": \"Design has been shared\",\n \"share-duplicate-email\": \"Duplicate emails found\",\n \"share-email-empty-error\": \"Please enter an email address\",\n \"share-email-field\": \"Share design with\",\n \"share-email-format-error\": \"At least one of the email addresses you entered is invalid. Please correct and try again\",\n \"share-email-placeholder\": \"Email Address\",\n \"share-name-error\": \"Please provide a Design Name\",\n \"share-name-field\": \"Design Name\",\n \"share-sender-error\": \"Please provide a Sender Name\",\n \"share-sender-field\": \"Sender Name\",\n \"title\": \"Share My Design\"\n },\n \"system\": {\n \"application-busy\": \"Working...\",\n \"title\": \"Application Message\"\n }\n },\n \"footer\": {\n \"accessibility\": \"Accessibility\",\n \"cookie-settings\": \"Cookie Settings\",\n \"copyright-text\": \"1995 - 2025 Analog Devices, Inc. All Rights Reserved\",\n \"icp-id\": \"\",\n \"legal\": \"Legal and Risk\",\n \"privacy-policy\": \"Privacy Policy\",\n \"privacy-settings\": \"Privacy Settings\",\n \"sitemap\": \"Sitemap\"\n },\n \"header\": {\n \"applications\": \"Applications\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"parametric-search\": \"Parametric Search\",\n \"products\": \"Products\",\n \"spoken\": {\n \"homepage\": \"ADI Home Page\",\n \"sitelinks\": \"ADI Site Links\"\n },\n \"support\": \"Support\"\n },\n \"menubar\": {\n \"chinese\": \"简体中文\",\n \"english\": \"English\",\n \"help\": \"Help\",\n \"japanese\": \"日本語\",\n \"load\": \"Load Design\",\n \"save\": \"Save\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"noise\": \"Noise\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI<span class=''service-mark''>℠</span> Precision Studio\",\n \"signalchaindesigner\": \"Signal Chain\",\n \"simdds\": \"DDS\",\n \"spoken\": {\n \"studiolinks\": \"ADI Precision Studio Links\"\n },\n \"virteval\": \"Virtual Eval\"\n },\n \"toolbar\": {\n \"actions\": \"Actions\"\n }\n },\n \"footnote\": \"†\",\n \"icon_modal\": {\n \"about_help\": {\n \"body\": \"<p>The Precision ADC Driver Tool provides a specialized simulation environment where the engineer can quickly determine the impact of the driver and RC filter selection on the overall system performance of an ADC signal chain.</p><ul><li>Allows the user to optimize the driver and RC filter choice for their end application requirements, and provides an estimate of the impact of the selected driver and RC filter on overall system noise and distortion.</li><li>Enables the user to simulate the settling of the ADC input for various input scenarios, given the selected driver and RC filter.</li><li>Allows the user to quickly determine the performance tradeoffs between various ADCs and drivers, which would otherwise require complex calculations and simulations.</li></ul><br><p><b>What's New?</b></p><p><b>July 2020:</b></p><ul><li>Added ADG1208 and ADG1209 multiplexers to downloadable LTspice schematics</li></ul><p><b>April 2020:</b></p><ul><li>Added AD7768 and AD7768-1 ADCs</li></ul><p><b>July 2019:</b></p><ul><li>Added export to PDF feature</li></ul><p><b>June 2019:</b></p><ul><li>Improved LTspice schematics, including THD simulations for AD4002 and AD4003</li><li>Improvements to System Noise Contributions table</li></ul><p><b>April 2019:</b></p><ul><li>Added LTC2380-24 and LTC2380-16 ADCs</li><li>Added LTC6228 driver</li></ul><p><b>March 2019:</b></p><ul><li>Added LTC2378-18, LTC2378-16, and LTC2387-18 ADCs</li><li>Added LTC2500-32, LTC2508-32, and LTC2512-24 ADCs</li><li>Improvements to supply calculations, minor bug fixes in noise calculations</li></ul><p><b>February 2019:</b></p><ul><li>Added ADA4945 driver</li></ul><p><b>January 2019:</b></p><ul><li>Added ADA4932, AD8137/8/9, ADA4896, ADA4500 drivers</li></ul><p><b>October 2018:</b></p><ul><li>Maximum Rf limit, to ensure stability</li></ul><p><b>September 2018:</b></p><ul><li>Added help topics throughout tool</li><li>Driver input and output supply headroom checks</li><li>Driver output current checks</li></ul><p><b>July 2018:</b></p><ul><li>Improved scaling on THD/SINAD/ENOB plot, and zoom fit button</li><li>Added ppm error to kickback settling plot</li><li>Adding ADA4077 driver</li></ul><p><b>June 2018:</b></p><ul><li>LTspice simulation circuits for kickback settling simulation</li><li>Driver recomendations in driver selection window</li><li>Added LTC6363, LTC6363-0.5, LTC6363-1, and LTC6363-2 differential drivers</li><li>Minor bug fixes</li></ul><p><b>May 2018:</b></p><ul><li>High-Z mode in AD40xx family now modeled</li><li>Added LT6200 and LTC6300 drivers</li><li>Added LTC2387-18 ADC</li></ul><p><b>April 2018:</b></p><ul><li>Improved distortion model for AD4003 and LTC2378-20</li></ul><p><b>December 2017:</b></p><ul><li>Added the AD40xx family and the LTC2378-20.</li><li>A new THD plot view, showing amplifier and ADC THD approximations across frequency.</li><li>Improved ADC THD models, which now also include approximation of THD degradation due to larger external resistor values.</li><li>Improved input settling models, which more accurately model the behavior of the driver.</li></ul>\",\n \"icon_text\": \"Help\",\n \"title\": \"About the Precision ADC Driver Tool\"\n },\n \"feedback\": {\n \"email_label\": \"EMail:\",\n \"feedbackDialogNgMessage\": \"Failed to send user feedback. This may be due to a poor connection to the server. Please try again.\",\n \"feedbackDialogOkMessage\": \"Your feedback has been sent.\",\n \"icon_text\": \"Feedback\",\n \"intro\": \"Please let us know your opinion of this tool, good and bad.\",\n \"label\": \"Your feedback\",\n \"name_label\": \"Name:\",\n \"placeholder\": \"(Optional)\",\n \"submit\": \"Tell Us\",\n \"title\": \"Give us your feedback!\"\n },\n \"share\": {\n \"blog\": \"ADC Drivers support community\",\n \"copy\": \"Copied \",\n \"copyFail\": \"Copying failed \",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"icon_text\": \"Share\",\n \"p1\": \"1. Copy this link to your clipboard\",\n \"p2\": \"2. Paste it into an email, EngineerZone® forum or a social media post\",\n \"subHeader2\": \"Want ADC driver tips? Check out EngineerZone®\",\n \"title\": \"Sharing This Circuit Configuration Is Easy!\"\n },\n \"system\": {\n \"applicationBusy\": \"Working...\",\n \"header\": \"Application Message\"\n },\n \"video\": {\n \"body\": \"\\n <strong>Driving SAR ADCs Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{analogInputModel}\\\">Analog Input Model</a></li>\\n <li><a target='_blank' href=\\\"{kickbackCalculations}\\\">Kickback Calculations</a></li>\\n <li><a target='_blank' href=\\\"{designingRCFilter}\\\">Designing the RC Filter</a></li>\\n <li><a target='_blank' href=\\\"{simulatingAnalogInputModel}\\\">Simulating the Analog Input Model in LTspice</a></li>\\n <li><a target='_blank' href=\\\"{precisionAdcDriverTool}\\\">Precision ADC Driver Tool</a></li>\\n <li><a target='_blank' href=\\\"{driverRingingAndInstability}\\\">Driver Ringing and Instability</a></li>\\n <li><a target='_blank' href=\\\"{distortionCausedByLargeRfilt}\\\">Distortion Caused by Large Rfilt</a></li>\\n <li><a target='_blank' href=\\\"{sarAdcsWithReducedKickback}\\\">SAR ADCs with Reduced Kickback</a></li>\\n </ul>\\n <strong>Stability 101 Whiteboard Series</strong>\\n <ul>\\n <li><a target='_blank' href=\\\"{loopGainInOpAmps}\\\">Loop Gain in Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{bodePlotsAndOpAmps}\\\">Bode Plots and Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{decompensatedOpAmps}\\\">Decompensated Op Amps</a></li>\\n <li><a target='_blank' href=\\\"{drivingACapacitiveLoad}\\\">Driving a Capacitive Load</a></li>\\n <li><a target='_blank' href=\\\"{parasiticCapacitanceInOpAmps}\\\">Parasitic Capacitance in Op Amps</a></li>\\n </ul>\\n \",\n \"icon_text\": \"Videos\",\n \"title\": \"Videos\"\n }\n },\n \"info_modal\": {\n \"HiZ\": {\n \"body\": \"<p>The {adc} includes a high-Z mode feature, which reduces the charge kickback that occurs at the start of each acquisition cycle. The reduced kickback makes the {adc} easier to drive, and can be enabled via register setting.</p><p>High-Z mode should not be enabled for higher input frequencies (>100kHz) or for multiplexed input applications. </p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> and <a target=\\\"_blank\\\" href=\\\"{analogPinCompatibleArticleLink}\\\">related article</a> for more information on high-Z mode.</p>\",\n \"title\": \"High-Z mode\"\n },\n \"LP\": {\n \"body\": \"<p>The {driver} implements two fully characterized active power modes (full power, low power) to optimize system power and performance trade-offs.</p><p>See the datasheet at <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">link</a> for more information</p>\",\n \"title\": \"Low Power Mode\"\n },\n \"PrechargeOn\": {\n \"body\": \"<p>The {adc} has analog input precharge buffers that reduce the switching kickback from the sampling stage to the external circuitry. The precharge buffers reduce the average input current and reduce the effects of sampling distortion.</p><p>This reduction in drive requirements allows pairing of the {adc} with lower power, lower bandwidth driver amplifiers.</p><p>See the <a target=\\\"_blank\\\" href=\\\"{datasheet}\\\">{adc} datasheet</a> for more information</p>\",\n \"title\": \"Precharge Mode\"\n },\n \"Seq\": {\n \"body\": \"<div id=\\\"sequencer-modal-content\\\"><div><p><b>Sequencer Disabled (Static):</b></p><ul><li>No channel Sequence</li><li>AD4696 samples Channel INx only</li><li>two CNV rising edges indicating conversion on channel INx, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] of sample 0 occurs at t = 0 seconds</li><li>Kickback occurs at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 T_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Static.png\\\"/></div><div><p><b>Sequencer Enabled (Dynamic):</b></p><ul><li>Simulation equivalent programing channel sequencer going from INy going to INx</li><li>AD4696 samples INx</li><li>Simulation includes two CNV rising edges, with total time duration of one CNV period (Ts)</li><li>CNV period set by Sample Rate</li><li>CNV[0] occurs at t = 0 seconds</li><li>Kickback occurs on channel INx at t_acq<ul><li>High-Z disabled 🠒 t_acq = 270ns</li><li>High-Z enabled 🠒 t_acq = 500ns</li></ul></li><li>CNV[1] occurs at t = Ts = (1/fs) seconds</li><li>Settling Error for channel INx calculated at CNV[1]</li></ul><img src=\\\"images/AD4696Dynamic.png\\\"/></div></div>\",\n \"title\": \"Sequencer mode\"\n },\n \"ac_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The AC Input Settling simulation will run when the input signal conditions would result in kickback that is more difficult to settle than the DC Input Settling simulation. For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for DC Input Settling first.</p><p>The AC Input Settling simulation will run for scenarios where the input frequency/bandwidth of interest will result in a larger kickback to settle compared to lower frequency (or DC) input signals. These scenarios will include ADCs with architectures where the kickback is dependent on the voltage difference between samples, and where the frequency of the input signal has a high enough slew to impact the kickback size. </p><p>For ADCs where kickback is not dependent on sample-to-sample voltage difference, or for lower input frequencies (and lower slew), this simulation is not relevant and will not run.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information on input slew-related kickback calculations.</p><p>The AC Settling simulation corresponds to scenarios in hardware where the AC performance degrades significantly as input frequency (and corresponding input slew) increases.</p><p>Issues related to AC settling can be examined at the bench with a high quality sinusoidal input source. If AC performance (SNR, THD, etc) can be improved by slowing the sample rate down, then insufficient settling from kickback is a possible issue. </p>\",\n \"title\": \"AC input settling simulation\"\n },\n \"adc_input\": {\n \"body\": \"<p>This section allows the user to change the selected ADC, as well as change operating conditions of the selected ADC.</p><ul><li>Clicking the ADC name will bring up the selection table. The selection table can be sorted and filtered.</li><li>When selecting an ADC, the sample rate will be automatically set to the maximum sample rate and the Vref will be set using the Vref value used in specifications table of the ADC datasheet.</li><li>Changing the sample rate will impact the sample period and acquisition time of the ADC, which can be observed in the Input Settling tab.</li><li>Changing the Vref will reduce the full scale range of the ADC, which will impact SNR.</li></ul><p>This tool focuses on SAR ADCs, but the selection list does not include all SAR ADCs in the ADI portfolio. In general, it's the higher sample rate, higher precision SAR ADCs that are included in this tool. </p><p>See <a target=\\\"_blank\\\" href=\\\"{sarAdcParametricSearchUrl}\\\">the parametric table of all SAR ADCs</a> and <a target=\\\"_blank\\\" href=\\\"{precisionAdcParametricSearchUrl}\\\">parametric table of all precision ADCs</a></p>\",\n \"title\": \"ADC and settings\"\n },\n \"adc_noise_bandwidth\": {\n \"alt\": \"Sigma Delta Equiv Bandwidth\",\n \"body\": \"<p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth.</p><p>The equivalent noise bandwidth calculation also factors the dominant bandwidth for each contribution, which may not be limited by bandwidth of the individual stage. For example, if the RC filter bandwidth is lower than the driver bandwidth, the RC filter will limit the bandwidth of all noise contributions in the driver and source, and the RC filter bandwidth is the value that will be reported in the 'Equivalent Noise Bandwidth' column for the source, driver, and RC filter contributions.</p><p>For SAR ADCs, the Equivalent Noise Bandwidth is a characteristic of the ADC and is not impacted by the signal chain.</p><p>For Sigma-Delta ADCs with decimation (digital filtering), the filter and decimation settings will impact both the ADC bandwidth as well as the signal chain effective bandwidth. </p>\",\n \"formula_labels\": {\n \"aliased_passbands\": \"N = ceiling((1.57 * Fp)/Fs) + 1\",\n \"eff_noise\": \"(2N-1)*fc\",\n \"fc\": \"Fc\",\n \"fp\": \"1.57 * Fp\",\n \"fs\": \"Fs\"\n },\n \"image_details\": \"<ul><li>The digital filtering of the ADC is illustrated in blue, with passbands (Fc) repeating at integer values of effective sample rate (Fs) of the ADC. The response is simplified as a brick wall response for this calculation.</li><li>The analog RC filter is illustrated in red, with a simplified brick wall passband (Fp).</li><li>The bandwidth of the RC filter (Fp) will likely need to be much larger than the sample rate (Fs). As a result, the noise from the signal chain (including noise from the driver) will be captured by the ADC at multiple aliased passbands, N being the first passband that is adequately filtered out by the RC filter.</li></ul>\",\n \"table_header\": \"Calculations for the current tool configuration:\",\n \"title\": \"Equivalent Noise Bandwidth Calculations\"\n },\n \"dc_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>For each sample cycle, the ADC switches between a conversion cycle and an acquisition cycle. As the ADC switches from conversion to acquisition, charge on the ADC sampling cap is dumped onto the input node of the ADC, which causes a \\\"kickback\\\" that must be settled by the driver. This kickback must be sufficiently settled by the end of the acquisition cycle - unsettled kickback will result in measurement errors.</p><p>The size of the kickback disturbance on the input of the ADC (and the output of the driver) is dependent on the ADC architecture, especially for low frequency or DC input signals. Some ADCs contain \\\"pre-charge\\\" circuitry, that will minimize the charge that is dumped on the ADC input if the voltage difference between each sample is small. Other ADCs will have kickback that is not related to the voltage difference between samples. This tool accounts for ADC architecture differences in the simulation models for each ADC.</p><p>The kickback size is also dependent on the value of the external filter capacitor, Cext. This capacitor dampens the kickback - the amount of kickback required to settle is partially dependent on the value of this capacitor. A larger value capacitor will provide more dampening, but also has the effect of lowering the filter bandwidth, and slowing the rate of settling. In other words, more dampening due to larger Cext does not necessarily improve settling.</p><p>The response of the driver to this kickback is dependent on several parameters, including gain bandwidth, slew rate, and output impedance.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> and <a target=\\\"_blank\\\" href=\\\"{analogLtSpiceSimulatingSarArticleLink}\\\">LTspice: Simulating SAR ADC Analog Inputs</a> for more information on driving SAR ADCs.</p><p>The DC Input Settling plot in this tool is a simulation of a simple scenario that is not difficult to setup and measure in hardware. The input is a simple DC signal at the full scale voltage of the ADC, based on the Vref setting in the ADC input panel. For ADCs that contain \\\"pre-charge\\\" circuitry, the kickback can vary depending on the DC input voltage - the simulation for these ADCs assumes a worst-case kickback, so the user can design a circuit that ensures kickback for all DC input values will be sufficiently settled.</p><p>Issues related to DC settling can be examined at the bench with a DC input source. Slowing the sample rate of the ADC down will increase the acquisition cycle time - and increasing the acquisition cycle will allow more time for the kickback to settle. With hardware, if slowing the sample rate results in the ADC measurement results changing (but there was no change to the input voltage) - a measurement error due to unsettled kickback could be occurring.</p><p>Clicking on \\\"Download LTspice simulation\\\" in this tab will provide an equivalent schematic/simulation for the DC Input settling plot. Unzip the downloaded .zip file, and open \\\"Settling simulation for ADC and driver circuit.asc\\\". The corresponding .plt file will add traces to the plot window automatically when simulation is run.</p>\",\n \"title\": \"DC input settling simulation\"\n },\n \"default\": {\n \"body\": \"WIP\",\n \"title\": \"WIP Title\"\n },\n \"driver_input\": {\n \"body\": \"<p>The section allows the user to change the selected driver, as well as change the configuration of the driver circuitry.</p><ul><li>Clicking the driver name will bring up the driver selection table. The selection table can be sorted and filtered.</li><li>Recommended drivers for the selected ADC will be highlighted at the top of the table. The ADC product page and datasheet also provides driver recommendations.</li><li>The topology of the driver circuit can be modified - options are inverting, non-inverting, and follower. Topologies that are not compatible with the selected ADC/driver will not be selectable.</li><li>The circuit gain and feedback network can be adjusted using the gain and Rf input fields.</li><li>The driver supplies (+Vs and -Vs) are automatically calculated for the selected topology, driver, and specified Vref.</li></ul><p>+Vs and -Vs are automatically set to values that allow the driver to operate properly while providing enough headroom to drive the full input range of the ADC, determined by Vref. Changing the driver, topology, or Vref will cause the supplies to be recalculated. The user can adjust the supplies to verify proper operation at a specific supply voltage - the tool will issue a warning if there is a headroom or supply span violation.</p><p>For driver topologies that include Rf and Rg, the maximum allowed Rf and Rg limits are to ensure the circuit remains stable. The minimum allowed Rf and Rg limits are to ensure the increased output current does not degrade distortion performance on driver.<p>Selected driver, topology, and feedback network will all impact the settling behavior of the system. See the Input Settling tab to verify kickback will settle sufficiently with specified driver, topology, and feedback network.</p>\",\n \"title\": \"Driver and settings\"\n },\n \"enob\": {\n \"body\": \"WIP\",\n \"title\": \"ENOB Help\"\n },\n \"filter_input\": {\n \"body\": \"<p>The Rext and Cext input fields allow the user to change the filter component values in the interface circuitry.</p><p>The default Rext and Cext and automatically set to a recommended value for the selected ADC. While these default values are a good starting point, they may not be ideal for all drivers, driver configurations, and input frequencies.</p><p>Some things to consider when making changes to the RC filter values:</p><ul><li>Settling issues in the Input Settling tab can sometimes be resolved by increasing the bandwidth of the RC filter. Be aware that lowering the Rext can cause excess ringing and instability. Lowering the Cext can be a good option for increasing RC bandwidth, but it will also result in increased noise. Changes in noise and SNR can be observed in the Noise and Distortion tab</li><li>Sometimes, increasing Rext can help with ringing - be sure to decrease Cext as well, to ensure bandwidth is high enough for kickback to settle.</li><li>Increasing Rext can help with ringing and instability, but can sometimes cause increased ADC distortion at the input frequency of interest. Check the Noise and Distortion tab to view how changes to Rext may impact the ADC distortion.</li><li>Multiplexed Inputs may require a higher bandwidth RC filter than the default settings for Rext and Cext. Adjustments will probably need to be made to the RC filter for these circuits. See the input Settling tab for the Multiplexed Input simulation to verify kickback will settle sufficiently with specified Rext and Cext.</li></ul>\",\n \"title\": \"Filter settings\"\n },\n \"help-tooltip\": \"Click for help\",\n \"input_signal_input\": {\n \"body\": \"<p>This section allows the user to change the configuration of the input signal.</p><ul><li>For fully-differential ADC circuits, a single-ended or differential input signal can be selected. The resulting circuitry can be viewed in the Circuit tab.</li><li>The target frequency/bandwidth of interest can be specified. This will be used in the distortion and settling simulations.</li><li>The user can specify if the signal chain will include a multiplexer, by checking \\\"Input will be multiplexed.\\\" See the help topic for that check box for more information.</li></ul><p>Distortion of both the ADC and driver can be highly dependent on the input frequency of interest. Distortion across input frequency for the ADC, driver, and overall system can be viewed in the Noise and Distortion tab.</p>\",\n \"title\": \"Input signal settings\"\n },\n \"multiplexed\": {\n \"body\": \"<p>When the \\\"Input will be multiplexed\\\" option is checked, the Precision ADC Driver tool input settling simulations will include a simulation for a multiplexed input circuit configuration. See the \\\"Multiplexed Input\\\" simulation plot in the \\\"Input Settling\\\" simulation tab.</p><p>In the case of a multiplexed input, the driver + ADC must be able to settle extreme signal swing cases, where a multiplexer might switch between inputs that differ by the full scale of the ADC. For this simulation, a \\\"worst case\\\" scenario is assumed, where the ADC input must swing from 0V to the full scale of the ADC (Vref) within a single sample cycle.</p><p>To settle this \\\"worst case\\\" scenario, the swing of the ADC input (and resulting kickback) will require an RC filter bandwidth that is higher than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR Analog-to-Digital Converter</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Multiplexed input\"\n },\n \"muxed_input_signal\": {\n \"body\": \"<p>The Input Settling simulations (DC Input, AC Input, and Multiplexed Input) use a simplified model of the analog front-end for the selected ADC to simulate the circuitry and timing of the ADC input. The driver and external filter is also modeled, to ensure the simulation includes the interaction between the driver, RC filter, and ADC.</p><p>The Multiplexed Input simulation will run when the \\\"Input will be multiplexed\\\" box in the Input Signal panel on the left is checked. This simulation uses the same modelling techniques that are used in the DC Input Settling simulation, but the input signal is modified to account for a worst-case input multiplexing scenario where the multiplexer switches from a mux input with a 0V input value to a mux input with a full scale (Vref) value.</p><p><i>For introductory information on the simulation model, kickback, and other topics related to kickback settling, read the help topic for ADC Input Settling first.</i></p><p>In a multiplexed input configuration, the driver must be able to drive full scale signal changes in a single sampling cycle, in addition to settling the kickback. A multiplexed input configuration may require the external RC filter to have a higher bandwidth than would be required for a non-multiplexed signal chain.</p><p>For this in-tool simulation, any possible timing delay in the multiplexer switching, as well as the RC loading of the multiplexer itself is ignored. The simulation should be helpful to the user who is designing a signal chain, including the effects of multiplexing the input - but designs should always be tested and proven in hardware.</p><p>See <a target=\\\"_blank\\\" href=\\\"{analogDemystifyingDataArticleLink}\\\">Demystifying High-Performance Multiplexed Data-Acquisition Systems</a> and <a target=\\\"_blank\\\" href=\\\"{analogFrontEndDesignArticleLink}\\\">Front-End Amplifier and RC Filter Design for a Precision SAR ADC</a> for more information about multiplexing SAR ADC inputs.</p>\",\n \"title\": \"Muxed Input Signal\"\n },\n \"noise_contributions\": {\n \"body\": \"<p>The noise table shows the contribution of each circuit element to the overall noise of the circuit. These noise calculations are combined with the THD curves (in the \\\"THD\\\" tab) to calculate SINAD and ENOB curves across input frequency.</p>{sourceNoiseText}<p><b>Driver Noise:</b></p><p>The driver noise estimation is a combination of the amplifier noise (voltage and current, referred to the output) and noise from the resistors in the circuit. The driver noise can be reduced by lowering the bandwidth of the external RC filter - but the RC filter also impacts the settling behavior as well THD of the ADC.</p><p>While a lower RC bandwidth helps with noise, a bandwidth that's too low will not allow the output of the driver to settle within the acquisition time (See the \\\"Input Settling\\\" tab to check settling simulation).</p><p><a target=\\\"_blank\\\" href=\\\"{opAmpVideoLink}\\\">VideoTutorial - Noise of a Non-inverting Operational Amplifier Circuit</a></p><p><a target=\\\"_blank\\\" href=\\\"{mt047Pdf}\\\">Tutorial - Op Amp Noise</a></p><br><p><b>ADC Noise:</b></p><p>The noise of the ADC is estimated using SNR specifications from the datasheet. To get optimal SNR performance from the Driver + ADC circuit, select a driver with low enough noise performance that noise from the driver is not the primary contributor to the system noise.</p><br><p><b>System Noise:</b></p><p>The noise contribution of the source, driver, and ADC are combined via root sum squared (RSS) method to calculate an overall system noise estimate.</p>\",\n \"source_noise_text\": \"<p><b>Source Noise:</b></p><p>The source noise is derived from the Source Wide-band (WB) noise input field, and allows the user to incorporate estimated source noise into the overall noise estimation.</p><br>\",\n \"title\": \"Noise Contributions\"\n },\n \"noise_density\": {\n \"body\": \"<p>The 'Details of Noise Density Calculations' table contains the noise density calculations for the source (when enabled), the amplifier, the amplifier's feedback network, and the RC filter between the amplifier and the ADC.</p><p>The 'Input Noise Density' column show the noise of each contribution. Amplifier voltage and current noise density can be found in the amplifier datasheet. The low frequency 1/f noise contribution of the amplifier voltage and current noise density is not included in the tool calculations. Resistor noise density can be calculated using the equation sqrt(4kTR), where k is Boltzmann's Constant (1.38e-23 J/K), T is the absolute temperature, and R is the resistor value.</p><p>The 'Noise Gain Factor' column shows the noise gain of each contribution. Details about calculating noise gain for op amps can be found in <a href=\\\"{mt049Pdf}\\\" target=\\\"_blank\\\">MT-049</a> and <a href=\\\"{nonInvertingOpAmpVideo}\\\" target=\\\"_blank\\\">Noise of a Non-Inverting Operational Amplifier Circuit</a> whiteboard video. Details about calculating noise gain for fully differential amplifiers can be found in the 'Estimating the Output Noise Voltage' section of the datasheet (see the ADA4945-1 datasheet for an example).</p><p>The 'Output Referred Noise Density' column shows the product of the noise density and the noise gain for each contribution. This is noise density of each contribution seen at the output of the signal chain (and at the input of the ADC). These results are used to calculate the RMS noise in the 'Details of RMS Noise Calculations' table above.</p>\",\n \"title\": \"Noise Density Calculations\"\n },\n \"optional_source_settings\": {\n \"body\": \"The \\\"Include source noise and distortion\\\" option allows users to include additional noise and distortion from source and other circuitry that occurs prior to the driver input.</p><p> The noise and distortion entered into the source fields will be included in the system performance calculations when the box is checked. When the \\\"Include source noise and distortion\\\" box is unchecked, source contributions to the system performance are ignored in the calculations.\",\n \"title\": \"Source setting information\"\n },\n \"rc_filter_bandwidth\": {\n \"body\": \"<p>The bandwidth of the RC Filter is determined from the combined values of Rext, Cext, and the ADC input capacitance. The input capacitance of the ADC is combines with the filter capacitance when the input signal is being captured by the ADC.</p><p>Filter BW = 1 / (2 * pi * Rext * (Cext + Cadc))</p><p>Where Cadc of selected ADC ({selectedAdc}) is {cadc}{cadcUom}</p><img src=\\\"svgs/RC_Filter_Bandwidth.svg\\\" alt=\\\"RC Filter Bandwidth\\\" title=\\\"RC Filter Bandwidth\\\" />\",\n \"title\": \"RC Filter Bandwidth\"\n },\n \"rms_noise\": {\n \"body\": \"<p>The 'Details of RMS Noise Calculations' table contains the RMS noise calculations for the source (when enabled), the amplifier, the amplifier's feedback network, the RC filter, and the ADC.</p><p>The 'Output Referred Noise Density' column contains the results of the calculations in the 'Details of Noise Density Calculations' table.</p><p>The 'Equivalent Noise Bandwidth' column is an estimate of the noise bandwidth of each noise contribution. For a single pole system, the equivalent bandwidth can be estimated as 1.57 * Fp, where Fp is the 3dB bandwidth. For more information about equivalent noise bandwidth calculations, see the help topic in the 'Equivalent Noise Bandwidth' column.</p><p>The 'RMS Noise' column contains the product of the Output Referred Noise and the square root of the Equivalent Noise Bandwidth. Details about calculating RMS noise from noise density can be found in the <a href=\\\"{video}\\\" target=\\\"_blank\\\">Calculating Spectral Noise Density to RMS Noise</a> whiteboard video.</p>\",\n \"title\": \"RMS Noise Calculations\"\n },\n \"sinad\": {\n \"body\": \"WIP\",\n \"title\": \"SINAD Help\"\n },\n \"thd\": {\n \"body\": \"<p>The THD plot shows an approximation of THD contributions of the various components of the overall circuit, along with an estimate of the combined THD due to all contributions. This plot shows an estimation of THD across a range of input frequencies.</p><p>The THD curves are combined with the overall noise (in the \\\"Noise\\\" tab) to calculate SINAD and ENOB at the given input frequency. The Noise and Distortion Summary panel lists calculations for THD, SINAD, and ENOB at the input frequency specified in the input panel on the left side of the tool.</p><br><div style=\\\"{freqContainerStyle}\\\"><p><b>Input Frequency Marker:</b></p><p>This vertical line marker corresponds to the frequency entered in the Input section of the input panel, to the left. Even though the THD plot shows THD performance across a range of input frequencies, the results in the Simulation Summary (THD, SINAD, ENOB) are calculated at this input frequency.</p></div><br><div style=\\\"{sourceContainerStyle}\\\"><p><b>Source THD Curve:</b></p><p>This is a horizontal line on the plot that can be used to approximate THD introduced at the input of the circuit, and can be set using the optional input fields below the summary panel. This is THD that is not contributed by the ADC and Driver circuitry, but is counted in the overall system THD estimate.</p></div><br><div style=\\\"{driverContainerStyle}\\\"><p><b>Amplifier THD Curve:</b></p><p>The THD of the amplifier is estimated using approximations of the datasheet 2nd and 3rd Harmonic Distortion curves, and combining them into an overall estimated THD curve for the amplifier.</p></div><br><div style=\\\"{adcContainerStyle}\\\"><p><b>ADC THD Curve:</b></p><p>The ADC THD curve is an estimation of the THD performance across frequency, and can degrade with higher external R values. The ADC THD curve is an estimated model built from a combination of datasheet curves and other lab measurements, and is only an approximation of THD performance - actual hardware measured is required to verify performance of overall circuit (driver, RC filter, ADC).</p><p>The ADC THD curve not include THD performance degradation due to inadequate settling of circuit from ADC kickback. See the \\\"Input Settling\\\" tab for simulation of ADC kickback and settling. THD degradation due to settling issues can often be improved by slowing down the sample rate (increasing the sample period, and as a result, the acquisition time). If THD improves with slower sample rate, investigate driver and RC selection as a contributing factor. See \\\"Input Settling\\\" tab for more information about settling issues.</p></div><br><div style=\\\"{systemContainerStyle}\\\"><p><b>Combined System THD:</b></p><p>The estimated THD contribution of the amplifier, ADC, and source are combined into an estimated THD for the circuit, and is shown as a heavy black curve.</p></div>\",\n \"title\": \"THD Help\"\n },\n \"thd_driver\": {\n \"body\": \"<p>This warning is displayed when the Precision ADC Driver Tool detects that the driver is degrading the distortion performance of the overall signal chain.</p><p>If the driver THD is estimated to be higher than the ADC THD at the input frequency of interest (set in the left-side input panel), then the given circuit will not achieve the distortion/THD performance specified in the ADC datasheet.</p><p>The driver and ADC THD curves in this tool are built using curves and specifications from the datasheets - please refer to the datasheet for more details on THD performance of those devices.</p>\",\n \"title\": \"Driver may be dominant THD contribution\"\n },\n \"thd_rfilt\": {\n \"body\": \"<p>The ADC input capacitance has a small amount of non-linearity - this non-linearity is usually negligible for lower input frequencies. But at higher input frequencies, this non-linear capacitance can start to dominate the distortion/THD performance.</p><p>This distortion contribution will also increase when higher Rext values are used. Lowering the Rext value can help, if this is the dominant distortion contribution.</p><p>See <a target='_blank' href=\\\"{distortionUrl}\\\">Distortion caused by Large Rfilt</a> video tutorial for more information on this topic.</p>\",\n \"title\": \"Distortion caused by large Rext\"\n }\n },\n \"input_labels\": {\n \"cext\": \"Cext\",\n \"channelAveraging\": \"Channel Averaging\",\n \"decimationRate\": \"Decimation\",\n \"enable_filter\": \"Filter enable\",\n \"filterType\": \"Filter Type\",\n \"frequency\": \"Frequency\",\n \"gain\": \"Gain\",\n \"mclk\": \"MCLK\",\n \"mclkDiv\": \"MCLK_DIV\",\n \"multiplexed\": \"Input will be multiplexed\",\n \"output_data_rate\": \"Output Data Rate (ODR)\",\n \"powerMode\": \"Power Mode\",\n \"rext\": \"Rext\",\n \"rf\": \"Rf\",\n \"sampling_rate\": \"Sample Rate\",\n \"thd\": \"THD\",\n \"vSupplyNeg\": \"-Vs\",\n \"vSupplyPos\": \"+Vs\",\n \"variant\": \"Enable {variant} mode\",\n \"vcm\": \"Vcm\",\n \"vin\": \"Vin\",\n \"vocm\": \"Vocm\",\n \"vout\": \"Vout\",\n \"vref\": \"Vref\",\n \"wb_noise\": \"WB noise\"\n },\n \"input_panels\": {\n \"headings\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"filter\": \"Filter\",\n \"input_signal\": \"Input\"\n }\n },\n \"labels\": {\n \"adi_logo\": \"ADI Logo\",\n \"adi_precision_studio_links\": \"ADI Precision Studio Links\",\n \"browsers\": {\n \"chrome\": \"Chrome\",\n \"firefox\": \"Firefox\",\n \"ie\": \"Internet Explorer 11 (or newer)\",\n \"msie\": \"MSIE\"\n },\n \"close\": \"Close\",\n \"collapse\": \"Collapse\",\n \"error\": \"Error\",\n \"expand\": \"Expand\",\n \"logo\": \"Logo\",\n \"ok\": \"Ok\",\n \"tools\": \"Tools\",\n \"unable_to_calc\": \"Unable to Calculate\",\n \"with_driver\": \"With Driver:\"\n },\n \"legend_labels\": {\n \"actual_adc_input\": \"Actual ADC Input\",\n \"ideal_adc_input\": \"Ideal ADC Input\",\n \"inx\": \"INX\",\n \"iny\": \"INY\",\n \"thd_noise_adc\": \"ADC and RC Filter Contribution\",\n \"thd_noise_driver\": \"Driver Contribution\",\n \"thd_noise_signal\": \"Frequency\",\n \"thd_noise_source\": \"Source Contribution\",\n \"thd_noise_system\": \"Overall System\"\n },\n \"logo_menu\": {\n \"applications\": \"Applications\",\n \"community\": \"Community\",\n \"company\": \"Company\",\n \"design-center\": \"Design Center\",\n \"education\": \"Education\",\n \"products\": \"Products\",\n \"support\": \"Support\"\n },\n \"lsb_settling\": {\n \"eighth\": \"1/8\",\n \"half\": \"1/2\",\n \"one\": \"1\",\n \"quarter\": \"1/4\",\n \"sixteenth\": \"1/16\"\n },\n \"messages\": {\n \"ac_kickback\": \"Signals below {frequencyCutoff}Hz have the same settling time as DC for {adc}\",\n \"ad4080_rext_error\": \"The {adc} required Rext to be between {rfiltMin} and {rfiltMax}.\",\n \"adc\": \"For {partNumber}, maximum sample rate is {maxSampleRate} and maximum voltage for Vref is {vrefMax}{vrefUom}\",\n \"adc_note\": \"<sup>{footnote}</sup>ADC THD estimated using user selected Input Frequency = {freq}, and datasheet recommended Rext. Input Frequency and Rext can be modified in the right-side input panel.\",\n \"blanked_thd_tab\": \"Distortion results are not available for {part}\",\n \"blanked_thd_tab_filter_type\": \"Distortion results are not available for this filter configuration.\",\n \"browser_zoom\": \"Your browser is zoomed out too far to correctly export this PDF. Please reset your browser's zoom level.\",\n \"browser_zoom_instructions\": \"Ctrl+0 can be used to zoom out on most browsers.\",\n \"circuit_diff\": \"Using a differential driver - Please select inverting topology\",\n \"driver_output\": {\n \"filt_check_error\": \"The current required to drive the RC filter on the output of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try reducing Cfilt.\",\n \"rf_check_error\": \"The current required to drive the feedback network of the driver ({value}A) is approaching/exceeding the output current limits of the driver - try increasing Rf.\"\n },\n \"driver_se\": \"Single-ended ADC and source selected - Please select a single-ended driver\",\n \"feedback_thanks\": \"Thank you for your feedback!\",\n \"fmod\": \"FMOD = MCLK / MCLK_DIV = {fmod}\",\n \"fmodMax\": \"It is suggested that FMOD is less than {maxFmod}Hz in {powerMode} power mode.\",\n \"fmodMin\": \"Operating FMOD lower than {minFmod}Hz in {powerMode} power mode is not recommended.\",\n \"gain_max\": \"Increasing the gain of the driver stage will result in additional noise in the driver stage - consider using a gain/filtering stage prior to the driver stage.\",\n \"gain_to_not_one\": \"Change Gain to not equal 1\",\n \"headroom\": {\n \"neg_decrease_input\": \"-Vs is not supplying enough headroom to the driver input when Vin = {vinMin}\",\n \"neg_decrease_output\": \"-Vs is not supplying enough headroom to the driver output when Vin = {voutMin}\",\n \"pos_increase_input\": \"+Vs is not supplying enough headroom to the driver input when Vin = {vinMax}\",\n \"pos_increase_output\": \"+Vs is not supplying enough headroom to the driver output when Vout = {voutMax}\",\n \"supplies_too_high\": \"Supplies are too high for the maximum allowed Vspan of the selected driver\",\n \"supplies_too_low\": \"Supplies are too low for the minimum allowed Vspan of the selected driver\"\n },\n \"input_frequency_slew\": \"The maximum slew rate of the signal at the driver output (2*pi*f*Vp = {inputSR} V/us) is greater than the slew rate of the {driver} ({driverSR} V/us). Please lower the frequency, or select a driver with a higher slew rate.\",\n \"input_panel\": \"Plots will not display when there is an error in the input panel. Please resolve errors in the input panel to continue.\",\n \"input_source_type\": \"Cannot select differential source for selected ADC\",\n \"max\": \"The max {field} is: {value}\",\n \"max_input_frequency\": \"The max Input Frequency is 1/2 of the Sampling Rate - For Sampling Rate of {sample}SPS, the maximum Input Frequency this tool allows is {max}Hz.\",\n \"mclk\": \"MCLK must be between {minMclk}Hz and {maxMclk}Hz\",\n \"min\": \"The min {field} is: {value}\",\n \"min_adc_sampling_rate\": \"This tool allows a sample rate of {minRate}SPS or higher - please adjust the sample rate.\",\n \"multiplier\": \"No multiplier accepted\",\n \"multiplier_numeric\": \"Only numeric values and multiplier\",\n \"noise_settling\": \"The current circuit configuration is not able to sufficiently settle the kickback on the ADC input prior to acquisition - this tool cannot estimate THD performance of this circuit. Go to Input Settling tab to resolve this issue.\",\n \"noise_thd\": \"THD estimate includes distortion caused by insufficient settling of the ADC kickback prior to acquisition. See the Input Settling tab for tips to resolve this issue.\",\n \"not_settling_AC\": \"AC input Settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_DC\": \"DC input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW, or lower the sample rate of the ADC. Sometimes, ringing issues can be resolved by increasing Rext - click the Filter info icon for more information.\",\n \"not_settling_Muxed\": \"Multiplexed input settling: For the selected circuit configuration, the driver is not able to properly settle the input of the ADC sufficiently prior to sample acquisition. Try selecting a driver with a higher GBW or slew rate, or lower the sample rate of the ADC.\",\n \"numeric\": \"Only numeric values\",\n \"odr\": \"ODR = FMOD / Decimation = {odr}\",\n \"odr_out_of_range\": \"ODR range for {filter} filter is {min}SPS to {max}SPS\",\n \"purely_resistive_input\": \"The {adc} has a purely resistive input, and does not have switched capacitors at the inputs - hence there won't be any kickback.\",\n \"rc_bw_AC\": \"AC input settling: The bandwidth of the RC filter is too low for AC signals (up to the frequency entered in the Frequency input field). The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the AC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in AC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_DC\": \"DC input settling: The bandwidth of the RC filter is too low, the ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the DC Input Signal plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in DC Input Signal tab and Filter settings for more information.\",\n \"rc_bw_MuxKick\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rc_bw_MuxTransition\": \"Multiplexed input settling: The bandwidth of the RC filter is too low for multiplexed inputs. The ADC input will not be able to settle from the charge kickback before the ADC switches to conversion mode. View the settling error in the Multiplexed Input plot, and increase the BW of the RC filter or lower the sample rate to resolve this error. See help topics in the Multiplexed Input tab and Filter settings for more information.\",\n \"rext_filter_min\": \"The {driver} required Rext to be a minimum of {rextMin}Ω\",\n \"rf\": \"Rf must be non-zero for Inverting topology\",\n \"rf_max\": \"For gain = {gain} V/V, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rf_min\": \"This tool does not allow Rf less than {minimum}Ω for {driver}\",\n \"rf_secondstage_max\": \"For gain = {gain} V/V in the inverting stage, Rf should be below {rfMax}Ω to ensure stability. See Driver help for more information.\",\n \"rg_inf\": \"Rg cannot be InfΩ\",\n \"sampling_rate\": \"SAMPLING RATE = {samplingRate}\",\n \"source_se\": \"Single-ended ADC selected - Please select single-ended for source\",\n \"system_driver_contrib\": \"<p>The driver noise is the dominant contributor of noise in this circuit, and will significantly degrade the overall noise performance of the circuit. Either reduce the bandwidth of the external RC filter (The bandwidth is currently {rcBandwidth}), or consider selecting a driver with lower voltage noise.</p> <p>Excessive noise can also be caused by driver topologies with gain greater than 1, or high Rf and Rg values - consider lowering the gain or Rf and Rg values. Click the info icon next to System Noise for more information regarding the driver circuit noise contributions.</p>\",\n \"thd_driver\": \"The selected driver may be the dominant contributor of distortion in this circuit. To achieve the optimal THD performance of the selected ADC, please consider selecting a different driver.\",\n \"thd_rfilt\": \"The THD performance of the {adc} at {freq} is approximately {diff} lower than typical THD performance - This degradation is caused by a higher than recommended Rext value.\",\n \"topology_to_inv\": \"Change Driver Topology to Inverting\",\n \"vcm_range\": \"{label} should be in the range of {min} to {max}V\",\n \"vsupply\": \"There are issues with the driver configuration that need to be resolved - Noise, Distortion, and Input settling will not be calculated. See the Driver section of the input panel for more information\"\n },\n \"modal\": {\n \"browserIssue\": {\n \"body\": \"We have detected you are using an older version of Edge, likely EdgeHTML 15 or 16. These browser versions have a bug where some numbers may be displayed inaccurately: with as much as 50% error. Please upgrade to EdgeHTML 17 or higher, or use another browser to get accurate results.\",\n \"title\": \"Browser Number Display Issue\"\n }\n },\n \"modal_buttons\": {\n \"cancel\": \"Cancel\",\n \"reset\": \"Reset\",\n \"select\": \"Select\"\n },\n \"next_steps_panel\": {\n \"download_simulation\": \"Download LTspice Simulation\",\n \"download_summary\": \"Download Summary PDF\"\n },\n \"noise_calculations\": {\n \"row_headers\": {\n \"adc\": \"ADC\",\n \"driver\": \"Driver\",\n \"ibminus\": \"Ib-\",\n \"ibplus\": \"Ib+\",\n \"noise\": \"Total Noise\",\n \"rc_filter\": \"RC Filter\",\n \"rf\": \"Rf\",\n \"rfilt\": \"Rfilt\",\n \"rg\": \"Rg\",\n \"source\": \"Source\",\n \"vn\": \"Vn\"\n },\n \"table_headers\": {\n \"noise_density\": \"Details of Noise Density Calculations\",\n \"rms\": \"Details of RMS noise calculations\"\n }\n },\n \"parametric_search\": {\n \"ad_converters\": {\n \"all\": \"all precision ADCs\",\n \"in_this_tool\": \"ADCs included in this tool\"\n },\n \"diff_amps\": {\n \"all\": \"all Diff Amps\",\n \"in_this_tool\": \"Diff Amps included in this tool\"\n },\n \"op_amps\": {\n \"all\": \"all Op Amps\",\n \"in_this_tool\": \"Op Amps included in this tool\"\n },\n \"view_parametrics\": \"View parametrics for \\n <a href=\\\"{inThisToolHref}\\\" target=\\\"_blank\\\">\\n {inThisToolName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\\n or\\n <a href=\\\"{allHref}\\\" target=\\\"_blank\\\">\\n {allName}\\n <span class=\\\"parametric-search-link\\\"></span>\\n </a>\"\n },\n \"sigma_delta_data\": {\n \"channel_averaging\": {\n \"four_to_one\": \"4:1 Averaging\",\n \"none\": \"No Averaging\",\n \"two_to_one\": \"2:1 Averaging\"\n },\n \"filter_type\": {\n \"fir\": \"FIR\",\n \"fir_wb01\": \"FIR WB01\",\n \"fir_wb04\": \"FIR WB04\",\n \"sinc3\": \"SINC3\",\n \"sinc5\": \"SINC5\",\n \"sinc6\": \"SINC6\"\n },\n \"power_mode\": {\n \"fast\": \"Fast\",\n \"high_performance\": \"High Performance\",\n \"low\": \"Low\",\n \"low_power\": \"Low Power\",\n \"median\": \"Median\"\n }\n },\n \"source_type\": {\n \"diff\": \"Differential\",\n \"se\": \"Single-ended\"\n },\n \"studio\": {\n \"adcdriver\": \"ADC Driver\",\n \"dacebc\": \"DAC\",\n \"diamond\": \"In Amp\",\n \"filterwizard\": \"Analog Filter\",\n \"photodiode\": \"Photodiode\",\n \"precisionstudio\": \"ADI Precision Studio\",\n \"simdds\": \"DDS\",\n \"virteval\": \"Virtual Eval\"\n },\n \"summary\": {\n \"adc_input_settling\": {\n \"labels\": {\n \"acquisition_time\": \"ADC Acquisition Time:\",\n \"conversion_time\": \"ADC Conversion Time:\",\n \"filter_bandwidth\": \"RC Filter Bandwidth:\",\n \"one_lsb\": \"1 LSB:\",\n \"sample_period\": \"ADC Sample Period:\"\n },\n \"title\": \"ADC Input Settling Summary\"\n },\n \"noise_and_distortion\": {\n \"labels\": {\n \"driver_noise\": \"Driver Noise Contribution = \",\n \"enob\": \"ENOB @ {freq}:\",\n \"noise\": \"System Noise:\",\n \"sinad\": \"SINAD @ {freq}:\",\n \"snr\": \"SNR:\",\n \"thd\": \"THD @ {freq}:\"\n },\n \"title\": \"Noise and Distortion Summary\"\n },\n \"optional_source_settings\": {\n \"labels\": {\n \"source_noise_and_distortion\": \"Include source noise and distortion\",\n \"thd\": \"Source THD:\",\n \"wb_noise\": \"Source WB Noise:\"\n },\n \"title\": \"Optional Source Settings\"\n }\n },\n \"sup\": \"<sup>{val}</sup>\",\n \"tabs\": {\n \"ac\": {\n \"static_text\": \"Static AC Input Signal\",\n \"switching_text\": \"Switching AC Input Signal\",\n \"text\": \"AC Input Signal\",\n \"title\": \"Time Domain Simulation - {frequency}Hz Input Signal\"\n },\n \"circuit\": {\n \"text\": \"Circuit\"\n },\n \"dc\": {\n \"static_text\": \"Static DC Input Signal\",\n \"switching_text\": \"Switching DC Input Signal\",\n \"text\": \"DC Input Signal\",\n \"title\": \"Time Domain Simulation - DC Input Signal\"\n },\n \"driver_performance\": {\n \"text\": \"Driver Performance\"\n },\n \"muxed\": {\n \"text\": \"Multiplexed Input\",\n \"title\": \"Time Domain Simulation - Muxed Input Signal\"\n },\n \"next_steps\": {\n \"text\": \"Next Steps\"\n },\n \"noise\": {\n \"text\": \"Noise & Distortion\"\n },\n \"noise_calculations\": {\n \"text\": \"Noise\",\n \"title\": \"System Noise Contributions\"\n },\n \"settling\": {\n \"text\": \"Input Settling\"\n },\n \"thd\": {\n \"text\": \"THD\",\n \"title\": \"Contributions to System THD\"\n }\n },\n \"title\": \"Precision ADC Driver Tool\",\n \"title_alpha\": \"Precision ADC Driver Tool - ALPHA\",\n \"title_beta\": \"Precision ADC Driver Tool - BETA\",\n \"topology\": {\n \"follower\": \"Follower\",\n \"inverting\": \"Inverting\",\n \"non_inverting\": \"Non-Inverting\"\n },\n \"units\": {\n \"a\": \"A\",\n \"bits\": \"bits\",\n \"db\": \"dB\",\n \"f\": \"F\",\n \"hz\": \"Hz\",\n \"lsbs\": \"LSBs\",\n \"ohms\": \"Ω\",\n \"percent\": \"%\",\n \"ppms\": \"ppm\",\n \"price\": \"$ per 1k\",\n \"s\": \"s\",\n \"sps\": \"SPS\",\n \"v\": \"V\",\n \"v_rthz\": \"V/rtHz\",\n \"v_us\": \"V/us\",\n \"v_v\": \"V/V\",\n \"vp_p\": \"Vp-p\",\n \"vrms\": \"Vrms\"\n },\n \"urls\": {\n \"articles\": {\n \"demystifyingData\": \"https://www.analog.com/en/resources/analog-dialogue/articles/demystifying-data-acquisition-systems.html\",\n \"frontEndDesign\": \"https://www.analog.com/en/resources/analog-dialogue/articles/front-end-amp-and-rc-filter-design.html\",\n \"ltSpiceSimulatingSar\": \"https://www.analog.com/en/resources/technical-articles/ltspice-simulating-sar-adc-analog-inputs.html\",\n \"mt047\": \"https://www.analog.com/MT-047\",\n \"mt049\": \"https://www.analog.com/MT-049\",\n \"pinCompatible\": \"https://www.analog.com/en/resources/analog-dialogue/articles/pin-compatible-high-input-impedance-adc-family-enables-ease-of-drive.html\"\n },\n \"shareForum\": \"https://ez.analog.com/amplifiers/differential-amplifiers/\",\n \"videos\": {\n \"analogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990687361001.html\",\n \"bodePlotsAndOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664076001.html\",\n \"calculatingSpectralNoiseDensityToRMSNoise\": \"https://www.analog.com/en/resources/media-center/videos/756529027001.html\",\n \"decompensatedOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834664087001.html\",\n \"designingRCFilter\": \"https://www.analog.com/en/resources/media-center/videos/5990689641001.html\",\n \"distortionCausedByLargeRfilt\": \"https://www.analog.com/en/resources/media-center/videos/5995980836001.html\",\n \"driverRingingAndInstability\": \"https://www.analog.com/en/resources/media-center/videos/5990689578001.html\",\n \"drivingACapacitiveLoad\": \"https://www.analog.com/en/resources/media-center/videos/1834672124001.html\",\n \"kickbackCalculations\": \"https://www.analog.com/en/resources/media-center/videos/5990687360001.html\",\n \"loopGainInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834668354001.html\",\n \"nonInvertingOpAmp\": \"https://www.analog.com/en/resources/media-center/videos/756529037001.html\",\n \"parasiticCapacitanceInOpAmps\": \"https://www.analog.com/en/resources/media-center/videos/1834684002001.html\",\n \"precisionAdcDriverTool\": \"https://www.analog.com/en/resources/media-center/videos/5990688166001.html\",\n \"sarAdcsWithReducedKickback\": \"https://www.analog.com/en/resources/media-center/videos/5995985507001.html\",\n \"simulatingAnalogInputModel\": \"https://www.analog.com/en/resources/media-center/videos/5990689579001.html\"\n }\n },\n \"validation\": {\n \"alternate\": \"One of these properties [{properties}] must be provided. Values provided: [{values}]\",\n \"blank_thd_tab\": {\n \"category\": \"BlankTHDTab PARAMS: Required when the blankTHDTab flag is not set\"\n },\n \"default_driver\": {\n \"category\": \"DEFAULT DRIVER: This is always required and should be in the adc's list of recommended drivers\",\n \"item\": \"Value [{value}] is not in the adc's [{adc}] list of recommended drivers: [{drivers}]\"\n },\n \"recommended_driver\": {\n \"category\": \"RECOMMENDED DRIVERS: All of the adc's recommended drivers should be found in the driver library\",\n \"item\": \"Values [{invalidDrivers}] are not in the driver library\"\n },\n \"required\": {\n \"boolean\": \"Value [{value}] is not a valid boolean\",\n \"category\": \"REQUIRED PARAMS: These params are always required\",\n \"number\": \"Value [{value}] is not a valid number\",\n \"string\": \"Value: [{value}] is not a valid string\"\n },\n \"settling_thd_adj\": {\n \"category\": \"SettlingTHDAdj PARAMS: Required when the settlingTHDAdj flag is set\"\n },\n \"value_set\": \"Value [{value}] is not a valid value. Expected: [{valueSet}]\"\n }\n}]];","/**\n * @private\n * @hide\n */\nexport function convertToArray(locale) {\n if (Array.isArray(locale)) {\n return locale;\n }\n return [locale];\n}\n\n/**\n * @private\n * @hide\n */\nexport function convertToString(locale) {\n if (Array.isArray(locale)) {\n return locale[0];\n }\n return locale;\n}\n/**\n * @private\n * @hide\n */\nexport function hasLocaleChanged(locale1, locale2) {\n if (!Array.isArray(locale2)) {\n return true;\n }\n return locale1.toString() !== locale2.toString();\n}\n\n/**\n * @private\n * @hide\n */\nexport function normalizeLocale(locale) {\n return locale.replace(/_/g, '-').toLowerCase();\n}","/**\n * @private\n * @hide\n */\nexport function flattenKeys(object) {\n const result = {};\n for (const key in object) {\n if (!Object.prototype.hasOwnProperty.call(object, key)) {\n continue;\n }\n const value = object[key];\n\n // If `value` is not `null`\n if (value && typeof value === 'object') {\n const hash = flattenKeys(value);\n for (const suffix in hash) {\n const translation = hash[suffix];\n if (typeof translation !== 'undefined') {\n result[`${key}.${suffix}`] = translation;\n }\n }\n } else {\n if (typeof value !== 'undefined') {\n result[key] = value;\n }\n }\n }\n return result;\n}","var _class, _descriptor, _descriptor2;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nimport { getOwner } from '@ember/application';\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { dependentKeyCompat } from '@ember/object/compat';\nimport { cancel, next } from '@ember/runloop';\nimport Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport EventEmitter from 'eventemitter3';\nimport { FormatDate, FormatList, FormatMessage, FormatNumber, FormatRelative, FormatTime } from '../-private/formatters';\nimport { createIntl, createIntlCache, onFormatjsIntlError } from '../-private/utils/formatjs';\nimport getDOM from '../-private/utils/get-dom';\nimport hydrate from '../-private/utils/hydrate';\nimport { convertToArray, convertToString, hasLocaleChanged, normalizeLocale } from '../-private/utils/locale';\nimport { flattenKeys } from '../-private/utils/translations';\nlet IntlService = (_class = class IntlService extends Service {\n /**\n * Returns an array of registered locale names\n *\n */\n get locales() {\n return Object.keys(this._intls);\n }\n\n /** @public **/\n set locale(localeName) {\n const proposedLocale = convertToArray(localeName).map(normalizeLocale);\n if (hasLocaleChanged(proposedLocale, this._locale)) {\n this._locale = proposedLocale;\n cancel(this._timer);\n this._timer = next(() => {\n this._ee.emit('localeChanged');\n this._updateDocumentLanguage(this._locale);\n });\n }\n }\n get locale() {\n return this._locale;\n }\n\n /**\n * Returns the first locale of the currently active locales\n *\n */\n get primaryLocale() {\n return this.locale[0];\n }\n\n /** @public **/\n\n /** @public **/\n constructor() {\n super(...arguments);\n _defineProperty(this, \"formatRelative\", createFormatterProxy('relative'));\n /** @public **/\n _defineProperty(this, \"formatMessage\", createFormatterProxy('message'));\n /** @public **/\n _defineProperty(this, \"formatNumber\", createFormatterProxy('number'));\n /** @public **/\n _defineProperty(this, \"formatTime\", createFormatterProxy('time'));\n /** @public **/\n _defineProperty(this, \"formatDate\", createFormatterProxy('date'));\n /** @public **/\n _defineProperty(this, \"formatList\", createFormatterProxy('list'));\n /** @private **/\n _initializerDefineProperty(this, \"_locale\", _descriptor, this);\n /** @private **/\n _defineProperty(this, \"_timer\", null);\n /** @private **/\n _defineProperty(this, \"_formats\", null);\n /** @private **/\n _defineProperty(this, \"_formatters\", {\n message: new FormatMessage(),\n relative: new FormatRelative(),\n number: new FormatNumber(),\n time: new FormatTime(),\n date: new FormatDate(),\n list: new FormatList()\n });\n /** @private */\n _initializerDefineProperty(this, \"_intls\", _descriptor2, this);\n /**\n * @private\n * @type {EventEmitter}\n */\n _defineProperty(this, \"_ee\", null);\n _defineProperty(this, \"_cache\", createIntlCache());\n const initialLocale = this.locale || ['en-us'];\n this._intls = {};\n this._ee = new EventEmitter();\n this.setLocale(initialLocale);\n this._owner = getOwner(this);\n if (!this._formats) {\n this._formats = this._owner.resolveRegistration('formats:main') || {};\n }\n this.getIntl = this.getIntl.bind(this);\n this.getOrCreateIntl = this.getOrCreateIntl.bind(this);\n hydrate(this);\n }\n willDestroy() {\n super.willDestroy(...arguments);\n cancel(this._timer);\n }\n\n /** @public **/\n lookup(key, localeName, options = {}) {\n const localeNames = this._localeWithDefault(localeName);\n let translation;\n for (let i = 0; i < localeNames.length; i++) {\n const messages = this.translationsFor(localeNames[i]);\n if (!messages) {\n continue;\n }\n translation = messages[key];\n if (translation !== undefined) {\n break;\n }\n }\n if (translation === undefined && options.resilient !== true) {\n const missingMessage = this._owner.resolveRegistration('util:intl/missing-message');\n return missingMessage.call(this, key, localeNames, options);\n }\n return translation;\n }\n\n /**\n * @private\n */\n getIntl(locale) {\n const resolvedLocale = convertToString(locale);\n return this._intls[resolvedLocale];\n }\n getOrCreateIntl(locale, messages) {\n const resolvedLocale = convertToString(locale);\n const existingIntl = this._intls[resolvedLocale];\n if (!existingIntl) {\n this._intls = {\n ...this._intls,\n [resolvedLocale]: this.createIntl(resolvedLocale, messages)\n };\n } else if (messages) {\n this._intls = {\n ...this._intls,\n [resolvedLocale]: this.createIntl(resolvedLocale, {\n ...(existingIntl.messages || {}),\n ...messages\n })\n };\n }\n return this._intls[resolvedLocale];\n }\n\n /**\n * @private\n * @param {String} locale Locale of intl obj to create\n */\n createIntl(locale, messages = {}) {\n const {\n _formats: formats\n } = this;\n const resolvedLocale = convertToString(locale);\n return createIntl({\n defaultFormats: formats,\n defaultLocale: resolvedLocale,\n formats,\n locale: resolvedLocale,\n messages,\n onError: onFormatjsIntlError\n }, this._cache);\n }\n\n /** @public **/\n t(key, options = {}) {\n let keys = [key];\n if (options.default) {\n if (Array.isArray(options.default)) {\n keys = [...keys, ...options.default];\n } else if (typeof options.default === 'string') {\n keys = [...keys, options.default];\n }\n }\n keys.forEach(key => {\n assert(`[ember-intl] expected translation key \"${key}\" to be of type String but received: \"${typeof key}\"`, typeof key === 'string');\n });\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index];\n const message = this.lookup(key, options.locale, {\n ...options,\n // Note: last iteration will throw with the last key that was missing\n // in the future maybe the thrown error should include all the keys to help debugging\n resilient: keys.length - 1 !== index\n });\n\n // @formatjs/intl consider empty message to be an error\n if (message === '' || typeof message === 'number') {\n return message;\n }\n if (message) {\n return this.formatMessage({\n id: key,\n defaultMessage: message\n }, options);\n }\n }\n }\n\n /** @public **/\n exists(key, localeName) {\n const localeNames = this._localeWithDefault(localeName);\n assert(`[ember-intl] locale is unset, cannot lookup '${key}'`, Array.isArray(localeNames) && localeNames.length);\n return localeNames.some(localeName => key in (this.getIntl(localeName)?.messages || {}));\n }\n\n /** @public */\n setLocale(locale) {\n assert(`[ember-intl] No locale has been set. See https://ember-intl.github.io/ember-intl/docs/quickstart#4-configure-project`, locale);\n this.locale = locale;\n this.getOrCreateIntl(locale);\n }\n\n /** @public **/\n addTranslations(localeName, payload) {\n const locale = normalizeLocale(localeName);\n const messages = flattenKeys(payload);\n this.getOrCreateIntl(locale, messages);\n }\n\n /** @public **/\n translationsFor(localeName) {\n const locale = normalizeLocale(localeName);\n return this.getIntl(locale)?.messages;\n }\n\n /** @private **/\n _localeWithDefault(localeName) {\n if (!localeName) {\n return this._locale || [];\n }\n return convertToArray(localeName).map(normalizeLocale);\n }\n\n /** @private **/\n _updateDocumentLanguage(locales) {\n const dom = getDOM(this);\n if (dom) {\n const [primaryLocale] = locales;\n const html = dom.documentElement;\n html.setAttribute('lang', primaryLocale);\n }\n }\n\n /**\n * @private\n * @param fn\n * @param context\n */\n onLocaleChanged(fn, context) {\n this._ee.on('localeChanged', fn, context);\n registerDestructor(context, () => {\n this._ee.off('localeChanged', fn, context);\n });\n }\n}, (_applyDecoratedDescriptor(_class.prototype, \"locale\", [dependentKeyCompat], Object.getOwnPropertyDescriptor(_class.prototype, \"locale\"), _class.prototype), _descriptor = _applyDecoratedDescriptor(_class.prototype, \"_locale\", [tracked], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function () {\n return null;\n }\n}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"_intls\", [tracked], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: function () {\n return null;\n }\n})), _class);\nexport { IntlService as default };\nfunction createFormatterProxy(name) {\n return function serviceFormatterProxy(value, formatOptions) {\n let locale;\n let intl;\n if (formatOptions && formatOptions.locale) {\n locale = this._localeWithDefault(formatOptions.locale);\n // Cannot use getOrCreateIntl since it triggers a re-render which\n // might cause infinite loop\n // This is also a case we're not optimizing for so let it take\n // the slow path\n intl = this.createIntl(locale);\n } else {\n locale = this.locale;\n intl = this.getIntl(locale);\n }\n return this._formatters[name].format(intl, value, formatOptions);\n };\n}","import translations from '../../translations';\n\n/**\n * @private\n * @hide\n */\nexport default function hydrate(service) {\n translations.forEach(([locale, translations]) => {\n service.addTranslations(locale, translations);\n });\n}","import { getOwner } from '@ember/application';\n\n// adjusted from https://github.com/yapplabs/ember-wormhole/blob/0.5.4/addon/utils/dom.js#L45-L63\n//\n// Private Ember API usage. Get the dom implementation used by the current\n// renderer, be it native browser DOM or Fastboot SimpleDOM\n/**\n * @private\n * @hide\n */\nexport default function getDOM(context) {\n let {\n renderer\n } = context;\n if (!renderer || !renderer._dom) {\n // pre glimmer2\n let container = getOwner ? getOwner(context) : context.container;\n let documentService = container.lookup('service:-document');\n if (documentService) {\n return documentService;\n }\n renderer = container.lookup('renderer:-dom');\n }\n if (renderer._dom && renderer._dom.document) {\n // pre Ember 2.6\n return renderer._dom.document;\n }\n return null;\n}","import { warn } from '@ember/debug';\nimport { isEmpty } from '@ember/utils';\n\n/**\n * @private\n * @hide\n */\nexport default function missingMessage(key, locales) {\n if (isEmpty(locales)) {\n warn(`[ember-intl] No locale has been set. See https://ember-intl.github.io/ember-intl/docs/quickstart#4-configure-project`, false, {\n id: 'ember-intl-no-locale-set'\n });\n return `No locale defined. Unable to resolve translation: \"${key}\"`;\n }\n const localeNames = locales.join(', ');\n warn(`[ember-intl] translation: \"${key}\" on locale: \"${localeNames}\" was not found.`, false, {\n id: 'ember-intl-missing-translation'\n });\n return `Missing translation \"${key}\" for locale \"${localeNames}\"`;\n}","export function isFactory(\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_factoryOrClass) {\n return !true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\n/**\n * Consume each positional and named argument to entangle it in autotracking and\n * enable updates.\n *\n * This is a temporary workaround for a change in the autotracking semantics of\n * the args proxy introduced in `v3.22`. What changed is that arguments are no\n * longer eagerly consumed. Didn’t use an argument? Then updates won’t be run\n * when its value changes. This workaround reproduces the previous behaviour to\n * avoid introducing a breaking change until a suitable transition path is made\n * available.\n */\nlet consumeArgs = noop;\nif (true) {\n consumeArgs = function ({\n positional,\n named\n }) {\n // SAFETY: TS before 4.6 does not correctly/fully resolve the type in a way\n // that allows the type checker to see that `positional` must *always* be\n // something which `extends unknown[]` here, because the underlying\n // machinery is fairly complicated and relies on a fair bit of type\n // recursion. It will stop mattering when we cut v4.0, because we won't be\n // doing this anyway.\n const pos = positional;\n for (let i = 0; i < pos.length; i++) {\n pos[i];\n }\n\n // SAFETY: TS 4.7 does not see that `named` will always be an object here.\n // However, it is guaranteed to be resolved as such by the types. This *may*\n // be a bug (https://github.com/microsoft/TypeScript/issues/48468), but it\n // *should* also stop being relevant once we ship 4.0.\n Object.values(named);\n };\n}\nexport { consumeArgs };","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { capabilities } from '@ember/modifier';\nimport { destroy, registerDestructor } from '@ember/destroyable';\nimport { Element, _implementsModify, Args } from './modifier';\nimport { consumeArgs, isFactory } from '../compat';\nfunction destroyModifier(modifier) {\n modifier.willRemove();\n modifier.willDestroy();\n}\n\n/**\n * The state bucket used throughout the life-cycle of the modifier. Basically a\n * state *machine*, where the framework calls us with the version we hand back\n * to it at each phase. The two states are the two `extends` versions of this\n * below.\n *\n * @internal\n */\n\n/**\n * The `State` after calling `createModifier`, and therefore the state available\n * at the start of `InstallModifier`.\n * @internal\n */\n\n/**\n * The `State` after calling `installModifier`, and therefore the state\n * available in all `updateModifier` calls and in `destroyModifier`.\n * @internal\n */\n\n// Wraps the unsafe (b/c it mutates, rather than creating new state) code that\n// TS does not yet understand.\nfunction installElement(state, element) {\n // SAFETY: this cast represents how we are actually handling the state machine\n // transition: from this point forward in the lifecycle of the modifier, it\n // always behaves as `InstalledState<S>`. It is safe because, and *only*\n // because, we immediately initialize `element`. (We cannot create a new state\n // from the old one because the modifier manager API expects mutation of a\n // single state bucket rather than updating it at hook calls.)\n const installedState = state;\n installedState.element = element;\n return installedState;\n}\nfunction installElementOnInstance(instance, element) {\n // SAFETY: we use the internal API for all class-based modifiers to set this\n // in a way which lets us issue the deprecation warning for anyone accessing\n // `element` as a getter while allowing types to continue working for any\n // existing subclasses (see the discussion on the class definition).\n instance[Element] = element;\n}\nfunction updateArgsOnInstance(instance, args) {\n // SAFETY: we use the internal API for all class-based modifiers to set this\n // in a way which lets us issue the deprecation warning for anyone accessing\n // `args` as a getter while allowing types to continue working for any\n // existing subclasses (see the discussion on the class definition).\n instance[Args] = args;\n}\nexport default class ClassBasedModifierManager {\n constructor(owner) {\n _defineProperty(this, \"capabilities\", capabilities(true ? '3.22' : '3.13'));\n this.owner = owner;\n }\n createModifier(factoryOrClass, args) {\n const Modifier = isFactory(factoryOrClass) ? factoryOrClass.class : factoryOrClass;\n const modifier = new Modifier(this.owner, args);\n registerDestructor(modifier, destroyModifier);\n return {\n instance: modifier,\n implementsModify: _implementsModify(modifier),\n element: null\n };\n }\n installModifier(createdState, element, args) {\n const state = installElement(createdState, element);\n\n // TODO: this can be deleted entirely at v4.\n const {\n instance\n } = state;\n installElementOnInstance(instance, element);\n if (state.implementsModify) {\n instance.modify(element, args.positional, args.named);\n } else {\n // The `consumeArgs()` call provides backwards compatibility on v3 for the\n // deprecated legacy lifecycle hooks (`didInstall`, `didReceiveArguments`,\n // and `didUpdateArguments`), which accidentally had eager consumption\n // semantics prior to Ember 3.22. The new, recommended `modify` hook has\n // the updated lazy semantics associated with normal auto-tracking.\n if (true) {\n consumeArgs(args);\n }\n instance.didReceiveArguments();\n instance.didInstall();\n }\n }\n updateModifier(state, args) {\n const {\n instance\n } = state;\n\n // TODO: remove at 4.0\n updateArgsOnInstance(state.instance, args);\n if (state.implementsModify) {\n instance.modify(state.element, args.positional, args.named);\n } else {\n // The `consumeArgs()` call provides backwards compatibility on v3 for the\n // deprecated legacy lifecycle hooks (`didInstall`, `didReceiveArguments`,\n // and `didUpdateArguments`), which accidentally had eager consumption\n // semantics prior to Ember 3.22. The new, recommended `modify` hook has\n // the updated lazy semantics associated with normal auto-tracking.\n if (true) {\n consumeArgs(args);\n }\n instance.didUpdateArguments();\n instance.didReceiveArguments();\n }\n }\n destroyModifier(state) {\n destroy(state.instance);\n }\n}","import { setOwner } from '@ember/application';\nimport { setModifierManager } from '@ember/modifier';\nimport Manager from './modifier-manager';\nimport { isDestroying, isDestroyed } from '@ember/destroyable';\nimport { assert, deprecate } from '@ember/debug';\nimport { DEBUG } from '@glimmer/env';\n\n// SAFETY: these sets are dev-only code to avoid showing deprecations for the\n// same class more than once.\n\nlet SEEN_CLASSES_FOR_LIFECYCLE;\nif (DEBUG) {\n SEEN_CLASSES_FOR_LIFECYCLE = new Set();\n}\nlet SEEN_CLASSES_FOR_DESTROYABLES;\nif (DEBUG) {\n SEEN_CLASSES_FOR_DESTROYABLES = new Set();\n}\nlet SEEN_CLASSES_FOR_ARGS;\nif (DEBUG) {\n SEEN_CLASSES_FOR_ARGS = new Set();\n}\nlet SEEN_CLASSES_FOR_ELEMENTS;\nif (DEBUG) {\n SEEN_CLASSES_FOR_ELEMENTS = new Set();\n}\n\n/** @internal */\nexport const _implementsModify = instance => instance.modify !== ClassBasedModifier.prototype.modify;\n\n/** @internal */\nexport const _implementsLegacyHooks = instance => instance.didInstall !== ClassBasedModifier.prototype.didInstall || instance.didUpdateArguments !== ClassBasedModifier.prototype.didUpdateArguments || instance.didReceiveArguments !== ClassBasedModifier.prototype.didReceiveArguments;\n\n/** @internal */\nexport const Element = Symbol('Element');\n\n/** @internal */\nexport const Args = Symbol('Args');\n\n// Preserve the signature on a class-based modifier so it can be plucked off\n// later (by e.g. Glint), using interface merging with an opaque item to\n// preserve it in the type system. The fact that it's an empty interface is\n// actually the point: it *only* hooks the type parameter into the opaque\n// (nominal) type. Note that this is distinct from the function-based modifier\n// type intentionally, because it is actually the static class side of a\n// class-based modifier which corresponds to the result of calling `modifier()`\n// with a callback defining a function-based modifier.\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\n\n/**\n * A base class for modifiers which need more capabilities than function-based\n * modifiers. Useful if, for example:\n *\n * 1. You need to inject services and access them\n * 2. You need fine-grained control of updates, either for performance or\n * convenience reasons, and don't want to teardown the state of your modifier\n * every time only to set it up again.\n * 3. You need to store some local state within your modifier.\n *\n * The lifecycle hooks of class modifiers are tracked. When they run, they any\n * values they access will be added to the modifier, and the modifier will\n * update if any of those values change.\n */\nexport default class ClassBasedModifier {\n // Done this way with the weird combination of `declare` and `defineProperty`\n // so that subclasses which are overriding this by writing their own `args`\n // field type declarations continue to type check correctly. (If we introduced\n // a getter here, existing classes defining their args via a `declare args:`\n // would stop type checking, because TS -- correctly! -- differentiates\n // between class fields and getters).\n /**\n * The arguments passed to the modifier. `args.positional` is an array of\n * positional arguments, and `args.named` is an object containing the named\n * arguments.\n *\n * @deprecated Until 4.0. Access positional and named arguments directly in\n * the `modify` hook instead.\n */\n\n // Done this way with the weird combination of `declare` and `defineProperty`\n // so that subclasses which are overriding this by writing their own `element`\n // field declarations continue to type check correctly.\n /**\n * The element the modifier is applied to.\n *\n * @warning `element` is ***not*** available during `constructor` or\n * `willDestroy`.\n * @deprecated Until 4.0. Access the `element` as an argument in the `modify`\n * hook instead.\n */\n\n constructor(owner, args) {\n setOwner(this, owner);\n\n // SAFETY: the point here is (for the period where we are providing `args`\n // and `element`) to provide an internal-only way of setting and update the\n // `args` for the modifier instance; we use the `InternalClassBasedModifier`\n // interface to represent the internal-only API in a way that end users do\n // *not* have access to when subclassing `ClassBasedModifier`.\n this[Args] = args;\n assert('ember-modifier: You cannot implement both `modify` and any of the deprecated legacy lifecycle hooks (`didInstall`, `didReceiveArguments`, and `didUpdateArguments`)', !(_implementsModify(this) && _implementsLegacyHooks(this)));\n deprecate(`ember-modifier (in ${this.constructor.name} at ${new Error().stack}): \\`willDestroy\\`, \\`isDestroyed\\`, and \\`isDestroyed\\` are deprecated. Use the corresponding API from '@ember/destroyable' instead.`, this.willDestroy === ClassBasedModifier.prototype.willDestroy || SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor), {\n id: 'ember-modifier.use-destroyables',\n until: '4.0.0',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n }\n });\n if (DEBUG && !SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor)) {\n SEEN_CLASSES_FOR_DESTROYABLES.add(this.constructor);\n }\n deprecate(`ember-modifier (in ${this.constructor.name} at ${new Error().stack}): The \\`didInstall\\`, \\`didReceiveArguments\\`, and \\`didUpdateArguments\\` hooks are deprecated. Use the new \\`modify\\` hook instead.`, _implementsModify(this) || SEEN_CLASSES_FOR_LIFECYCLE.has(this.constructor), {\n id: 'ember-modifier.use-modify',\n until: '4.0.0',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n }\n });\n if (DEBUG && !SEEN_CLASSES_FOR_LIFECYCLE.has(this.constructor)) {\n SEEN_CLASSES_FOR_LIFECYCLE.add(this.constructor);\n }\n }\n\n /**\n * Called when the modifier is installed and any time any tracked state used\n * in the modifier changes.\n *\n * If you need to do first-time-only setup, create a class field representing\n * the initialization state and check it when running the hook. That is also\n * where and when you should use `registerDestructor` for any teardown you\n * need to do. For example:\n *\n * ```js\n * function disconnect(instance) {\n * instance.observer?.disconnect();\n * }\n *\n * class IntersectionObserver extends Modifier {\n * observer;\n *\n * constructor(owner, args) {\n * super(owner, args);\n * registerDestructor(this, disconnect);\n * }\n *\n * modify(element, callback, options) {\n * disconnect(this);\n *\n * this.observer = new IntersectionObserver(callback, options);\n * this.observer.observe(element);\n * }\n * }\n * ```\n *\n * @param element The element to which the modifier is applied.\n * @param positional The positional arguments to the modifier.\n * @param named The named arguments to the modifier.\n */\n modify( /* eslint-disable @typescript-eslint/no-unused-vars */\n element, positional, named) {\n /* no op, for subclassing */\n }\n\n /**\n * Called when the modifier is installed **and** anytime the arguments are\n * updated.\n *\n * @deprecated Until 4.0. Use `modify()`.\n */\n didReceiveArguments() {\n /* no op, for subclassing */\n }\n\n /**\n * Called anytime the arguments are updated but **not** on the initial\n * install. Called before `didReceiveArguments`.\n *\n * @deprecated Until 4.0. Use `modify()`.\n */\n didUpdateArguments() {\n /* no op, for subclassing */\n }\n\n /**\n * Called when the modifier is installed on the DOM element. Called after\n * `didReceiveArguments`.\n *\n * @deprecated Until 4.0. Use `modify()`.\n */\n didInstall() {\n /* no op, for subclassing */\n }\n\n /**\n * Called when the DOM element is about to be destroyed; use for removing\n * event listeners on the element and other similar clean-up tasks.\n *\n * @deprecated since 2.0.0: prefer to use `willDestroy`, since both it and\n * `willRemove` can perform all the same operations, including on the\n * `element`.\n */\n willRemove() {\n /* no op, for subclassing */\n }\n\n /**\n * Called when the modifier itself is about to be destroyed; use for teardown\n * code. Called after `willRemove`.\n *\n * @deprecated Until 4.0. Use `registerDestructor` from `@ember/destroyables`.\n */\n willDestroy() {\n /* no op, for subclassing */\n }\n\n /**\n * @deprecated Until 4.0. Use `isDestroying` from `@ember/destroyables`.\n */\n get isDestroying() {\n deprecate('Modifier.isDestroying is deprecated', SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor), {\n id: 'ember-modifier.use-destroyables',\n until: '4.0.0',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n }\n });\n if (DEBUG && !SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor)) {\n SEEN_CLASSES_FOR_DESTROYABLES.add(this.constructor);\n }\n return isDestroying(this);\n }\n\n /**\n * @deprecated Until 4.0. Use `isDestroyed` from `@ember/destroyables`.\n */\n get isDestroyed() {\n deprecate('Modifier.isDestroyed is deprecated', SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor), {\n id: 'ember-modifier.use-destroyables',\n until: '4.0.0',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n }\n });\n if (DEBUG && !SEEN_CLASSES_FOR_DESTROYABLES.has(this.constructor)) {\n SEEN_CLASSES_FOR_DESTROYABLES.add(this.constructor);\n }\n return isDestroyed(this);\n }\n}\n\n// We apply these here, against the prototype, so that there is only one of\n// these, rather than one per instance. We also only issue the deprecation once\n// per class for each of `args` and `element`.\nObject.defineProperty(ClassBasedModifier.prototype, 'args', {\n enumerable: true,\n get() {\n deprecate(`ember-modifier (in ${this.constructor.name} at ${new Error().stack}): using \\`this.args\\` is deprecated. Access positional and named arguments directly in the \\`modify\\` hook instead.`, SEEN_CLASSES_FOR_ARGS.has(this.constructor), {\n id: 'ember-modifier.no-args-property',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n },\n until: '4.0.0'\n });\n if (DEBUG && !SEEN_CLASSES_FOR_ARGS.has(this.constructor)) {\n SEEN_CLASSES_FOR_ARGS.add(this.constructor);\n }\n return this[Args];\n }\n});\nObject.defineProperty(ClassBasedModifier.prototype, 'element', {\n enumerable: true,\n get() {\n deprecate(`ember-modifier (in ${this.constructor.name} at ${new Error().stack}): using \\`this.element\\` is deprecated. Access the \\`element\\` as an argument in the \\`modify\\` hook instead.`, SEEN_CLASSES_FOR_ELEMENTS.has(this.constructor), {\n id: 'ember-modifier.no-element-property',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n },\n until: '4.0.0'\n });\n if (DEBUG && !SEEN_CLASSES_FOR_ELEMENTS.has(this.constructor)) {\n SEEN_CLASSES_FOR_ELEMENTS.add(this.constructor);\n }\n return this[Element] ?? null;\n }\n});\n\n/**\n * @internal This provides an interface we can use to backwards-compatibly set\n * up the element in a way that external callers will not have access to or\n * even see.\n */\n\nsetModifierManager(owner => new Manager(owner), ClassBasedModifier);","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { capabilities } from '@ember/modifier';\nimport { consumeArgs, isFactory } from '../compat';\n// Wraps the unsafe (b/c it mutates, rather than creating new state) code that\n// TS does not yet understand.\nfunction installElement(state, element) {\n // SAFETY: this cast represents how we are actually handling the state machine\n // transition: from this point forward in the lifecycle of the modifier, it\n // always behaves as `InstalledState<S>`. It is safe because, and *only*\n // because, we immediately initialize `element`. (We cannot create a new state\n // from the old one because the modifier manager API expects mutation of a\n // single state bucket rather than updating it at hook calls.)\n const installedState = state;\n installedState.element = element;\n return installedState;\n}\nexport default class FunctionBasedModifierManager {\n constructor(options) {\n _defineProperty(this, \"capabilities\", capabilities(true ? '3.22' : '3.13'));\n _defineProperty(this, \"options\", void 0);\n this.options = {\n eager: options?.eager ?? true\n };\n }\n createModifier(factoryOrClass) {\n const instance = isFactory(factoryOrClass) ? factoryOrClass.class : factoryOrClass;\n return {\n element: null,\n instance: instance\n };\n }\n installModifier(createdState, element, args) {\n const state = installElement(createdState, element);\n const {\n positional,\n named\n } = args;\n const teardown = createdState.instance(element, positional, named);\n if (typeof teardown === 'function') {\n state.teardown = teardown;\n }\n if (true && this.options.eager) {\n consumeArgs(args);\n }\n }\n updateModifier(state, args) {\n if (state.teardown) {\n state.teardown();\n }\n const teardown = state.instance(state.element, args.positional, args.named);\n if (typeof teardown === 'function') {\n state.teardown = teardown;\n }\n if (true && this.options.eager) {\n consumeArgs(args);\n }\n }\n destroyModifier(state) {\n if (typeof state.teardown === 'function') {\n state.teardown();\n }\n }\n}","import { deprecate } from '@ember/debug';\nimport { setModifierManager } from '@ember/modifier';\nimport Modifier from '../class/modifier';\nimport FunctionBasedModifierManager from './modifier-manager';\n\n// Provide a singleton manager for each of the options. (If we extend this to\n// many more options in the future, we can revisit, but for now this means we\n// only ever allocate two managers.)\nconst EAGER_MANAGER = new FunctionBasedModifierManager({\n eager: true\n});\nconst LAZY_MANAGER = new FunctionBasedModifierManager({\n eager: false\n});\n\n// This type exists to provide a non-user-constructible, non-subclassable\n// type representing the conceptual \"instance type\" of a function modifier.\n// The abstract field of type `never` prevents subclassing in userspace of\n// the value returned from `modifier()`. By extending `Modifier<S>`, any\n// augmentations of the `Modifier` type performed by tools like Glint will\n// also apply to function-based modifiers as well.\n\n// This provides a type whose only purpose here is to represent the runtime\n// type of a function-based modifier: a virtually opaque item. The fact that it's\n// a bare constructor type allows `modifier()` to preserve type parameters from\n// a generic function it's passed, and by making it abstract and impossible to\n// subclass (see above) we prevent users from attempting to instantiate the return\n// value from a `modifier()` call.\n\n/**\n * The (optional) return type for a modifier which needs to perform some kind of\n * cleanup or teardown -- for example, removing an event listener from an\n * element besides the one passed into the modifier.\n */\n\n/**\n * An API for writing simple modifiers.\n *\n * This function runs the first time when the element the modifier was applied\n * to is inserted into the DOM, and it *autotracks* while running. Any values\n * that it accesses will be tracked, and if any of them changes, the function\n * will run again.\n *\n * **Note:** this will rerun if any of its arguments change, *whether or not you\n * access them*. This is legacy behavior and you should switch to using the\n * `{ eager: false }` variant, which has normal auto-tracking semantics.\n *\n * The modifier can also optionally return a *destructor*. The destructor\n * function will be run just before the next update, and when the element is\n * being removed entirely. It should generally clean up the changes that the\n * modifier made in the first place.\n *\n * @deprecated Until 4.0. Calling `modifier()` without an options argument is\n * deprecated. It is supported until 4.0 so that existing modifiers can be\n * migrated individually. Please update your function-based modifiers to pass\n * `{ eager: false }`.\n *\n * @param fn The function which defines the modifier.\n */\n// This overload allows users to write types directly on the callback passed to\n// the `modifier` function and infer the resulting type correctly.\n\n/**\n * An API for writing simple modifiers.\n *\n * This function runs the first time when the element the modifier was applied\n * to is inserted into the DOM, and it *autotracks* while running. Any values\n * that it accesses will be tracked, and if any of them changes, the function\n * will run again.\n *\n * **Note:** this will rerun if any of its arguments change, *whether or not you\n * access them*. This is legacy behavior and you should switch to using the\n * `{ eager: false }` variant, which has normal auto-tracking semantics.\n *\n * The modifier can also optionally return a *destructor*. The destructor\n * function will be run just before the next update, and when the element is\n * being removed entirely. It should generally clean up the changes that the\n * modifier made in the first place.\n *\n * @deprecated Until 4.0. Calling `modifier()` with `{ eager: true }` is\n * deprecated. It is supported until 4.0 so that existing modifiers can be\n * migrated individually. Please update your function-based modifiers to pass\n * `{ eager: false }`.\n *\n * @param fn The function which defines the modifier.\n * @param options Configuration for the modifier.\n */\n// This overload allows users to write types directly on the callback passed to\n// the `modifier` function and infer the resulting type correctly.\n\n/**\n * An API for writing simple modifiers.\n *\n * This function runs the first time when the element the modifier was applied\n * to is inserted into the DOM, and it *autotracks* while running. Any values\n * that it accesses will be tracked, including any of its arguments that it\n * accesses, and if any of them changes, the function will run again.\n *\n * **Note:** this will *not* automatically rerun because an argument changes. It\n * will only rerun if it is *using* that argument (the same as with auto-tracked\n * state in general).\n *\n * The modifier can also optionally return a *destructor*. The destructor\n * function will be run just before the next update, and when the element is\n * being removed entirely. It should generally clean up the changes that the\n * modifier made in the first place.\n *\n * @param fn The function which defines the modifier.\n * @param options Configuration for the modifier.\n */\n// This overload allows users to write types directly on the callback passed to\n// the `modifier` function and infer the resulting type correctly.\n\n/**\n * An API for writing simple modifiers.\n *\n * This function runs the first time when the element the modifier was applied\n * to is inserted into the DOM, and it *autotracks* while running. Any values\n * that it accesses will be tracked, including any of its arguments that it\n * accesses, and if any of them changes, the function will run again.\n *\n * **Note:** this will *not* automatically rerun because an argument changes. It\n * will only rerun if it is *using* that argument (the same as with auto-tracked\n * state in general).\n *\n * The modifier can also optionally return a *destructor*. The destructor\n * function will be run just before the next update, and when the element is\n * being removed entirely. It should generally clean up the changes that the\n * modifier made in the first place.\n *\n * @param fn The function which defines the modifier.\n * @param options Configuration for the modifier.\n */\n// This overload allows users to provide a `Signature` type explicitly at the\n// modifier definition site, e.g. `modifier<Sig>((el, pos, named) => {...})`.\n// **Note:** this overload must appear second, since TS' inference engine will\n// not correctly infer the type of `S` here from the types on the supplied\n// callback.\n\n// This is the runtime signature; it performs no inference whatsover and just\n// uses the simplest version of the invocation possible since, for the case of\n// setting it on the modifier manager, we don't *need* any of that info, and\n// the two previous overloads capture all invocations from a type perspective.\nexport default function modifier(fn, options = {\n eager: true\n}) {\n deprecate(`ember-modifier (for ${fn.name ?? fn} at ${new Error().stack}): creating a function-based modifier without options is deprecated and will be removed at v4.0`, options !== undefined, {\n id: 'ember-modifier.function-based-options',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n },\n until: '4.0.0'\n });\n deprecate(`ember-modifier (for ${fn.name ?? fn} at ${new Error().stack}): creating a function-based modifier with \\`{ eager: true }\\` is deprecated and will be removed at v4.0`, options?.eager === false, {\n id: 'ember-modifier.function-based-options',\n for: 'ember-modifier',\n since: {\n available: '3.2.0',\n enabled: '3.2.0'\n },\n until: '4.0.0'\n });\n\n // SAFETY: the cast here is a *lie*, but it is a useful one. The actual return\n // type of `setModifierManager` today is `void`; we pretend it actually\n // returns an opaque `Modifier` type so that we can provide a result from this\n // type which is useful to TS-aware tooling (e.g. Glint).\n return setModifierManager(() => options.eager ? EAGER_MANAGER : LAZY_MANAGER, fn);\n}\n\n/**\n * @internal\n */\n\n/**\n * @deprecated Instead of defining a function to match this type, simply define\n * a function-based modifier either using a `Signature` or by defining the\n * types on the callback passed to the `modifier`.\n */","import { A } from '@ember/array';\nimport ContainerDebugAdapter from '@ember/debug/container-debug-adapter';\nimport { ModuleRegistry } from './index';\nimport { getOwner } from '@ember/application';\n\nfunction getPod(type, key, prefix) {\n let match = key.match(new RegExp('^/?' + prefix + '/(.+)/' + type + '$'));\n if (match !== null) {\n return match[1];\n }\n}\n\n/*\n * This module defines a subclass of Ember.ContainerDebugAdapter that adds\n * support for resolving from modules.\n *\n */\n\n/* eslint-disable ember/no-classic-classes */\nexport default ContainerDebugAdapter.extend({\n _moduleRegistry: null,\n\n init() {\n this._super(...arguments);\n this.namespace = getOwner(this).lookup('application:main');\n\n if (!this._moduleRegistry) {\n this._moduleRegistry = new ModuleRegistry();\n }\n },\n\n /**\n The container of the application being debugged.\n This property will be injected\n on creation.\n\n @property container\n @default null\n */\n\n /**\n The resolver instance of the application\n being debugged. This property will be injected\n on creation.\n\n @property resolver\n @default null\n */\n\n /**\n Returns true if it is possible to catalog a list of available\n classes in the resolver for a given type.\n\n @method canCatalogEntriesByType\n @param {string} type The type. e.g. \"model\", \"controller\", \"route\"\n @return {boolean} whether a list is available for this type.\n */\n canCatalogEntriesByType(type) {\n if (type === 'model') {\n return true;\n }\n return this._super(...arguments);\n },\n\n /**\n Returns the available classes a given type.\n\n @method catalogEntriesByType\n @param {string} type The type. e.g. \"model\", \"controller\", \"route\"\n @return {Array} An array of classes.\n */\n catalogEntriesByType(type) {\n let moduleNames = this._moduleRegistry.moduleNames();\n let types = A();\n\n let prefix = this.namespace.modulePrefix;\n\n for (let i = 0, l = moduleNames.length; i < l; i++) {\n let key = moduleNames[i];\n\n if (key.indexOf(type) !== -1) {\n // Check if it's a pod module\n let name = getPod(type, key, this.namespace.podModulePrefix || prefix);\n if (!name) {\n // Not pod\n name = key.split(type + 's/').pop();\n\n // Support for different prefix (such as ember-cli addons).\n // Uncomment the code below when\n // https://github.com/ember-cli/ember-resolver/pull/80 is merged.\n\n //let match = key.match('^/?(.+)/' + type);\n //if (match && match[1] !== prefix) {\n // Different prefix such as an addon\n //name = match[1] + '@' + name;\n //}\n }\n types.addObject(name);\n }\n }\n return types;\n },\n});\n","export default class Cache {\n constructor(limit, func, store) {\n this.limit = limit;\n this.func = func;\n this.store = store;\n this.size = 0;\n this.misses = 0;\n this.hits = 0;\n this.store = store || new Map();\n }\n get(key) {\n let value = this.store.get(key);\n if (this.store.has(key)) {\n this.hits++;\n return this.store.get(key);\n } else {\n this.misses++;\n value = this.set(key, this.func(key));\n }\n return value;\n }\n set(key, value) {\n if (this.limit > this.size) {\n this.size++;\n this.store.set(key, value);\n }\n return value;\n }\n purge() {\n this.store.clear();\n this.size = 0;\n this.hits = 0;\n this.misses = 0;\n }\n}\n","/* eslint-disable no-useless-escape */\nimport Cache from './cache';\nlet STRINGS = {};\nexport function setStrings(strings) {\n STRINGS = strings;\n}\nexport function getStrings() {\n return STRINGS;\n}\nexport function getString(name) {\n return STRINGS[name];\n}\nconst STRING_DASHERIZE_REGEXP = /[ _]/g;\nconst STRING_DASHERIZE_CACHE = new Cache(1000, (key) =>\n decamelize(key).replace(STRING_DASHERIZE_REGEXP, '-')\n);\nconst STRING_CLASSIFY_REGEXP_1 = /^(\\-|_)+(.)?/;\nconst STRING_CLASSIFY_REGEXP_2 = /(.)(\\-|\\_|\\.|\\s)+(.)?/g;\nconst STRING_CLASSIFY_REGEXP_3 = /(^|\\/|\\.)([a-z])/g;\nconst CLASSIFY_CACHE = new Cache(1000, (str) => {\n const replace1 = (_match, _separator, chr) =>\n chr ? `_${chr.toUpperCase()}` : '';\n const replace2 = (_match, initialChar, _separator, chr) =>\n initialChar + (chr ? chr.toUpperCase() : '');\n const parts = str.split('/');\n for (let i = 0; i < parts.length; i++) {\n parts[i] = parts[i]\n .replace(STRING_CLASSIFY_REGEXP_1, replace1)\n .replace(STRING_CLASSIFY_REGEXP_2, replace2);\n }\n return parts\n .join('/')\n .replace(STRING_CLASSIFY_REGEXP_3, (match /*, separator, chr */) =>\n match.toUpperCase()\n );\n});\nconst STRING_UNDERSCORE_REGEXP_1 = /([a-z\\d])([A-Z]+)/g;\nconst STRING_UNDERSCORE_REGEXP_2 = /\\-|\\s+/g;\nconst UNDERSCORE_CACHE = new Cache(1000, (str) =>\n str\n .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')\n .replace(STRING_UNDERSCORE_REGEXP_2, '_')\n .toLowerCase()\n);\nconst STRING_DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\nconst DECAMELIZE_CACHE = new Cache(1000, (str) =>\n str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase()\n);\n/**\n Converts a camelized string into all lower case separated by underscores.\n\n ```javascript\n import { decamelize } from '@ember/string';\n\n decamelize('innerHTML'); // 'inner_html'\n decamelize('action_name'); // 'action_name'\n decamelize('css-class-name'); // 'css-class-name'\n decamelize('my favorite items'); // 'my favorite items'\n ```\n\n @method decamelize\n @param {String} str The string to decamelize.\n @return {String} the decamelized string.\n @public\n*/\nexport function decamelize(str) {\n return DECAMELIZE_CACHE.get(str);\n}\n/**\n Replaces underscores, spaces, or camelCase with dashes.\n\n ```javascript\n import { dasherize } from '@ember/string';\n\n dasherize('innerHTML'); // 'inner-html'\n dasherize('action_name'); // 'action-name'\n dasherize('css-class-name'); // 'css-class-name'\n dasherize('my favorite items'); // 'my-favorite-items'\n dasherize('privateDocs/ownerInvoice'; // 'private-docs/owner-invoice'\n ```\n\n @method dasherize\n @param {String} str The string to dasherize.\n @return {String} the dasherized string.\n @public\n*/\nexport function dasherize(str) {\n return STRING_DASHERIZE_CACHE.get(str);\n}\n/**\n Returns the UpperCamelCase form of a string.\n\n ```javascript\n import { classify } from '@ember/string';\n\n classify('innerHTML'); // 'InnerHTML'\n classify('action_name'); // 'ActionName'\n classify('css-class-name'); // 'CssClassName'\n classify('my favorite items'); // 'MyFavoriteItems'\n classify('private-docs/owner-invoice'); // 'PrivateDocs/OwnerInvoice'\n ```\n\n @method classify\n @param {String} str the string to classify\n @return {String} the classified string\n @public\n*/\nexport function classify(str) {\n return CLASSIFY_CACHE.get(str);\n}\n/**\n More general than decamelize. Returns the lower\\_case\\_and\\_underscored\n form of a string.\n\n ```javascript\n import { underscore } from '@ember/string';\n\n underscore('innerHTML'); // 'inner_html'\n underscore('action_name'); // 'action_name'\n underscore('css-class-name'); // 'css_class_name'\n underscore('my favorite items'); // 'my_favorite_items'\n underscore('privateDocs/ownerInvoice'); // 'private_docs/owner_invoice'\n ```\n\n @method underscore\n @param {String} str The string to underscore.\n @return {String} the underscored string.\n @public\n*/\nexport function underscore(str) {\n return UNDERSCORE_CACHE.get(str);\n}\n","/* globals requirejs, require */\n\nimport { assert, deprecate, warn } from '@ember/debug';\nimport EmberObject from '@ember/object';\nimport { dasherize, classify, underscore } from './string';\nimport { DEBUG } from '@glimmer/env';\nimport classFactory from './utils/class-factory';\n\nimport { getOwner } from '@ember/owner';\n\nif (typeof requirejs.entries === 'undefined') {\n requirejs.entries = requirejs._eak_seen;\n}\n\nexport class ModuleRegistry {\n constructor(entries) {\n this._entries = entries || requirejs.entries;\n }\n moduleNames() {\n return Object.keys(this._entries);\n }\n has(moduleName) {\n return moduleName in this._entries;\n }\n get(...args) {\n return require(...args);\n }\n}\n\n/**\n * This module defines a subclass of Ember.DefaultResolver that adds two\n * important features:\n *\n * 1) The resolver makes the container aware of es6 modules via the AMD\n * output. The loader's _moduleEntries is consulted so that classes can be\n * resolved directly via the module loader, without needing a manual\n * `import`.\n * 2) is able to provide injections to classes that implement `extend`\n * (as is typical with Ember).\n */\nclass Resolver extends EmberObject {\n static moduleBasedResolver = true;\n moduleBasedResolver = true;\n\n _deprecatedPodModulePrefix = false;\n _normalizeCache = Object.create(null);\n\n /**\n A listing of functions to test for moduleName's based on the provided\n `parsedName`. This allows easy customization of additional module based\n lookup patterns.\n\n @property moduleNameLookupPatterns\n @returns {Ember.Array}\n */\n moduleNameLookupPatterns = [\n this.podBasedModuleName,\n this.podBasedComponentsInSubdir,\n this.mainModuleName,\n this.defaultModuleName,\n this.nestedColocationComponentModuleName,\n ];\n\n constructor() {\n super(...arguments);\n\n if (!this._moduleRegistry) {\n this._moduleRegistry = new ModuleRegistry();\n }\n\n this.pluralizedTypes = this.pluralizedTypes || Object.create(null);\n\n if (!this.pluralizedTypes.config) {\n this.pluralizedTypes.config = 'config';\n }\n }\n\n makeToString(factory, fullName) {\n return '' + this.namespace.modulePrefix + '@' + fullName + ':';\n }\n\n shouldWrapInClassFactory(/* module, parsedName */) {\n return false;\n }\n\n parseName(fullName) {\n if (fullName.parsedName === true) {\n return fullName;\n }\n\n let prefix, type, name;\n let fullNameParts = fullName.split('@');\n\n if (fullNameParts.length === 3) {\n if (fullNameParts[0].length === 0) {\n // leading scoped namespace: `@scope/pkg@type:name`\n prefix = `@${fullNameParts[1]}`;\n let prefixParts = fullNameParts[2].split(':');\n type = prefixParts[0];\n name = prefixParts[1];\n } else {\n // interweaved scoped namespace: `type:@scope/pkg@name`\n prefix = `@${fullNameParts[1]}`;\n type = fullNameParts[0].slice(0, -1);\n name = fullNameParts[2];\n }\n\n if (type === 'template:components') {\n name = `components/${name}`;\n type = 'template';\n }\n } else if (fullNameParts.length === 2) {\n let prefixParts = fullNameParts[0].split(':');\n\n if (prefixParts.length === 2) {\n if (prefixParts[1].length === 0) {\n type = prefixParts[0];\n name = `@${fullNameParts[1]}`;\n } else {\n prefix = prefixParts[1];\n type = prefixParts[0];\n name = fullNameParts[1];\n }\n } else {\n let nameParts = fullNameParts[1].split(':');\n\n prefix = fullNameParts[0];\n type = nameParts[0];\n name = nameParts[1];\n }\n\n if (type === 'template' && prefix.lastIndexOf('components/', 0) === 0) {\n name = `components/${name}`;\n prefix = prefix.slice(11);\n }\n } else {\n fullNameParts = fullName.split(':');\n type = fullNameParts[0];\n name = fullNameParts[1];\n }\n\n let fullNameWithoutType = name;\n let namespace = this.namespace;\n let root = namespace;\n\n return {\n parsedName: true,\n fullName: fullName,\n prefix: prefix || this.prefix({ type: type }),\n type: type,\n fullNameWithoutType: fullNameWithoutType,\n name: name,\n root: root,\n resolveMethodName: 'resolve' + classify(type),\n };\n }\n\n resolveOther(parsedName) {\n assert('`modulePrefix` must be defined', this.namespace.modulePrefix);\n\n let normalizedModuleName = this.findModuleName(parsedName);\n\n if (normalizedModuleName) {\n let defaultExport = this._extractDefaultExport(\n normalizedModuleName,\n parsedName\n );\n\n if (defaultExport === undefined) {\n throw new Error(\n ` Expected to find: '${parsedName.fullName}' within '${normalizedModuleName}' but got 'undefined'. Did you forget to 'export default' within '${normalizedModuleName}'?`\n );\n }\n\n if (this.shouldWrapInClassFactory(defaultExport, parsedName)) {\n defaultExport = classFactory(defaultExport);\n }\n\n return defaultExport;\n }\n }\n\n normalize(fullName) {\n return (\n this._normalizeCache[fullName] ||\n (this._normalizeCache[fullName] = this._normalize(fullName))\n );\n }\n\n resolve(fullName) {\n let parsedName = this.parseName(fullName);\n let resolveMethodName = parsedName.resolveMethodName;\n let resolved;\n\n if (typeof this[resolveMethodName] === 'function') {\n resolved = this[resolveMethodName](parsedName);\n }\n\n if (resolved == null) {\n resolved = this.resolveOther(parsedName);\n }\n\n return resolved;\n }\n\n _normalize(fullName) {\n // A) Convert underscores to dashes\n // B) Convert camelCase to dash-case, except for components (their\n // templates) and helpers where we want to avoid shadowing camelCase\n // expressions\n // C) replace `.` with `/` in order to make nested controllers work in the following cases\n // 1. `needs: ['posts/post']`\n // 2. `{{render \"posts/post\"}}`\n // 3. `this.render('posts/post')` from Route\n\n let split = fullName.split(':');\n if (split.length > 1) {\n let type = split[0];\n\n if (\n type === 'component' ||\n type === 'helper' ||\n type === 'modifier' ||\n (type === 'template' && split[1].indexOf('components/') === 0)\n ) {\n return type + ':' + split[1].replace(/_/g, '-');\n } else {\n return type + ':' + dasherize(split[1].replace(/\\./g, '/'));\n }\n } else {\n return fullName;\n }\n }\n\n pluralize(type) {\n return (\n this.pluralizedTypes[type] || (this.pluralizedTypes[type] = type + 's')\n );\n }\n\n podBasedLookupWithPrefix(podPrefix, parsedName) {\n let fullNameWithoutType = parsedName.fullNameWithoutType;\n\n if (parsedName.type === 'template') {\n fullNameWithoutType = fullNameWithoutType.replace(/^components\\//, '');\n }\n\n return podPrefix + '/' + fullNameWithoutType + '/' + parsedName.type;\n }\n\n podBasedModuleName(parsedName) {\n let podPrefix =\n this.namespace.podModulePrefix || this.namespace.modulePrefix;\n\n return this.podBasedLookupWithPrefix(podPrefix, parsedName);\n }\n\n podBasedComponentsInSubdir(parsedName) {\n let podPrefix =\n this.namespace.podModulePrefix || this.namespace.modulePrefix;\n podPrefix = podPrefix + '/components';\n\n if (\n parsedName.type === 'component' ||\n /^components/.test(parsedName.fullNameWithoutType)\n ) {\n return this.podBasedLookupWithPrefix(podPrefix, parsedName);\n }\n }\n\n resolveEngine(parsedName) {\n let engineName = parsedName.fullNameWithoutType;\n let engineModule = engineName + '/engine';\n\n if (this._moduleRegistry.has(engineModule)) {\n return this._extractDefaultExport(engineModule);\n }\n }\n\n resolveRouteMap(parsedName) {\n let engineName = parsedName.fullNameWithoutType;\n let engineRoutesModule = engineName + '/routes';\n\n if (this._moduleRegistry.has(engineRoutesModule)) {\n let routeMap = this._extractDefaultExport(engineRoutesModule);\n\n assert(\n `The route map for ${engineName} should be wrapped by 'buildRoutes' before exporting.`,\n routeMap.isRouteMap\n );\n\n return routeMap;\n }\n }\n\n resolveTemplate(parsedName) {\n return this.resolveOther(parsedName);\n }\n\n mainModuleName(parsedName) {\n if (parsedName.fullNameWithoutType === 'main') {\n // if router:main or adapter:main look for a module with just the type first\n return parsedName.prefix + '/' + parsedName.type;\n }\n }\n\n defaultModuleName(parsedName) {\n return (\n parsedName.prefix +\n '/' +\n this.pluralize(parsedName.type) +\n '/' +\n parsedName.fullNameWithoutType\n );\n }\n\n nestedColocationComponentModuleName(parsedName) {\n if (parsedName.type === 'component') {\n return (\n parsedName.prefix +\n '/' +\n this.pluralize(parsedName.type) +\n '/' +\n parsedName.fullNameWithoutType +\n '/index'\n );\n }\n }\n\n prefix(parsedName) {\n let tmpPrefix = this.namespace.modulePrefix;\n\n if (this.namespace[parsedName.type + 'Prefix']) {\n tmpPrefix = this.namespace[parsedName.type + 'Prefix'];\n }\n\n return tmpPrefix;\n }\n\n findModuleName(parsedName, loggingDisabled) {\n let moduleNameLookupPatterns = this.moduleNameLookupPatterns;\n let moduleName;\n\n for (\n let index = 0, length = moduleNameLookupPatterns.length;\n index < length;\n index++\n ) {\n let item = moduleNameLookupPatterns[index];\n\n let tmpModuleName = item.call(this, parsedName);\n\n // allow treat all dashed and all underscored as the same thing\n // supports components with dashes and other stuff with underscores.\n if (tmpModuleName) {\n tmpModuleName = this.chooseModuleName(tmpModuleName, parsedName);\n }\n\n if (tmpModuleName && this._moduleRegistry.has(tmpModuleName)) {\n moduleName = tmpModuleName;\n }\n\n if (!loggingDisabled) {\n this._logLookup(moduleName, parsedName, tmpModuleName);\n }\n\n if (moduleName) {\n return moduleName;\n }\n }\n }\n\n chooseModuleName(moduleName, parsedName) {\n let underscoredModuleName = underscore(moduleName);\n\n if (\n moduleName !== underscoredModuleName &&\n this._moduleRegistry.has(moduleName) &&\n this._moduleRegistry.has(underscoredModuleName)\n ) {\n throw new TypeError(\n `Ambiguous module names: '${moduleName}' and '${underscoredModuleName}'`\n );\n }\n\n if (this._moduleRegistry.has(moduleName)) {\n return moduleName;\n } else if (this._moduleRegistry.has(underscoredModuleName)) {\n return underscoredModuleName;\n }\n // workaround for dasherized partials:\n // something/something/-something => something/something/_something\n let partializedModuleName = moduleName.replace(/\\/-([^/]*)$/, '/_$1');\n\n if (this._moduleRegistry.has(partializedModuleName)) {\n deprecate(\n 'Modules should not contain underscores. ' +\n 'Attempted to lookup \"' +\n moduleName +\n '\" which ' +\n 'was not found. Please rename \"' +\n partializedModuleName +\n '\" ' +\n 'to \"' +\n moduleName +\n '\" instead.',\n false,\n {\n id: 'ember-resolver.underscored-modules',\n until: '3.0.0',\n for: 'ember-resolver',\n since: '0.1.0',\n }\n );\n\n return partializedModuleName;\n }\n\n if (DEBUG) {\n let isCamelCaseHelper =\n parsedName.type === 'helper' && /[a-z]+[A-Z]+/.test(moduleName);\n if (isCamelCaseHelper) {\n this._camelCaseHelperWarnedNames =\n this._camelCaseHelperWarnedNames || [];\n let alreadyWarned =\n this._camelCaseHelperWarnedNames.indexOf(parsedName.fullName) > -1;\n if (!alreadyWarned && this._moduleRegistry.has(dasherize(moduleName))) {\n this._camelCaseHelperWarnedNames.push(parsedName.fullName);\n warn(\n 'Attempted to lookup \"' +\n parsedName.fullName +\n '\" which ' +\n 'was not found. In previous versions of ember-resolver, a bug would have ' +\n 'caused the module at \"' +\n dasherize(moduleName) +\n '\" to be ' +\n 'returned for this camel case helper name. This has been fixed. ' +\n 'Use the dasherized name to resolve the module that would have been ' +\n 'returned in previous versions.',\n false,\n { id: 'ember-resolver.camelcase-helper-names', until: '3.0.0' }\n );\n }\n }\n }\n }\n\n // used by Ember.DefaultResolver.prototype._logLookup\n lookupDescription(fullName) {\n let parsedName = this.parseName(fullName);\n\n let moduleName = this.findModuleName(parsedName, true);\n\n return moduleName;\n }\n\n // only needed until 1.6.0-beta.2 can be required\n _logLookup(found, parsedName, description) {\n let owner = getOwner(this);\n let env = owner?.resolveRegistration?.('config:environment');\n if (!env?.LOG_MODULE_RESOLVER && !parsedName.root.LOG_RESOLVER) {\n return;\n }\n\n let padding;\n let symbol = found ? '[✓]' : '[ ]';\n\n if (parsedName.fullName.length > 60) {\n padding = '.';\n } else {\n padding = new Array(60 - parsedName.fullName.length).join('.');\n }\n\n if (!description) {\n description = this.lookupDescription(parsedName);\n }\n\n /* eslint-disable no-console */\n if (console && console.info) {\n console.info(symbol, parsedName.fullName, padding, description);\n }\n }\n\n knownForType(type) {\n let moduleKeys = this._moduleRegistry.moduleNames();\n\n let items = Object.create(null);\n for (let index = 0, length = moduleKeys.length; index < length; index++) {\n let moduleName = moduleKeys[index];\n let fullname = this.translateToContainerFullname(type, moduleName);\n\n if (fullname) {\n items[fullname] = true;\n }\n }\n\n return items;\n }\n\n translateToContainerFullname(type, moduleName) {\n let prefix = this.prefix({ type });\n\n // Note: using string manipulation here rather than regexes for better performance.\n // pod modules\n // '^' + prefix + '/(.+)/' + type + '$'\n let podPrefix = prefix + '/';\n let podSuffix = '/' + type;\n let start = moduleName.indexOf(podPrefix);\n let end = moduleName.indexOf(podSuffix);\n\n if (\n start === 0 &&\n end === moduleName.length - podSuffix.length &&\n moduleName.length > podPrefix.length + podSuffix.length\n ) {\n return type + ':' + moduleName.slice(start + podPrefix.length, end);\n }\n\n // non-pod modules\n // '^' + prefix + '/' + pluralizedType + '/(.+)$'\n let pluralizedType = this.pluralize(type);\n let nonPodPrefix = prefix + '/' + pluralizedType + '/';\n\n if (\n moduleName.indexOf(nonPodPrefix) === 0 &&\n moduleName.length > nonPodPrefix.length\n ) {\n return type + ':' + moduleName.slice(nonPodPrefix.length);\n }\n }\n\n _extractDefaultExport(normalizedModuleName) {\n let module = this._moduleRegistry.get(\n normalizedModuleName,\n null,\n null,\n true /* force sync */\n );\n\n if (module && module['default']) {\n module = module['default'];\n }\n\n return module;\n }\n}\n\nexport default Resolver;\n","export default function classFactory(klass) {\n return {\n create(injections) {\n if (typeof klass.extend === 'function') {\n return klass.extend(injections);\n } else {\n return klass;\n }\n },\n };\n}\n","import { helper } from '@ember/component/helper';\n\nexport function gt([left, right], hash) {\n if (hash.forceNumber) {\n if (typeof left !== 'number') { left = Number(left); }\n if (typeof right !== 'number') { right = Number(right); }\n }\n return left > right;\n}\n\nexport default helper(gt);\n","import { helper } from '@ember/component/helper';\n\nexport function gte([left, right], hash) {\n if (hash.forceNumber) {\n if (typeof left !== 'number') { left = Number(left); }\n if (typeof right !== 'number') { right = Number(right); }\n }\n return left >= right;\n}\n\nexport default helper(gte);\n","import { helper } from '@ember/component/helper';\nimport { isArray as emberIsArray } from '@ember/array';\n\nexport function isArray(params) {\n for (let i=0, len=params.length; i<len; i++) {\n if (emberIsArray(params[i]) === false) {\n return false;\n }\n }\n return true;\n}\n\nexport default helper(isArray);\n","import { helper } from '@ember/component/helper';\nimport { isEmpty } from '@ember/utils';\n\nexport default helper(function([obj]) {\n return isEmpty(obj)\n})\n","import { helper } from '@ember/component/helper';\nimport { isEqual as emberIsEqual } from '@ember/utils';\n\nexport function isEqual([a, b]) {\n return emberIsEqual(a, b);\n}\n\nexport default helper(isEqual);\n","import { helper } from '@ember/component/helper';\n\nexport function lt([left, right], hash) {\n if (hash.forceNumber) {\n if (typeof left !== 'number') { left = Number(left); }\n if (typeof right !== 'number') { right = Number(right); }\n }\n return left < right;\n}\n\nexport default helper(lt);\n","import { helper } from '@ember/component/helper';\n\nexport function lte([left, right], hash) {\n if (hash.forceNumber) {\n if (typeof left !== 'number') { left = Number(left); }\n if (typeof right !== 'number') { right = Number(right); }\n }\n return left <= right;\n}\n\nexport default helper(lte);\n","import { helper } from '@ember/component/helper';\n\nexport function notEqualHelper(params) {\n return params[0] !== params[1];\n}\n\nexport default helper(notEqualHelper);\n","import { helper } from '@ember/component/helper';\nimport truthConvert from '../utils/truth-convert';\n\nexport function not(params) {\n for (let i=0, len=params.length; i<len; i++) {\n if (truthConvert(params[i]) === true) {\n return false;\n }\n }\n return true;\n}\n\nexport default helper(not);\n","import { helper } from '@ember/component/helper';\nimport truthConvert from '../utils/truth-convert';\n\nexport function xor(params) {\n return truthConvert(params[0]) !== truthConvert(params[1]);\n}\n\nexport default helper(xor);\n","import { isArray } from '@ember/array';\nimport { get } from '@ember/object';\n\nexport default function truthConvert(result) {\n const truthy = result && get(result, 'isTruthy');\n if (typeof truthy === 'boolean') { return truthy; }\n\n if (isArray(result)) {\n return get(result, 'length') !== 0;\n } else {\n return !!result;\n }\n}","\n// UMD Module boilerplate\n(function (root, factory) {\n /*global define */\n /*global module */\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.PrecisionStudioMenu = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () { /* eslint-disable-line no-restricted-globals */\n var SYMBOLTEXT = \n '<svg id=\"precisionstudio-icons\" aria-hidden=\"true\" focusable=\"false\" style=\"position: absolute; width: 0; height: 0; overflow: hidden;\" ' + \n 'version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' + \n '<defs>' +\n '<linearGradient id=\"precisionstudio-icon-gradient\" x1=\"103.25\" y1=\"207.08\" x2=\"103.25\" y2=\"0.57\" gradientUnits=\"userSpaceOnUse\"><stop offset=\"0\" stop-color=\"#006fb9\"/><stop offset=\"1\" stop-color=\"#15bef0\"/></linearGradient>' +\n '<symbol id=\"precisionstudio-icon-precision-studio\" viewBox=\"0 0 32 32\">' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"1.3406\" d=\"M29.050 2.942c-0.001 0-0.001 0-0.002 0-1.229 0-2.225 0.996-2.225 2.225v0 22.203c-0.001-0.019-0.001-0.042-0.001-0.065 0-1.23 0.997-2.227 2.227-2.227s2.227 0.997 2.227 2.227c0 0.023-0 0.046-0.001 0.068l0-0.003v-22.203c0-1.229-0.996-2.225-2.225-2.225v0z\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"1.3406\" d=\"M2.895 2.942c-1.229 0-2.225 0.996-2.225 2.225v0 22.203c-0.001-0.019-0.001-0.042-0.001-0.065 0-1.23 0.997-2.227 2.227-2.227s2.227 0.997 2.227 2.227c0 0.023-0 0.046-0.001 0.068l0-0.003v-22.203c0-1.229-0.996-2.225-2.225-2.225-0.001 0-0.001 0-0.002 0h0z\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"1.3406\" d=\"M5.122 5.141h21.701\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"1.3406\" d=\"M0.67 27.37v0c0 0.941 0.763 1.704 1.704 1.704v0h27.204c0.941 0 1.704-0.763 1.704-1.704v0 0\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"1.3406\" d=\"M10.289 10.202h11.147c0.333 0 0.602 0.27 0.602 0.602v11.147c0 0.333-0.27 0.602-0.602 0.602h-11.147c-0.333 0-0.602-0.27-0.602-0.602v-11.147c0-0.333 0.27-0.602 0.602-0.602z\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M13.569 13.633h4.59c0.248 0 0.449 0.201 0.449 0.449v4.59c0 0.248-0.201 0.449-0.449 0.449h-4.59c-0.248 0-0.449-0.201-0.449-0.449v-4.59c0-0.248 0.201-0.449 0.449-0.449z\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M21.171 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M19.403 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M17.632 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M15.864 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M14.093 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M12.325 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M10.554 10.202v-1.922\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M21.171 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M19.403 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M17.632 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M15.864 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M14.093 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M12.325 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M10.554 24.466v-1.912\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 21.686h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 19.916h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 18.147h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 16.379h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 14.608h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 12.84h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M22.040 11.069h1.929\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 21.686h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 19.916h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 18.147h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 16.379h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 14.608h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 12.84h1.903\"></path>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-miterlimit=\"4\" stroke-width=\"0.6627\" d=\"M7.784 11.069h1.903\"></path>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-adc-driver\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"29.67\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"20.67\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M31.86,78.9v48.7l43-24.46-43-24.24Z\"/>' +\n '<polygon fill=\"none\" stroke=\"currentcolor\" stroke-width=\"7\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill-rule=\"evenodd\" points=\"90.72 103.25 115.07 79.05 174.64 79.05 174.64 127.45 115.07 127.45 90.72 103.25\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-analog-filter\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"29.67\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"cls-2\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"20.67\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"10.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"57.27 57.86 128.68 57.81 149.24 148.69\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-dds\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"24.75\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"15.75\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"10.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M37.33,104C42.08,94.61,46.76,85.2,51.87,76c3.93-7,9.68-17.27,18.93-17.31s15,9.33,19,16.42c5.21,9.3,10,18.8,14.56,28.45,4.38,9.32,8.93,18.51,13.89,27.54,3.78,6.9,9.87,18,19.3,16.55,9.17-1.38,14.61-11.38,18.73-18.64,2.7-4.76,5.13-9.67,7.72-14.49,1.44-2.69,5.15-9.23,5.15-9.23\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-in-amp\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"29.67\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"20.67\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"7.08\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M83.18,66.85v72.81l64.32-36.57L83.18,66.85Z\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"83.18 124.13 64.29 124.13 64.29 117.39 60.42 115.3 68.6 110.53 60.37 105.61 68.6 100.77 60.42 96.07 68.6 91.23 64.29 88.69 64.29 82.37 83.18 82.37\"/>' +\n '<polygon fill=\"none\" stroke=\"currentcolor\" stroke-width=\"10.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"166.12 140.3 103.25 165.86 40.39 140.3 40.39 66.21 103.25 40.65 166.12 66.21 166.12 140.3\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-photodiode\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"29.67\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"20.67\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"7.08\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M134.86,78.05v50.41l44.53-25.32L134.86,78.05Z\"/>' +\n '<polyline fill=\"currentcolor\" points=\"74.76 126.82 65.62 108.91 54.66 119.87 72.56 129.01\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"28.68 101.44 45.36 118.11 48.54 102.23 63.36 117.06\"/>' +\n '<polyline fill=\"currentcolor\" points=\"73.45 102.87 64.31 84.97 53.35 95.93 71.26 105.07\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"27.38 77.49 44.06 94.17 47.23 78.28 62.06 93.11\"/>' +\n '<line fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x1=\"87.05\" y1=\"87.45\" x2=\"115.41\" y2=\"87.45\"/>' +\n '<polygon fill=\"currentcolor\" fill-rule=\"evenodd\" points=\"85.52 113.81 99.76 85.83 101.19 85.83 115.98 113.81 85.52 113.81 85.52 113.81\"/>' +\n '<line fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x1=\"100.75\" y1=\"77.49\" x2=\"100.75\" y2=\"129.01\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-virtual-eval\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"24.75\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"15.75\" transform=\"translate(206.51 0) rotate(90)\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M100.09,78.56l4.15-3.51-3.77-5.57-4.93,2.61a15.26,15.26,0,0,0-5-2.78l-.17-5.43-6.7-.52-1,5.47A15.41,15.41,0,0,0,77.43,71l-4.35-3.26-4.59,4.91,3.64,4.22a15.17,15.17,0,0,0-1.6,5.46l-5.26,1.36,1,6.66,5.56-.22\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M80.53,83.18a5.32,5.32,0,0,1,7.72-4.29\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"158.89 134.98 114.8 134.98 114.8 98.42\"/>' +\n '<polygon fill=\"currentcolor\" points=\"120.04 99.95 114.8 90.89 109.56 99.95 120.04 99.95\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M121.17,98.9h.41a6.37,6.37,0,0,1,6.37,6.37V135a0,0,0,0,1,0,0H114.8a0,0,0,0,1,0,0V105.27A6.37,6.37,0,0,1,121.17,98.9Z\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M133.29,107.74h.34a5.34,5.34,0,0,1,5.34,5.34V135a0,0,0,0,1,0,0h-11a0,0,0,0,1,0,0V113.08a5.34,5.34,0,0,1,5.34-5.34Z\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M143.8,119.63h.31a4.82,4.82,0,0,1,4.82,4.82V135a0,0,0,0,1,0,0H139a0,0,0,0,1,0,0V124.45A4.82,4.82,0,0,1,143.8,119.63Z\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M153.76,126.74h.31a4.82,4.82,0,0,1,4.82,4.82V135a0,0,0,0,1,0,0h-10a0,0,0,0,1,0,0v-3.42a4.82,4.82,0,0,1,4.82-4.82Z\"/>' +\n '<path fill=\"currentcolor\" d=\"M82.39,44.35c12.53,0,22.39,7.22,26.43,17.27,3-2,11.06-6.59,20.65-6.59a28.69,28.69,0,0,1,19,7.2c12.51,10.65,7.58,27.86,7.41,29.11,11.32,4.42,20.62,14.17,20.62,27.06,0,22.06-20.7,29.33-28.7,29.33-.8,0-73.45.07-87.67.07-8.4,0-15.74-2.65-21.24-8.16A29.67,29.67,0,0,1,30,118.4c0-7.5,2-14.73,6.48-20s10.42-9.5,17.67-10.71c-2.86-4.62-2.85-9.35-2.85-15.19,0-8.4,5.76-25.15,26.79-27.84a33.51,33.51,0,0,1,4.31-.28m0-10.5a44.73,44.73,0,0,0-5.64.36c-26.38,3.38-36,24.73-36,38.26a72.66,72.66,0,0,0,.35,8.69A43.57,43.57,0,0,0,28.46,91.58c-5.87,6.94-9,16.21-9,26.82a40.35,40.35,0,0,0,12,28.67c7.35,7.34,17.26,11.23,28.67,11.23s61.43-.05,80.23-.07h7.44c13.67,0,39.2-11.69,39.2-39.83,0-13.53-7.35-25.64-19.63-33.07.9-12.73-3.27-23.59-12.1-31.1a39.5,39.5,0,0,0-25.82-9.7,46.23,46.23,0,0,0-16.77,3.31,39.08,39.08,0,0,0-30.31-14Z\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"3.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill-rule=\"evenodd\" points=\"109.35 122.01 86.48 122.01 67.59 103.24 86.48 84.47 132.68 84.47 132.68 97.28\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-dac-ebc\" viewBox=\"0 0 206.51 206.51\">' +\n '<rect class=\"precisionstudiomenu-takes-gradient\" width=\"206.51\" height=\"206.51\" rx=\"29.67\"/>' +\n '<rect fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x=\"9\" y=\"9\" width=\"188.51\" height=\"188.51\" rx=\"20.67\"/>' +\n '<polygon fill=\"none\" stroke=\"currentcolor\" stroke-width=\"8.83\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"174.44 120.32 142.79 151.78 65.36 151.78 65.36 88.87 142.79 88.87 174.44 120.32\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M92.52,70.13a33.2,33.2,0,1,1-3.88-4.64\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M73.74,89A8.5,8.5,0,1,1,71,82.71\"/>' +\n '<line fill=\"none\" stroke=\"currentcolor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" x1=\"65.38\" y1=\"88.76\" x2=\"102.63\" y2=\"51.5\"/>' +\n '<polyline fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"110.53 56.01 98.12 56.01 98.12 43.6\"/>' +\n '<polygon fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" points=\"102.63 39.1 102.63 51.5 115.03 51.5 106.02 60.52 93.61 60.52 93.61 48.11 102.63 39.1\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M83.63,79.07A20.91,20.91,0,1,1,80,74.17\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-noise\" viewBox=\"0 0 206.51 206.51\">' +\n '<path class=\"precisionstudiomenu-takes-gradient\" d=\"M176.8,206.5H29.7C13.3,206.5,0,193.2,0,176.8V29.7C0,13.3,13.3,0,29.7,0h147.2c16.4,0,29.7,13.3,29.7,29.7v147.2C206.5,193.2,193.2,206.5,176.8,206.5z\"/>' +\n '<path fill=\"none\" stroke=\"currentcolor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M197.5,29.7v147.2c0,11.4-9.3,20.7-20.7,20.7H29.7c-11.4,0-20.7-9.3-20.7-20.7V29.7C9,18.3,18.3,9,29.7,9h147.2C188.3,9,197.5,18.3,197.5,29.7z\"/>' +\n '<path fill=\"currentcolor\" d=\"M25.1,97.9v53.2c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5V97.9c0-2.5-2-4.5-4.5-4.5S25.1,95.4,25.1,97.9\"/>' +\n '<path fill=\"currentcolor\" d=\"M174.9,113.7v29.7c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5v-29.7c0-2.5-2-4.5-4.5-4.5C176.9,109.3,174.9,111.3,174.9,113.7\"/>' +\n '<path fill=\"currentcolor\" d=\"M89.7,113.7v29.7c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5v-29.7c0-2.5-2-4.5-4.5-4.5S89.7,111.3,89.7,113.7\"/>' +\n '<path fill=\"currentcolor\" d=\"M65.4,113.7v29.7c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5v-29.7c0-2.5-2-4.5-4.5-4.5C67.4,109.3,65.4,111.3,65.4,113.7\"/>' +\n '<path fill=\"currentcolor\" d=\"M73.3,105v47.1c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5V105c0-2.5-2-4.5-4.5-4.5S73.3,102.6,73.3,105\"/>' +\n '<path fill=\"currentcolor\" d=\"M139.5,116.5v29.7c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5v-29.7c0-2.5-2-4.5-4.5-4.5C141.5,112,139.5,114,139.5,116.5\"/>' +\n '<path fill=\"currentcolor\" d=\"M98.5,102v45.5c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V102c0-2.5-2-4.5-4.5-4.5C100.5,97.5,98.5,99.5,98.5,102\"/>' +\n '<path fill=\"currentcolor\" d=\"M123.6,121.1v22.4c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5v-22.4c0-2.5-2-4.5-4.5-4.5C125.6,116.6,123.6,118.6,123.6,121.1\"/>' +\n '<path fill=\"currentcolor\" d=\"M157.2,126v10.7c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V126c0-2.5-2-4.5-4.5-4.5C159.2,121.5,157.2,123.6,157.2,126\"/>' +\n '<path fill=\"currentcolor\" d=\"M106.4,128.8v10.7c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5l0,0v-10.7c0-2.5-2-4.5-4.5-4.5S106.4,126.3,106.4,128.8\"/>' +\n '<path fill=\"currentcolor\" d=\"M166,105v47.1c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V105c0-2.5-2-4.5-4.5-4.5C168,100.6,166,102.6,166,105\"/>' +\n '<path fill=\"currentcolor\" d=\"M115.1,111.7v38c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5v-38c0-2.5-2-4.5-4.5-4.5S115.1,109.2,115.1,111.7\"/>' +\n '<path fill=\"currentcolor\" d=\"M148.3,102v61.5c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V102c0-2.5-2-4.5-4.5-4.5C150.3,97.5,148.3,99.5,148.3,102\"/>' +\n '<path fill=\"currentcolor\" d=\"M81.3,93.7v61.5c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V93.7c0-2.5-2-4.5-4.5-4.5S81.3,91.2,81.3,93.7\"/>' +\n '<path fill=\"currentcolor\" d=\"M131,95.1v62.2c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V95.1c0-2.5-2-4.5-4.5-4.5C133,90.6,131,92.6,131,95.1\"/>' +\n '<path fill=\"currentcolor\" d=\"M33.3,120.4v19.9c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5v-19.9c0-2.5-2-4.5-4.5-4.5S33.3,117.9,33.3,120.4\"/>' +\n '<path fill=\"currentcolor\" d=\"M50.1,106.8V136c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5v-29.2c0-2.5-2-4.5-4.5-4.5S50.1,104.3,50.1,106.8\"/>' +\n '<path fill=\"currentcolor\" d=\"M41.5,89.4v58.2c0,2.5,2,4.5,4.5,4.5s4.5-2,4.5-4.5V89.4c0-2.5-2-4.5-4.5-4.5S41.5,87,41.5,89.4\"/>' +\n '<path fill=\"currentcolor\" d=\"M58.6,38.9v115.7c0,2.5,2,4.5,4.5,4.5c2.5,0,4.5-2,4.5-4.5V38.9c0-2.5-2-4.5-4.5-4.5C60.6,34.4,58.6,36.4,58.6,38.9\"/>' +\n '</symbol>' +\n\n '<symbol id=\"precisionstudio-icon-signal-chain-designer\" viewBox=\"0 0 206.5 206.5\" >' +\n '<path class=\"precisionstudiomenu-takes-gradient\" d=\"M176.8,206.5H29.7C13.3,206.5,0,193.2,0,176.8V29.7C0,13.3,13.3,0,29.7,0h147.2c16.4,0,29.7,13.3,29.7,29.7v147.2C206.5,193.2,193.2,206.5,176.8,206.5z\"/>' +\n '<path style=\"fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;\" stroke=\"currentcolor\" d=\"M197.5,29.7v147.2c0,11.4-9.3,20.7-20.7,20.7H29.7c-11.4,0-20.7-9.3-20.7-20.7V29.7C9,18.3,18.3,9,29.7,9h147.2C188.3,9,197.5,18.3,197.5,29.7z\"/>' +\n '<polygon style=\"fill:none;stroke-width:7.992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;\" stroke=\"currentcolor\" points=\"126.5,104.4 147.6,77.7 183.3,77.7 183.3,131 147.6,131 \t\t\t\t\t\t\"/>' +\n '<path style=\"fill:none;stroke-width:7.992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;\" stroke=\"currentcolor\" d=\"M23.2,77.5v53.6l42.5-26.9L23.2,77.5L23.2,77.5z\"/>' +\n '<polyline style=\"fill:none;stroke-width:7.992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;\" stroke=\"currentcolor\" points=\"70.7,77.4 101.9,77.4 108.9,131.1 \t\t\"/>' +\n '</symbol>' +\n\n '</defs></svg>';\n\n var DROPDOWN_EN = \n '<button class=\"precisionstudiomenu_trigger\" title=\"ADI\\u2120 Precision Studio Links\" data-qa-element=\"aps_dropdown_btn\" popovertarget=\"precisionstudio-menu-items\">'+ \n '<div class=\"icon-wrapper\"> <svg class=\"trigger_icon\" focusable=\"false\"> <use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"trigger_label\">Tools</span>' +\n '</button>' +\n '<ul id=\"precisionstudio-menu-items\" class=\"precisionstudiomenu_items\" data-qa-element=\"aps_dropdown\" popover=\"auto\">' + \n '<li class=\"menutitle\">' +\n '<a href=\"{pstdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_precisionstudio_link\"> ' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"item_label\">ADI<span class=\"service-mark\">\\u2120</span> Precision Studio</span>' +\n '</a>' +\n '</li>' + \n '<li>' + \n '<a href=\"{scdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_scd_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-signal-chain-designer\"></use></svg></div>' +\n '<span class=\"item_label\">Signal Chain</span>' +\n '</a>' +\n '</li>' +\n '<li>'+\n '<a href=\"{fwUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_filterwizard_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-analog-filter\"></use></svg></div>' +\n '<span class=\"item_label\">Analog Filter</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dmdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_diamond_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-in-amp\"></use></svg></div>' +\n '<span class=\"item_label\">In Amp</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{pdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_photodiode_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-photodiode\"></use></svg></div>' +\n '<span class=\"item_label\">Photodiode</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dacUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_dacebc_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dac-ebc\"></use></svg></div>' +\n '<span class=\"item_label\">DAC</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{adcUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_adcdriver_link\">' + \n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-adc-driver\"></use></svg></div>' +\n '<span class=\"item_label\">ADC Driver</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{ddsUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_simdds_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dds\"></use></svg></div>' +\n '<span class=\"item_label\">DDS</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{evalUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_virtualeval_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-virtual-eval\"></use></svg></div>' +\n '<span class=\"item_label\">Virtual Eval</span>' +\n '</a>' +\n '</li>' +\n '</ul>';\n\n var DROPDOWN_JP = \n '<button class=\"precisionstudiomenu_trigger\" title=\"ADI\\u2120 Precision Studio へのリンク\" data-qa-element=\"aps_dropdown_btn\" popovertarget=\"precisionstudio-menu-items\">'+ \n '<div class=\"icon-wrapper\"><svg class=\"trigger_icon\" focusable=\"false\"> <use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"trigger_label\">Tools</span>' +\n '</button>' +\n '<ul id=\"precisionstudio-menu-items\" class=\"precisionstudiomenu_items\" popover=\"auto\">' + \n '<li class=\"menutitle\">' +\n '<a href=\"{pstdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_precisionstudio_link\"> ' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"item_label\">ADI<span class=\"service-mark\">\\u2120</span> Precision Studio</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{scdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_scd_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-signal-chain-designer\"></use></svg></div>' +\n '<span class=\"item_label\">Signal Chain</span>' +\n '</a>' +\n '</li>' +\n '<li>'+\n '<a href=\"{fwUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_filterwizard_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-analog-filter\"></use></svg></div>' +\n '<span class=\"item_label\">アナログ・フィルタ</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dmdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_diamond_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-in-amp\"></use></svg></div>' +\n '<span class=\"item_label\">計装アンプ</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{pdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_photodiode_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-photodiode\"></use></svg></div>' +\n '<span class=\"item_label\">フォトダイオード</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dacUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_dacebc_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dac-ebc\"></use></svg></div>' +\n '<span class=\"item_label\">DAC</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{adcUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_adcdriver_link\">' + \n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-adc-driver\"></use></svg></div>' +\n '<span class=\"item_label\">ADCドライバ</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{ddsUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_simdds_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dds\"></use></svg></div>' +\n '<span class=\"item_label\">DDS</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{evalUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_virtualeval_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-virtual-eval\"></use></svg></div>' + \n '<span class=\"item_label\">Virtual Eval</span>' +\n '</a>' +\n '</li>' + \n '</ul>';\n\n var DROPDOWN_CN = \n '<button class=\"precisionstudiomenu_trigger\" title=\"ADI\\u2120 Precision Studio链接\" data-qa-element=\"aps_dropdown_btn\" popovertarget=\"precisionstudio-menu-items\">'+ \n '<div class=\"icon-wrapper\"><svg class=\"trigger_icon\" focusable=\"false\"> <use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"trigger_label\">Tools</span>' +\n '</button>' +\n '<ul id=\"precisionstudio-menu-items\" class=\"precisionstudiomenu_items\" popover=\"auto\">' + \n '<li class=\"menutitle\">' +\n '<a href=\"{pstdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_precisionstudio_link\"> ' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"item_label\">ADI<span class=\"service-mark\">\\u2120</span> Precision Studio</span>' +\n '</a>' +\n '</li>' + \n '<li>' + \n '<a href=\"{scdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_scd_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-signal-chain-designer\"></use></svg></div>' +\n '<span class=\"item_label\">Signal Chain</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{fwUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_filterwizard_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-analog-filter\"></use></svg></div>' +\n '<span class=\"item_label\">模拟滤波器</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dmdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_diamond_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-in-amp\"></use></svg></div>' +\n '<span class=\"item_label\">仪表放大器</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{pdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_photodiode_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-photodiode\"></use></svg></div>' +\n '<span class=\"item_label\">光电二极管</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dacUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_dacebc_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dac-ebc\"></use></svg></div>' +\n '<span class=\"item_label\">DAC</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{adcUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_adcdriver_link\">' + \n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-adc-driver\"></use></svg></div>' +\n '<span class=\"item_label\">ADC驱动器</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{ddsUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_simdds_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dds\"></use></svg></div>' +\n '<span class=\"item_label\">DDS</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{evalUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_virtualeval_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-virtual-eval\"></use></svg></div>' + \n '<span class=\"item_label\">Virtual Eval</span>' +\n '</a>' +\n '</li>' + \n '</ul>';\n\n var DROPDOWN_RU = \n '<button class=\"precisionstudiomenu_trigger\" title=\"ADI\\u2120 Precision Studio Links\" data-qa-element=\"aps_dropdown_btn\" popovertarget=\"precisionstudio-menu-items\">'+ \n '<div class=\"icon-wrapper\"> <svg class=\"trigger_icon\" focusable=\"false\"> <use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"trigger_label\">Tools</span>' +\n '</button>' +\n '<ul id=\"precisionstudio-menu-items\" class=\"precisionstudiomenu_items\" popover=\"auto\">' + \n '<li class=\"menutitle\">' +\n '<a href=\"{pstdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_precisionstudio_link\"> ' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-precision-studio\"></use></svg></div>' +\n '<span class=\"item_label\">ADI<span class=\"service-mark\">\\u2120</span> Precision Studio</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{scdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_scd_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-signal-chain-designer\"></use></svg></div>' +\n '<span class=\"item_label\">Signal Chain</span>' +\n '</a>' +\n '</li>' +\n '<li>'+\n '<a href=\"{fwUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_filterwizard_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-analog-filter\"></use></svg></div>' +\n '<span class=\"item_label\">Analog Filter</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dmdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_diamond_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-in-amp\"></use></svg></div>' +\n '<span class=\"item_label\">In Amp</span>' +\n '</a>' +\n '</li>' + \n '<li>' +\n '<a href=\"{pdUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_photodiode_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-photodiode\"></use></svg></div>' +\n '<span class=\"item_label\">Photodiode</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{dacUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_dacebc_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dac-ebc\"></use></svg></div>' +\n '<span class=\"item_label\">DAC</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{adcUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_adcdriver_link\">' + \n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-adc-driver\"></use></svg></div>' +\n '<span class=\"item_label\">ADC Driver</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{ddsUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_simdds_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-dds\"></use></svg></div>' +\n '<span class=\"item_label\">DDS</span>' +\n '</a>' +\n '</li>' +\n '<li>' +\n '<a href=\"{evalUrl}\" target=\"_blank\" rel=\"noopener\" data-qa-element=\"aps_virtualeval_link\">' +\n '<div class=\"icon-wrapper\"><svg class=\"item_icon\" focusable=\"false\"><use xlink:href=\"#precisionstudio-icon-virtual-eval\"></use></svg></div>' +\n '<span class=\"item_label\">Virtual Eval</span>' +\n '</a>' +\n '</li>' + \n '</ul>';\n\n var DROPDOWN = {\n en: DROPDOWN_EN,\n jp: DROPDOWN_JP,\n cn: DROPDOWN_CN,\n ru: DROPDOWN_RU\n }\n \n var DEFAULT_TOOL_URLS = {\n PrecisionStudioUrl: \"https://tools.analog.com/{pstd-locale}/precisionstudio\",\n FilterWizardUrl: \"https://tools.analog.com/{pstd-locale}/filterwizard\",\n AdcDriverUrl: \"https://tools.analog.com/{pstd-locale}/adcdriver/\",\n PhotodiodeUrl: \"https://tools.analog.com/{pstd-locale}/photodiode\",\n DiamondUrl: \"https:/tools.analog.com/{pstd-locale}/diamond\",\n NoiseUrl: \"https://beta-tools.analog.com/noise/\",\n SignalChainDesignerUrl: \"https://beta-tools.analog.com/signalchaindesigner/\",\n SimDDSUrl: \"https://tools.analog.com/{pstd-locale}/simdds\",\n VirtualEvalUrl: \"https://beta-tools.analog.com/virtualeval/#category=2\",\n DACErrorCalculatorUrl: \"https://beta-tools.analog.com/DACErrorBudget/\"\n }\n \n var DEFAULT_OPTIONS = {\n locale: 'en',\n toolurls: DEFAULT_TOOL_URLS\n }\n\n var URL_KEY_MAP = {\n PrecisionStudioUrl: \"pstdUrl\",\n FilterWizardUrl: \"fwUrl\",\n AdcDriverUrl: \"adcUrl\",\n PhotodiodeUrl: \"pdUrl\",\n DiamondUrl: \"dmdUrl\",\n NoiseUrl: \"noiseUrl\",\n SignalChainDesignerUrl: \"scdUrl\",\n SimDDSUrl: \"ddsUrl\",\n VirtualEvalUrl: \"evalUrl\",\n DACErrorCalculatorUrl: \"dacUrl\" \n }\n\n var applyUrlsToMarkup = function(markup, urls, locale) {\n var updatedMarkup = markup;\n for (let name in URL_KEY_MAP) {\n updatedMarkup = updatedMarkup.replace(\n new RegExp('{' + URL_KEY_MAP[name] + '}','gi'), \n (name in urls) ? urls[name] : DEFAULT_TOOL_URLS[name]);\n }\n updatedMarkup = updatedMarkup.replace(/\\{pstd-locale\\}/gi, locale);\n updatedMarkup = updatedMarkup.replace(/\\{pstd-locale-w-ru\\}/gi, locale); //For compatibility with a very short-lived feature from 1.0.0\n return updatedMarkup;\n }\n // This is where the returned class really begins\n\n return /** @class */ (function () {\n function PrecisionStudioMenu(options) {\n var locale = (!!options && !!options.locale && options.locale in DROPDOWN) ? options.locale : DEFAULT_OPTIONS.locale;\n var toolurls = (!!options && !!options.toolurls) ? options.toolurls : DEFAULT_OPTIONS.toolurls;\n this.dropdown = applyUrlsToMarkup(DROPDOWN[locale], toolurls, locale);\n this.focusOutListenerBound = this.focusOutListener.bind(this);\n }\n\n PrecisionStudioMenu.prototype.focusOutListener = function (event) {\n const popover = this.element.querySelector(\".precisionstudiomenu_items\");\n // If focusout bubbled from within popover isn't headed to something else inside popover, hide the popover\n if (event.relatedTarget && !popover.contains(event.relatedTarget)) {\n popover.hidePopover();\n }\n }\n\n PrecisionStudioMenu.prototype.attach = function(element){\n this.element = element;\n // Apply icon catalog\n var tempwrapper = document.createElement(\"div\");\n tempwrapper.innerHTML = SYMBOLTEXT;\n var symbols = tempwrapper.querySelector(\"svg\");\n document.body.insertBefore(symbols, document.body.firstChild);\n\n // Apply dropdown using icons\n element.innerHTML = this.dropdown;\n var dropdown = this.element.querySelector(\".precisionstudiomenu_items\");\n dropdown.addEventListener(\"focusout\", this.focusOutListenerBound);\n\n }\n\n PrecisionStudioMenu.prototype.detach = function(){\n\n if (this.element) {\n // First tear down behavior - no event listener leaks\n var dropdown = this.element.querySelector(\".precisionstudiomenu_items\");\n if (dropdown) {\n dropdown.removeEventListener(\"focusout\", this.focusOutListenerBound);\n }\n // Remove the dropdown\n this.element.innerHTML = \"\";\n\n // Remove the icon catalog \n var iconsNode = document.querySelector(\"#precisionstudio-icons\");\n if (iconsNode) {\n document.body.removeChild(iconsNode);\n }\n\n }\n }\n\n return PrecisionStudioMenu;\n }());\n}));","// Analytics: Delivers events to analytics when interesting behaviors occur\n\nexport interface Logger {\n log(...args: unknown[]): void;\n info(...args: unknown[]): void;\n warn(...args: unknown[]): void;\n error(...args: unknown[]): void;\n time(label?: string): void;\n timeEnd(label?: string): void;\n}\n\ninterface AnalyticsGlobal {\n webData: { toolName: string };\n setWebEvent: (name: string, options: { toolName?: string; event?: string; payload?: string }) => void;\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace globalThis {\n // eslint-disable-next-line no-var\n var AnalyticsAL: AnalyticsGlobal | undefined;\n }\n}\n\ninterface QueuedEvent {\n tool: string;\n evt: string;\n data?: string;\n}\n//------------------------ Local non-class functions ---------------------\n\nconst loadScript = (source: string, beforeEl?: Element, async = true, defer = true) => {\n // eslint-disable-next-line no-undef\n return new Promise((resolve, reject) => {\n let script: HTMLScriptElement | undefined = document.createElement('script');\n const scripts = document.getElementsByTagName('script');\n const lastScript = scripts && scripts.length ? scripts[scripts.length - 1] : undefined;\n const prior = beforeEl || lastScript?.nextElementSibling;\n\n script.async = async;\n script.defer = defer;\n\n function onloadHander(this: GlobalEventHandlers, event: Event): void {\n if (script) {\n script.onload = null;\n script = undefined;\n }\n event instanceof AbortSignal ? reject() : resolve('');\n }\n\n script.onload = onloadHander;\n\n script.src = source;\n if (prior) {\n prior.parentNode?.insertBefore(script, prior);\n } else {\n document.getElementsByTagName('body')[0]?.append(script);\n }\n });\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst poll = function (fn: () => any, interval: number, retries: number) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const checkCondition = function (resolve: (result: any) => void, reject: (e: Error) => void) {\n // If the condition is met, we're done!\n const result = fn();\n if (result) {\n resolve(result);\n }\n // If the condition isn't met but the timeout hasn't elapsed, go again\n else if (--retries > 0) {\n setTimeout(checkCondition, interval, resolve, reject);\n }\n // Didn't match and too much time, reject!\n else {\n reject(new Error('timed out for ' + fn));\n }\n };\n\n // eslint-disable-next-line no-undef\n return new Promise(checkCondition);\n};\n\nconst supplyDummySession = function (toolname: string, logger: Logger, message?: string) {\n // Supply placeholder for dummmy analytics for remainder of session\n globalThis.AnalyticsAL = {\n setWebEvent: function () {\n if (message) {\n logger.info(message);\n }\n },\n webData: { toolName: toolname },\n };\n};\n\nconst releaseDummySessionResources = function () {\n globalThis.AnalyticsAL = undefined;\n};\n\nconst analyticsLoaded = function () {\n return typeof globalThis.AnalyticsAL !== 'undefined' && globalThis.AnalyticsAL;\n};\n\nconst CONSOLE_LOGGER: Logger = {\n error(...args) {\n console.error(...args);\n }, // eslint-disable-line no-console\n warn(...args) {\n console.warn(...args);\n }, // eslint-disable-line no-console\n info(...args) {\n console.info(...args);\n }, // eslint-disable-line no-console\n log(...args) {\n console.error(...args);\n }, // eslint-disable-line no-console\n time(...args) {\n console.time(...args);\n }, // eslint-disable-line no-console\n timeEnd(...args) {\n console.timeEnd(...args);\n }, // eslint-disable-line no-console\n};\nconst INTERVAL = 200; //ms\nconst RETRIES = 30;\n// Analytics states\nexport const LOADING = 0;\nexport const ACTIVE = 1;\nexport const ABANDONED = -1;\n\n//-----------------------------Analytics class definition---------------------\n\nexport default class Analytics {\n toolname = '';\n analyticsUrl = '';\n logSuppressions = false;\n usesDummySession = false;\n state = LOADING;\n queue: Array<QueuedEvent> = [];\n logger: Logger = CONSOLE_LOGGER;\n start(\n toolname: string,\n analyticsUrl: string,\n isSSR: boolean,\n isTesting: boolean,\n logSuppressions: boolean,\n logger?: Logger,\n ): void {\n this.toolname = toolname;\n this.logger = logger || this.logger;\n this.logSuppressions = logSuppressions;\n if (isSSR) {\n this.logger.info('Analytics turned off for SSR');\n this.usesDummySession = true;\n supplyDummySession(this.toolname, this.logger);\n this.state = ABANDONED;\n this._trackSessionStart();\n } else if (isTesting) {\n this.logger.info('Analytics turned off in test automation');\n this.usesDummySession = true;\n supplyDummySession(this.toolname, this.logger);\n this.state = ABANDONED;\n this._trackSessionStart();\n } else {\n this.logger.time('analyticsLoadTime');\n loadScript(analyticsUrl)\n .then(() => {\n // Execution of the Analytics URL from Adobe defines a global AnalyticsAL object ... eventually ... in theory\n poll(analyticsLoaded, INTERVAL, RETRIES)\n .then(() => {\n // if statement to satisfy TypeScript\n if (globalThis.AnalyticsAL) {\n this.logger.timeEnd('analyticsLoadTime');\n this.state = ACTIVE;\n globalThis.AnalyticsAL.webData.toolName = this.toolname;\n this._trackSessionStart();\n }\n })\n .catch(() => {\n this.logger.timeEnd('analyticsLoadTime');\n this.state = ABANDONED;\n this.logger.warn(\n `Analytics didn't start after a timeout of roughly ${(INTERVAL * RETRIES) / 1000} seconds.`,\n );\n this.usesDummySession = true;\n supplyDummySession(\n this.toolname,\n this.logger,\n 'Analytics event not delivered - analytics startup timed out',\n );\n this._trackSessionStart();\n });\n })\n .catch((error) => {\n this.logger.timeEnd('analyticsLoadTime');\n this.state = ABANDONED;\n this.logger.warn(`Analytics failed to load for ${location.origin}.`, error);\n this.usesDummySession = true;\n supplyDummySession(\n this.toolname,\n this.logger,\n 'Analytics event not delivered - analytics URL failed to load',\n );\n this._trackSessionStart();\n });\n }\n }\n stop() {\n if (this.usesDummySession) {\n releaseDummySessionResources();\n }\n this.queue = [];\n this.state = LOADING;\n }\n _trackSessionStart() {\n // Track session start\n // if statement to satisfy TypeScript\n if (globalThis.AnalyticsAL) {\n globalThis.AnalyticsAL.setWebEvent('toolStart', { toolName: this.toolname });\n this.logger.info(`ADOBEDTM: ${this.toolname} session start`);\n for (let q = 0, qlen = this.queue.length; q < qlen; q++) {\n const item = this.queue[q];\n if (item) {\n this.setWebEvent(item.tool, item.evt, item.data);\n }\n }\n }\n this.queue = [];\n }\n setWebEvent(toolName: string, eventName: string, eventData?: string) {\n if (this.state == LOADING) {\n this.queue.push({ tool: toolName, evt: eventName, data: eventData });\n } else {\n try {\n if (globalThis.AnalyticsAL) {\n globalThis.AnalyticsAL.setWebEvent('payload', { event: eventName, payload: eventData });\n if (!this.usesDummySession || this.logSuppressions) {\n this.logger.info(`ADOBEDTM: ${this.toolname} [${eventName}]`, eventData);\n }\n }\n } catch (e) {\n this.logger.error(`setWebEvent or subsequent logging failed unexpectedly for ${eventName}`, eventData);\n }\n }\n }\n}\n","import Service from '@ember/service';\nimport Analytics, { LOADING, ACTIVE, ABANDONED } from '../utils/analytics.ts';\nimport type { Logger } from '../utils/analytics';\nexport type { Logger };\n\nexport default class AnalyticsService extends Service {\n analytics: Analytics = new Analytics();\n\n start(\n toolname: string,\n url: string,\n isSSR: boolean,\n isTesting: boolean,\n logSuppressions: boolean,\n logger?: Logger,\n ): void {\n this.analytics.start(toolname, url, isSSR, isTesting, logSuppressions, logger);\n }\n willDestroy(): void {\n this.analytics.stop();\n }\n setWebEvent(toolName: string, eventName: string, eventData?: string): void {\n this.analytics.setWebEvent(toolName, eventName, eventData);\n }\n get isActive(): boolean {\n return this.analytics.state === ACTIVE;\n }\n get isAbandoned(): boolean {\n return this.analytics.state === ABANDONED;\n }\n get isLoading(): boolean {\n return this.analytics.state === LOADING;\n }\n}\ndeclare module '@ember/service' {\n interface Registry {\n 'aditools-analytics': AnalyticsService;\n }\n}\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.20.2';\nvar current_codepage = 1200, current_ansi = 1252;\n/*:: declare var cptable:any; */\n/*global cptable:true, window */\nvar $cptable;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t0: 1252, /* ANSI */\n\t1: 65001, /* DEFAULT */\n\t2: 65001, /* SYMBOL */\n\t77: 10000, /* MAC */\n\t128: 932, /* SHIFTJIS */\n\t129: 949, /* HANGUL */\n\t130: 1361, /* JOHAB */\n\t134: 936, /* GB2312 */\n\t136: 950, /* CHINESEBIG5 */\n\t161: 1253, /* GREEK */\n\t162: 1254, /* TURKISH */\n\t163: 1258, /* VIETNAMESE */\n\t177: 1255, /* HEBREW */\n\t178: 1256, /* ARABIC */\n\t186: 1257, /* BALTIC */\n\t204: 1251, /* RUSSIAN */\n\t222: 874, /* THAI */\n\t238: 1250, /* EASTEUROPE */\n\t255: 1252, /* OEM */\n\t69: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array<number>*/ { var o/*:Array<number>*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16lereadu(data/*:Uint8Array*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data[2*i] + (data[2*i+1]<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_pass(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n if (c1 > 255)\n c1 = 95;\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n if (c2 > 255)\n c2 = 95;\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n if (c3 > 255)\n c3 = 95;\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_arr(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input[i++];\n e1 = c1 >> 2;\n c2 = input[i++];\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input[i++];\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n if (input.slice(0, 5) == \"data:\") {\n var i = input.slice(0, 1024).indexOf(\";base64,\");\n if (i > -1)\n input = input.slice(i + 8);\n }\n input = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\nvar buf_utf16le = /*#__PURE__*/(function() {\n\tif(typeof Buffer === 'undefined') return false;\n\tvar x = Buffer_from([65,0]);\n\tif(!x) return false;\n\tvar o = x.toString(\"utf16le\");\n\treturn o.length == 1;\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array<string>*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array<number>*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array<number>*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") o.set(new Uint8Array(s2a(bufs[i])), maxlen);\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array<string>};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array<Array<string> >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array<Array<string> >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array<number>*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_normalize_xl_unsafe(v/*:number*/)/*:number*/ {\n\tvar s = v.toPrecision(16);\n\tif(s.indexOf(\"e\") > -1) {\n\t\tvar m = s.slice(0, s.indexOf(\"e\"));\n\t\tm = m.indexOf(\".\") > -1 ? m.slice(0, (m.slice(0,2) == \"0.\" ? 17 : 16)) : (m.slice(0,15) + fill(\"0\", m.length - 15));\n\t\treturn m + s.slice(s.indexOf(\"e\"));\n\t}\n\tvar n = s.indexOf(\".\") > -1 ? s.slice(0, (s.slice(0,2) == \"0.\" ? 17 : 16)) : (s.slice(0,15) + fill(\"0\", s.length - 15));\n\treturn Number(n);\n}\n\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tv = SSF_normalize_xl_unsafe(v);\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+(ss0 == 0 ? Math.round(val.S+val.u) : val.S); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\)[^)]*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n}\nfunction SSF_split_fmt(fmt/*:string*/)/*:Array<string>*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? fmt.charAt(i+2) : c; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) { ss0=Math.max(ss0,ssm[0].length-1); bt = 4;}\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'e': lst=out[i].t; break;\n\t\t\tcase 'M': lst=out[i].t; if(bt < 2) bt = 2; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tvar _dt;\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\tcase 2:\n\t\tcase 3:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tif(dt.H >= 24) { dt.H = 0; ++dt.D; _dt = SSF_parse_date_code(dt.D); _dt.u = dt.u; _dt.S = dt.S; _dt.M = dt.M; _dt.H = dt.H; dt = _dt; }\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tswitch(ss0) {\n\t\t\t\tcase 1: dt.u = Math.round(dt.u * 10)/10; break;\n\t\t\t\tcase 2: dt.u = Math.round(dt.u * 100)/100; break;\n\t\t\t\tcase 3: dt.u = Math.round(dt.u * 1000)/1000; break;\n\t\t\t}\n\t\t\tif(dt.u >= 1) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tif(dt.H >= 24) { dt.H = 0; ++dt.D; _dt = SSF_parse_date_code(dt.D); _dt.u = dt.u; _dt.S = dt.S; _dt.M = dt.M; _dt.H = dt.H; dt = _dt; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\tdateNFregex.lastIndex = 0;\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array<string>*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tdateNFregex.lastIndex = 0;\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/* table of bad formats written by third-party tools */\nvar bad_formats = {\n\t\"d.m\": \"d\\\\.m\" // Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd\".\"m' or 'd\\\\.m'\n};\n\nfunction SSF__load(fmt, idx) {\n\treturn SSF_load(bad_formats[fmt] || fmt, idx);\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array<number>;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array<number>;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array<number>*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array<number>*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' && typeof table.subarray == \"function\" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array<number>*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;\nexports.version = '1.2.2';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t} break;\n\t\t\t/* ZIP64 Extended Information Field */\n\t\t\tcase 0x0001: {\n\t\t\t\tvar sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);\n\t\t\t\tp.usz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\tsz1 = blob.read_shift(4); sz2 = blob.read_shift(4);\n\t\t\t\tp.csz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\t// NOTE: volume fields are skipped\n\t\t\t} break;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = _fs); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array<number>*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array<RawBytes>*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nif(dir_start < sector_list.length) sector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array<string>*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array<RawBytes>*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array<RawBytes>*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Array<string>*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array<number>*/ = [], q/*:Array<number>*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array<RawBytes>*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array<RawBytes>*/, start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/, chkd/*:?Array<boolean>*/)/*:SectorEntry*/ {\n\tvar buf/*:Array<number>*/ = [], buf_chain/*:Array<any>*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array<RawBytes>*/, dir_start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array<boolean>*/ = [], buf/*:Array<number>*/ = [], buf_chain/*:Array<RawBytes>*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array<number>*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array<RawBytes>*/, Paths/*:Array<string>*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\twhile(!s) {\n\t\t\twhile(dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);\n\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\n\t\t\tdad = dirname(data[i][0]);\n\t\t\ts = fullPaths[dad];\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array<number>*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j/*:number*/ = 0, flen/*:number*/ = 0;\n\tvar file/*:CFBEntry*/ = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tif(_nm.length > 31) {\n\t\t\tconsole.error(\"Name \" + _nm + \" will be truncated to \" + _nm.slice(0,31));\n\t\t\t_nm = _nm.slice(0, 31);\n\t\t}\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\n/* Fixed Huffman */\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens/*:Array<number>*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array<number>*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes/*:Array<number>*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\t/* ZIP64 lengths */\n\t\tif(EF && EF[0x0001]) {\n\t\t\tif((EF[0x0001]||{}).usz) usz = EF[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) csz = EF[0x0001].csz;\n\t\t}\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif((ef[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\tif((ef[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\tif(EF) {\n\t\t\tif((EF[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t\t\tif((EF[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\t}\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = typeof fi.content == \"string\" ? CRC32.bstr(fi.content, 0) : CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = typeof fi.content == \"string\" ? s2a(fi.content) : fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n<table class=3DMsoTableGrid border=3D1 cellspacing=3D0 cellpadding=3D0 width=\n=\"70%\"\n```\n*/\nfunction write_quoted_printable(text/*:string*/)/*:string*/ {\n\tvar encoded = text.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g, function(c) {\n\t\tvar w = c.charCodeAt(0).toString(16).toUpperCase();\n\t\treturn \"=\" + (w.length == 1 ? \"0\" + w : w);\n\t});\n\n\tencoded = encoded.replace(/ $/mg, \"=20\").replace(/\\t$/mg, \"=09\");\n\n\tif(encoded.charAt(0) == \"\\n\") encoded = \"=0D\" + encoded.slice(1);\n\tencoded = encoded.replace(/\\r(?!\\n)/mg, \"=0D\").replace(/\\n\\n/mg, \"\\n=0A\").replace(/([^\\r\\n])\\n/mg, \"$1=0A\");\n\n\tvar o/*:Array<string>*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array<string>*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array<string>*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^([^:]*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nvar _fs;\nfunction set_fs(fs) { _fs = fs; }\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true });\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t} else if(typeof URL !== 'undefined' && !URL.createObjectURL && typeof chrome === 'object') {\n\t\t\t/* manifest v3 extensions -- no URL.createObjectURL */\n\t\t\tvar b64 = \"data:application/octet-stream;base64,\" + Base64_encode_arr(new Uint8Array(blobify(data)));\n\t\t\treturn chrome.downloads.download({ url: b64, filename: fname, saveAs: true });\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || e.message.indexOf(\"onstruct\") == -1) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || e.message.indexOf(\"onstruct\") == -1) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array<any>*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar dnthresh = /*#__PURE__*/Date.UTC(1899, 11, 30, 0, 0, 0); // -2209161600000\nvar dnthresh1 = /*#__PURE__*/Date.UTC(1899, 11, 31, 0, 0, 0); // -2209075200000\nvar dnthresh2 = /*#__PURE__*/Date.UTC(1904, 0, 1, 0, 0, 0); // -2209075200000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tvar res = (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n\tif(date1904) { res -= 1462; return res < -1402 ? res - 1 : res; }\n\treturn res < 60 ? res - 1 : res;\n}\nfunction numdate(v/*:number*/)/*:Date|number*/ {\n\tif(v >= 60 && v < 61) return v;\n\tvar out = new Date();\n\tout.setTime((v>60 ? v : (v+1)) * 24 * 60 * 60 * 1000 + dnthresh);\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\n/* Blame https://bugs.chromium.org/p/v8/issues/detail?id=7863 for the regexide */\nvar pdre1 = /^(\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // HH:MM[:SS[.UUU]]\nvar pdre2 = /^(\\d+)-(\\d+)-(\\d+)$/; // YYYY-mm-dd\nvar pdre3 = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)?(\\.\\d+)?$/; // YYYY-mm-dd(T or space)HH:MM[:SS[.UUU]], sans \"Z\"\n/* parses a date string as a UTC date */\nfunction parseDate(str/*:string*/, date1904/*:boolean*/)/*:Date*/ {\n\tif(str instanceof Date) return str;\n\tvar m = str.match(pdre1);\n\tif(m) return new Date((date1904 ? dnthresh2 : dnthresh1) + ((parseInt(m[1], 10)*60 + parseInt(m[2], 10))*60 + (m[3] ? parseInt(m[3].slice(1), 10) : 0))*1000 + (m[4] ? parseInt((m[4]+\"000\").slice(1,4), 10) : 0));\n\tm = str.match(pdre2);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], 0, 0, 0, 0));\n\t/* TODO: 1900-02-29T00:00:00.000 should return a flag to treat as a date code (affects xlml) */\n\tm = str.match(pdre3);\n\tif(m) return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], +m[4], +m[5], ((m[6] && parseInt(m[6].slice(1), 10))|| 0), ((m[7] && parseInt((m[7] + \"0000\").slice(1,4), 10))||0)));\n\tvar d = new Date(str);\n\treturn d;\n}\n\nfunction cc2str(arr/*:Array<number>*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit && buf_utf16le) {\n\t\t\t// TODO: temporary patch\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [], i = 0;\n\t// this cascade is for the browsers and runtimes of antiquity (and for modern runtimes that lack TextEncoder)\n\ttry {\n\t\tfor(i = 0; i < arr.length - 65536; i+=65536) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 65536)));\n\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t} catch(e) { try {\n\t\t\tfor(; i < arr.length - 16384; i+=16384) o.push(String.fromCharCode.apply(0, arr.slice(i, i + 16384)));\n\t\t\to.push(String.fromCharCode.apply(0, arr.slice(i)));\n\t\t} catch(e) {\n\t\t\tfor(; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(]([^()]*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\n\n/* NOTE: Chrome rejects bare times like 1:23 PM */\nvar FDRE1 = /^(0?\\d|1[0-2])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))\\s+([ap])m?$/;\nvar FDRE2 = /^([01]?\\d|2[0-3])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))$/;\nvar FDISO = /^(\\d+)-(\\d+)-(\\d+)[T ](\\d+):(\\d+)(:\\d+)(\\.\\d+)?[Z]?$/; // YYYY-mm-dd(T or space)HH:MM:SS[.UUU][Z]\n\n/* TODO: 1904 adjustment */\nvar utc_append_works = new Date(\"6/9/69 00:00 UTC\").valueOf() == -17798400000;\nfunction fuzzytime1(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,(M[7] == \"p\" ? 12 : 0), +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, (+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], 0, 0));\n}\nfunction fuzzytime2(M) /*:Date*/ {\n\tif(!M[2]) return new Date(Date.UTC(1899,11,31,+M[1], 0, 0, 0));\n\tif(M[3]) {\n\t\t\tif(M[4]) return new Date(Date.UTC(1899,11,31,+M[1], +M[2], +M[4], parseFloat(M[3])*1000));\n\t\t\telse return new Date(Date.UTC(1899,11,31,0, +M[1], +M[2], parseFloat(M[3])*1000));\n\t}\n\telse if(M[5]) return new Date(Date.UTC(1899,11,31, +M[1], +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0));\n\telse return new Date(Date.UTC(1899,11,31,+M[1], +M[2], 0, 0));\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\t// See issue 2863 -- this is technically not supported in Excel but is otherwise useful\n\tif(FDISO.test(s)) return s.indexOf(\"Z\") == -1 ? local_to_utc(new Date(s)) : new Date(s);\n\tvar lower = s.toLowerCase();\n\tvar lnos = lower.replace(/\\s+/g, \" \").trim();\n\tvar M = lnos.match(FDRE1);\n\tif(M) return fuzzytime1(M);\n\tM = lnos.match(FDRE2);\n\tif(M) return fuzzytime2(M);\n\tM = lnos.match(pdre3);\n\tif(M) return new Date(Date.UTC(+M[1], +M[2]-1, +M[3], +M[4], +M[5], ((M[6] && parseInt(M[6].slice(1), 10))|| 0), ((M[7] && parseInt((M[7] + \"0000\").slice(1,4), 10))||0)));\n\tvar o = new Date(utc_append_works && s.indexOf(\"UTC\") == -1 ? s + \" UTC\": s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.replace(/[ap]m?/, \"\").match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099 || s.match(/[^-0-9:,\\/\\\\\\ ]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array<string>*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\n\nfunction utc_to_local(utc) {\n\treturn new Date(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate(), utc.getUTCHours(), utc.getUTCMinutes(), utc.getUTCSeconds(), utc.getUTCMilliseconds());\n}\nfunction local_to_utc(local) {\n\treturn new Date(Date.UTC(local.getFullYear(), local.getMonth(), local.getDate(), local.getHours(), local.getMinutes(), local.getSeconds(), local.getMilliseconds()));\n}\n\nfunction remove_doctype(str) {\n\tvar preamble = str.slice(0, 1024);\n\tvar si = preamble.indexOf(\"<!DOCTYPE\");\n\tif(si == -1) return str;\n\tvar m = str.match(/<[\\w]/);\n\tif(!m) return str;\n\treturn str.slice(0, si) + str.slice(m.index);\n}\n\n/* str.match(/<!--[\\s\\S]*?-->/g) --> str_match_ng(str, \"<!--\", \"-->\") */\nfunction str_match_ng(str, s, e) {\n var out = [];\n\n var si = str.indexOf(s);\n while(si > -1) {\n var ei = str.indexOf(e, si + s.length);\n\t\tif(ei == -1) break;\n\n\t\tout.push(str.slice(si, ei + e.length));\n\t\tsi = str.indexOf(s, ei + e.length);\n\t}\n\n return out.length > 0 ? out : null;\n}\n\n/* str.replace(/<!--[\\s\\S]*?-->/g, \"\") --> str_remove_ng(str, \"<!--\", \"-->\") */\nfunction str_remove_ng(str, s, e) {\n var out = [], last = 0;\n\n var si = str.indexOf(s);\n\tif(si == -1) return str;\n while(si > -1) {\n\t\tout.push(str.slice(last, si));\n var ei = str.indexOf(e, si + s.length);\n\t\tif(ei == -1) break;\n\n\t\tif((si = str.indexOf(s, (last = ei + e.length))) == -1) out.push(str.slice(last));\n\t}\n\n return out.join(\"\");\n}\n\n/* str.match(/<tag\\b[^>]*?>([\\s\\S]*?)</tag>/) --> str_match_xml(str, \"tag\") */\nvar xml_boundary = { \" \": 1, \"\\t\": 1, \"\\r\": 1, \"\\n\": 1, \">\": 1 };\nfunction str_match_xml(str, tag) {\n\tvar si = str.indexOf('<' + tag), w = tag.length + 1, L = str.length;\n\twhile(si >= 0 && si <= L - w && !xml_boundary[str.charAt(si + w)]) si = str.indexOf('<' + tag, si+1);\n\tif(si === -1) return null;\n\tvar sf = str.indexOf(\">\", si + tag.length);\n\tif(sf === -1) return null;\n\tvar et = \"</\" + tag + \">\";\n\tvar ei = str.indexOf(et, sf);\n\tif(ei == -1) return null;\n\treturn [str.slice(si, ei + et.length), str.slice(sf + 1, ei)];\n}\n\n/* str.match(/<(?:\\w+:)?tag\\b[^<>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/) --> str_match_xml(str, \"tag\") */\nvar str_match_xml_ns = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m = res[0].exec(str);\n\t\tif(!m) return null;\n\t\tvar si = m.index;\n\t\tvar sf = res[0].lastIndex;\n\t\tres[1].lastIndex = res[0].lastIndex;\n\t\tm = res[1].exec(str);\n\t\tif(!m) return null;\n\t\tvar ei = m.index;\n\t\tvar ef = res[1].lastIndex;\n\t\treturn [str.slice(si, ef), str.slice(sf, ei)];\n\t};\n})();\n\n/* str.match(/<(?:\\w+:)?tag\\b[^<>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/g) --> str_match_xml_ns_g(str, \"tag\") */\nvar str_match_xml_ns_g = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tvar si = m.index;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tvar ef = res[1].lastIndex;\n\t\t\tout.push(str.slice(si, ef));\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\treturn out.length == 0 ? null : out;\n\t};\n})();\nvar str_remove_xml_ns_g = /*#__PURE__*/(function() {\n\tvar str_remove_xml_ns_cache = {};\n\treturn function str_remove_xml_ns_g(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_remove_xml_ns_cache[tag];\n\t\tif(!res) str_remove_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<(?:\\\\w+:)?'+tag+'\\\\b[^<>]*>', \"g\"),\n\t\t\tnew RegExp('</(?:\\\\w+:)?'+tag+'>', \"g\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\tvar si = 0, ef = 0;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tsi = m.index;\n\t\t\tout.push(str.slice(ef, si));\n\t\t\tef = si;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tef = res[1].lastIndex;\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\tout.push(str.slice(ef));\n\t\treturn out.length == 0 ? \"\" : out.join(\"\");\n\t};\n})();\n\n/* str.match(/<(?:\\w+:)?tag\\b[^>]*?>([\\s\\S]*?)<\\/(?:\\w+:)?tag>/gi) --> str_match_xml_ns_ig(str, \"tag\") */\nvar str_match_xml_ig = /*#__PURE__*/(function() {\n\tvar str_match_xml_ns_cache = {};\n\treturn function str_match_xml_ns(str, tag) {\n\t\tvar out = [];\n\t\tvar res = str_match_xml_ns_cache[tag];\n\t\tif(!res) str_match_xml_ns_cache[tag] = res = [\n\t\t\tnew RegExp('<'+tag+'\\\\b[^<>]*>', \"ig\"),\n\t\t\tnew RegExp('</'+tag+'>', \"ig\")\n\t\t];\n\t\tres[0].lastIndex = res[1].lastIndex = 0;\n\t\tvar m;\n\t\twhile((m = res[0].exec(str))) {\n\t\t\tvar si = m.index;\n\t\t\tres[1].lastIndex = res[0].lastIndex;\n\t\t\tm = res[1].exec(str);\n\t\t\tif(!m) return null;\n\t\t\tvar ef = res[1].lastIndex;\n\t\t\tout.push(str.slice(si, ef));\n\t\t\tres[0].lastIndex = res[1].lastIndex;\n\t\t}\n\t\treturn out.length == 0 ? null : out;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file/*:string*/) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file/*:string*/, safe/*:?boolean*/)/*:?string*/ {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipbin(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdatabin(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipbin(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) {\n\t\tif(typeof content == \"string\") {\n\t\t\tvar res;\n\t\t\tif(has_buf) res = Buffer_from(content);\n\t\t\t/* TODO: investigate performance in Edge 13 */\n\t\t\t//else if(typeof TextEncoder !== \"undefined\") res = new TextEncoder().encode(content);\n\t\t\telse res = utf8decode(content);\n\t\t\treturn CFB.utils.cfb_add(zip, path, res);\n\t\t}\n\t\tCFB.utils.cfb_add(zip, path, content);\n\t}\n\telse zip.file(path, content);\n}\n\nfunction zip_new() { return CFB.utils.cfb_new(); }\n\nfunction zip_read(d, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": return CFB.read(d, { type: \"base64\" });\n\t\tcase \"binary\": return CFB.read(d, { type: \"binary\" });\n\t\tcase \"buffer\": case \"array\": return CFB.read(d, { type: \"buffer\" });\n\t}\n\tthrow new Error(\"Unrecognized type \" + o.type);\n}\n\nfunction resolve_path(path/*:string*/, base/*:string*/)/*:string*/ {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/\\s([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?<>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\"<>\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^<>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i].slice(1);\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\tfunction raw_unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn raw_unescapexml(s.slice(0, i)) + s.slice(i+9,j) + raw_unescapexml(s.slice(j+3));\n\t}\n\treturn function unescapexml(text/*:string*/, xlsx/*:boolean*/) {\n\t\tvar out = raw_unescapexml(text);\n\t\treturn xlsx ? out.replace(/\\r\\n/g, \"\\n\") : out;\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f\\uFFFE-\\uFFFF]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\n/* note: xsd:boolean valid values: true / 1 / false / 0 */\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': return true;\n\t\tcase 0: case false: case '0': case 'false': return false;\n\t\t//default: throw new Error(\"Invalid xsd:boolean \" + value);\n\t}\n\treturn false;\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/(^|[^\\t\\n\\r ])[\\t\\n\\r ]+$/,\"$1\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\b\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^<>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^<\"'>]*)>([\\s\\S]*)</;\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array<string>*/ = str_match_xml_ns_g(data, h.baseType)||[];\n\tvar res/*:Array<any>*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags, ODS uses invalid XML */\nvar xlmlregex = /<([\\/]?)([^\\s?><!\\/:\"]*:|)([^\\s?<>:\\/\"]+)(?:\\s+[^<>=?\"'\\s]+=\"[^\"]*?\")*\\s*[\\/]?>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array<Array<RawBytes> >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar __toBuffer = has_buf ? function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar __utf16le = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; } : ___utf16le;\n\nvar ___hexlify = function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar __hexlify = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { return Buffer.isBuffer(b)/*:: && b instanceof Buffer*/ ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); } : ___hexlify;\n\nvar ___utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __utf8 = has_buf ? function utf8_b(b/*:RawBytes|CFBlob*/, s/*:number*/, e/*:number*/) { return (Buffer.isBuffer(b)/*:: && (b instanceof Buffer)*/) ? b.toString('utf8',s,e) : ___utf8(b,s,e); } : ___utf8;\n\nvar ___lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs' || f == 'cpstr') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cpp = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cpp[0];\n\t\t\t}\n\t\t\tsize = val.length;\n\t\t} else if(typeof $cptable !== 'undefined' && f == 'cpstr') {\n\t\t\tcpp = $cptable.utils.encode(current_codepage, val);\n\t\t\t/* replace null bytes with _ when relevant */\n if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) != 0) cpp[i] = 0x5F;\n if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] == 0 && val.charCodeAt(i) != 0) cpp[2*i] = 0x5F;\n\t\t\tfor(i = 0; i < cpp.length; ++i) this[this.l + i] = cpp[i];\n\t\t\tsize = cpp.length;\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t\tsize = val.length;\n\t\t}\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array<Block>*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\t// workaround for new Buffer(3).slice(0,0) bug in bun 0.1.3\n\t\tif(curbuf.l) {\n\t\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\t}\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array<string>*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\nfunction fix_range(a1/*:string*/)/*:string*/ {\n\tvar s = decode_range(a1);\n\treturn \"$\" + encode_col(s.s.c) + \"$\" + encode_row(s.s.r) + \":$\" + encode_col(s.e.c) + \"$\" + encode_row(s.e.r);\n}\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname.replace(/'/g, \"''\") + \"'\";\n\treturn sname;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_new(opts) {\n\tvar out = {};\n\tvar o = opts || {};\n\tif(o.dense) out[\"!data\"] = [];\n\treturn out;\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tif(dense && !ws[\"!data\"]) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws[\"!ref\"]){\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = (ws[\"!ref\"] ? _range.e.r + 1 : 0);\n\t} else {\n\t\trange.s.c = range.e.c = range.s.r = range.e.r = 0;\n\t}\n\tvar row = [], seen = false;\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tvar __R = _R + R, __Rstr = \"\" + (__R + 1);\n\t\t//console.log(\"!!\", R, _R, __R);\n\t\tif(dense) {\n\t\t\tif(!ws[\"!data\"][__R]) ws[\"!data\"][__R] = [];\n\t\t\trow = ws[\"!data\"][__R];\n\t\t}\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tseen = true;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(!o.UTC) cell.v = local_to_utc(cell.v);\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v, o.date1904); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(row[__C] && row[__C].z) cell.z = row[__C].z;\n\t\t\t\trow[__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_col(__C) + __Rstr/*:any*/;\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(seen && range.s.c < 10400000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\n//var VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\n//var VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Category', t: VT_STRING },\n\t0x03: { n: 'PresentationFormat', t: VT_STRING },\n\t0x04: { n: 'ByteCount', t: VT_I4 },\n\t0x05: { n: 'LineCount', t: VT_I4 },\n\t0x06: { n: 'ParagraphCount', t: VT_I4 },\n\t0x07: { n: 'SlideCount', t: VT_I4 },\n\t0x08: { n: 'NoteCount', t: VT_I4 },\n\t0x09: { n: 'HiddenCount', t: VT_I4 },\n\t0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n\t0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n\t0x0c: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t0x0d: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t0x0e: { n: 'Manager', t: VT_STRING },\n\t0x0f: { n: 'Company', t: VT_STRING },\n\t0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n\t0x11: { n: 'CharacterCount', t: VT_I4 },\n\t0x13: { n: 'SharedDoc', t: VT_BOOL },\n\t0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t0x18: { n: 'DigSig', t: VT_BLOB },\n\t0x1A: { n: 'ContentType', t: VT_STRING },\n\t0x1B: { n: 'ContentStatus', t: VT_STRING },\n\t0x1C: { n: 'Language', t: VT_STRING },\n\t0x1D: { n: 'Version', t: VT_STRING },\n\t0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Title', t: VT_STRING },\n\t0x03: { n: 'Subject', t: VT_STRING },\n\t0x04: { n: 'Author', t: VT_STRING },\n\t0x05: { n: 'Keywords', t: VT_STRING },\n\t0x06: { n: 'Comments', t: VT_STRING },\n\t0x07: { n: 'Template', t: VT_STRING },\n\t0x08: { n: 'LastAuthor', t: VT_STRING },\n\t0x09: { n: 'RevNumber', t: VT_STRING },\n\t0x0A: { n: 'EditTime', t: VT_FILETIME },\n\t0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n\t0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n\t0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n\t0x0E: { n: 'PageCount', t: VT_I4 },\n\t0x0F: { n: 'WordCount', t: VT_I4 },\n\t0x10: { n: 'CharCount', t: VT_I4 },\n\t0x11: { n: 'Thumbnail', t: VT_CF },\n\t0x12: { n: 'Application', t: VT_STRING },\n\t0x13: { n: 'DocSecurity', t: VT_I4 },\n\t0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t0x0001: \"US\", // United States\n\t0x0002: \"CA\", // Canada\n\t0x0003: \"\", // Latin America (except Brazil)\n\t0x0007: \"RU\", // Russia\n\t0x0014: \"EG\", // Egypt\n\t0x001E: \"GR\", // Greece\n\t0x001F: \"NL\", // Netherlands\n\t0x0020: \"BE\", // Belgium\n\t0x0021: \"FR\", // France\n\t0x0022: \"ES\", // Spain\n\t0x0024: \"HU\", // Hungary\n\t0x0027: \"IT\", // Italy\n\t0x0029: \"CH\", // Switzerland\n\t0x002B: \"AT\", // Austria\n\t0x002C: \"GB\", // United Kingdom\n\t0x002D: \"DK\", // Denmark\n\t0x002E: \"SE\", // Sweden\n\t0x002F: \"NO\", // Norway\n\t0x0030: \"PL\", // Poland\n\t0x0031: \"DE\", // Germany\n\t0x0034: \"MX\", // Mexico\n\t0x0037: \"BR\", // Brazil\n\t0x003d: \"AU\", // Australia\n\t0x0040: \"NZ\", // New Zealand\n\t0x0042: \"TH\", // Thailand\n\t0x0051: \"JP\", // Japan\n\t0x0052: \"KR\", // Korea\n\t0x0054: \"VN\", // Viet Nam\n\t0x0056: \"CN\", // China\n\t0x005A: \"TR\", // Turkey\n\t0x0069: \"JS\", // Ramastan\n\t0x00D5: \"DZ\", // Algeria\n\t0x00D8: \"MA\", // Morocco\n\t0x00DA: \"LY\", // Libya\n\t0x015F: \"PT\", // Portugal\n\t0x0162: \"IS\", // Iceland\n\t0x0166: \"FI\", // Finland\n\t0x01A4: \"CZ\", // Czech Republic\n\t0x0376: \"TW\", // Taiwan\n\t0x03C1: \"LB\", // Lebanon\n\t0x03C2: \"JO\", // Jordan\n\t0x03C3: \"SY\", // Syria\n\t0x03C4: \"IQ\", // Iraq\n\t0x03C5: \"KW\", // Kuwait\n\t0x03C6: \"SA\", // Saudi Arabia\n\t0x03CB: \"AE\", // United Arab Emirates\n\t0x03CC: \"IL\", // Israel\n\t0x03CE: \"QA\", // Qatar\n\t0x03D5: \"IR\", // Iran\n\t0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array<number>*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0x000000, /* 0x40 icvForeground ?? */\n\t0xFFFFFF, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t0x00: \"#NULL!\",\n\t0x07: \"#DIV/0!\",\n\t0x0F: \"#VALUE!\",\n\t0x17: \"#REF!\",\n\t0x1D: \"#NAME?\",\n\t0x24: \"#NUM!\",\n\t0x2A: \"#N/A\",\n\t0x2B: \"#GETTING_DATA\",\n\t0xFF: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\tworkbooks: {\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t},\n\tstrs: { /* Shared Strings */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t},\n\tcomments: { /* Comments */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t},\n\tsheets: { /* Worksheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t},\n\tcharts: { /* Chartsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t},\n\tdialogs: { /* Dialogsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t},\n\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t},\n\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t},\n\tstyles: { /* Styles */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension.toLowerCase()] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts, raw)/*:string*/ {\n\tvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array<string>*/ = [], v;\n\n\tif(!raw) {\n\t\to[o.length] = (XML_HEADER);\n\t\to[o.length] = writextag('Types', null, {\n\t\t\t'xmlns': XMLNS.CT,\n\t\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t\t'xmlns:xsi': XMLNS.xsi\n\t\t});\n\t\to = o.concat([\n\t\t\t['xml', 'application/xml'],\n\t\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t\t/* from test files */\n\t\t\t['bmp', 'image/bmp'],\n\t\t\t['png', 'image/png'],\n\t\t\t['gif', 'image/gif'],\n\t\t\t['emf', 'image/x-emf'],\n\t\t\t['wmf', 'image/x-wmf'],\n\t\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t\t['pdf', 'application/pdf'],\n\t\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t\t].map(function(x) {\n\t\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t\t}));\n\t}\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(!raw && o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tCONN: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = unescapexml(y.Target); rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\n\n/* TODO */\nfunction write_rels(rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Relationships', null, {\n\t\t//'xmlns:ns0': XMLNS.RELS,\n\t\t'xmlns': XMLNS.RELS\n\t})];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n var str = xlml_normalize(d);\n var Rn;\n var FEtag;\n while (Rn = xlmlregex.exec(str))\n switch (Rn[3]) {\n case \"manifest\":\n break;\n case \"file-entry\":\n FEtag = parsexmltag(Rn[0], false);\n if (FEtag.path == \"/\" && FEtag.type !== CT_ODS)\n throw new Error(\"This OpenDocument is not a spreadsheet\");\n break;\n case \"encryption-data\":\n case \"algorithm\":\n case \"start-key-generation\":\n case \"key-derivation\":\n throw new Error(\"Unsupported ODS Encryption\");\n default:\n if (opts && opts.WTF)\n throw Rn;\n }\n}\nfunction write_manifest(manifest) {\n var o = [XML_HEADER];\n o.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n o.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n for (var i = 0; i < manifest.length; ++i)\n o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n o.push(\"</manifest:manifest>\");\n return o.join(\"\");\n}\nfunction write_rdf_type(file, res, tag) {\n return [\n ' <rdf:Description rdf:about=\"' + file + '\">\\n',\n ' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + \"#\" + res + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n return [\n ' <rdf:Description rdf:about=\"' + base + '\">\\n',\n ' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf(rdf) {\n var o = [XML_HEADER];\n o.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n for (var i = 0; i != rdf.length; ++i) {\n o.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n o.push(write_rdf_has(\"\", rdf[i][0]));\n }\n o.push(write_rdf_type(\"\", \"Document\", \"pkg\"));\n o.push(\"</rdf:RDF>\");\n return o.join(\"\");\n}\nfunction write_meta_ods(wb, opts) {\n return '<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>SheetJS ' + XLSX.version + \"</meta:generator></office:meta></office:document-meta>\";\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array<Array<string> >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = str_match_xml(data, f[0]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array<Array<string> >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array<Array<any>>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (str_match_xml_ns(data, f[0])||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = str_match_xml(data, f[0]);\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^<>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array<string>*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array<string>*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tif(Props[i][0] == 0 && Props.length > i+1 && Props[i][1] == Props[i+1][1]) continue; // R9\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/(^|[^\\u0000])\\u0000+$/,\"$1\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/(^|[^\\u0000])\\u0000+$/,\"$1\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ];\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length/*:number*/) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v/*:any*/, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob/*::, length:?number, opts:?any*/) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v/*:number*/, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length/*:: :?number, opts:?any*/) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob/*::, length*/) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t/*:string*/, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, ((t == 'e') ? +v : +!!v));\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob, length, opts)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ret = ({r:rw, c:col, ixfe:0}/*:any*/);\n\tif(opts && opts.biff == 2 || length == 7) {\n\t\t/* TODO: pass back flags */\n\t\tvar flags = blob.read_shift(1);\n\t\tret.ixfe = flags & 0x3F;\n\t\tblob.l += 2;\n\t\t/*\n\t\tvar ifntifmt = blob.read_shift(1);\n\t\tvar ifmt = ifntifmt & 0x3f, ifnt = ifntifmt >> 6;\n\t\tvar flags3 = blob.read_shift(1);\n\t\t*/\n\t} else ret.ixfe = blob.read_shift(2);\n\treturn ret;\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t0x00: parse_FtSkip, /* FtEnd */\n\t0x04: parse_FtSkip, /* FtMacro */\n\t0x05: parse_FtSkip, /* FtButton */\n\t0x06: parse_FtSkip, /* FtGmo */\n\t0x07: parse_FtCf, /* FtCf */\n\t0x08: parse_FtSkip, /* FtPioGrbit */\n\t0x09: parse_FtSkip, /* FtPictFmla */\n\t0x0A: parse_FtSkip, /* FtCbls */\n\t0x0B: parse_FtSkip, /* FtRbo */\n\t0x0C: parse_FtSkip, /* FtSbs */\n\t0x0D: parse_FtNts, /* FtNts */\n\t0x0E: parse_FtSkip, /* FtSbsFmla */\n\t0x0F: parse_FtSkip, /* FtGboData */\n\t0x10: parse_FtSkip, /* FtEdoData */\n\t0x11: parse_FtSkip, /* FtRboData */\n\t0x12: parse_FtSkip, /* FtCblsData */\n\t0x13: parse_FtSkip, /* FtLbsData */\n\t0x14: parse_FtSkip, /* FtCblsFmla */\n\t0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts[ft] = FtTab[ft](blob, tgt - blob.l);\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar name = \"\";\n\tif(opts.biff == 4) {\n\t\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\t\tif(name.length === 0) name = \"Sheet1\";\n\t\treturn { name:name };\n\t}\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tname = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, length, opts);\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\nfunction write_BIFF2Format(f/*:string*/) {\n\tvar o = new_buf(1 + f.length);\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\nfunction write_BIFF4Format(f/*:string*/) {\n\tvar o = new_buf(3 + f.length);\n\to.l += 2;\n\to.write_shift(1, f.length);\n\to.write_shift(f.length, f, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\nfunction parse_BIFF2XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); blob.l++; o.flags = blob.read_shift(1);\n\to.numFmtId = o.flags & 0x3F; o.flags>>=6;\n\to.fStyle = 0;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction write_BIFF2XF(xf) {\n\tvar o = new_buf(4);\n\to.l+=2;\n\to.write_shift(1, xf.numFmtId);\n\to.l++;\n\treturn o;\n}\nfunction write_BIFF3XF(xf) {\n\tvar o = new_buf(12);\n\to.l++;\n\to.write_shift(1, xf.numFmtId);\n\to.l += 10;\n\treturn o;\n}\n/* TODO: check other fields */\nvar write_BIFF4XF = write_BIFF3XF;\nfunction parse_BIFF3XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\nfunction parse_BIFF4XF(blob/*::, length, opts*/) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(1); o.numFmtId = blob.read_shift(1); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\to.data = {}; // TODO\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array<number>*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: legacy record filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\t/* see issue 2907 */\n\tif(!(opts.biff > 8) && (length == blob[blob.l] + (blob[blob.l+1] == 0x03 ? 1 : 0) + 1)) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 */\nfunction parse_NoteSh(blob, length, opts) {\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\tif(opts && (opts.biff < 8)) {\n\t\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\t\tif(row == 0xFFFF || row == -1) return; // TODO: test continuation\n\t\tvar cch = blob.read_shift(2);\n\t\tvar cmnt = blob.read_shift(Math.min(cch,2048), 'cpstr');\n\t\treturn [{r:row, c:col}, cmnt];\n\t}\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\nfunction write_NOTE_BIFF2(text/*:string*/, R/*:number*/, C/*:number*/, len/*?:number*/) {\n\tvar o = new_buf(6 + (len || text.length));\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, len || text.length);\n\to.write_shift(text.length, text, \"sbcs\");\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array<Range>*/ {\n\tvar merges/*:Array<Range>*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array<Range>*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(1, ixfe||0/* & 0x3F */);\n\tout.write_shift(1, ifmt||0/* & 0x3F */);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/, ixfe, ifmt) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 7, opts);\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/, ixfe/*:number*/, ifmt/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c, ixfe||0, ifmt||0);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\nfunction parse_BIFF2BOOLERR(blob, length, opts) {\n\tvar bestart = blob.l + 7;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tblob.l = bestart;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF4SheetInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(4);\n\tvar cch = blob.read_shift(1), name = blob.read_shift(cch, \"sbcs\");\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { flags: flags, name:name };\n}var DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t0x01: 437, 0x02: 850,\n\t0x03: 1252, 0x04: 10000,\n\t0x64: 852, 0x65: 866,\n\t0x66: 865, 0x67: 861,\n\t0x68: 895, 0x69: 620,\n\t0x6A: 737, 0x6B: 857,\n\t0x78: 950, 0x79: 949,\n\t0x7A: 936, 0x7B: 932,\n\t0x7C: 874, 0x7D: 1255,\n\t0x7E: 1256, 0x96: 10007,\n\t0x97: 10029, 0x98: 10006,\n\t0xC8: 1250, 0xC9: 1251,\n\t0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n\t0x00: 20127, 0x08: 865,\n\t0x09: 437, 0x0A: 850,\n\t0x0B: 437, 0x0D: 437,\n\t0x0E: 850, 0x0F: 437,\n\t0x10: 850, 0x11: 437,\n\t0x12: 850, 0x13: 932,\n\t0x14: 850, 0x15: 437,\n\t0x16: 850, 0x17: 865,\n\t0x18: 437, 0x19: 437,\n\t0x1A: 850, 0x1B: 437,\n\t0x1C: 863, 0x1D: 850,\n\t0x1F: 852, 0x22: 852,\n\t0x23: 852, 0x24: 860,\n\t0x25: 850, 0x26: 866,\n\t0x37: 850, 0x40: 852,\n\t0x4D: 936, 0x4E: 949,\n\t0x4F: 950, 0x50: 874,\n\t0x57: 1252, 0x58: 1252,\n\t0x59: 1252, 0x6C: 863,\n\t0x86: 737, 0x87: 852,\n\t0x88: 857, 0xCC: 1257,\n\n\t0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n\t0x01: 437, 0x02: 850,\n\t0x03: 1252, 0x04: 10000,\n\t0x64: 852, 0x65: 866,\n\t0x66: 865, 0x67: 861,\n\t0x68: 895, 0x69: 620,\n\t0x6A: 737, 0x6B: 857,\n\t0x78: 950, 0x79: 949,\n\t0x7A: 936, 0x7B: 932,\n\t0x7C: 874, 0x7D: 1255,\n\t0x7E: 1256, 0x96: 10007,\n\t0x97: 10029, 0x98: 10006,\n\t0xC8: 1250, 0xC9: 1251,\n\t0xCA: 1254, 0xCB: 1253,\n\t0x00: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array<DBFField>*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = (typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)) : a2s(d.slice(d.l, d.l + ww))).replace(/[\\u0000\\r\\n][\\S\\s]*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/([^\\s])\\s+$/,\"$1\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) {\n\t\t\t\t\t\tout[R][C] = new Date(Date.UTC(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8), 0, 0, 0, 0));\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { out[R][C] = utc_to_local(out[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '\\x00': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': {\n\t\t\t\t\tvar hi = dd.read_shift(4), lo = dd.read_shift(4);\n\t\t\t\t\tif(hi == 0 && lo == 0) break;\n\t\t\t\t\tout[R][C] = new Date((hi - 0x253D8C) * 0x5265C00 + lo);\n\t\t\t\t\tif(!(opts && opts.UTC)) out[R][C] = utc_to_local(out[R][C]);\n\t\t\t\t} break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry {\n\t\tvar o = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);\n\t\to.bookType = \"dbf\";\n\t\treturn o;\n\t} catch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to DBF\");\n\tvar o = opts || {};\n\tvar old_cp = current_codepage;\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array<string>*/ = [];\n\tvar colwidths/*:Array<number>*/ = [];\n\tvar coldecimals/*:Array<number>*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array<any>*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\t/* TODO: cache the values instead of encoding twice */\n\t\t\tmaxlen = Math.max(maxlen, (typeof $cptable !== \"undefined\" && typeof col[j] == \"string\" ? $cptable.utils.encode(current_ansi, col[j]): String(col[j])).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\tvar cp = +dbf_reverse_map[/*::String(*/current_codepage/*::)*/] || 0x03;\n\th.write_shift(4, 0x00000000 | (cp<<8));\n\tif(dbf_codepage_map[cp] != +o.codepage) {\n\t\tif(o.codepage) console.error(\"DBF Unsupported codepage \" + current_codepage + \", using 1252\");\n\t\tcurrent_codepage = 1252;\n\t}\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\t/* TODO: test how applications handle non-ASCII field names */\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'N':\n\t\t\t\t\tvar _n = \"0\";\n\t\t\t\t\tif(typeof data[i][j] == \"number\") _n = data[i][j].toFixed(coldecimals[j]||0);\n\t\t\t\t\tif(_n.length > colwidths[j]) _n = _n.slice(0, colwidths[j]); // addresses decimal > width\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _l = rout.l;\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"cpstr\");\n\t\t\t\t\t_l += colwidths[j] - rout.l;\n\t\t\t\t\tfor(hcnt=0; hcnt < _l; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tcurrent_codepage = old_cp;\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t0:176, 1:177, 2:178,\n\t\t3:179, 5:181, 6:182,\n\t\t7:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\").replace(\"{\", \"\\\\{\") + \"|\\\\|)\", \"gm\");\n\ttry {\n\t\tsylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\t} catch(e) {}\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: evert the escape map */\n\tvar encode_sylk_str = function($$) { return $$.replace(/\\n/g, \"\\x1b :\").replace(/\\r/g, \"\\x1b =\"); };\n\t/* https://oss.sheetjs.com/notes/sylk/ for more details */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array<string>*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array<RowInfo>*/ = [], colinfo/*:Array<ColInfo>*/ = [], cw/*:Array<string>*/ = [];\n\t\tvar Mval = 0, j;\n\t\tvar wb = { Workbook: { WBProps: {}, Names: [] } };\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': /* workbook options */\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'V': {\n\t\t\t\t\tvar d1904 = parseInt(record[rj].slice(1), 10);\n\t\t\t\t\t// NOTE: it is technically an error if d1904 >= 5 or < 0\n\t\t\t\t\tif(d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;\n\t\t\t\t} break;\n\t\t\t} break;\n\t\t\tcase 'W': break; /* window */\n\t\t\tcase 'P':\n\t\t\t\tswitch(record[1].charAt(0)){\n\t\t\t\t\tcase 'P': formats.push(rstr.slice(3).replace(/;;/g, \";\")); break;\n\t\t\t\t} break;\n\t\t\tcase 'NN': { /* defined name */\n\t\t\t\tvar nn = {Sheet: 0};\n\t\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\t\tcase 'N': nn.Name = record[rj].slice(1); break;\n\t\t\t\t\tcase 'E': nn.Ref = (opts && opts.sheet || \"Sheet1\") + \"!\" + rc_to_a1(record[rj].slice(1)); break;\n\t\t\t\t}\n\t\t\t\twb.Workbook.Names.push(nn);\n\t\t\t} break;\n\t\t\t// case 'NE': // ??\n\t\t\t// case 'NU': // ??\n\t\t\tcase 'C': /* cell */\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1, formula = \"\", cell_t = \"z\";\n\t\t\tvar cmnt = \"\";\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'A': cmnt = record[rj].slice(1); break; // TODO: comment\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') { val = val.slice(1,val.length - 1); cell_t = \"s\"; }\n\t\t\t\t\telse if(val === 'TRUE' || val === 'FALSE') { val = val === 'TRUE'; cell_t = \"b\"; }\n\t\t\t\t\telse if(val.charAt(0) == \"#\" && RBErr[val] != null) { cell_t = \"e\"; val = RBErr[val]; }\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val); cell_t = \"n\";\n\t\t\t\t\t\tif(next_cell_format !== null && fmt_is_date(next_cell_format) && opts.cellDates) {\n\t\t\t\t\t\t\tval = numdate(wb.Workbook.WBProps.date1904 ? val + 1462 : val); cell_t = typeof val == \"number\" ? \"n\" : \"d\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof $cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = $cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tC_seen_E = true;\n\t\t\t\t\tformula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S':\n\t\t\t\t\tC_seen_S = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'G': break; // unknown\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\t// case 'P': // ??\n\t\t\t\t// case 'D': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: cell_t, v: val };\n\t\t\t\telse { arr[R][C].t = cell_t; arr[R][C].v = val; }\n\t\t\t\tif(next_cell_format) arr[R][C].z = next_cell_format;\n\t\t\t\tif(opts.cellText !== false && next_cell_format) arr[R][C].w = SSF_format(arr[R][C].z, arr[R][C].v, { date1904: wb.Workbook.WBProps.date1904 });\n\t\t\t\tnext_cell_format = null;\n\t\t\t}\n\t\t\tif(C_seen_S) {\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tformula = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tif(formula) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'n', f: formula };\n\t\t\t\telse arr[R][C].f = formula;\n\t\t\t}\n\t\t\tif(cmnt) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'z' };\n\t\t\t\tarr[R][C].c = [{a:\"SheetJSYLK\", t: cmnt}];\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F': /* Format */\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1), 10) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1), 10)];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval};\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\t// case 'K': // ??\n\t\t\t\t// case 'E': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tcolinfo.forEach(function(col) { process_col(col); });\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht, wb];\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];\n\t\tvar _opts = dup(opts); _opts.date1904 = (((wb||{}).Workbook || {}).WBProps || {}).date1904;\n\t\tvar o = aoa_to_sheet(aoa, _opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\tvar outwb = sheet_to_workbook(o, opts);\n\t\tkeys(wb).forEach(function(k) { outwb[k] = wb[k]; });\n\t\toutwb.bookType = \"sylk\";\n\t\treturn outwb;\n\t}\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || BErr[cell.v] || cell.v; break;\n\t\t\tcase 'd': o += datenum(parseDate(cell.v, date1904), date1904); break;\n\t\t\tcase 's': o += '\"' + (cell.v == null ? \"\" : String(cell.v)).replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cmnt_sylk(cmnt/*:Comment*/, R/*:number*/, C/*:number*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";A\";\n\t\t/* TODO: max length? */\n\t\to += encode_sylk_str(cmnt.map(function(c) { return c.t; }).join(\"\"));\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array<string>*/, rows/*:Array<RowInfo>*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/, wb/*:?WorkBook*/)/*:string*/ {\n\t\tif(!opts) opts = {}; opts._formats = [\"General\"];\n\t\t/* TODO: codepage */\n\t\tvar preamble/*:Array<string>*/ = [\"ID;PSheetJS;N;E\"], o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']||\"A1\"), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar RS = \"\\r\\n\";\n\t\tvar d1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\n\t\tvar _lastfmt = \"General\";\n\t\tpreamble.push(\"P;PGeneral\");\n\t\t/* Excel has been inconsistent in comment placement */\n\t\tvar R = r.s.r, C = r.s.c, p = [];\n\t\tif(ws[\"!ref\"]) for(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || !cell.c) continue;\n\t\t\t\tp.push(write_ws_cmnt_sylk(cell.c, R, C));\n\t\t\t}\n\t\t\tif(p.length) o.push(p.join(RS));\n\t\t}\n\t\tif(ws[\"!ref\"]) for(R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tp = [];\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\tif((cell.z||(cell.t == \"d\" ? table_fmt[14] : \"General\")) != _lastfmt) {\n\t\t\t\t\tvar ifmt = opts._formats.indexOf(cell.z);\n\t\t\t\t\tif(ifmt == -1) { opts._formats.push(cell.z); ifmt = opts._formats.length - 1; preamble.push(\"P;P\" + cell.z.replace(/;/g, \";;\")); }\n\t\t\t\t\tp.push(\"F;P\" + ifmt + \";Y\" + (R+1) + \";X\" + (C+1));\n\t\t\t\t}\n\t\t\t\tp.push(write_ws_cell_sylk(cell, ws, R, C, opts, d1904));\n\t\t\t}\n\t\t\to.push(p.join(RS));\n\t\t}\n\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tif(ws[\"!ref\"]) preamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tpreamble.push(\"O;L;D;B\" + (d1904 ? \";V4\" : \"\") + \";K47;G100 0.001\");\n\n\t\tdelete opts._formats;\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) {\n\t\t\t\t\t\tarr[R][C] = parseDate(value);\n\t\t\t\t\t\tif(!(opts && opts.UTC)) { arr[R][C] = utc_to_local(arr[R][C]); }\n\t\t\t\t\t}\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\t\tvar o = sheet_to_workbook(dif_to_sheet(str, opts), opts);\n\t\to.bookType = \"dif\";\n\t\treturn o;\n\t}\n\n\tfunction make_value(v/*:number*/, s/*:string*/)/*:string*/ { return \"0,\" + String(v) + \"\\r\\n\" + s; }\n\tfunction make_value_str(s/*:string*/)/*:string*/ { return \"1,0\\r\\n\\\"\" + s.replace(/\"/g,'\"\"') + '\"'; }\n\tfunction sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar _DIF_XL = DIF_XL;\n\t\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to DIF\");\n\t\tvar r = safe_decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar o/*:Array<string>*/ = [\n\t\t\t\"TABLE\\r\\n0,1\\r\\n\\\"sheetjs\\\"\\r\\n\",\n\t\t\t\"VECTORS\\r\\n0,\" + (r.e.r - r.s.r + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"TUPLES\\r\\n0,\" + (r.e.c - r.s.c + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"DATA\\r\\n0,0\\r\\n\\\"\\\"\\r\\n\"\n\t\t];\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar row = dense ? ws[\"!data\"][R] : [];\n\t\t\tvar p = \"-1,0\\r\\nBOT\\r\\n\";\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar cell/*:Cell*/ = dense ? (row && row[C]) : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(cell == null) { p +=(\"1,0\\r\\n\\\"\\\"\\r\\n\"); continue;}\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(_DIF_XL) {\n\t\t\t\t\t\t\tif(cell.w != null) p +=(\"0,\" + cell.w + \"\\r\\nV\");\n\t\t\t\t\t\t\telse if(cell.v != null) p +=(make_value(cell.v, \"V\")); // TODO: should this call SSF_format?\n\t\t\t\t\t\t\telse if(cell.f != null && !cell.F) p +=(make_value_str(\"=\" + cell.f));\n\t\t\t\t\t\t\telse p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(cell.v == null) p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t\telse p +=(make_value(cell.v, \"V\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tp +=(cell.v ? make_value(1, \"TRUE\") : make_value(0, \"FALSE\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tp +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '=\"' + cell.v + '\"'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\tif(_DIF_XL) p +=(make_value(cell.w, \"V\"));\n\t\t\t\t\t\telse p +=(make_value_str(cell.w));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t}\n\t\t\t\tp += \"\\r\\n\";\n\t\t\t}\n\t\t\to.push(p);\n\t\t}\n\t\treturn o.join(\"\") + \"-1,0\\r\\nEOD\";\n\t}\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array<string>*/ = [], oo/*:Array<string>*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t0x2C: ',',\n\t\t0x09: \"\\t\",\n\t\t0x3B: ';',\n\t\t0x7C: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t0x2C: 3,\n\t\t0x09: 2,\n\t\t0x3B: 1,\n\t\t0x7C: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = ({}/*:any*/);\n\t\tif(o.dense) ws[\"!data\"] = [];\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\t/* TODO: fuzzy parsers should pass back assumed number format */\n\t\t\tvar s = str.slice(start, end); if(s.slice(-1) == \"\\r\") s = s.slice(0, -1);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(o.cellText !== false) cell.w = s;\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 's'; cell.f = s.slice(1); cell.v = s; }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; cell.v = v; }\n\t\t\telse if(!isNaN((v = fuzzydate(s)).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tif(_re && s.match(_re)){ var news=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); v = parseDate(news); if(o && o.UTC === false) v = utc_to_local(v); }\n\t\t\t\telse if(o && o.UTC === false) v = utc_to_local(v);\n\t\t\t\telse if(o.cellText !== false && o.dateNF) cell.w = SSF_format(cell.z, v);\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = v; }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(v); }\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase 0x0d:\n\t\t\t\tif(instr) break;\n\t\t\t\tif(str.charCodeAt(end+1) == 0x0a) ++end;\n\t\t\t\t/* falls through */\n\t\t\tcase sepcc: case 0x0a: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array<string>*/ = [];\n\t\tif(!ws[\"!ref\"]) return \"\";\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array<string>*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif((e.message.indexOf(\"SYLK bad record ID\") == -1) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\t/* NOTE: this list intentionally starts at 1 */\n\tvar LOTUS_DATE_FMTS = [\n\t\t\"mmmm\",\n\t\t\"dd-mmm-yyyy\",\n\t\t\"dd-mmm\",\n\t\t\"mmm-yyyy\",\n\t\t\"@\", // \"text\"?\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss AM/PM\", // 7\n\t\t\"hh:mm AM/PM\",\n\t\t\"mm/dd/yyyy\",\n\t\t\"mm/dd\",\n\t\t\"hh:mm:ss\",\n\t\t\"hh:mm\" // 12\n\t];\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [], sdata = [];\n\t\tif(o.dense) sdata = s[\"!data\"] = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\t\tvar lastcell = {};\n\n\t\tif(d[4] == 0x51 && d[5] == 0x50 && d[6] == 0x57) return qpw_to_workbook_buf(d, opts);\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0xFF: /* BOF (works 3+) */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\to.works = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\tif(o.works || o.works2) val[1].v = val[1].v.replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif((val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || LOTUS_DATE_FMTS[(val[2] & 0x0F)-1] || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].v = numdate(val[1].v); val[1].t = typeof val[1].v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (sdata[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tlastcell = tmpcell;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tlastcell = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x5405: o.works2 = true; break;\n\t\t\t\tcase 0x5402: {\n\t\t\t\t\t/* TODO: enumerate all extended number formats */\n\t\t\t\t\tif(val == 0x14a1) {\n\t\t\t\t\t\tlastcell.z = \"hh:mm:ss\";\n\t\t\t\t\t\tif(o.cellDates && lastcell.t == \"n\") {\n\t\t\t\t\t\t\tlastcell.v = numdate(lastcell.v); lastcell.t = typeof lastcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tif(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t// TODO: R9 appears to encode control codes this way -- verify against other versions\n\t\t\t\t\tval[1].v = val[1].v.replace(/\\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) - 0x20); }).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tif(!ws[\"!ref\"]) throw new Error(\"Cannot export empty sheet to WK1\");\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[cols[C] + rr];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tswitch(cell.t) {\n\t\t\t\tcase \"n\":\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell));\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"d\":\n\t\t\t\t\tvar dc = datenum(cell.v);\n\t\t\t\t\tif((dc|0)==dc && dc >= -32768 && dc <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, {t:\"n\", v:dc, z:cell.z || table_fmt[14]}));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = ws[\"!data\"] != null;\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else if(opts.works) { // TODO: verify with more complex works3-4 examples\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t\to[2] = blob.read_shift(2);\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction get_wk1_fmt(cell)/*:number*/ {\n\t\t/* TODO: some fuzzy matching on the number format */\n\t\tif(cell.z && fmt_is_date(cell.z)) {\n\t\t\treturn 0xf0 | (LOTUS_DATE_FMTS.indexOf(cell.z) + 1 || 2);\n\t\t}\n\t\treturn 0xFF;\n\t}\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif((opts.vers & 0xFFFE) == 0x5120) { // WQ1 / WQ2\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\tfunction parse_STRING(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, cell) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, cell.v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, cell) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, get_wk1_fmt(cell));\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, cell.v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x1F: [\"NA\", 0],\n\t\t// 0x20: [\"ERR\", 0],\n\t\t0x21: [\"ABS\", 1],\n\t\t0x22: [\"TRUNC\", 1],\n\t\t0x23: [\"SQRT\", 1],\n\t\t0x24: [\"LOG\", 1],\n\t\t0x25: [\"LN\", 1],\n\t\t0x26: [\"PI\", 0],\n\t\t0x27: [\"SIN\", 1],\n\t\t0x28: [\"COS\", 1],\n\t\t0x29: [\"TAN\", 1],\n\t\t0x2A: [\"ATAN2\", 2],\n\t\t0x2B: [\"ATAN\", 1],\n\t\t0x2C: [\"ASIN\", 1],\n\t\t0x2D: [\"ACOS\", 1],\n\t\t0x2E: [\"EXP\", 1],\n\t\t0x2F: [\"MOD\", 2],\n\t\t// 0x30\n\t\t0x31: [\"ISNA\", 1],\n\t\t0x32: [\"ISERR\", 1],\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x35: [\"RAND\", 0],\n\t\t0x36: [\"DATE\", 3],\n\t\t// 0x37 NOW\n\t\t// 0x38 PMT\n\t\t// 0x39 PV\n\t\t// 0x3A FV\n\t\t// 0x3B IF\n\t\t// 0x3C DAY\n\t\t// 0x3D MONTH\n\t\t// 0x3E YEAR\n\t\t0x3F: [\"ROUND\", 2],\n\t\t0x40: [\"TIME\", 3],\n\t\t// 0x41 HOUR\n\t\t// 0x42 MINUTE\n\t\t// 0x43 SECOND\n\t\t0x44: [\"ISNUMBER\", 1],\n\t\t0x45: [\"ISTEXT\", 1],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x47: [\"VALUE\", 1],\n\t\t// 0x48: [\"FIXED\", ?? 1],\n\t\t0x49: [\"MID\", 3],\n\t\t0x4A: [\"CHAR\", 1],\n\t\t// 0x4B\n\t\t// 0x4C FIND\n\t\t// 0x4D DATEVALUE\n\t\t// 0x4E TIMEVALUE\n\t\t// 0x4F CELL\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t// 0x55 VLOOKUP\n\t\t// 0x56 NPV\n\t\t// 0x57 VAR\n\t\t// 0x58 STD\n\t\t// 0x59 IRR\n\t\t// 0x5A HLOOKUP\n\t\t// 0x5B DSUM\n\t\t// 0x5C DAVERAGE\n\t\t// 0x5D DCOUNTA\n\t\t// 0x5E DMIN\n\t\t// 0x5F DMAX\n\t\t// 0x60 DVARP\n\t\t// 0x61 DSTDEVP\n\t\t// 0x62 INDEX\n\t\t// 0x63 COLS\n\t\t// 0x64 ROWS\n\t\t// 0x65 REPEAT\n\t\t0x66: [\"UPPER\", 1],\n\t\t0x67: [\"LOWER\", 1],\n\t\t// 0x68 LEFT\n\t\t// 0x69 RIGHT\n\t\t// 0x6A REPLACE\n\t\t0x6B: [\"PROPER\", 1],\n\t\t// 0x6C CELL\n\t\t0x6D: [\"TRIM\", 1],\n\t\t// 0x6E CLEAN\n\t\t0x6F: [\"T\", 1]\n\t\t// 0x70 V\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 12);\n\t\tblob.l += length - 12; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t0x0000: { n:\"BOF\", f:parseuint16 },\n\t\t0x0001: { n:\"EOF\" },\n\t\t0x0002: { n:\"CALCMODE\" },\n\t\t0x0003: { n:\"CALCORDER\" },\n\t\t0x0004: { n:\"SPLIT\" },\n\t\t0x0005: { n:\"SYNC\" },\n\t\t0x0006: { n:\"RANGE\", f:parse_RANGE },\n\t\t0x0007: { n:\"WINDOW1\" },\n\t\t0x0008: { n:\"COLW1\" },\n\t\t0x0009: { n:\"WINTWO\" },\n\t\t0x000A: { n:\"COLW2\" },\n\t\t0x000B: { n:\"NAME\" },\n\t\t0x000C: { n:\"BLANK\" },\n\t\t0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t0x000F: { n:\"LABEL\", f:parse_LABEL },\n\t\t0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t0x0018: { n:\"TABLE\" },\n\t\t0x0019: { n:\"ORANGE\" },\n\t\t0x001A: { n:\"PRANGE\" },\n\t\t0x001B: { n:\"SRANGE\" },\n\t\t0x001C: { n:\"FRANGE\" },\n\t\t0x001D: { n:\"KRANGE1\" },\n\t\t0x0020: { n:\"HRANGE\" },\n\t\t0x0023: { n:\"KRANGE2\" },\n\t\t0x0024: { n:\"PROTEC\" },\n\t\t0x0025: { n:\"FOOTER\" },\n\t\t0x0026: { n:\"HEADER\" },\n\t\t0x0027: { n:\"SETUP\" },\n\t\t0x0028: { n:\"MARGINS\" },\n\t\t0x0029: { n:\"LABELFMT\" },\n\t\t0x002A: { n:\"TITLES\" },\n\t\t0x002B: { n:\"SHEETJS\" },\n\t\t0x002D: { n:\"GRAPH\" },\n\t\t0x002E: { n:\"NGRAPH\" },\n\t\t0x002F: { n:\"CALCCOUNT\" },\n\t\t0x0030: { n:\"UNFORMATTED\" },\n\t\t0x0031: { n:\"CURSORW12\" },\n\t\t0x0032: { n:\"WINDOW\" },\n\t\t0x0033: { n:\"STRING\", f:parse_STRING },\n\t\t0x0037: { n:\"PASSWORD\" },\n\t\t0x0038: { n:\"LOCKED\" },\n\t\t0x003C: { n:\"QUERY\" },\n\t\t0x003D: { n:\"QUERYNAME\" },\n\t\t0x003E: { n:\"PRINT\" },\n\t\t0x003F: { n:\"PRINTNAME\" },\n\t\t0x0040: { n:\"GRAPH2\" },\n\t\t0x0041: { n:\"GRAPHNAME\" },\n\t\t0x0042: { n:\"ZOOM\" },\n\t\t0x0043: { n:\"SYMSPLIT\" },\n\t\t0x0044: { n:\"NSROWS\" },\n\t\t0x0045: { n:\"NSCOLS\" },\n\t\t0x0046: { n:\"RULER\" },\n\t\t0x0047: { n:\"NNAME\" },\n\t\t0x0048: { n:\"ACOMM\" },\n\t\t0x0049: { n:\"AMACRO\" },\n\t\t0x004A: { n:\"PARSE\" },\n\t\t// 0x0064\n\t\t0x0066: { n:\"PRANGES??\" },\n\t\t0x0067: { n:\"RRANGES??\" },\n\t\t0x0068: { n:\"FNAME??\" },\n\t\t0x0069: { n:\"MRANGES??\" },\n\t\t// 0x0096\n\t\t// 0x0099\n\t\t// 0x009A\n\t\t// 0x009B\n\t\t// 0x009C\n\t\t// 0x00C0\n\t\t// 0x00C7\n\t\t// 0x00C9\n\t\t0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t// 0x00CD\n\t\t0x00DE: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t0x00FF: { n:\"BOF\", f:parseuint16 },\n\t\t0x5402: { n:\"WKSNF\", f:parseuint16 },\n\t\t0xFFFF: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t0x0000: { n:\"BOF\" },\n\t\t0x0001: { n:\"EOF\" },\n\t\t0x0002: { n:\"PASSWORD\" },\n\t\t0x0003: { n:\"CALCSET\" },\n\t\t0x0004: { n:\"WINDOWSET\" },\n\t\t0x0005: { n:\"SHEETCELLPTR\" },\n\t\t0x0006: { n:\"SHEETLAYOUT\" },\n\t\t0x0007: { n:\"COLUMNWIDTH\" },\n\t\t0x0008: { n:\"HIDDENCOLUMN\" },\n\t\t0x0009: { n:\"USERRANGE\" },\n\t\t0x000A: { n:\"SYSTEMRANGE\" },\n\t\t0x000B: { n:\"ZEROFORCE\" },\n\t\t0x000C: { n:\"SORTKEYDIR\" },\n\t\t0x000D: { n:\"FILESEAL\" },\n\t\t0x000E: { n:\"DATAFILLNUMS\" },\n\t\t0x000F: { n:\"PRINTMAIN\" },\n\t\t0x0010: { n:\"PRINTSTRING\" },\n\t\t0x0011: { n:\"GRAPHMAIN\" },\n\t\t0x0012: { n:\"GRAPHSTRING\" },\n\t\t0x0013: { n:\"??\" },\n\t\t0x0014: { n:\"ERRCELL\" },\n\t\t0x0015: { n:\"NACELL\" },\n\t\t0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t0x001A: { n:\"FORMULA1A\" },\n\t\t0x001B: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t0x001C: { n:\"DTLABELMISC\" },\n\t\t0x001D: { n:\"DTLABELCELL\" },\n\t\t0x001E: { n:\"GRAPHWINDOW\" },\n\t\t0x001F: { n:\"CPA\" },\n\t\t0x0020: { n:\"LPLAUTO\" },\n\t\t0x0021: { n:\"QUERY\" },\n\t\t0x0022: { n:\"HIDDENSHEET\" },\n\t\t0x0023: { n:\"??\" },\n\t\t0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t0x0026: { n:\"??\" },\n\t\t0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t0x008E: { n:\"??\" },\n\t\t0x0093: { n:\"??\" },\n\t\t0x0096: { n:\"??\" },\n\t\t0x0097: { n:\"??\" },\n\t\t0x0098: { n:\"??\" },\n\t\t0x0099: { n:\"??\" },\n\t\t0x009A: { n:\"??\" },\n\t\t0x009B: { n:\"??\" },\n\t\t0x009C: { n:\"??\" },\n\t\t0x00A3: { n:\"??\" },\n\t\t0x00AE: { n:\"??\" },\n\t\t0x00AF: { n:\"??\" },\n\t\t0x00B0: { n:\"??\" },\n\t\t0x00B1: { n:\"??\" },\n\t\t0x00B8: { n:\"??\" },\n\t\t0x00B9: { n:\"??\" },\n\t\t0x00BA: { n:\"??\" },\n\t\t0x00BB: { n:\"??\" },\n\t\t0x00BC: { n:\"??\" },\n\t\t0x00C3: { n:\"??\" },\n\t\t0x00C9: { n:\"??\" },\n\t\t0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t0x00CD: { n:\"??\" },\n\t\t0x00CE: { n:\"??\" },\n\t\t0x00CF: { n:\"??\" },\n\t\t0x00D0: { n:\"??\" },\n\t\t0x0100: { n:\"??\" },\n\t\t0x0103: { n:\"??\" },\n\t\t0x0104: { n:\"??\" },\n\t\t0x0105: { n:\"??\" },\n\t\t0x0106: { n:\"??\" },\n\t\t0x0107: { n:\"??\" },\n\t\t0x0109: { n:\"??\" },\n\t\t0x010A: { n:\"??\" },\n\t\t0x010B: { n:\"??\" },\n\t\t0x010C: { n:\"??\" },\n\t\t0x010E: { n:\"??\" },\n\t\t0x010F: { n:\"??\" },\n\t\t0x0180: { n:\"??\" },\n\t\t0x0185: { n:\"??\" },\n\t\t0x0186: { n:\"??\" },\n\t\t0x0189: { n:\"??\" },\n\t\t0x018C: { n:\"??\" },\n\t\t0x0200: { n:\"??\" },\n\t\t0x0202: { n:\"??\" },\n\t\t0x0201: { n:\"??\" },\n\t\t0x0204: { n:\"??\" },\n\t\t0x0205: { n:\"??\" },\n\t\t0x0280: { n:\"??\" },\n\t\t0x0281: { n:\"??\" },\n\t\t0x0282: { n:\"??\" },\n\t\t0x0283: { n:\"??\" },\n\t\t0x0284: { n:\"??\" },\n\t\t0x0285: { n:\"??\" },\n\t\t0x0286: { n:\"??\" },\n\t\t0x0287: { n:\"??\" },\n\t\t0x0288: { n:\"??\" },\n\t\t0x0292: { n:\"??\" },\n\t\t0x0293: { n:\"??\" },\n\t\t0x0294: { n:\"??\" },\n\t\t0x0295: { n:\"??\" },\n\t\t0x0296: { n:\"??\" },\n\t\t0x0299: { n:\"??\" },\n\t\t0x029A: { n:\"??\" },\n\t\t0x0300: { n:\"??\" },\n\t\t0x0304: { n:\"??\" },\n\t\t0x0601: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t0x0640: { n:\"??\" },\n\t\t0x0642: { n:\"??\" },\n\t\t0x0701: { n:\"??\" },\n\t\t0x0702: { n:\"??\" },\n\t\t0x0703: { n:\"??\" },\n\t\t0x0704: { n:\"??\" },\n\t\t0x0780: { n:\"??\" },\n\t\t0x0800: { n:\"??\" },\n\t\t0x0801: { n:\"??\" },\n\t\t0x0804: { n:\"??\" },\n\t\t0x0A80: { n:\"??\" },\n\t\t0x2AF6: { n:\"??\" },\n\t\t0x3231: { n:\"??\" },\n\t\t0x6E49: { n:\"??\" },\n\t\t0x6F44: { n:\"??\" },\n\t\t0xFFFF: { n:\"\" }\n\t};\n\n\t/* TODO: fill out and verify this table across QP versions */\n\tvar QPWNFTable = {\n\t\t0x05: \"dd-mmm-yy\",\n\t\t0x06: \"dd-mmm\",\n\t\t0x07: \"mmm-yy\",\n\t\t0x08: \"mm/dd/yy\", // Long Date Intl\n\t\t0x0A: \"hh:mm:ss AM/PM\",\n\t\t0x0B: \"hh:mm AM/PM\",\n\t\t0x0E: \"dd-mmm-yyyy\",\n\t\t0x0F: \"mmm-yyyy\",\n\n\t\t/* It is suspected that the the low nybble specifies decimal places */\n\t\t0x0022: \"0.00\",\n\t\t0x0032: \"0.00;[Red]0.00\",\n\t\t0x0042: \"0.00;\\(0.00\\)\",\n\t\t0x0052: \"0.00;[Red]\\(0.00\\)\",\n\t\t0x00A2: '\"$\"#,##0.00;\\\\(\"$\"#,##0.00\\\\)',\n\t\t0x0120: '0%',\n\t\t0x0130: '0E+00',\n\t\t0x0140: '# ?/?'\n\t};\n\n\tfunction parse_qpw_str(p) {\n\t\tvar cch = p.read_shift(2);\n\t\tvar flags = p.read_shift(1);\n\t\t/* TODO: find examples with nonzero flags */\n\t\tif(flags != 0) throw \"unsupported QPW string type \" + flags.toString(16);\n\t\treturn p.read_shift(cch, \"sbcs-cont\");\n\t}\n\n\t/* QPW uses a different set of record types */\n\tfunction qpw_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tprep_blob(d, 0);\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\tvar SST = [], sname = \"\", formulae = [];\n\t\tvar range = {s:{r:-1,c:-1}, e:{r:-1,c:-1}};\n\t\tvar cnt = 0, type = 0, C = 0, R = 0;\n\t\tvar wb = { SheetNames: [], Sheets: {} };\n\t\tvar FMTS = [];\n\t\touter: while(d.l < d.length) {\n\t\t\tvar RT = d.read_shift(2), length = d.read_shift(2);\n\t\t\tvar p = d.slice(d.l, d.l + length);\n\t\t\tprep_blob(p, 0);\n\t\t\tswitch(RT) {\n\t\t\t\tcase 0x01: /* BOF */\n\t\t\t\t\tif(p.read_shift(4) != 0x39575051) throw \"Bad QPW9 BOF!\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x02: /* EOF */ break outer;\n\n\t\t\t\tcase 0x08: /* NF */ break; // TODO: this is tied to custom number formats\n\n\t\t\t\tcase 0x0A: /* FORMATS */ {\n\t\t\t\t\tvar fcnt = p.read_shift(4);\n\t\t\t\t\tvar step = ((p.length - p.l)/ fcnt)|0;\n\t\t\t\t\tfor(var ifmt = 0; ifmt < fcnt; ++ifmt) {\n\t\t\t\t\t\tvar end = p.l + step;\n\t\t\t\t\t\tvar fmt = {};\n\t\t\t\t\t\tp.l += 2;\n\t\t\t\t\t\tfmt.numFmtId = p.read_shift(2);\n\t\t\t\t\t\tif(QPWNFTable[fmt.numFmtId]) fmt.z = QPWNFTable[fmt.numFmtId];\n\t\t\t\t\t\tp.l = end;\n\t\t\t\t\t\tFMTS.push(fmt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* TODO: The behavior here should be consistent with Numbers: QP Notebook ~ .TN.SheetArchive, QP Sheet ~ .TST.TableModelArchive */\n\t\t\t\tcase 0x0401: /* BON */ break;\n\t\t\t\tcase 0x0402: /* EON */ /* TODO: backfill missing sheets based on BON cnt */ break;\n\n\t\t\t\tcase 0x0407: { /* SST */\n\t\t\t\t\tp.l += 12;\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tSST.push(p.read_shift(cnt, 'cstr'));\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0408: { /* FORMULAE */\n\t\t\t\t\t//p.l += 12;\n\t\t\t\t\t//while(p.l < p.length) {\n\t\t\t\t\t//\tcnt = p.read_shift(2);\n\t\t\t\t\t//\tformulae.push(p.slice(p.l, p.l + cnt + 1)); p.l += cnt + 1;\n\t\t\t\t\t//}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0601: { /* BOS */\n\t\t\t\t\tvar sidx = p.read_shift(2);\n\t\t\t\t\ts = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\t\t\t\trange.s.c = p.read_shift(2);\n\t\t\t\t\trange.e.c = p.read_shift(2);\n\t\t\t\t\trange.s.r = p.read_shift(4);\n\t\t\t\t\trange.e.r = p.read_shift(4);\n\t\t\t\t\tp.l += 4;\n\t\t\t\t\tif(p.l + 2 < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tsname = cnt == 0 ? \"\" : p.read_shift(cnt, 'cstr');\n\t\t\t\t\t}\n\t\t\t\t\tif(!sname) sname = encode_col(sidx);\n\t\t\t\t\t/* TODO: backfill empty sheets */\n\t\t\t\t} break;\n\t\t\t\tcase 0x0602: { /* EOS */\n\t\t\t\t\t/* NOTE: QP valid range A1:IV1000000 */\n\t\t\t\t\tif(range.s.c > 0xFF || range.s.r > 999999) break;\n\t\t\t\t\tif(range.e.c < range.s.c) range.e.c = range.s.c;\n\t\t\t\t\tif(range.e.r < range.s.r) range.e.r = range.s.r;\n\t\t\t\t\ts[\"!ref\"] = encode_range(range);\n\t\t\t\t\tbook_append_sheet(wb, s, sname); // TODO: a barrel roll\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0A01: { /* COL (like XLS Row, modulo the layout transposition) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\t\t\tif(range.s.c > C) range.s.c = C;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C01: { /* MulCells (like XLS MulRK, but takes advantage of common column data patterns) */\n\t\t\t\t\tR = p.read_shift(4), cnt = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tif(range.e.r < R + cnt - 1) range.e.r = R + cnt - 1;\n\t\t\t\t\tvar CC = encode_col(C);\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tvar cell = { t: \"z\" };\n\t\t\t\t\t\tvar flags = p.read_shift(1), fmtidx = -1;\n\t\t\t\t\t\tif(flags & 0x80) fmtidx = p.read_shift(2);\n\t\t\t\t\t\tvar mul = (flags & 0x40) ? p.read_shift(2) - 1: 0;\n\t\t\t\t\t\tswitch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 0: break;\n\t\t\t\t\t\t\tcase 1: break;\n\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: p.read_shift(2, 'i') }; break;\n\t\t\t\t\t\t\tcase 4: cell = { t: \"n\", v: parse_RkNumber(p) }; break;\n\t\t\t\t\t\t\tcase 5: cell = { t: \"n\", v: p.read_shift(8, 'f') }; break;\n\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\tcase 8:\n\t\t\t\t\t\t\t\tcell = { t: \"n\", v: p.read_shift(8, 'f') };\n\t\t\t\t\t\t\t\tp.l += 2; /* cell.f = formulae[p.read_shift(4)]; */ p.l += 4;\n\t\t\t\t\t\t\t\tif(isNaN(cell.v)) cell = { t: \"e\", v: 0x0F }; // #VALUE!\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault: throw \"Unrecognized QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(fmtidx != -1 && (FMTS[fmtidx - 1]||{}).z) cell.z = FMTS[fmtidx-1].z;\n\t\t\t\t\t\tvar delta = 0;\n\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 2: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tcase 3: delta = p.read_shift(2, 'i'); break;\n\t\t\t\t\t\t\tcase 7: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tdefault: throw \"Unsupported delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\tvar newcell = dup(cell);\n\t\t\t\t\t\t\tif(cell.t == \"n\" && cell.z && fmt_is_date(cell.z) && o.cellDates) {\n\t\t\t\t\t\t\t\tnewcell.v = numdate(cell.v); newcell.t = typeof newcell.v == \"number\" ? 'n' : 'd';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = newcell;\n\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = newcell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\twhile(mul-- > 0 && cnt >= 0) {\n\t\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; break;\n\t\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; if(cell.v > 0x7FFF) cell.v -= 0x10000; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = (type + delta) >>> 0] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t} else switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 1: cell = { t: \"z\" }; break;\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply repeat for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(fmtidx != -1);\n\t\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C02: { /* String (result of string formula expression) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tvar str = parse_qpw_str(p);\n\t\t\t\t\t/* TODO: QP10 record has an additional unknown character after the string */\n\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\ts[\"!data\"][R][C] = { t:\"s\", v:str };\n\t\t\t\t\t} else s[encode_col(C) + encode_row(R)] = { t:\"s\", v:str };\n\t\t\t\t} break;\n\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\td.l += length;\n\t\t}\n\t\treturn wb;\n\t}\n\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/<\\w*:/g,\"<\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\t\t\tcase '<color>': case '<color/>': case '</color>': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\t\t\tcase '<family>': case '<family/>': case '</family>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\t\t\tcase '<vertAlign>': case '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\t\t\tcase '<scheme>': case '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = str_match_xml_ns(r, \"t\")/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = str_match_xml_ns(r, \"rPr\");\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array<string>*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array<string>, string, Array<string>]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t\\b[^<>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r\\b[^<>]*>/;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"), true);\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((str_remove_xml_ns_g(x, \"rPh\").match(sitregex)||[]).join(\"\").replace(tagregex,\"\")), true);\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = str_match_xml_ns(data, \"sst\");\n\tif(sst) {\n\t\tss = sst[1].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[0].slice(0, sst[0].indexOf(\">\"))); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(typeof s.t !== \"string\") s.t = String(s.t);\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array<number>*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array<number>*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array<string>*/ {\n\tvar o/*:Array<string>*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length/*:number*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nfunction rtf_to_sheet(d, opts) {\n switch (opts.type) {\n case \"base64\":\n return rtf_to_sheet_str(Base64_decode(d), opts);\n case \"binary\":\n return rtf_to_sheet_str(d, opts);\n case \"buffer\":\n return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString(\"binary\") : a2s(d), opts);\n case \"array\":\n return rtf_to_sheet_str(cc2str(d), opts);\n }\n throw new Error(\"Unrecognized type \" + opts.type);\n}\nfunction rtf_to_sheet_str(str, opts) {\n var o = opts || {};\n var ws = {};\n var dense = o.dense;\n if (dense)\n ws[\"!data\"] = [];\n var rows = str_match_ng(str, \"\\\\trowd\", \"\\\\row\");\n if (!rows)\n throw new Error(\"RTF missing table\");\n var range = { s: { c: 0, r: 0 }, e: { c: 0, r: rows.length - 1 } };\n var row = [];\n rows.forEach(function(rowtf, R) {\n if (dense)\n row = ws[\"!data\"][R] = [];\n var rtfre = /\\\\[\\w\\-]+\\b/g;\n var last_index = 0;\n var res;\n var C = -1;\n var payload = [];\n while ((res = rtfre.exec(rowtf)) != null) {\n var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n if (data.charCodeAt(0) == 32)\n data = data.slice(1);\n if (data.length)\n payload.push(data);\n switch (res[0]) {\n case \"\\\\cell\":\n ++C;\n if (payload.length) {\n var cell = { v: payload.join(\"\"), t: \"s\" };\n if (cell.v == \"TRUE\" || cell.v == \"FALSE\") {\n cell.v = cell.v == \"TRUE\";\n cell.t = \"b\";\n } else if (!isNaN(fuzzynum(cell.v))) {\n cell.t = \"n\";\n if (o.cellText !== false)\n cell.w = cell.v;\n cell.v = fuzzynum(cell.v);\n }\n if (dense)\n row[C] = cell;\n else\n ws[encode_cell({ r: R, c: C })] = cell;\n }\n payload = [];\n break;\n case \"\\\\par\":\n payload.push(\"\\n\");\n break;\n }\n last_index = rtfre.lastIndex;\n }\n if (C > range.e.c)\n range.e.c = C;\n });\n ws[\"!ref\"] = encode_range(range);\n return ws;\n}\nfunction rtf_to_workbook(d, opts) {\n var wb = sheet_to_workbook(rtf_to_sheet(d, opts), opts);\n wb.bookType = \"rtf\";\n return wb;\n}\nfunction sheet_to_rtf(ws, opts) {\n var o = [\"{\\\\rtf1\\\\ansi\"];\n if (!ws[\"!ref\"])\n return o[0] + \"}\";\n var r = safe_decode_range(ws[\"!ref\"]), cell;\n var dense = ws[\"!data\"] != null, row = [];\n for (var R = r.s.r; R <= r.e.r; ++R) {\n o.push(\"\\\\trowd\\\\trautofit1\");\n for (var C = r.s.c; C <= r.e.c; ++C)\n o.push(\"\\\\cellx\" + (C + 1));\n o.push(\"\\\\pard\\\\intbl\");\n if (dense)\n row = ws[\"!data\"][R] || [];\n for (C = r.s.c; C <= r.e.c; ++C) {\n var coord = encode_cell({ r: R, c: C });\n cell = dense ? row[C] : ws[coord];\n if (!cell || cell.v == null && (!cell.f || cell.F)) {\n o.push(\" \\\\cell\");\n continue;\n }\n o.push(\" \" + (cell.w || (format_cell(cell), cell.w) || \"\").replace(/[\\r\\n]/g, \"\\\\par \"));\n o.push(\"\\\\cell\");\n }\n o.push(\"\\\\pard\\\\intbl\\\\row\");\n }\n return o.join(\"\") + \"}\";\n}\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t.match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF__load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>': case '<xf>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>': case '<alignment>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection': case '<protection>':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': case '<AlternateContent>': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = remove_doctype(str_remove_ng(data, \"<!--\", \"-->\"));\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=str_match_xml_ns(data, \"numFmts\"))) parse_numFmts(t[0], styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=str_match_xml_ns(data, \"fonts\"))) parse_fonts(t[0], styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=str_match_xml_ns(data, \"fills\"))) parse_fills(t[0], styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=str_match_xml_ns(data, \"borders\"))) parse_borders(t[0], styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=str_match_xml_ns(data, \"cellXfs\"))) parse_cellXfs(t[0], styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\t\t\tcase '</a:srgbClr>': break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\t\t\tcase '</a:sysClr>': break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '</a:dk1>':\n\t\t\tcase '</a:lt1>':\n\t\t\tcase '<a:dk1>':\n\t\t\tcase '<a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t/* clrScheme CT_ColorScheme */\n\tif(!(t=str_match_xml(data, \"a:clrScheme\"))) throw new Error('clrScheme not found in themeElements');\n\tparse_clrScheme(t, themes, opts);\n\n\t/* fontScheme CT_FontScheme */\n\tif(!(t=str_match_xml(data, \"a:fontScheme\"))) throw new Error('fontScheme not found in themeElements');\n\tparse_fontScheme(t, themes, opts);\n\n\t/* fmtScheme CT_StyleMatrix */\n\tif(!(t=str_match_xml(data, \"a:fmtScheme\"))) throw new Error('fmtScheme not found in themeElements');\n\tparse_fmtScheme(t, themes, opts);\n}\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=str_match_xml(data, \"a:themeElements\"))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array<any>*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"<?xml\":\n break;\n case \"<metadata\":\n case \"</metadata>\":\n break;\n case \"<metadataTypes\":\n case \"</metadataTypes>\":\n break;\n case \"<metadataType\":\n out.Types.push({ name: y.name });\n break;\n case \"</metadataType>\":\n break;\n case \"<futureMetadata\":\n for (var j = 0; j < out.Types.length; ++j)\n if (out.Types[j].name == y.name)\n lastmeta = out.Types[j];\n break;\n case \"</futureMetadata>\":\n break;\n case \"<bk>\":\n break;\n case \"</bk>\":\n break;\n case \"<rc\":\n if (metatype == 1)\n out.Cell.push({ type: out.Types[y.t - 1].name, index: +y.v });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[y.t - 1].name, index: +y.v });\n break;\n case \"</rc>\":\n break;\n case \"<cellMetadata\":\n metatype = 1;\n break;\n case \"</cellMetadata>\":\n metatype = 2;\n break;\n case \"<valueMetadata\":\n metatype = 0;\n break;\n case \"</valueMetadata>\":\n metatype = 2;\n break;\n case \"<extLst\":\n case \"<extLst>\":\n case \"</extLst>\":\n case \"<extLst/>\":\n break;\n case \"<ext\":\n pass = true;\n break;\n case \"</ext>\":\n pass = false;\n break;\n case \"<rvb\":\n if (!lastmeta)\n break;\n if (!lastmeta.offsets)\n lastmeta.offsets = [];\n lastmeta.offsets.push(+y.i);\n break;\n default:\n if (!pass && (opts == null ? void 0 : opts.WTF))\n throw new Error(\"unrecognized \" + y[0] + \" in metadata\");\n }\n return x;\n });\n return out;\n}\nfunction write_xlmeta_xml() {\n var o = [XML_HEADER];\n o.push('<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\\n <metadataTypes count=\"1\">\\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\\n </metadataTypes>\\n <futureMetadata name=\"XLDAPR\" count=\"1\">\\n <bk>\\n <extLst>\\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\\n </ext>\\n </extLst>\\n </bk>\\n </futureMetadata>\\n <cellMetadata count=\"1\">\\n <bk>\\n <rc t=\"1\" v=\"0\"/>\\n </bk>\\n </cellMetadata>\\n</metadata>');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array<any>*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml(/*::data, rel, name:string, _opts*/) {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name/*:string*/, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels/*:any*/) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^<>]*r:id=\"([^<>\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nfunction parse_vml(data/*:string*/, sheet, comments) {\n\tvar cidx = 0;\n\t(str_match_xml_ns_g(data, \"shape\")||[]).forEach(function(m) {\n\t\tvar type = \"\";\n\t\tvar hidden = true;\n\t\tvar aidx = -1;\n\t\tvar R = -1, C = -1;\n\t\tm.replace(tagregex, function(x/*:string*/, idx/*:number*/) {\n\t\t\tvar y = parsexmltag(x);\n\t\t\tswitch(strip_ns(y[0])) {\n\t\t\t\tcase '<ClientData': if(y.ObjectType) type = y.ObjectType; break;\n\n\t\t\t\tcase '<Visible': case '<Visible/>': hidden = false; break;\n\n\t\t\t\tcase '<Row': case '<Row>': aidx = idx + x.length; break;\n\t\t\t\tcase '</Row>': R = +m.slice(aidx, idx).trim(); break;\n\n\t\t\t\tcase '<Column': case '<Column>': aidx = idx + x.length; break;\n\t\t\t\tcase '</Column>': C = +m.slice(aidx, idx).trim(); break;\n\t\t\t}\n\t\t\treturn \"\";\n\t\t});\n\t\tswitch(type) {\n\t\tcase 'Note':\n\t\t\tvar cell = ws_get_cell_stub(sheet, ((R>=0 && C>=0) ? encode_cell({r:R,c:C}) : comments[cidx].ref));\n\t\t\tif(cell.c) {\n\t\t\t\tcell.c.hidden = hidden;\n\t\t\t}\n\t\t\t++cidx;\n\t\t\tbreak;\n\t\t}\n\n\t});\n}\n\n\n/* comment boxes */\nfunction write_vml(rId/*:number*/, comments, ws) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"})\n\t];\n\n\tvar _shapeid = 65536 * rId;\n\n\tvar _comments = comments || [];\n\tif(_comments.length > 0) o.push(writextag(\"v:shapetype\", [\n\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t].join(\"\"), {id:\"_x0000_t202\", coordsize:csize.join(\",\"), 'o:spt':202, path:bbox}));\n\n\t_comments.forEach(function(x) { ++_shapeid; o.push(write_vml_comment(x, _shapeid)); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\n\nfunction write_vml_comment(x, _shapeid, ws)/*:string*/ {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\n\treturn [\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t].join(\"\");\n}\nfunction sheet_insert_comments(sheet/*:WorkSheet*/, comments/*:Array<RawComment>*/, threaded/*:boolean*/, people/*:?Array<any>*/) {\n\tvar dense = sheet[\"!data\"] != null;\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(r.r < 0 || r.c < 0) return;\n\t\tif(dense) {\n\t\t\tif(!sheet[\"!data\"][r.r]) sheet[\"!data\"][r.r] = [];\n\t\t\tcell = sheet[\"!data\"][r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[\"!data\"][r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tsheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar commentList/*:Array<RawComment>*/ = [];\n\tvar authtag = str_match_xml_ns(data, \"authors\");\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^<>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = str_match_xml_ns(data, \"commentList\");\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^<>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = str_match_xml_ns(x, \"text\");\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array<string>*/ = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"<author>\" + a + \"</author>\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"<author>\" + \"tc=\" + w.ID + \"</author>\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"<author>SheetJ5</author>\"); }\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [], tcnt = 0;\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\td[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tif(c.T) ++tcnt;\n\t\t\tts.push(c.t == null ? \"\" : escapexml(c.t));\n\t\t});\n\t\tif(tcnt === 0) {\n\t\t\td[1].forEach(function(c) {\n\t\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\t\to.push('</text></comment>');\n\t\t\t});\n\t\t} else {\n\t\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + lastauthor + '\"><text>');\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t\to.push('</text></comment>');\n\t\t}\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.6.207 ThreadedComments CT_ThreadedComments */\n\t\t\tcase '<ThreadedComments': break;\n\t\t\tcase '</ThreadedComments>': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '<threadedComment': comment = {author: y.personId, guid: y.id, ref: y.ref, T: 1}; break;\n\t\t\tcase '</threadedComment>': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '<text>': case '<text': tidx = idx + x.length; break;\n\t\t\tcase '</text>': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '<mentions': case '<mentions>': pass = true; break;\n\t\t\tcase '</mentions>': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('</ThreadedComments>');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.4.85 personList CT_PersonList */\n\t\t\tcase '<personList': break;\n\t\t\tcase '</personList>': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '<person': out.push({name: y.displayname, id: y.id }); break;\n\t\t\tcase '</person>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"</personList>\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array<RawComment>*/ {\n\tvar out/*:Array<RawComment>*/ = [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t\tif(c.T && c.ID && iauthor.indexOf(\"tc=\" + c.ID) == -1) {\n\t\t\t\tiauthor.push(\"tc=\" + c.ID);\n\t\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(\"tc=\" + c.ID));\n\t\t\t}\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tvar _ia = -1;\n\t\t\tif(c.ID) _ia = iauthor.indexOf(\"tc=\" + c.ID);\n\t\t\tif(_ia == -1 && comment[1][0].T && comment[1][0].ID) _ia = iauthor.indexOf(\"tc=\" + comment[1][0].ID);\n\t\t\tif(_ia == -1) _ia = iauthor.indexOf(c.a);\n\t\t\tc.iauthor = _ia;\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/^[\\/]*[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])(\\$?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])(\\$?)(\\d{1,7})(?![_.\\(A-Za-z0-9])/g;\ntry {\n\tcrefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\n}catch(e){}\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = $4 == \"$\" ? (r+1) : (r == 0 ? \"\" : \"[\" + r + \"]\");\n\t\t\tvar C = $2 == \"$\" ? (c+1) : (c == 0 ? \"\" : \"[\" + c + \"]\");\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array<number>*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array<number>*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array<Range>*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array<Array<any>>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t0x01: { n:'PtgExp', f:parse_PtgExp },\n\t0x02: { n:'PtgTbl', f:parse_PtgTbl },\n\t0x03: { n:'PtgAdd', f:parseread1 },\n\t0x04: { n:'PtgSub', f:parseread1 },\n\t0x05: { n:'PtgMul', f:parseread1 },\n\t0x06: { n:'PtgDiv', f:parseread1 },\n\t0x07: { n:'PtgPower', f:parseread1 },\n\t0x08: { n:'PtgConcat', f:parseread1 },\n\t0x09: { n:'PtgLt', f:parseread1 },\n\t0x0A: { n:'PtgLe', f:parseread1 },\n\t0x0B: { n:'PtgEq', f:parseread1 },\n\t0x0C: { n:'PtgGe', f:parseread1 },\n\t0x0D: { n:'PtgGt', f:parseread1 },\n\t0x0E: { n:'PtgNe', f:parseread1 },\n\t0x0F: { n:'PtgIsect', f:parseread1 },\n\t0x10: { n:'PtgUnion', f:parseread1 },\n\t0x11: { n:'PtgRange', f:parseread1 },\n\t0x12: { n:'PtgUplus', f:parseread1 },\n\t0x13: { n:'PtgUminus', f:parseread1 },\n\t0x14: { n:'PtgPercent', f:parseread1 },\n\t0x15: { n:'PtgParen', f:parseread1 },\n\t0x16: { n:'PtgMissArg', f:parseread1 },\n\t0x17: { n:'PtgStr', f:parse_PtgStr },\n\t0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n\t0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t0x1C: { n:'PtgErr', f:parse_PtgErr },\n\t0x1D: { n:'PtgBool', f:parse_PtgBool },\n\t0x1E: { n:'PtgInt', f:parse_PtgInt },\n\t0x1F: { n:'PtgNum', f:parse_PtgNum },\n\t0x20: { n:'PtgArray', f:parse_PtgArray },\n\t0x21: { n:'PtgFunc', f:parse_PtgFunc },\n\t0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t0x23: { n:'PtgName', f:parse_PtgName },\n\t0x24: { n:'PtgRef', f:parse_PtgRef },\n\t0x25: { n:'PtgArea', f:parse_PtgArea },\n\t0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n\t0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t0x39: { n:'PtgNameX', f:parse_PtgNameX },\n\t0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t0x40: 0x20, 0x60: 0x20,\n\t0x41: 0x21, 0x61: 0x21,\n\t0x42: 0x22, 0x62: 0x22,\n\t0x43: 0x23, 0x63: 0x23,\n\t0x44: 0x24, 0x64: 0x24,\n\t0x45: 0x25, 0x65: 0x25,\n\t0x46: 0x26, 0x66: 0x26,\n\t0x47: 0x27, 0x67: 0x27,\n\t0x48: 0x28, 0x68: 0x28,\n\t0x49: 0x29, 0x69: 0x29,\n\t0x4A: 0x2A, 0x6A: 0x2A,\n\t0x4B: 0x2B, 0x6B: 0x2B,\n\t0x4C: 0x2C, 0x6C: 0x2C,\n\t0x4D: 0x2D, 0x6D: 0x2D,\n\t0x4E: 0x2E, 0x6E: 0x2E,\n\t0x4F: 0x2F, 0x6F: 0x2F,\n\t0x58: 0x22, 0x78: 0x22,\n\t0x59: 0x39, 0x79: 0x39,\n\t0x5A: 0x3A, 0x7A: 0x3A,\n\t0x5B: 0x3B, 0x7B: 0x3B,\n\t0x5C: 0x3C, 0x7C: 0x3C,\n\t0x5D: 0x3D, 0x7D: 0x3D\n};\n\nvar Ptg18 = {\n\t0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t0x19: { n:'PtgList', f:parse_PtgList },\n\t0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n\t0xFF: {}\n};\nvar Ptg19 = {\n\t0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x21: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t0xFF: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array<Array<string>>*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array<string>*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// TODO: explore space\nfunction make_3d_range(start, end) {\n\tvar s = start.lastIndexOf(\"!\"), e = end.lastIndexOf(\"!\");\n\tif(s == -1 && e == -1) return start + \":\" + end;\n\tif(s > 0 && e > 0 && start.slice(0, s).toLowerCase() == end.slice(0, e).toLowerCase()) return start + \":\" + end.slice(e+1);\n\tconsole.error(\"Cannot hydrate range\", start, end);\n\treturn start + \":\" + end;\n}\n\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array<string>*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(make_3d_range(e2,e1));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\tif(stack[0] == \"TRUE\") return true; if(stack[0] == \"FALSE\") return false;\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6, opts);\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n\n/* Writes a PtgNum or PtgInt */\nfunction write_XLSBFormulaNum(val/*:number*/) {\n\tif((val | 0) == val && val < Math.pow(2,16) && val >= 0) {\n\t\tvar oint = new_buf(11);\n\t\toint.write_shift(4, 3);\n\t\toint.write_shift(1, 0x1e);\n\t\toint.write_shift(2, val);\n\t\toint.write_shift(4, 0);\n\t\treturn oint;\n\t}\n\n\tvar num = new_buf(17);\n\tnum.write_shift(4, 11);\n\tnum.write_shift(1, 0x1f);\n\tnum.write_shift(8, val);\n\tnum.write_shift(4, 0);\n\treturn num;\n}\n/* Writes a PtgErr */\nfunction write_XLSBFormulaErr(val/*:number*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1C);\n\toint.write_shift(1, val);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n/* Writes a PtgBool */\nfunction write_XLSBFormulaBool(val/*:boolean*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1D);\n\toint.write_shift(1, val?1:0);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n\n/* Writes a PtgStr */\nfunction write_XLSBFormulaStr(val/*:string*/) {\n\tvar preamble = new_buf(7);\n\tpreamble.write_shift(4, 3 + 2 * val.length);\n\tpreamble.write_shift(1, 0x17);\n\tpreamble.write_shift(2, val.length);\n\n\tvar body = new_buf(2 * val.length);\n\tbody.write_shift(2 * val.length, val, \"utf16le\");\n\n\tvar postamble = new_buf(4);\n\tpostamble.write_shift(4, 0);\n\n\treturn bconcat([preamble, body, postamble]);\n}\n\n/* Writes a PtgRef */\nfunction write_XLSBFormulaRef(str) {\n\tvar cell = decode_cell(str);\n\tvar out = new_buf(15);\n\tout.write_shift(4, 7);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRef3d */\nfunction write_XLSBFormulaRef3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tvar cell = decode_cell(str);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRefErr3d */\nfunction write_XLSBFormulaRefErr3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1C | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, 0);\n\tout.write_shift(2, 0); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a single sheet range [PtgRef PtgRef PtgRange] */\nfunction write_XLSBFormulaRange(_str) {\n\tvar parts = _str.split(\":\"), str = parts[0];\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\t/* start cell */\n\tstr = parts[0]; var cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgRef3D PtgRef3D PtgRange] */\nfunction write_XLSBFormulaRangeWS(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar parts = _str.split(\":\");\n\n\tvar out = new_buf(27);\n\tout.write_shift(4, 19);\n\n\t/* start cell */\n\tvar str = parts[0], cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgArea3d] */\nfunction write_XLSBFormulaArea3D(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar range = decode_range(_str);\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\tout.write_shift(1, 0x1B | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, range.s.r);\n\tout.write_shift(4, range.e.r);\n\tout.write_shift(2, range.s.c);\n\tout.write_shift(2, range.e.c);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n\n/* General Formula */\nfunction write_XLSBFormula(val/*:string|number*/, wb) {\n\tif(typeof val == \"number\") return write_XLSBFormulaNum(val);\n\tif(typeof val == \"boolean\") return write_XLSBFormulaBool(val);\n\tif(/^#(DIV\\/0!|GETTING_DATA|N\\/A|NAME\\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val]);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef(val);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRange(val);\n\tif(val.match(/^#REF!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaArea3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRangeWS(val, wb);\n\tif(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val, wb);\n\tif(/^\".*\"$/.test(val)) return write_XLSBFormulaStr(val);\n\tif(/^[+-]\\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));\n\tthrow \"Formula |\" + val + \"| not supported for XLSB\";\n}\nvar write_XLSBNameParsedFormula = write_XLSBFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\tf = f.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tf = f.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tr = r.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tr = r.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/!/,\".\").replace(/:/, \":.\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array<any>*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF__load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles, date1904) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v, !!date1904);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v, !!date1904),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w+:)?mergeCell ref=[\"'][A-Z0-9:]+['\"]\\s*[\\/]?>/g;\nvar hlinkregex = /<(?:\\w+:)?hyperlink [^<>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w+:)?col\\b[^<>]*[\\/]?>/g;\nvar afregex = /<(?:\\w+:)?autoFilter[^>]*/g;\nvar marginregex= /<(?:\\w+:)?pageMargins[^<>]*\\/>/g;\nvar sheetprregex = /<(?:\\w+:)?sheetPr\\b[^<>]*?\\/>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = ({}/*:any*/); if(opts.dense) s[\"!data\"] = [];\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = str_match_xml_ns(data, \"sheetData\");\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = str_match_xml_ns(data1, \"sheetPr\"))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = str_match_xml_ns(data1, \"sheetViews\");\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array<ColInfo>*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles, wb);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array<Range>*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\t/* legacyDrawing */\n\tvar m;\n\tif((m = data2.match(/legacyDrawing r:id=\"(.*?)\"/))) s['!legrel'] = m[1];\n\n\tif(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array<Range>*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array<string>*/, rels) {\n\tvar dense = s[\"!data\"] != null;\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_col(C) + encode_row(R);\n\t\t\tif(dense) {\n\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^<>a-z][^<>]*)?\\/?>/g;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts, idx, wb, date1904)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif((cell.v === undefined || cell.t === \"z\" && !(opts||{}).sheetStubs) && typeof cell.f !== \"string\" && typeof cell.z == \"undefined\") return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n':\n\t\t\tif(isNaN(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x24]; } // #NUM!\n\t\t\telse if(!isFinite(cell.v)) { cell.t = \"e\"; vv = BErr[cell.v = 0x07]; } // #DIV/0!\n\t\t\telse vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) {\n\t\t\t\tvar _vv = parseDate(cell.v, date1904);\n\t\t\t\tvv = _vv.toISOString();\n\t\t\t\tif(_vv.getUTCFullYear() < 1900) vv = vv.slice(vv.indexOf(\"T\") + 1).replace(\"Z\",\"\");\n\t\t\t} else {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v, date1904), date1904));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = (cell.t == \"z\" || cell.v == null)? \"\" : writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\telse o.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) {\n\t\tcell.l.display = escapexml(vv);\n\t\tws['!links'].push([ref, cell.l]);\n\t}\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles, wb) {\n\tvar ri = 0, x = \"\", cells/*:Array<string>*/ = [], cref/*:?Array<string>*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = s[\"!data\"] != null;\n\tvar rows/*:Array<RowInfo>*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tvar date1904 = !!((wb||{}).WBProps||{}).date1904;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(!opts.nodim) {\n\t\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\t\t}\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=str_match_xml_ns(d, \"v\"))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=str_match_xml_ns(d, \"f\"))!= null /*:: && cref != null*/) {\n\t\t\t\t\tif(cref[1] == \"\") {\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\t\tp.f=unescapexml(utf8read(cref[1]), true);\n\t\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^<>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? unescapexml(utf8read(p.v), true) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = str_match_xml_ns(d, \"is\");\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, date1904);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, date1904), date1904); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles, date1904);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.v = numdate(p.v + (date1904 ? 1462 : 0)); p.t = typeof p.v == \"number\" ? 'n' : 'd'; }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tvar _r;\n\t\t\tif(opts.nodim) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(guess.s.r > _r.r) guess.s.r = _r.r;\n\t\t\t\tif(guess.e.r < _r.r) guess.e.r = _r.r;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(!s[\"!data\"][_r.r]) s[\"!data\"][_r.r] = [];\n\t\t\t\ts[\"!data\"][_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], r/*:Array<string>*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array<string>*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = ws[\"!data\"] != null;\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb, date1904)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#[\\s\\S]*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\trel.display = l[1].display;\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = dense ? (ws[\"!data\"][caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(8 + 4 * data.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = ({}); if(opts.dense) s[\"!data\"] = [];\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array<Range>*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\tvar date1904 = 1462 * +!!((wb||{}).WBProps||{}).date1904;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles, date1904>0);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v + date1904); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_col(C) + encode_row(R);\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\t\tif(val) s[\"!legrel\"] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\tif(rels['!id'][s['!legrel']]) s['!legdrawel'] = rels['!id'][s['!legrel']];\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/, date1904/*:boolean*/)/*:boolean*/ {\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v, date1904), date1904); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v == null ? \"\" : String(cell.v)/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else if(isNaN(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x24}, o)); // #NUM!\n\t\t\t} else if(!isFinite(cell.v)) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError({t:\"e\", v: 0x07}, o)); // #DIV/0!\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = ws[\"!data\"] != null;\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen, date1904);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#[\\s\\S]*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref) });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array<number|string>, string, ?string]*/ {\n\tvar col/*:Array<number|string>*/ = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\"[^<>\\/]*><c:v>([^<])<\\/c:v><\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*)\"[^<>\\/]*><c:v>([^<]*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((str_match_xml(data, \"c:formatCode\") || [\"\",\"General\"])[1]);\n\n\t(str_match_ng(data, \"<c:f>\", \"</c:f>\")||[]).forEach(function(F) { f = F.replace(/<[^<>]*>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(str_match_ng(data, \"<c:numCache>\", \"</c:numCache>\")||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tif(cs[\"!data\"]) {\n\t\t\t\tif(!cs[\"!data\"][i]) cs[\"!data\"][i] = [];\n\t\t\t\tcs[\"!data\"][i][C] = {t:'n', v:n, z:cache[1] };\n\t\t\t} else cs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n//\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n//\t\t'xmlns': XMLNS_main[0],\n//\t\t'xmlns:r': XMLNS.r\n//\t})];\n//\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n//\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n//\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n//\treturn o.join(\"\");\n//}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n//\tvar ba = buf_array();\n//\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n//\t/* [BrtCsProp] */\n//\t/* CSVIEWS */\n//\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n//\t/* [USERCSVIEWS] */\n//\t/* [BrtMargins] */\n//\t/* [BrtCsPageSetup] */\n//\t/* [HEADERFOOTER] */\n//\t/* BrtDrawing */\n//\t/* [BrtLegacyDrawing] */\n//\t/* [BrtLegacyDrawingHF] */\n//\t/* [BrtBkHim] */\n//\t/* [WEBPUBITEMS] */\n//\t/* FRTCHARTSHEET */\n//\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n//\treturn ba.end();\n//}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\":][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\ttry {\n\t\tif(n == \"\") throw new Error(\"Sheet name cannot be blank\");\n\t\tif(n.length > 31) throw new Error(\"Sheet name cannot exceed 31 chars\");\n\t\tif(n.charCodeAt(0) == 0x27 || n.charCodeAt(n.length - 1) == 0x27) throw new Error(\"Sheet name cannot start or end with apostrophe (')\");\n\t\tif(n.toLowerCase() == \"history\") throw new Error(\"Sheet name cannot be 'History'\");\n\t\tbadchars.forEach(function(c) {\n\t\t\tif(n.indexOf(c) == -1) return;\n\t\t\tthrow new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t});\n\t} catch(e) { if(safe) return false; throw e; }\n\treturn true;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\twb.SheetNames.forEach(function(n, i) {\n\t\tvar ws = wb.Sheets[n];\n\t\tif(!ws || !ws[\"!autofilter\"]) return;\n\t\tvar DN;\n\t\tif(!wb.Workbook) wb.Workbook = {};\n\t\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\t\twb.Workbook.Names.forEach(function(dn) { if(dn.Name == \"_xlnm._FilterDatabase\" && dn.Sheet == i) DN = dn; });\n\t\tvar nn = formula_quote_sheet_name(n) + \"!\" + fix_range(ws[\"!autofilter\"].ref);\n\t\tif(DN) DN.Ref = nn;\n\t\telse wb.Workbook.Names.push({Name: \"_xlnm._FilterDatabase\", Sheet: i, Ref: nn});\n\t});\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nfunction write_wb_xml(wb/*:Workbook*//*::, opts:?WriteOpts*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to[o.length] = writextag('workbook', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t//'xmlns:mx': XMLNS.mx,\n\t\t//'xmlns:s': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t});\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.date1904) flags |= 0x01;\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tvar flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula;\n\tvar comment = \"\";\n\ttry {\n\t\tformula = parse_XLSBNameParsedFormula(data, 0, opts);\n\t\ttry {\n\t\t\tcomment = parse_XLNullableWideString(data);\n\t\t} catch(e){}\n\t} catch(e) { console.error(\"Could not parse defined name \" + name); }\n\tif(flags & 0x20) name = \"_xlnm.\" + name;\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula, Flags: flags}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\nfunction write_BrtName(name, wb) {\n\tvar o = new_buf(9);\n\tvar flags = 0;\n\tvar dname = name.Name;\n\tif(XLSLblBuiltIn.indexOf(dname) > -1) { flags |= 0x20; dname = dname.slice(6); }\n\to.write_shift(4, flags); // flags\n\to.write_shift(1, 0); // chKey\n\to.write_shift(4, name.Sheet == null ? 0xFFFFFFFF : name.Sheet);\n\n\tvar arr = [\n\t\to,\n\t\twrite_XLWideString(dname),\n\t\twrite_XLSBNameParsedFormula(name.Ref, wb)\n\t];\n\tif(name.Comment) arr.push(write_XLNullableWideString(name.Comment));\n\telse {\n\t\tvar x = new_buf(4);\n\t\tx.write_shift(4, 0xFFFFFFFF);\n\t\tarr.push(x);\n\t}\n\n\t// if macro (flags & 0x0F):\n\t// write_shift(4, 0xFFFFFFFF);\n\t// write_XLNullableWideString(description)\n\t// write_XLNullableWideString(helpTopic)\n\t// write_shift(4, 0xFFFFFFFF);\n\n\treturn bconcat(arr);\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = val.Ptg ? stringify_formula(val.Ptg, null, null, supbooks, opts) : \"#REF!\";\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\nfunction write_BRTNAMES(ba, wb) {\n\tif(!wb.Workbook || !wb.Workbook.Names) return;\n\twb.Workbook.Names.forEach(function(name) { try {\n\t\tif(name.Flags & 0x0e) return; // TODO: macro name write\n\t\twrite_record(ba, 0x0027 /* BrtName */, write_BrtName(name, wb));\n\t} catch(e) {\n\t\tconsole.error(\"Could not serialize defined name \" + JSON.stringify(name));\n\t} });\n}\n\nfunction write_SELF_EXTERNS_xlsb(wb) {\n\tvar L = wb.SheetNames.length;\n\tvar o = new_buf(12 * L + 28);\n\to.write_shift(4, L + 2);\n\to.write_shift(4, 0); o.write_shift(4, -2); o.write_shift(4, -2); // workbook-level reference\n\to.write_shift(4, 0); o.write_shift(4, -1); o.write_shift(4, -1); // #REF!...\n\tfor(var i = 0; i < L; ++i) {\n\t\to.write_shift(4, 0); o.write_shift(4, i); o.write_shift(4, i);\n\t}\n\treturn o;\n}\nfunction write_EXTERNALS_xlsb(ba, wb) {\n\twrite_record(ba, 0x0161 /* BrtBeginExternals */);\n\twrite_record(ba, 0x0165 /* BrtSupSelf */);\n\twrite_record(ba, 0x016A /* BrtExternSheet */, write_SELF_EXTERNS_xlsb(wb, 0));\n\twrite_record(ba, 0x0162 /* BrtEndExternals */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\twrite_EXTERNALS_xlsb(ba, wb);\n\tif((wb.Workbook||{}).Names) write_BRTNAMES(ba, wb);\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array<RawComment>*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\nvar attregexg2=/\\b((?:\\w+:)?[\\w]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/\\b((?:\\w+:)?[\\w]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value, date1904)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value, {date1904: !!date1904});\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o, date1904) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v, date1904);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v + (date1904 ? 1462 : 0)); if(_d) { cell.t = 'd'; cell.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o, date1904) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tvar ssid = styles[sid];\n\t\tif(ssid.nf) nf = ssid.nf;\n\t\tif(ssid.Interior) interiors.push(ssid.Interior);\n\t\tif(!ssid.Parent) break;\n\t\tsid = ssid.Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<[^<>]*>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = datenum(parseDate(xml, date1904), date1904);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o, date1904);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_prefix_dname(dname) {\n\treturn XLSLblBuiltIn.indexOf(\"_xlnm.\" + dname) > -1 ? \"_xlnm.\" + dname : dname;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array<string>*/ = [], cursheet/*:Worksheet*/ = ({}), sheetname = \"\"; if(opts.dense) cursheet[\"!data\"] = [];\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array<RowInfo>*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str_remove_ng(str, \"<!--\", \"-->\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts, Workbook.WBProps.date1904);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== void 0) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[\"!data\"][r]) cursheet[\"!data\"][r] = [];\n\t\t\t\t\t\tcursheet[\"!data\"][r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tif(cc > c || rr > r) merges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[\"!data\"][cmd]) cursheet[\"!data\"][cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[\"!data\"][cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = ({}); if(opts.dense) cursheet[\"!data\"] = [];\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF__load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: xlml_prefix_dname(_NamedRange.Name),\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(!parsexmlbool(tmp[\"ShowAlways\"]||\"0\")) comments.hidden = true;\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'hidehorizontalscrollbar' /*case 'HideHorizontalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideverticalscrollbar' /*case 'HideVerticalScrollBar'*/: break;\n\t\t\t\t\tcase 'hideworkbooktabs' /*case 'HideWorkbookTabs'*/: break;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\tout.bookType = \"xlml\";\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(wb/*::, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\tif((((wb||{}).Workbook||{}).WBProps||{}).date1904) return '<ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"><Date1904/></ExcelWorkbook>';\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array<string>*/ = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array<string>*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name.slice(0,6) == \"_xlnm.\" ? n.Name.slice(6) : n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array<string>*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array<any>*/)/*:string*/ {\n\t/* TODO: test multiple comments */\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\tvar p = {};\n\t\tif(c.a) p[\"ss:Author\"] = c.a;\n\t\tif(!comments.hidden) p[\"ss:ShowAlways\"] = \"1\";\n\t\treturn writextag(\"Comment\", d, p);\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array<string>*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_col(C) + encode_row(R), cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\tif(ws[\"!autofilter\"]) o.push('<AutoFilter x:Range=\"' + a1_to_rc(fix_range(ws[\"!autofilter\"].ref), {r:0,c:0}) + '\" xmlns=\"urn:schemas-microsoft-com:office:excel\"></AutoFilter>');\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array<string>*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002F /* FilePass */: case 0x0195 /* FileLock */: case 0x00E1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF && p.z == null) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v + (date1904 ? 1462 : 0)); if(_d) { p.t = 'd'; p.v = new Date(Date.UTC(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u)); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar biff4w = false;\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(!biff4w && file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[\"!data\"][cell.r]) out[\"!data\"][cell.r] = [];\n\t\t\t\tout[\"!data\"][cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array<string>*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(RecordType) == -1 /* BOF */) break;\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* BOF */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x0043: /* BIFF2XF */ case 0x0243: /* BIFF3XF */ case 0x0443: /* BIFF4XF */\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[opts.biff == 4 ? opts.snames.length : val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth ? !biff4w : biff4w) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t0x0009: 2,\n\t\t\t\t\t\t0x0209: 3,\n\t\t\t\t\t\t0x0409: 4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t0x0200: 2,\n\t\t\t\t\t\t0x0300: 3,\n\t\t\t\t\t\t0x0400: 4,\n\t\t\t\t\t\t0x0500: 5,\n\t\t\t\t\t\t0x0600: 8,\n\t\t\t\t\t\t0x0002: 2,\n\t\t\t\t\t\t0x0007: 2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 4 && val.dt & 0x100) biff4w = true;\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++ && !biff4w) break;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\t\t\t\t\tif(opts.biff == 4 && biff4w) {\n\t\t\t\t\t\tcur_sheet = (Directory[opts.snames.indexOf(cur_sheet)+1] || {name:\"\"}).name;\n\t\t\t\t\t} else if(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[\"!data\"][val.r]||[])[val.c]: out[encode_col(val.c) + encode_row(val.r)]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[\"!data\"][_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = (temp_val.XF && temp_val.XF.numFmtId) && BIFF2FmtTable[temp_val.XF.numFmtId] || BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff >= 3 && opts.biff <= 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF__load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\t/* TODO: comment continuation (row == -1 / 0xFFFF) */\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[\"!data\"][val[0].r]) out[\"!data\"][val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[\"!data\"][val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) cmnt = {a:\"SheetJ5\", t:val[1]};\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\t\tif(val[3] != null && !(val[3] & 0x02)) cc.c.hidden = true;\n\t\t\t\t\t}\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t0x0000: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t0x0001: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t0x0002: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t0x0003: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t0x0004: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t0x0005: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t0x0006: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t0x0007: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t0x0008: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t0x0009: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t0x000A: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t0x000B: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t0x000C: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t0x000D: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t0x000E: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t0x000F: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t0x0010: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t0x0011: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t0x0012: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t0x0013: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t0x0014: { /* n:\"BrtPCDIMissing\" */ },\n\t0x0015: { /* n:\"BrtPCDINumber\" */ },\n\t0x0016: { /* n:\"BrtPCDIBoolean\" */ },\n\t0x0017: { /* n:\"BrtPCDIError\" */ },\n\t0x0018: { /* n:\"BrtPCDIString\" */ },\n\t0x0019: { /* n:\"BrtPCDIDatetime\" */ },\n\t0x001A: { /* n:\"BrtPCDIIndex\" */ },\n\t0x001B: { /* n:\"BrtPCDIAMissing\" */ },\n\t0x001C: { /* n:\"BrtPCDIANumber\" */ },\n\t0x001D: { /* n:\"BrtPCDIABoolean\" */ },\n\t0x001E: { /* n:\"BrtPCDIAError\" */ },\n\t0x001F: { /* n:\"BrtPCDIAString\" */ },\n\t0x0020: { /* n:\"BrtPCDIADatetime\" */ },\n\t0x0021: { /* n:\"BrtPCRRecord\" */ },\n\t0x0022: { /* n:\"BrtPCRRecordDt\" */ },\n\t0x0023: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t0x0024: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t0x0025: { /* n:\"BrtACBegin\", */ T:1 },\n\t0x0026: { /* n:\"BrtACEnd\", */ T:-1 },\n\t0x0027: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t0x0028: { /* n:\"BrtIndexRowBlock\" */ },\n\t0x002A: { /* n:\"BrtIndexBlock\" */ },\n\t0x002B: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t0x002C: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t0x002D: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t0x002E: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t0x002F: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t0x0030: { /* n:\"BrtStyle\" */ },\n\t0x0031: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t0x0032: { /* n:\"BrtValueMeta\" */ },\n\t0x0033: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t0x0034: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t0x0035: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t0x0036: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t0x0037: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t0x0038: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t0x0039: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t0x003A: { /* n:\"BrtMdxMbrIstr\" */ },\n\t0x003B: { /* n:\"BrtStr\" */ },\n\t0x003C: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t0x003E: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t0x003F: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t0x0040: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t0x0041: { /* n:\"BrtSxvcellNum\" */ },\n\t0x0042: { /* n:\"BrtSxvcellStr\" */ },\n\t0x0043: { /* n:\"BrtSxvcellBool\" */ },\n\t0x0044: { /* n:\"BrtSxvcellErr\" */ },\n\t0x0045: { /* n:\"BrtSxvcellDate\" */ },\n\t0x0046: { /* n:\"BrtSxvcellNil\" */ },\n\t0x0080: { /* n:\"BrtFileVersion\" */ },\n\t0x0081: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t0x0082: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t0x0083: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t0x0084: { /* n:\"BrtEndBook\", */ T:-1 },\n\t0x0085: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t0x0086: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t0x0087: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t0x0088: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t0x0089: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t0x008A: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t0x008B: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t0x008C: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t0x008D: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t0x008E: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t0x008F: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t0x0090: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t0x0091: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t0x0092: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t0x0093: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t0x0094: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t0x0097: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t0x0098: { /* n:\"BrtSel\" */ },\n\t0x0099: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t0x009A: { /* n:\"BrtWbFactoid\" */ },\n\t0x009B: { /* n:\"BrtFileRecover\" */ },\n\t0x009C: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t0x009D: { /* n:\"BrtCalcProp\" */ },\n\t0x009E: { /* n:\"BrtBookView\" */ },\n\t0x009F: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t0x00A0: { /* n:\"BrtEndSst\", */ T:-1 },\n\t0x00A1: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t0x00A2: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t0x00A3: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t0x00A4: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t0x00A5: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t0x00A6: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t0x00A7: { /* n:\"BrtFilter\" */ },\n\t0x00A8: { /* n:\"BrtColorFilter\" */ },\n\t0x00A9: { /* n:\"BrtIconFilter\" */ },\n\t0x00AA: { /* n:\"BrtTop10Filter\" */ },\n\t0x00AB: { /* n:\"BrtDynamicFilter\" */ },\n\t0x00AC: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t0x00AD: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t0x00AE: { /* n:\"BrtCustomFilter\" */ },\n\t0x00AF: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t0x00B0: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t0x00B1: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t0x00B2: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t0x00B3: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t0x00B4: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t0x00B5: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t0x00B6: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t0x00B7: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t0x00B8: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t0x00B9: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t0x00BA: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t0x00BB: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t0x00BC: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t0x00BD: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t0x00BE: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t0x00BF: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t0x00C0: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t0x00C1: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t0x00C2: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t0x00C3: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t0x00C4: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t0x00C5: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t0x00C6: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t0x00C7: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t0x00C8: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t0x00C9: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t0x00CA: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t0x00CB: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t0x00CC: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t0x00CD: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t0x00CE: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t0x00CF: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t0x00D0: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t0x00D1: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t0x00D2: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t0x00D3: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t0x00D4: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t0x00D5: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t0x00D6: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t0x00D7: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t0x00D8: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t0x00D9: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t0x00DA: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t0x00DB: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t0x00DC: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t0x00DD: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t0x00DE: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t0x00DF: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t0x00E0: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t0x00E1: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t0x00E2: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t0x00E3: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t0x00E4: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t0x00E5: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t0x00E6: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t0x00E7: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t0x00E8: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t0x00E9: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t0x00EA: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t0x00EB: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t0x00EC: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t0x00ED: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t0x00EE: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t0x00EF: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t0x00F0: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t0x00F1: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t0x00F2: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t0x00F3: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t0x00F4: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t0x00F5: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t0x00F6: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t0x00F7: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t0x00F8: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t0x00F9: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t0x00FA: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t0x00FB: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t0x00FC: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t0x00FD: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t0x00FE: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t0x00FF: { /* n:\"BrtBeginPName\", */ T:1 },\n\t0x0100: { /* n:\"BrtEndPName\", */ T:-1 },\n\t0x0101: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t0x0102: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t0x0103: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t0x0104: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t0x0105: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t0x0106: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t0x0107: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t0x0108: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t0x0109: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t0x010A: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t0x010B: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t0x010C: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t0x010D: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t0x010E: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t0x010F: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t0x0110: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t0x0111: { /* n:\"BrtBeginDims\", */ T:1 },\n\t0x0112: { /* n:\"BrtEndDims\", */ T:-1 },\n\t0x0113: { /* n:\"BrtBeginDim\", */ T:1 },\n\t0x0114: { /* n:\"BrtEndDim\", */ T:-1 },\n\t0x0115: { /* n:\"BrtIndexPartEnd\" */ },\n\t0x0116: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t0x0117: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t0x0118: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t0x0119: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t0x011A: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t0x011B: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t0x011C: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t0x011D: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t0x011E: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t0x011F: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t0x0120: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t0x0121: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t0x0122: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t0x0123: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t0x0124: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t0x0125: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t0x0126: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t0x0127: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t0x0128: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t0x0129: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t0x012A: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t0x012B: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t0x012C: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t0x012D: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t0x012E: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t0x012F: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t0x0130: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t0x0131: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t0x0132: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t0x0133: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t0x0134: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t0x0135: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t0x0136: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t0x0137: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t0x0138: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t0x0139: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t0x013A: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t0x013B: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t0x013C: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t0x013D: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t0x013E: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t0x013F: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t0x0140: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t0x0141: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t0x0142: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t0x0143: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t0x0144: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t0x0145: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t0x0146: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t0x0147: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t0x0148: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t0x0149: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t0x014A: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t0x014B: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t0x014C: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t0x014D: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t0x014E: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t0x014F: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t0x0150: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t0x0151: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t0x0152: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t0x0153: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t0x0154: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t0x0155: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t0x0156: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t0x0157: { /* n:\"BrtBeginList\", */ T:1 },\n\t0x0158: { /* n:\"BrtEndList\", */ T:-1 },\n\t0x0159: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t0x015A: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t0x015B: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t0x015C: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t0x015D: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t0x015E: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t0x015F: { /* n:\"BrtListCCFmla\" */ },\n\t0x0160: { /* n:\"BrtListTrFmla\" */ },\n\t0x0161: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t0x0162: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t0x0163: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t0x0165: { /* n:\"BrtSupSelf\" */ },\n\t0x0166: { /* n:\"BrtSupSame\" */ },\n\t0x0167: { /* n:\"BrtSupTabs\" */ },\n\t0x0168: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t0x0169: { /* n:\"BrtPlaceholderName\" */ },\n\t0x016A: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t0x016B: { /* n:\"BrtExternTableStart\" */ },\n\t0x016C: { /* n:\"BrtExternTableEnd\" */ },\n\t0x016E: { /* n:\"BrtExternRowHdr\" */ },\n\t0x016F: { /* n:\"BrtExternCellBlank\" */ },\n\t0x0170: { /* n:\"BrtExternCellReal\" */ },\n\t0x0171: { /* n:\"BrtExternCellBool\" */ },\n\t0x0172: { /* n:\"BrtExternCellError\" */ },\n\t0x0173: { /* n:\"BrtExternCellString\" */ },\n\t0x0174: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t0x0175: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t0x0176: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t0x0177: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t0x0178: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t0x0179: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t0x017A: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t0x017B: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t0x017C: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t0x017D: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t0x017E: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t0x017F: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t0x0180: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t0x0181: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t0x0182: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t0x0183: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t0x0184: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t0x0185: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t0x0186: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t0x0187: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t0x0188: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t0x0189: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t0x018A: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t0x018B: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t0x018C: { /* n:\"BrtBrk\" */ },\n\t0x018D: { /* n:\"BrtUserBookView\" */ },\n\t0x018E: { /* n:\"BrtInfo\" */ },\n\t0x018F: { /* n:\"BrtCUsr\" */ },\n\t0x0190: { /* n:\"BrtUsr\" */ },\n\t0x0191: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t0x0193: { /* n:\"BrtEOF\" */ },\n\t0x0194: { /* n:\"BrtUCR\" */ },\n\t0x0195: { /* n:\"BrtRRInsDel\" */ },\n\t0x0196: { /* n:\"BrtRREndInsDel\" */ },\n\t0x0197: { /* n:\"BrtRRMove\" */ },\n\t0x0198: { /* n:\"BrtRREndMove\" */ },\n\t0x0199: { /* n:\"BrtRRChgCell\" */ },\n\t0x019A: { /* n:\"BrtRREndChgCell\" */ },\n\t0x019B: { /* n:\"BrtRRHeader\" */ },\n\t0x019C: { /* n:\"BrtRRUserView\" */ },\n\t0x019D: { /* n:\"BrtRRRenSheet\" */ },\n\t0x019E: { /* n:\"BrtRRInsertSh\" */ },\n\t0x019F: { /* n:\"BrtRRDefName\" */ },\n\t0x01A0: { /* n:\"BrtRRNote\" */ },\n\t0x01A1: { /* n:\"BrtRRConflict\" */ },\n\t0x01A2: { /* n:\"BrtRRTQSIF\" */ },\n\t0x01A3: { /* n:\"BrtRRFormat\" */ },\n\t0x01A4: { /* n:\"BrtRREndFormat\" */ },\n\t0x01A5: { /* n:\"BrtRRAutoFmt\" */ },\n\t0x01A6: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t0x01A7: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t0x01A8: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t0x01A9: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t0x01AA: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t0x01AB: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t0x01AC: { /* n:\"BrtTable\" */ },\n\t0x01AD: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t0x01AE: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t0x01AF: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t0x01B0: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t0x01B1: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t0x01B2: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t0x01B3: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t0x01B4: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t0x01B5: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t0x01B6: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t0x01B7: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t0x01B8: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t0x01B9: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t0x01BA: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t0x01BB: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t0x01BC: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t0x01BD: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t0x01BE: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t0x01BF: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t0x01C0: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t0x01C1: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t0x01C2: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t0x01C3: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t0x01C4: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t0x01C5: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t0x01C6: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t0x01C7: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t0x01C8: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t0x01C9: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t0x01CA: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t0x01CB: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t0x01CC: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t0x01CD: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t0x01CE: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t0x01CF: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t0x01D0: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t0x01D1: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t0x01D2: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t0x01D3: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t0x01D4: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t0x01D5: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t0x01D6: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t0x01D7: { /* n:\"BrtCFVO\" */ },\n\t0x01D8: { /* n:\"BrtExternValueMeta\" */ },\n\t0x01D9: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t0x01DA: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t0x01DB: { /* n:\"BrtIndexedColor\" */ },\n\t0x01DC: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t0x01DD: { /* n:\"BrtPrintOptions\" */ },\n\t0x01DE: { /* n:\"BrtPageSetup\" */ },\n\t0x01DF: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t0x01E0: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t0x01E1: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t0x01E2: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t0x01E3: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t0x01E4: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t0x01E5: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t0x01E6: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t0x01E7: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t0x01E8: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t0x01E9: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t0x01EA: { /* n:\"BrtBeginMG\", */ T:1 },\n\t0x01EB: { /* n:\"BrtEndMG\", */ T:-1 },\n\t0x01EC: { /* n:\"BrtBeginMap\", */ T:1 },\n\t0x01ED: { /* n:\"BrtEndMap\", */ T:-1 },\n\t0x01EE: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t0x01EF: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t0x01F0: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t0x01F1: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t0x01F2: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t0x01F3: { /* n:\"BrtDRef\" */ },\n\t0x01F4: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t0x01F5: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t0x01F6: { /* n:\"BrtBeginSct\", */ T:1 },\n\t0x01F7: { /* n:\"BrtEndSct\", */ T:-1 },\n\t0x01F8: { /* n:\"BrtSlc\" */ },\n\t0x01F9: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t0x01FA: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t0x01FB: { /* n:\"BrtDXF\" */ },\n\t0x01FC: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t0x01FD: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t0x01FE: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t0x01FF: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t0x0200: { /* n:\"BrtTableStyleElement\" */ },\n\t0x0201: { /* n:\"BrtTableStyleClient\" */ },\n\t0x0202: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t0x0203: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t0x0204: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t0x0205: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t0x0206: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t0x0207: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t0x0208: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t0x0209: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t0x020A: { /* n:\"BrtVolSubtopic\" */ },\n\t0x020B: { /* n:\"BrtVolRef\" */ },\n\t0x020C: { /* n:\"BrtVolNum\" */ },\n\t0x020D: { /* n:\"BrtVolErr\" */ },\n\t0x020E: { /* n:\"BrtVolStr\" */ },\n\t0x020F: { /* n:\"BrtVolBool\" */ },\n\t0x0210: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t0x0211: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t0x0212: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t0x0213: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t0x0214: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t0x0215: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t0x0216: { /* n:\"BrtBookProtection\" */ },\n\t0x0217: { /* n:\"BrtSheetProtection\" */ },\n\t0x0218: { /* n:\"BrtRangeProtection\" */ },\n\t0x0219: { /* n:\"BrtPhoneticInfo\" */ },\n\t0x021A: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t0x021B: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t0x021C: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t0x021D: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t0x021E: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t0x0224: { /* n:\"BrtFileSharing\" */ },\n\t0x0225: { /* n:\"BrtOleSize\" */ },\n\t0x0226: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t0x0227: { /* n:\"BrtLegacyDrawing\", */ f:parse_XLNullableWideString },\n\t0x0228: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t0x0229: { /* n:\"BrtWebOpt\" */ },\n\t0x022A: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t0x022B: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t0x022C: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t0x022D: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t0x022E: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t0x022F: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t0x0230: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t0x0231: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t0x0232: { /* n:\"BrtBkHim\" */ },\n\t0x0234: { /* n:\"BrtColor\" */ },\n\t0x0235: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t0x0236: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t0x0239: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t0x023A: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t0x023C: { /* n:\"BrtMRUColor\" */ },\n\t0x023D: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t0x023E: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t0x0241: { /* n:\"BrtSupNameStart\" */ },\n\t0x0242: { /* n:\"BrtSupNameValueStart\" */ },\n\t0x0243: { /* n:\"BrtSupNameValueEnd\" */ },\n\t0x0244: { /* n:\"BrtSupNameNum\" */ },\n\t0x0245: { /* n:\"BrtSupNameErr\" */ },\n\t0x0246: { /* n:\"BrtSupNameSt\" */ },\n\t0x0247: { /* n:\"BrtSupNameNil\" */ },\n\t0x0248: { /* n:\"BrtSupNameBool\" */ },\n\t0x0249: { /* n:\"BrtSupNameFmla\" */ },\n\t0x024A: { /* n:\"BrtSupNameBits\" */ },\n\t0x024B: { /* n:\"BrtSupNameEnd\" */ },\n\t0x024C: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t0x024D: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t0x024E: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t0x024F: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t0x0250: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t0x0251: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t0x0252: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t0x0253: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t0x0254: { /* n:\"BrtSmartTagType\" */ },\n\t0x0255: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t0x0256: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t0x0257: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t0x0258: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t0x0259: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t0x025A: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t0x025B: { /* n:\"BrtBeginFills\", */ T:1 },\n\t0x025C: { /* n:\"BrtEndFills\", */ T:-1 },\n\t0x025D: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t0x025E: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t0x025F: { /* n:\"BrtCellWatch\" */ },\n\t0x0260: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t0x0261: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t0x0262: { /* n:\"BrtCrashRecErr\" */ },\n\t0x0263: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t0x0264: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t0x0265: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t0x0266: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t0x0267: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t0x0268: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t0x0269: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t0x026A: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t0x026B: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t0x026C: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t0x0271: { /* n:\"BrtBigName\" */ },\n\t0x0272: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t0x0273: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t0x0274: { /* n:\"BrtBeginComments\", */ T:1 },\n\t0x0275: { /* n:\"BrtEndComments\", */ T:-1 },\n\t0x0276: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t0x0277: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t0x0278: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t0x0279: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t0x027A: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t0x027B: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t0x027C: { /* n:\"BrtEndComment\", */ T:-1 },\n\t0x027D: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t0x027E: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t0x027F: { /* n:\"BrtOleObject\" */ },\n\t0x0280: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t0x0281: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t0x0282: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t0x0283: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t0x0284: { /* n:\"BrtActiveX\" */ },\n\t0x0285: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t0x0286: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t0x0288: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t0x0289: { /* n:\"BrtCellIgnoreEC\" */ },\n\t0x028A: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t0x028B: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t0x028C: { /* n:\"BrtCsPageSetup\" */ },\n\t0x028D: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t0x028E: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t0x028F: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t0x0290: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t0x0291: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t0x0292: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t0x0293: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t0x0294: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t0x0295: { /* n:\"BrtListPart\" */ },\n\t0x0296: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t0x0297: { /* n:\"BrtSheetCalcProp\" */ },\n\t0x0298: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t0x0299: { /* n:\"BrtFnGroup\" */ },\n\t0x029A: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t0x029B: { /* n:\"BrtSupAddin\" */ },\n\t0x029C: { /* n:\"BrtSXTDMPOrder\" */ },\n\t0x029D: { /* n:\"BrtCsProtection\" */ },\n\t0x029F: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t0x02A0: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t0x02A1: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t0x02A2: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t0x02A3: { /* n:\"BrtRRSortItem\" */ },\n\t0x02A4: { /* n:\"BrtFileSharingIso\" */ },\n\t0x02A5: { /* n:\"BrtBookProtectionIso\" */ },\n\t0x02A6: { /* n:\"BrtSheetProtectionIso\" */ },\n\t0x02A7: { /* n:\"BrtCsProtectionIso\" */ },\n\t0x02A8: { /* n:\"BrtRangeProtectionIso\" */ },\n\t0x02A9: { /* n:\"BrtDValList\" */ },\n\t0x0400: { /* n:\"BrtRwDescent\" */ },\n\t0x0401: { /* n:\"BrtKnownFonts\" */ },\n\t0x0402: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t0x0403: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t0x0404: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t0x0405: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t0x0406: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t0x0407: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t0x0408: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t0x0409: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t0x040A: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t0x040B: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t0x040C: { /* n:\"BrtNameExt\" */ },\n\t0x040D: { /* n:\"BrtPCDH14\" */ },\n\t0x040E: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t0x040F: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t0x0410: { /* n:\"BrtSXTH14\" */ },\n\t0x0411: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t0x0412: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t0x0413: { /* n:\"BrtSparkline\" */ },\n\t0x0414: { /* n:\"BrtSXDI14\" */ },\n\t0x0415: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t0x0416: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t0x0417: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t0x0418: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t0x0419: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t0x041A: { /* n:\"BrtCFVO14\" */ },\n\t0x041B: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t0x041C: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t0x041D: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t0x041E: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t0x041F: { /* n:\"BrtColor14\" */ },\n\t0x0420: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t0x0421: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t0x0422: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t0x0423: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t0x0425: { /* n:\"BrtSXVD14\" */ },\n\t0x0426: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t0x0427: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t0x0428: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t0x0429: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t0x042A: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t0x042B: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t0x042C: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t0x042D: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t0x042E: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t0x042F: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t0x0430: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t0x0431: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t0x0433: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t0x0434: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t0x0435: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t0x0436: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t0x0437: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t0x0438: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t0x0439: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t0x043A: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t0x043B: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t0x043C: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t0x043D: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t0x043E: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t0x043F: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t0x0440: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t0x0441: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t0x0442: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t0x0443: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t0x0444: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t0x0445: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t0x0446: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t0x0447: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t0x0448: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t0x0449: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t0x044A: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t0x044B: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t0x044C: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t0x044D: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t0x044E: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t0x044F: { /* n:\"BrtRangeProtection14\" */ },\n\t0x0450: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t0x0451: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t0x0457: { /* n:\"BrtList14\" */ },\n\t0x0458: { /* n:\"BrtCFIcon\" */ },\n\t0x0459: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t0x045A: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t0x045B: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t0x045C: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t0x045D: { /* n:\"BrtWbProp14\" */ },\n\t0x045E: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t0x045F: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t0x0460: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t0x0461: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t0x0462: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t0x0463: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t0x0464: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t0x0465: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t0x0466: { /* n:\"BrtSXTupleItems\" */ },\n\t0x0468: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t0x0469: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t0x046A: { /* n:\"BrtSlicerStyleElement\" */ },\n\t0x046B: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t0x046C: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t0x046D: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t0x046E: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t0x046F: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t0x0470: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t0x0471: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t0x0472: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t0x0473: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t0x0474: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t0x0475: { /* n:\"BrtPCDField14\" */ },\n\t0x0476: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t0x0477: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t0x0478: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t0x0479: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t0x047A: { /* n:\"BrtCFRuleExt\" */ },\n\t0x047B: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t0x047C: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t0x047D: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t0x047E: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t0x0480: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t0x0481: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t0x0482: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t0x0483: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t0x0484: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t0x0485: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t0x0486: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t0x0487: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t0x0488: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t0x0489: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t0x048A: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t0x048B: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t0x048C: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t0x048D: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t0x048E: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t0x048F: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t0x0490: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t0x0491: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t0x0492: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t0x0493: { /* n:\"BrtDxf14\" */ },\n\t0x0494: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t0x0495: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t0x0499: { /* n:\"BrtFilter14\" */ },\n\t0x049A: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t0x049C: { /* n:\"BrtCustomFilter14\" */ },\n\t0x049D: { /* n:\"BrtIconFilter14\" */ },\n\t0x049E: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t0x0800: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t0x0801: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t0x0802: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t0x0803: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t0x0804: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t0x0805: { /* n:\"BrtPivotTableRef\" */ },\n\t0x0806: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t0x0807: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t0x0808: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t0x0809: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t0x080A: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t0x080C: { /* n:\"BrtPcdCalcMem15\" */ },\n\t0x0813: { /* n:\"BrtQsi15\" */ },\n\t0x0814: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t0x0815: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t0x0816: { /* n:\"BrtWebExtension\" */ },\n\t0x0817: { /* n:\"BrtAbsPath15\" */ },\n\t0x0818: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t0x0819: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t0x081B: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t0x081C: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t0x081D: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t0x081E: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t0x081F: { /* n:\"BrtSxFilter15\" */ },\n\t0x0820: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t0x0821: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t0x0822: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t0x0823: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t0x0824: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t0x0825: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t0x0826: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t0x0827: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t0x0828: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t0x0829: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t0x082A: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t0x082B: { /* n:\"BrtWorkBookPr15\" */ },\n\t0x082C: { /* n:\"BrtPCDH15\" */ },\n\t0x082D: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t0x082E: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t0x082F: { /* n:\"BrtTimelineStyleElement\" */ },\n\t0x0830: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t0x0831: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t0x0832: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t0x0833: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t0x0834: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t0x0835: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t0x0836: { /* n:\"BrtDxf15\" */ },\n\t0x0837: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t0x0838: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t0x0839: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t0x083A: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t0x083B: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t0x083C: { /* n:\"BrtItemUniqueName\" */ },\n\t0x083D: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t0x083E: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t0x083F: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t0x0840: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t0x0841: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t0x0842: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t0x0843: { /* n:\"BrtTextPr15\" */ },\n\t0x0844: { /* n:\"BrtRangePr15\" */ },\n\t0x0845: { /* n:\"BrtDbCommand15\" */ },\n\t0x0846: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t0x0847: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t0x0848: { /* n:\"BrtDbTable15\" */ },\n\t0x0849: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t0x084A: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t0x084B: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t0x084C: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t0x084D: { /* n:\"BrtModelTable\" */ },\n\t0x084E: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t0x084F: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t0x0850: { /* n:\"BrtModelRelationship\" */ },\n\t0x0851: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t0x0852: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t0x0853: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t0x0854: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t0x0855: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t0x0856: { /* n:\"BrtFieldListActiveItem\" */ },\n\t0x0857: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t0x0858: { /* n:\"BrtSXDI15\" */ },\n\t0x0859: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t0x085A: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t0x085B: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t0x085C: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t0x085D: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t0x0C00: { /* n:\"BrtUid\" */ },\n\t0x0C01: { /* n:\"BrtRevisionPtr\" */ },\n\t0x1000: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t0x1001: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t0x138A: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t0x138B: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t0x13D9: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t0x13DA: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t0x13DB: { /* n:\"BrtRichFilter\" */ },\n\t0x13DC: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t0x13DD: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t0x13DE: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t0x13DF: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t0x13E0: { /* n:\"BrtCustomRichFilter\" */ },\n\t0x13E1: { /* n:\"BrtTop10RichFilter\" */ },\n\t0x13E2: { /* n:\"BrtDynamicRichFilter\" */ },\n\t0x13E4: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t0x13E5: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t0x13E6: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t0x13E7: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t0x13E8: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t0x13E9: { /* n:\"BrtCalcFeature\" */ },\n\t0x13EB: { /* n:\"BrtExternalLinksPr\" */ },\n\t0xFFFF: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t0x0006: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x000a: { /* n:\"EOF\", */ f:parsenoop2 },\n\t0x000c: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t0x000d: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t0x000e: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t0x000f: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t0x0010: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t0x0011: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t0x0012: { /* n:\"Protect\", */ f:parsebool },\n\t0x0013: { /* n:\"Password\", */ f:parseuint16 },\n\t0x0014: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t0x0015: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t0x0017: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t0x0018: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t0x0019: { /* n:\"WinProtect\", */ f:parsebool },\n\t0x001a: { /* n:\"VerticalPageBreaks\", */ },\n\t0x001b: { /* n:\"HorizontalPageBreaks\", */ },\n\t0x001c: { /* n:\"Note\", */ f:parse_Note },\n\t0x001d: { /* n:\"Selection\", */ },\n\t0x0022: { /* n:\"Date1904\", */ f:parsebool },\n\t0x0023: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t0x0026: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t0x0027: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t0x0028: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t0x0029: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t0x002a: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t0x002b: { /* n:\"PrintGrid\", */ f:parsebool },\n\t0x002f: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t0x0031: { /* n:\"Font\", */ f:parse_Font },\n\t0x0033: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t0x003c: { /* n:\"Continue\", */ },\n\t0x003d: { /* n:\"Window1\", */ f:parse_Window1 },\n\t0x0040: { /* n:\"Backup\", */ f:parsebool },\n\t0x0041: { /* n:\"Pane\", */ f:parse_Pane },\n\t0x0042: { /* n:\"CodePage\", */ f:parseuint16 },\n\t0x004d: { /* n:\"Pls\", */ },\n\t0x0050: { /* n:\"DCon\", */ },\n\t0x0051: { /* n:\"DConRef\", */ },\n\t0x0052: { /* n:\"DConName\", */ },\n\t0x0055: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t0x0059: { /* n:\"XCT\", */ },\n\t0x005a: { /* n:\"CRN\", */ },\n\t0x005b: { /* n:\"FileSharing\", */ },\n\t0x005c: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t0x005d: { /* n:\"Obj\", */ f:parse_Obj },\n\t0x005e: { /* n:\"Uncalced\", */ },\n\t0x005f: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t0x0060: { /* n:\"Template\", */ },\n\t0x0061: { /* n:\"Intl\", */ },\n\t0x0063: { /* n:\"ObjProtect\", */ f:parsebool },\n\t0x007d: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t0x0080: { /* n:\"Guts\", */ f:parse_Guts },\n\t0x0081: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t0x0082: { /* n:\"GridSet\", */ f:parseuint16 },\n\t0x0083: { /* n:\"HCenter\", */ f:parsebool },\n\t0x0084: { /* n:\"VCenter\", */ f:parsebool },\n\t0x0085: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t0x0086: { /* n:\"WriteProtect\", */ },\n\t0x008c: { /* n:\"Country\", */ f:parse_Country },\n\t0x008d: { /* n:\"HideObj\", */ f:parseuint16 },\n\t0x0090: { /* n:\"Sort\", */ },\n\t0x0092: { /* n:\"Palette\", */ f:parse_Palette },\n\t0x0097: { /* n:\"Sync\", */ },\n\t0x0098: { /* n:\"LPr\", */ },\n\t0x0099: { /* n:\"DxGCol\", */ },\n\t0x009a: { /* n:\"FnGroupName\", */ },\n\t0x009b: { /* n:\"FilterMode\", */ },\n\t0x009c: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t0x009d: { /* n:\"AutoFilterInfo\", */ },\n\t0x009e: { /* n:\"AutoFilter\", */ },\n\t0x00a0: { /* n:\"Scl\", */ f:parse_Scl },\n\t0x00a1: { /* n:\"Setup\", */ f:parse_Setup },\n\t0x00ae: { /* n:\"ScenMan\", */ },\n\t0x00af: { /* n:\"SCENARIO\", */ },\n\t0x00b0: { /* n:\"SxView\", */ },\n\t0x00b1: { /* n:\"Sxvd\", */ },\n\t0x00b2: { /* n:\"SXVI\", */ },\n\t0x00b4: { /* n:\"SxIvd\", */ },\n\t0x00b5: { /* n:\"SXLI\", */ },\n\t0x00b6: { /* n:\"SXPI\", */ },\n\t0x00b8: { /* n:\"DocRoute\", */ },\n\t0x00b9: { /* n:\"RecipName\", */ },\n\t0x00bd: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t0x00be: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t0x00c1: { /* n:\"Mms\", */ f:parsenoop2 },\n\t0x00c5: { /* n:\"SXDI\", */ },\n\t0x00c6: { /* n:\"SXDB\", */ },\n\t0x00c7: { /* n:\"SXFDB\", */ },\n\t0x00c8: { /* n:\"SXDBB\", */ },\n\t0x00c9: { /* n:\"SXNum\", */ },\n\t0x00ca: { /* n:\"SxBool\", */ f:parsebool },\n\t0x00cb: { /* n:\"SxErr\", */ },\n\t0x00cc: { /* n:\"SXInt\", */ },\n\t0x00cd: { /* n:\"SXString\", */ },\n\t0x00ce: { /* n:\"SXDtr\", */ },\n\t0x00cf: { /* n:\"SxNil\", */ },\n\t0x00d0: { /* n:\"SXTbl\", */ },\n\t0x00d1: { /* n:\"SXTBRGIITM\", */ },\n\t0x00d2: { /* n:\"SxTbpg\", */ },\n\t0x00d3: { /* n:\"ObProj\", */ },\n\t0x00d5: { /* n:\"SXStreamID\", */ },\n\t0x00d7: { /* n:\"DBCell\", */ },\n\t0x00d8: { /* n:\"SXRng\", */ },\n\t0x00d9: { /* n:\"SxIsxoper\", */ },\n\t0x00da: { /* n:\"BookBool\", */ f:parseuint16 },\n\t0x00dc: { /* n:\"DbOrParamQry\", */ },\n\t0x00dd: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t0x00de: { /* n:\"OleObjectSize\", */ },\n\t0x00e0: { /* n:\"XF\", */ f:parse_XF },\n\t0x00e1: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t0x00e2: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t0x00e3: { /* n:\"SXVS\", */ },\n\t0x00e5: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t0x00e9: { /* n:\"BkHim\", */ },\n\t0x00eb: { /* n:\"MsoDrawingGroup\", */ },\n\t0x00ec: { /* n:\"MsoDrawing\", */ },\n\t0x00ed: { /* n:\"MsoDrawingSelection\", */ },\n\t0x00ef: { /* n:\"PhoneticInfo\", */ },\n\t0x00f0: { /* n:\"SxRule\", */ },\n\t0x00f1: { /* n:\"SXEx\", */ },\n\t0x00f2: { /* n:\"SxFilt\", */ },\n\t0x00f4: { /* n:\"SxDXF\", */ },\n\t0x00f5: { /* n:\"SxItm\", */ },\n\t0x00f6: { /* n:\"SxName\", */ },\n\t0x00f7: { /* n:\"SxSelect\", */ },\n\t0x00f8: { /* n:\"SXPair\", */ },\n\t0x00f9: { /* n:\"SxFmla\", */ },\n\t0x00fb: { /* n:\"SxFormat\", */ },\n\t0x00fc: { /* n:\"SST\", */ f:parse_SST },\n\t0x00fd: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t0x00ff: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t0x0100: { /* n:\"SXVDEx\", */ },\n\t0x0103: { /* n:\"SXFormula\", */ },\n\t0x0122: { /* n:\"SXDBEx\", */ },\n\t0x0137: { /* n:\"RRDInsDel\", */ },\n\t0x0138: { /* n:\"RRDHead\", */ },\n\t0x013b: { /* n:\"RRDChgCell\", */ },\n\t0x013d: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t0x013e: { /* n:\"RRDRenSheet\", */ },\n\t0x013f: { /* n:\"RRSort\", */ },\n\t0x0140: { /* n:\"RRDMove\", */ },\n\t0x014a: { /* n:\"RRFormat\", */ },\n\t0x014b: { /* n:\"RRAutoFmt\", */ },\n\t0x014d: { /* n:\"RRInsertSh\", */ },\n\t0x014e: { /* n:\"RRDMoveBegin\", */ },\n\t0x014f: { /* n:\"RRDMoveEnd\", */ },\n\t0x0150: { /* n:\"RRDInsDelBegin\", */ },\n\t0x0151: { /* n:\"RRDInsDelEnd\", */ },\n\t0x0152: { /* n:\"RRDConflict\", */ },\n\t0x0153: { /* n:\"RRDDefName\", */ },\n\t0x0154: { /* n:\"RRDRstEtxp\", */ },\n\t0x015f: { /* n:\"LRng\", */ },\n\t0x0160: { /* n:\"UsesELFs\", */ f:parsebool },\n\t0x0161: { /* n:\"DSF\", */ f:parsenoop2 },\n\t0x0191: { /* n:\"CUsr\", */ },\n\t0x0192: { /* n:\"CbUsr\", */ },\n\t0x0193: { /* n:\"UsrInfo\", */ },\n\t0x0194: { /* n:\"UsrExcl\", */ },\n\t0x0195: { /* n:\"FileLock\", */ },\n\t0x0196: { /* n:\"RRDInfo\", */ },\n\t0x0197: { /* n:\"BCUsrs\", */ },\n\t0x0198: { /* n:\"UsrChk\", */ },\n\t0x01a9: { /* n:\"UserBView\", */ },\n\t0x01aa: { /* n:\"UserSViewBegin\", */ },\n\t0x01ab: { /* n:\"UserSViewEnd\", */ },\n\t0x01ac: { /* n:\"RRDUserView\", */ },\n\t0x01ad: { /* n:\"Qsi\", */ },\n\t0x01ae: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t0x01af: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t0x01b0: { /* n:\"CondFmt\", */ },\n\t0x01b1: { /* n:\"CF\", */ },\n\t0x01b2: { /* n:\"DVal\", */ },\n\t0x01b5: { /* n:\"DConBin\", */ },\n\t0x01b6: { /* n:\"TxO\", */ f:parse_TxO },\n\t0x01b7: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t0x01b8: { /* n:\"HLink\", */ f:parse_HLink },\n\t0x01b9: { /* n:\"Lel\", */ },\n\t0x01ba: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t0x01bb: { /* n:\"SXFDBType\", */ },\n\t0x01bc: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t0x01bd: { /* n:\"ObNoMacros\", */ },\n\t0x01be: { /* n:\"Dv\", */ },\n\t0x01c0: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t0x01c1: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t0x01c2: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t0x0200: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t0x0201: { /* n:\"Blank\", */ f:parse_Blank },\n\t0x0203: { /* n:\"Number\", */ f:parse_Number },\n\t0x0204: { /* n:\"Label\", */ f:parse_Label },\n\t0x0205: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t0x0207: { /* n:\"String\", */ f:parse_String },\n\t0x0208: { /* n:\"Row\", */ f:parse_Row },\n\t0x020b: { /* n:\"Index\", */ },\n\t0x0221: { /* n:\"Array\", */ f:parse_Array },\n\t0x0225: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t0x0236: { /* n:\"Table\", */ },\n\t0x023e: { /* n:\"Window2\", */ f:parse_Window2 },\n\t0x027e: { /* n:\"RK\", */ f:parse_RK },\n\t0x0293: { /* n:\"Style\", */ },\n\t0x0418: { /* n:\"BigName\", */ },\n\t0x041e: { /* n:\"Format\", */ f:parse_Format },\n\t0x043c: { /* n:\"ContinueBigName\", */ },\n\t0x04bc: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t0x0800: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t0x0801: { /* n:\"WebPub\", */ },\n\t0x0802: { /* n:\"QsiSXTag\", */ },\n\t0x0803: { /* n:\"DBQueryExt\", */ },\n\t0x0804: { /* n:\"ExtString\", */ },\n\t0x0805: { /* n:\"TxtQry\", */ },\n\t0x0806: { /* n:\"Qsir\", */ },\n\t0x0807: { /* n:\"Qsif\", */ },\n\t0x0808: { /* n:\"RRDTQSIF\", */ },\n\t0x0809: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x080a: { /* n:\"OleDbConn\", */ },\n\t0x080b: { /* n:\"WOpt\", */ },\n\t0x080c: { /* n:\"SXViewEx\", */ },\n\t0x080d: { /* n:\"SXTH\", */ },\n\t0x080e: { /* n:\"SXPIEx\", */ },\n\t0x080f: { /* n:\"SXVDTEx\", */ },\n\t0x0810: { /* n:\"SXViewEx9\", */ },\n\t0x0812: { /* n:\"ContinueFrt\", */ },\n\t0x0813: { /* n:\"RealTimeData\", */ },\n\t0x0850: { /* n:\"ChartFrtInfo\", */ },\n\t0x0851: { /* n:\"FrtWrapper\", */ },\n\t0x0852: { /* n:\"StartBlock\", */ },\n\t0x0853: { /* n:\"EndBlock\", */ },\n\t0x0854: { /* n:\"StartObject\", */ },\n\t0x0855: { /* n:\"EndObject\", */ },\n\t0x0856: { /* n:\"CatLab\", */ },\n\t0x0857: { /* n:\"YMult\", */ },\n\t0x0858: { /* n:\"SXViewLink\", */ },\n\t0x0859: { /* n:\"PivotChartBits\", */ },\n\t0x085a: { /* n:\"FrtFontList\", */ },\n\t0x0862: { /* n:\"SheetExt\", */ },\n\t0x0863: { /* n:\"BookExt\", */ r:12},\n\t0x0864: { /* n:\"SXAddl\", */ },\n\t0x0865: { /* n:\"CrErr\", */ },\n\t0x0866: { /* n:\"HFPicture\", */ },\n\t0x0867: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t0x0868: { /* n:\"Feat\", */ },\n\t0x086a: { /* n:\"DataLabExt\", */ },\n\t0x086b: { /* n:\"DataLabExtContents\", */ },\n\t0x086c: { /* n:\"CellWatch\", */ },\n\t0x0871: { /* n:\"FeatHdr11\", */ },\n\t0x0872: { /* n:\"Feature11\", */ },\n\t0x0874: { /* n:\"DropDownObjIds\", */ },\n\t0x0875: { /* n:\"ContinueFrt11\", */ },\n\t0x0876: { /* n:\"DConn\", */ },\n\t0x0877: { /* n:\"List12\", */ },\n\t0x0878: { /* n:\"Feature12\", */ },\n\t0x0879: { /* n:\"CondFmt12\", */ },\n\t0x087a: { /* n:\"CF12\", */ },\n\t0x087b: { /* n:\"CFEx\", */ },\n\t0x087c: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t0x087d: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t0x087e: { /* n:\"AutoFilter12\", */ },\n\t0x087f: { /* n:\"ContinueFrt12\", */ },\n\t0x0884: { /* n:\"MDTInfo\", */ },\n\t0x0885: { /* n:\"MDXStr\", */ },\n\t0x0886: { /* n:\"MDXTuple\", */ },\n\t0x0887: { /* n:\"MDXSet\", */ },\n\t0x0888: { /* n:\"MDXProp\", */ },\n\t0x0889: { /* n:\"MDXKPI\", */ },\n\t0x088a: { /* n:\"MDB\", */ },\n\t0x088b: { /* n:\"PLV\", */ },\n\t0x088c: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t0x088d: { /* n:\"DXF\", */ },\n\t0x088e: { /* n:\"TableStyles\", */ r:12 },\n\t0x088f: { /* n:\"TableStyle\", */ },\n\t0x0890: { /* n:\"TableStyleElement\", */ },\n\t0x0892: { /* n:\"StyleExt\", */ },\n\t0x0893: { /* n:\"NamePublish\", */ },\n\t0x0894: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t0x0895: { /* n:\"SortData\", */ },\n\t0x0896: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t0x0897: { /* n:\"GUIDTypeLib\", */ },\n\t0x0898: { /* n:\"FnGrp12\", */ },\n\t0x0899: { /* n:\"NameFnGrp12\", */ },\n\t0x089a: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t0x089b: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t0x089c: { /* n:\"HeaderFooter\", */ },\n\t0x089d: { /* n:\"CrtLayout12\", */ },\n\t0x089e: { /* n:\"CrtMlFrt\", */ },\n\t0x089f: { /* n:\"CrtMlFrtContinue\", */ },\n\t0x08a3: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t0x08a4: { /* n:\"ShapePropsStream\", */ },\n\t0x08a5: { /* n:\"TextPropsStream\", */ },\n\t0x08a6: { /* n:\"RichTextStream\", */ },\n\t0x08a7: { /* n:\"CrtLayout12A\", */ },\n\t0x1001: { /* n:\"Units\", */ },\n\t0x1002: { /* n:\"Chart\", */ },\n\t0x1003: { /* n:\"Series\", */ },\n\t0x1006: { /* n:\"DataFormat\", */ },\n\t0x1007: { /* n:\"LineFormat\", */ },\n\t0x1009: { /* n:\"MarkerFormat\", */ },\n\t0x100a: { /* n:\"AreaFormat\", */ },\n\t0x100b: { /* n:\"PieFormat\", */ },\n\t0x100c: { /* n:\"AttachedLabel\", */ },\n\t0x100d: { /* n:\"SeriesText\", */ },\n\t0x1014: { /* n:\"ChartFormat\", */ },\n\t0x1015: { /* n:\"Legend\", */ },\n\t0x1016: { /* n:\"SeriesList\", */ },\n\t0x1017: { /* n:\"Bar\", */ },\n\t0x1018: { /* n:\"Line\", */ },\n\t0x1019: { /* n:\"Pie\", */ },\n\t0x101a: { /* n:\"Area\", */ },\n\t0x101b: { /* n:\"Scatter\", */ },\n\t0x101c: { /* n:\"CrtLine\", */ },\n\t0x101d: { /* n:\"Axis\", */ },\n\t0x101e: { /* n:\"Tick\", */ },\n\t0x101f: { /* n:\"ValueRange\", */ },\n\t0x1020: { /* n:\"CatSerRange\", */ },\n\t0x1021: { /* n:\"AxisLine\", */ },\n\t0x1022: { /* n:\"CrtLink\", */ },\n\t0x1024: { /* n:\"DefaultText\", */ },\n\t0x1025: { /* n:\"Text\", */ },\n\t0x1026: { /* n:\"FontX\", */ f:parseuint16 },\n\t0x1027: { /* n:\"ObjectLink\", */ },\n\t0x1032: { /* n:\"Frame\", */ },\n\t0x1033: { /* n:\"Begin\", */ },\n\t0x1034: { /* n:\"End\", */ },\n\t0x1035: { /* n:\"PlotArea\", */ },\n\t0x103a: { /* n:\"Chart3d\", */ },\n\t0x103c: { /* n:\"PicF\", */ },\n\t0x103d: { /* n:\"DropBar\", */ },\n\t0x103e: { /* n:\"Radar\", */ },\n\t0x103f: { /* n:\"Surf\", */ },\n\t0x1040: { /* n:\"RadarArea\", */ },\n\t0x1041: { /* n:\"AxisParent\", */ },\n\t0x1043: { /* n:\"LegendException\", */ },\n\t0x1044: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t0x1045: { /* n:\"SerToCrt\", */ },\n\t0x1046: { /* n:\"AxesUsed\", */ },\n\t0x1048: { /* n:\"SBaseRef\", */ },\n\t0x104a: { /* n:\"SerParent\", */ },\n\t0x104b: { /* n:\"SerAuxTrend\", */ },\n\t0x104e: { /* n:\"IFmtRecord\", */ },\n\t0x104f: { /* n:\"Pos\", */ },\n\t0x1050: { /* n:\"AlRuns\", */ },\n\t0x1051: { /* n:\"BRAI\", */ },\n\t0x105b: { /* n:\"SerAuxErrBar\", */ },\n\t0x105c: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t0x105d: { /* n:\"SerFmt\", */ },\n\t0x105f: { /* n:\"Chart3DBarShape\", */ },\n\t0x1060: { /* n:\"Fbi\", */ },\n\t0x1061: { /* n:\"BopPop\", */ },\n\t0x1062: { /* n:\"AxcExt\", */ },\n\t0x1063: { /* n:\"Dat\", */ },\n\t0x1064: { /* n:\"PlotGrowth\", */ },\n\t0x1065: { /* n:\"SIIndex\", */ },\n\t0x1066: { /* n:\"GelFrame\", */ },\n\t0x1067: { /* n:\"BopPopCustom\", */ },\n\t0x1068: { /* n:\"Fbi2\", */ },\n\n\t0x0000: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t0x0001: { /* n:\"BIFF2BLANK\", */ },\n\t0x0002: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t0x0003: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t0x0004: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t0x0005: { /* n:\"BIFF2BOOLERR\", */ f:parse_BIFF2BOOLERR },\n\t0x0007: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t0x0008: { /* n:\"BIFF2ROW\", */ },\n\t0x0009: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x000b: { /* n:\"Index\", */ },\n\t0x0016: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t0x001e: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t0x001f: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t0x0020: { /* n:\"BIFF2COLINFO\", */ },\n\t0x0021: { /* n:\"Array\", */ f:parse_Array },\n\t0x0024: { /* n:\"COLWIDTH\", */ },\n\t0x0025: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x002c ??\n\t// 0x002d ??\n\t// 0x002e ??\n\t// 0x0030 FONTCOUNT: number of fonts\n\t0x0032: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x0035: INFOOPTS\n\t// 0x0036: TABLE (BIFF2 only)\n\t// 0x0037: TABLE2 (BIFF2 only)\n\t// 0x0038: WNDESK\n\t// 0x0039 ??\n\t// 0x003a: BEGINPREF\n\t// 0x003b: ENDPREF\n\t0x003e: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x003f ??\n\t// 0x0046: SHOWSCROLL\n\t// 0x0047: SHOWFORMULA\n\t// 0x0048: STATUSBAR\n\t// 0x0049: SHORTMENUS\n\t// 0x004A:\n\t// 0x004B:\n\t// 0x004C:\n\t// 0x004E:\n\t// 0x004F:\n\t// 0x0058: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t0x0034: { /* n:\"DDEObjName\", */ },\n\t0x0043: { /* n:\"BIFF2XF\", */ f:parse_BIFF2XF },\n\t0x0044: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t0x0045: { /* n:\"BIFF2FONTCLR\", */ },\n\t0x0056: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t0x007e: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t0x007f: { /* n:\"ImData\", */ f:parse_ImData },\n\t0x0087: { /* n:\"Addin\", */ },\n\t0x0088: { /* n:\"Edg\", */ },\n\t0x0089: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t0x008F: { /* n:\"BIFF4SheetInfo\", */ f:parse_BIFF4SheetInfo },\n\t0x0091: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t0x0094: { /* n:\"LHRecord\", */ },\n\t0x0095: { /* n:\"LHNGraph\", */ },\n\t0x0096: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t0x00a9: { /* n:\"CoordList\", */ },\n\t0x00ab: { /* n:\"GCW\", */ },\n\t0x00bc: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t0x00bf: { /* n:\"ToolbarHdr\", */ },\n\t0x00c0: { /* n:\"ToolbarEnd\", */ },\n\t0x00c2: { /* n:\"AddMenu\", */ },\n\t0x00c3: { /* n:\"DelMenu\", */ },\n\t0x00d6: { /* n:\"RString\", */ f:parse_RString },\n\t0x00df: { /* n:\"UDDesc\", */ },\n\t0x00ea: { /* n:\"TabIdConf\", */ },\n\t0x0162: { /* n:\"XL5Modify\", */ },\n\t0x01a5: { /* n:\"FileSharing2\", */ },\n\t0x0206: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x0209: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x0218: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t0x0223: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t0x0231: { /* n:\"Font\", */ },\n\t0x0243: { /* n:\"BIFF3XF\", */ f:parse_BIFF3XF },\n\t0x0406: { /* n:\"Formula\", */ f:parse_Formula },\n\t0x0409: { /* n:\"BOF\", */ f:parse_BOF },\n\t0x0443: { /* n:\"BIFF4XF\", */ f:parse_BIFF4XF },\n\t0x086d: { /* n:\"FeatInfo\", */ },\n\t0x0873: { /* n:\"FeatInfo11\", */ },\n\t0x0881: { /* n:\"SXAddl12\", */ },\n\t0x08c0: { /* n:\"AutoWebPub\", */ },\n\t0x08c1: { /* n:\"ListObj\", */ },\n\t0x08c2: { /* n:\"ListField\", */ },\n\t0x08c3: { /* n:\"ListDV\", */ },\n\t0x08c4: { /* n:\"ListCondFmt\", */ },\n\t0x08c5: { /* n:\"ListCF\", */ },\n\t0x08c6: { /* n:\"FMQry\", */ },\n\t0x08c7: { /* n:\"FMSQry\", */ },\n\t0x08c8: { /* n:\"PLV\", */ },\n\t0x08c9: { /* n:\"LnExt\", */ },\n\t0x08ca: { /* n:\"MkrExt\", */ },\n\t0x08cb: { /* n:\"CrtCoopt\", */ },\n\t0x08d6: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/* --- multiplan 4 records --- */\n\t0x0065: { /* n:\"\", */ }, // one per window\n\t0x0066: { /* n:\"\", */ }, // calc settings\n\t0x0069: { /* n:\"\", */ }, // print header\n\t0x006a: { /* n:\"\", */ }, // print footer\n\t0x006b: { /* n:\"\", */ }, // print settings\n\t0x006d: { /* n:\"\", */ }, // one per window\n\t0x0070: { /* n:\"\", */ }, // includes default col width\n\t0x0072: { /* n:\"\", */ }, // includes selected cell\n\n\t0x7262: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_comments_biff2(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tcomments.forEach(function(data) {\n\t\tvar text = data[0].map(function(cc) { return cc.t; }).join(\"\");\n\t\t// TODO: should '\\n' be translated to '\\r' to correct for Excel 5.0 bug when exporting to BIFF2/3 ?\n\t\tif(text.length <= 2048) return write_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text, data[1], data[2]));\n\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(0, 2048), data[1], data[2], text.length));\n\t\tfor(var i = 2048; i < text.length; i += 2048)\n\t\t\twrite_biff_rec(ba, 0x001C, write_NOTE_BIFF2(text.slice(i, Math.min(i+2048, text.length)), -1, -1, Math.min(2048, text.length - i)));\n\t});\n}\n\n/* TODO: BIFF3/4 use different records -- see comments*/\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/) {\n\tvar ifmt = 0;\n\tif(cell.z != null) {\n\t\tifmt = opts._BIFF2FmtTable.indexOf(cell.z);\n\t\tif(ifmt == -1) { opts._BIFF2FmtTable.push(cell.z); ifmt = opts._BIFF2FmtTable.length - 1; }\n\t}\n\tvar ixfe = 0;\n\tif(cell.z != null) {\n\t\tfor(; ixfe < opts.cellXfs.length; ++ixfe) if(opts.cellXfs[ixfe].numFmtId == ifmt) break;\n\t\tif(ixfe == opts.cellXfs.length) opts.cellXfs.push({numFmtId: ifmt});\n\t}\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;\n\t\t\tif(opts.biff == 2 && (v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\t// 0x027E (RK) in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v, ixfe, ifmt));\n\t\t\telse if(isNaN(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x24, \"e\")); // #NUM!\n\t\t\telse if(!isFinite(v))\n\t\t\t\t// 0x0205 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, 0x07, \"e\")); // #DIV/0!\n\t\t\telse\n\t\t\t\t// 0x0203 in BIFF3/4\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v, ixfe, ifmt));\n\t\t\treturn;\n\t\tcase 'b': case 'e':\n\t\t\t// 0x0205 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\t// 0x0204 in BIFF3/4\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v == null ? \"\" : String(cell.v).slice(0,255)));\n\t\t\treturn;\n\t}\n\t// 0x0201 in BIFF3/4\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar dense = ws[\"!data\"] != null;\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), rr = \"\", cols/*:Array<string>*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t}\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tvar row = [], comments = [];\n\t/* TODO: 0x0000 / 0x0200 dimensions? */\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar cell = dense ? row[C] : ws[cols[C] + rr];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\n\t/* ... 0x12 0x19 0x13 (Password) */\n\twrite_comments_biff2(ba, comments);\n\t/* 0x3d (Window1) ... */\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, (o.biff == 4 ? 0x0409 : (o.biff == 3 ? 0x0209 : 0x0009)), write_BOF(wb, 0x10, o));\n\tif(((wb.Workbook||{}).WBProps||{}).date1904) write_biff_rec(ba, 0x0022, writebool(true));\n\to.cellXfs = [{numFmtId: 0}];\n\to._BIFF2FmtTable/*:Array<string>*/ = [\"General\"]; o._Fonts = [];\n\tvar body = buf_array();\n\twrite_ws_biff2(body, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\n\to._BIFF2FmtTable.forEach(function(f) {\n\t\tif(o.biff <= 3) write_biff_rec(ba, 0x001E, write_BIFF2Format(f));\n\t\telse write_biff_rec(ba, 0x041E, write_BIFF4Format(f));\n\t});\n\to.cellXfs.forEach(function(xf) {\n\t\tswitch(o.biff) {\n\t\t\tcase 2: write_biff_rec(ba, 0x0043, write_BIFF2XF(xf)); break;\n\t\t\tcase 3: write_biff_rec(ba, 0x0243, write_BIFF3XF(xf)); break;\n\t\t\tcase 4: write_biff_rec(ba, 0x0443, write_BIFF4XF(xf)); break;\n\t\t}\n\t});\n\tdelete o._BIFF2FmtTable; delete o.cellXfs; delete o._Fonts;\n\n\tba.push(body.end());\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nvar b8oid = 1, b8ocnts/*:Array<[number, number, number]>*/ = [];\nfunction write_MsoDrawingGroup() {\n\tvar buf = new_buf(82 + 8 * b8ocnts.length);\n\t/* [MS-ODRAW] 2.2.12 OfficeArtDggContainer */\n\tbuf.write_shift(2, 0x0F);\n\tbuf.write_shift(2, 0xF000);\n\tbuf.write_shift(4, 74 + 8 * b8ocnts.length);\n\t/* 2.2.48 OfficeArtFDGGBlock */\n\t{\n\t\tbuf.write_shift(2, 0);\n\t\tbuf.write_shift(2, 0xF006);\n\t\tbuf.write_shift(4, 16 + 8 * b8ocnts.length);\n\t\t/* 2.2.47 OfficeArtFDGG */\n\t\t{\n\t\t\tbuf.write_shift(4, b8oid);\n\t\t\tbuf.write_shift(4, b8ocnts.length+1);\n\t\t\tvar acc = 0; for(var i = 0; i < b8ocnts.length; ++i) acc += (b8ocnts[i] && b8ocnts[i][1] || 0); buf.write_shift(4, acc);\n\t\t\tbuf.write_shift(4, b8ocnts.length);\n\t\t}\n\t\t/* 2.2.46 OfficeArtIDCL + */\n\t\tb8ocnts.forEach(function(b8) {\n\t\t\tbuf.write_shift(4, b8[0]);\n\t\t\tbuf.write_shift(4, b8[2]);\n\t\t});\n\t}\n\t/* 2.2.9 OfficeArtFOPT */\n\t{\n\t\tbuf.write_shift(2, 0x33); // 0x03 | (3 << 4)\n\t\tbuf.write_shift(2, 0xF00B);\n\t\tbuf.write_shift(4, 0x12); // 3 * 6\n\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\tbuf.write_shift(2, 0xBF); buf.write_shift(4, 0x00080008);\n\t\t/* 2.3.7.2 fillColor */\n\t\tbuf.write_shift(2, 0x0181); buf.write_shift(4, 0x08000041);\n\t\t/* 2.3.8.1 lineColor */\n\t\tbuf.write_shift(2, 0x01C0); buf.write_shift(4, 0x08000040);\n\t}\n\t/* 2.2.45 OfficeArtSplitMenuColorContainer */\n\t{\n\t\tbuf.write_shift(2, 0x40);\n\t\tbuf.write_shift(2, 0xF11E);\n\t\tbuf.write_shift(4, 16);\n\t\tbuf.write_shift(4, 0x0800000D);\n\t\tbuf.write_shift(4, 0x0800000C);\n\t\tbuf.write_shift(4, 0x08000017);\n\t\tbuf.write_shift(4, 0x100000F7);\n\t}\n\treturn buf;\n}\nfunction write_comments_biff8(ba/*:BufArray*/, comments/*:Array<[Comment[], number, number]>*/) {\n\tvar notes/*:Array<RawData>*/ = [], sz = 0, pl = buf_array(), baseid = b8oid;\n\tvar _oasc;\n\tcomments.forEach(function(c, ci) {\n\t\tvar author = \"\";\n\t\tvar text = c[0].map(function(t) { if(t.a && !author) author = t.a; return t.t; }).join(\"\");\n\t\t++b8oid;\n\n\t\t/* 2.2.14 OfficeArtSpContainer */\n\t\t{\n\t\t\tvar oasc = new_buf(0x96);\n\t\t\toasc.write_shift(2, 0x0F);\n\t\t\toasc.write_shift(2, 0xF004);\n\t\t\toasc.write_shift(4, 0x96);\n\t\t\t/* 2.2.40 OfficeArtFSP */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xca2); // 0x02 | (0xca << 4)\n\t\t\t\toasc.write_shift(2, 0xF00A);\n\t\t\t\toasc.write_shift(4, 8);\n\t\t\t\toasc.write_shift(4, b8oid);\n\t\t\t\toasc.write_shift(4, 0xA00);\n\t\t\t}\n\t\t\t/* 2.2.9 OfficeArtFOPT */\n\t\t\t{\n\t\t\t\toasc.write_shift(2, 0xE3); // 0x03 | (14 << 4)\n\t\t\t\toasc.write_shift(2, 0xF00B);\n\t\t\t\toasc.write_shift(4, 0x54); // 14 * 6\n\t\t\t\t/* 2.3.21.1 ITxid */\n\t\t\t\toasc.write_shift(2, 0x80); oasc.write_shift(4, 0);\n\t\t\t\t/* 2.3.21.12 txdir */\n\t\t\t\toasc.write_shift(2, 0x8B); oasc.write_shift(4, 0x02);\n\t\t\t\t/* 2.3.21.15 Text Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0xBF); oasc.write_shift(4, 0x00080008);\n\t\t\t\t/* 2.3.6.30 cxk */\n\t\t\t\toasc.write_shift(2, 0x0158); oasc.l += 4;\n\t\t\t\t/* 2.3.7.2 fillColor */\n\t\t\t\toasc.write_shift(2, 0x0181); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.4 fillBackColor */\n\t\t\t\toasc.write_shift(2, 0x0183); oasc.write_shift(4, 0x08000050);\n\t\t\t\t/* 2.3.7.6 fillCrMod */\n\t\t\t\toasc.write_shift(2, 0x0185); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.7.43 Fill Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x01BF); oasc.write_shift(4, 0x00100010);\n\t\t\t\t/* 2.3.8.1 lineColor */\n\t\t\t\toasc.write_shift(2, 0x01C0); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.8.4 lineCrMod */\n\t\t\t\toasc.write_shift(2, 0x01C3); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.2 shadowColor */\n\t\t\t\toasc.write_shift(2, 0x0201); oasc.write_shift(4, 0x08000051);\n\t\t\t\t/* 2.3.13.4 shadowCrMod */\n\t\t\t\toasc.write_shift(2, 0x0203); oasc.write_shift(4, 0x100000F4);\n\t\t\t\t/* 2.3.13.23 Shadow Style Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x023F); oasc.write_shift(4, 0x00030001);\n\t\t\t\t/* 2.3.4.44 Group Shape Boolean Properties */\n\t\t\t\toasc.write_shift(2, 0x03BF); oasc.write_shift(4, 0x00020000 | (c[0].hidden ? 2 : 0));\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.193 OfficeArtClientAnchorSheet */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF010);\n\t\t\t\toasc.write_shift(4, 0x12);\n\t\t\t\toasc.write_shift(2, 0x3); // do not move or size with cells\n\t\t\t\toasc.write_shift(2, c[2] + 2); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 1); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[2] + 4); oasc.l += 2;\n\t\t\t\toasc.write_shift(2, c[1] + 5); oasc.l += 2;\n\t\t\t}\n\t\t\t/* [MS-XLS] 2.5.194 OfficeArtClientData */\n\t\t\t{\n\t\t\t\toasc.l += 2;\n\t\t\t\toasc.write_shift(2, 0xF011);\n\t\t\t\toasc.l += 4;\n\t\t\t}\n\t\t\toasc.l = 0x96;\n\t\t\tif(ci == 0) /* write_biff_rec(pl, 0x003C, oasc); */ _oasc = oasc;\n\t\t\telse write_biff_rec(pl, 0x00EC, oasc);\n\t\t}\n\t\tsz += 0x96;\n\n\t\t/* [MS-XLS] 2.4.181 Obj */\n\t\t{\n\t\t\tvar obj = new_buf(52); // 22 + 26 + 4\n\t\t\t/* [MS-XLS] 2.5.143 FtCmo */\n\t\t\tobj.write_shift(2, 0x15);\n\t\t\tobj.write_shift(2, 0x12);\n\t\t\tobj.write_shift(2, 0x19);\n\t\t\tobj.write_shift(2, b8oid);\n\t\t\tobj.write_shift(2, 0);\n\t\t\tobj.l = 22;\n\t\t\t/* [MS-XLS] 2.5.149 FtNts */\n\t\t\tobj.write_shift(2, 0x0D);\n\t\t\tobj.write_shift(2, 0x16);\n\t\t\tobj.write_shift(4, 0x62726272);\n\t\t\tobj.write_shift(4, 0x95374305);\n\t\t\tobj.write_shift(4, 0x80301328);\n\t\t\tobj.write_shift(4, 0x69696904 + b8oid*256);\n\t\t\tobj.write_shift(2,0);\n\t\t\tobj.write_shift(4,0);\n\t\t\t// reserved\n\t\t\tobj.l += 4;\n\t\t\twrite_biff_rec(pl, 0x005D, obj);\n\t\t}\n\n\t\t/* [MS-XLS] 2.5.195 OfficeArtClientTextbox */\n\t\t{\n\t\t\tvar oact = new_buf(8);\n\t\t\toact.l += 2;\n\t\t\toact.write_shift(2, 0xF00D);\n\t\t\toact.l += 4;\n\t\t\twrite_biff_rec(pl, 0x00EC, oact);\n\t\t}\n\t\tsz += 8;\n\n\t\t/* [MS-XLS] 2.4.329 TxO */\n\t\t{\n\t\t\tvar txo = new_buf(18);\n\t\t\ttxo.write_shift(2, 0x12);\n\t\t\ttxo.l += 8;\n\t\t\ttxo.write_shift(2, text.length);\n\t\t\ttxo.write_shift(2, 0x10);\n\t\t\ttxo.l += 4;\n\t\t\twrite_biff_rec(pl, 0x01b6, txo);\n\t\t\t/* text continue record TODO: switch to wide strings */\n\t\t\t{\n\t\t\t\tvar cont = new_buf(1 + text.length);\n\t\t\t\tcont.write_shift(1, 0);\n\t\t\t\tcont.write_shift(text.length, text, \"sbcs\");\n\t\t\t\twrite_biff_rec(pl, 0x003C, cont);\n\t\t\t}\n\t\t\t/* formatting continue records */\n\t\t\t{\n\t\t\t\tvar conf = new_buf(0x10);\n\t\t\t\tconf.l += 8;\n\t\t\t\tconf.write_shift(2, text.length);\n\t\t\t\tconf.l += 6;\n\t\t\t\twrite_biff_rec(pl, 0x003C, conf);\n\t\t\t}\n\t\t}\n\n\t\t/* 2.4.179 Note */\n\t\t{\n\t\t\tvar notesh = new_buf(12 + author.length);\n\t\t\tnotesh.write_shift(2, c[1]);\n\t\t\tnotesh.write_shift(2, c[2]);\n\t\t\tnotesh.write_shift(2, 0 | (c[0].hidden ? 0 : 2));\n\t\t\tnotesh.write_shift(2, b8oid);\n\t\t\tnotesh.write_shift(2, author.length);\n\t\t\tnotesh.write_shift(1, 0);\n\t\t\tnotesh.write_shift(author.length, author, \"sbcs\");\n\t\t\tnotesh.l ++;\n\t\t\tnotes.push(notesh);\n\t\t}\n\t});\n\t/* [MS-ODRAW] 2.2.13 OfficeArtDgContainer */\n\t{\n\t\tvar hdr = new_buf(80);\n\t\thdr.write_shift(2, 0x0F);\n\t\thdr.write_shift(2, 0xF002);\n\t\thdr.write_shift(4, sz + hdr.length - 8);\n\t\t/* [MS-ODRAW] 2.2.49 OfficeArtFDG */\n\t\t{\n\t\t\thdr.write_shift(2, 0x10);\n\t\t\thdr.write_shift(2, 0xF008);\n\t\t\thdr.write_shift(4, 0x08);\n\t\t\thdr.write_shift(4, comments.length + 1);\n\t\t\thdr.write_shift(4, b8oid);\n\t\t}\n\t\t/* [MS-ODRAW] 2.2.16 OfficeArtSpgrContainer */\n\t\t{\n\t\t\thdr.write_shift(2, 0x0f);\n\t\t\thdr.write_shift(2, 0xF003);\n\t\t\thdr.write_shift(4, sz + 0x30);\n\t\t\t/* [MS-ODRAW] 2.2.14 OfficeArtSpContainer */\n\t\t\t{\n\t\t\t\thdr.write_shift(2, 0x0f);\n\t\t\t\thdr.write_shift(2, 0xF004);\n\t\t\t\thdr.write_shift(4, 0x28);\n\t\t\t\t/* [MS-ODRAW] 2.2.38 OfficeArtFSPGR */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x01);\n\t\t\t\t\thdr.write_shift(2, 0xF009);\n\t\t\t\t\thdr.write_shift(4, 0x10);\n\t\t\t\t\thdr.l += 16;\n\t\t\t\t}\n\t\t\t\t/* [MS-ODRAW] 2.2.40 OfficeArtFSP */\n\t\t\t\t{\n\t\t\t\t\thdr.write_shift(2, 0x02);\n\t\t\t\t\thdr.write_shift(2, 0xF00A);\n\t\t\t\t\thdr.write_shift(4, 0x08);\n\t\t\t\t\thdr.write_shift(4, baseid);\n\t\t\t\t\thdr.write_shift(4, 0x05);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twrite_biff_rec(ba, 0x00EC, /* hdr */ _oasc ? bconcat([hdr, _oasc]) : hdr);\n\t}\n\tba.push(pl.end());\n\tnotes.forEach(function(n) { write_biff_rec(ba, 0x001C, n); });\n\tb8ocnts.push([baseid, comments.length + 1, b8oid]);\n\t++b8oid;\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, 0x01b8 /* HLink */, write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, 0x0800 /* HLinkTooltip */, write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_cols_biff8(ba, cols) {\n\tif(!cols) return;\n\tvar cnt = 0;\n\tcols.forEach(function(col, idx) {\n\t\tif(++cnt <= 256 && col) {\n\t\t\twrite_biff_rec(ba, 0x007d /* ColInfo */, write_ColInfo(col_obj_w(idx, col), idx));\n\t\t}\n\t});\n}\n\nfunction write_ws_biff8_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, date1904/*:boolean*/) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, 0x0006 /* Formula */, write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v, date1904), date1904) : cell.v;\n\t\t\tif(isNaN(v)) write_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, 0x24, os, opts, \"e\")); // #NUM!\n\t\t\telse if(!isFinite(v)) write_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, 0x07, os, opts, \"e\")); // #DIV/0!\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\telse write_biff_rec(ba, 0x0203 /* Number */, write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v == null ? \"\" : String(cell.v), opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, 0x00fd /* LabelSst */, write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, 0x0204 /* Label */, write_Label(R, C, (cell.v == null ? \"\" : String(cell.v)).slice(0,255), os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheet/*:WBWSProp*/ = ((_WB.Sheets||[])[idx]||{}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tvar b8 = opts.biff == 8;\n\tvar ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x0200 /* Dimensions */, write_Dimensions(range, opts));\n\t/* ... */\n\n\tvar date1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\tif(b8) ws['!links'] = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tvar comments = [];\n\tvar row = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? row[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts, date1904);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t\tif(cell.c) comments.push([cell.c, R, C]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_comments_biff8(ba, comments); else write_comments_biff2(ba, comments);\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array<WBWSProp>*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C /* Country */, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture */\n\n\t/* BIFF8: MsoDrawingGroup [*Continue] */\n\tif(b8 && b8ocnts.length) write_biff_rec(C, 0x00EB /* MsoDrawingGroup */, write_MsoDrawingGroup());\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC /* SST */, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\tb8oid = 1; b8ocnts = [];\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar dense = (opts.dense != null) ? opts.dense : DENSE;\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(dense) ws[\"!data\"] = [];\n\tstr = str_remove_ng(str, \"<!--\", \"-->\");\n\tvar mtch/*:any*/ = str.match(/<table/i);\n\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^<>]*>)/i, \"<tr>\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array<Range>*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\tvar m = cell, cc = 0;\n\t\t\t/* TODO: parse styles etc */\n\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(opts.UTC === false) o.v = utc_to_local(o.v);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(o.cellText !== false) o.w = m;\n\t\t\tif(dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array<Range>*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array<string>*/ = [];\n\tvar sp = ({}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_col(C) + encode_row(R);\n\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tsp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\t// note: data-v is unaffected by the timezone interpretation\n\t\t\tif(cell.v != null) sp[\"data-v\"] = escapehtml(cell.v instanceof Date ? cell.v.toISOString() : cell.v);\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + escapehtml(cell.l.Target) +'\">' + w + '</a>';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"<tr>\";\n\treturn preamble + oo.join(\"\") + \"</tr>\";\n}\n\nvar HTML_BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str_match_xml_ig(str, \"table\");\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find \");\n\tif(mtch.length == 1) {\n\t\tvar w = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tw.bookType = \"html\";\n\t\treturn w;\n\t}\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\twb.bookType = \"html\";\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref'] || \"A1\");\n\tout.push(make_html_preamble(ws, r, o));\n\tif(ws[\"!ref\"]) for(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
    \" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar rows/*:HTMLCollection*/ = table.rows;\n\tif(!rows) {\n\t\t/* not an HTML TABLE */\n\t\tthrow \"Unsupported origin when \" + table.tagName + \" is not a TABLE\";\n\t}\n\n\tvar opts = _opts || {};\n\tvar dense = ws[\"!data\"] != null;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.cells);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(opts.UTC) o.v = local_to_utc(o.v);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\" &&\tl.slice(0, 11).toLowerCase() != 'javascript:') o.l = ({ Target: l });\n\t\t\tif(dense) { if(!ws[\"!data\"][R + or_R]) ws[\"!data\"][R + or_R] = []; ws[\"!data\"][R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\tvar o = sheet_to_workbook(parse_dom_table(table, opts), opts);\n\t//o.bookType = \"dom\"; // TODO: define a type for this\n\treturn o;\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^<>]*>/g,\"\"));\n\n\treturn [v];\n}\n\n/* Note: ODS can stick styles in content.xml or styles.xml, FODS blurs lines */\nfunction parse_ods_styles(d/*:string*/, _opts, _nfm) {\n\tvar number_format_map = _nfm || {};\n\tvar str = xlml_normalize(d);\n\txlmlregex.lastIndex = 0;\n\tstr = remove_doctype(str_remove_ng(str, \"\"));\n\tvar Rn, NFtag, NF = \"\", tNF = \"\", y, etpos = 0, tidx = -1, infmt = false, payload = \"\";\n\twhile((Rn = xlmlregex.exec(str))) {\n\t\tswitch((Rn[3]=Rn[3].replace(/_[\\s\\S]*$/,\"\"))) {\n\t\t/* Number Format Definitions */\n\t\tcase 'number-style': // 16.29.2\n\t\tcase 'currency-style': // 16.29.8\n\t\tcase 'percentage-style': // 16.29.10\n\t\tcase 'date-style': // 16.29.11\n\t\tcase 'time-style': // 16.29.19\n\t\tcase 'text-style': // 16.29.26\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tif(NFtag['truncate-on-overflow'] == \"false\") {\n\t\t\t\t\tif(NF.match(/h/)) NF = NF.replace(/h+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/m/)) NF = NF.replace(/m+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/s/)) NF = NF.replace(/s+/, \"[$&]\");\n\t\t\t\t}\n\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t// LibreOffice bug https://bugs.documentfoundation.org/show_bug.cgi?id=149484\n\t\tcase 'boolean-style': // 16.29.24\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tnumber_format_map[NFtag.name] = \"General\";\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t/* Number Format Elements */\n\t\tcase 'boolean': // 16.29.25\n\t\t\tNF += \"General\"; // ODF spec is unfortunately underspecified here\n\t\t\tbreak;\n\n\t\tcase 'text': // 16.29.27\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tif(payload == \"%\" && NFtag[0] == ' 16.29.12\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"d\"; break;\n\t\t\t\tcase \"long\": NF += \"dd\"; break;\n\t\t\t\tdefault: NF += \"dd\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'day-of-week': { // 16.29.16\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ddd\"; break;\n\t\t\t\tcase \"long\": NF += \"dddd\"; break;\n\t\t\t\tdefault: NF += \"ddd\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'era': { // 16.29.15 TODO: proper mapping\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ee\"; break;\n\t\t\t\tcase \"long\": NF += \"eeee\"; break;\n\t\t\t\tdefault: NF += \"eeee\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'hours': { // 16.29.20\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"h\"; break;\n\t\t\t\tcase \"long\": NF += \"hh\"; break;\n\t\t\t\tdefault: NF += \"hh\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'minutes': { // 16.29.21\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"mm\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'month': { // 16.29.13\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(y[\"textual\"]) NF += \"mm\";\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"m\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'seconds': { // 16.29.22\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"s\"; break;\n\t\t\t\tcase \"long\": NF += \"ss\"; break;\n\t\t\t\tdefault: NF += \"ss\"; break; // TODO: error condition\n\t\t\t}\n\t\t\tif(y[\"decimal-places\"]) NF += \".\" + fill(\"0\", +y[\"decimal-places\"]);\n\t\t} break;\n\n\t\tcase 'year': { // 16.29.14\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"yy\"; break;\n\t\t\t\tcase \"long\": NF += \"yyyy\"; break;\n\t\t\t\tdefault: NF += \"yy\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'am-pm': // 16.29.23\n\t\t\tNF += \"AM/PM\"; // LO autocorrects A/P -> AM/PM\n\t\t\tbreak;\n\n\t\tcase 'week-of-year': // 16.29.17\n\t\tcase 'quarter': // 16.29.18\n\t\t\tconsole.error(\"Excel does not support ODS format token \" + Rn[3]);\n\t\t\tbreak;\n\n\t\tcase 'fill-character': // 16.29.5\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tNF += '\"' + payload.replace(/\"/g, '\"\"') + '\"*';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\t\tcase 'scientific-number': // 16.29.6\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tNF += \"0.\" + fill(\"0\", +y[\"min-decimal-places\"] || +y[\"decimal-places\"] || 2) + fill(\"?\", +y[\"decimal-places\"] - +y[\"min-decimal-places\"] || 0) + \"E\" + (parsexmlbool(y[\"forced-exponent-sign\"]) ? \"+\" : \"\") + fill(\"0\", +y[\"min-exponent-digits\"] || 2);\n\t\t\tbreak;\n\n\t\tcase 'fraction': // 16.29.7\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(!+y[\"min-integer-digits\"]) NF += \"#\";\n\t\t\telse NF += fill(\"0\", +y[\"min-integer-digits\"]);\n\t\t\tNF += \" \";\n\t\t\tNF += fill(\"?\", +y[\"min-numerator-digits\"] || 1);\n\t\t\tNF += \"/\";\n\t\t\tif(+y[\"denominator-value\"]) NF += y[\"denominator-value\"];\n\t\t\telse NF += fill(\"?\", +y[\"min-denominator-digits\"] || 1);\n\t\t\tbreak;\n\n\t\tcase 'currency-symbol': // 16.29.9\n\t\t\t// TODO: localization with [$-...]\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tNF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} else NF += \"$\";\n\t\t\tbreak;\n\n\t\tcase 'text-properties': // 16.29.29\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch((y[\"color\"]||\"\").toLowerCase().replace(\"#\", \"\")) {\n\t\t\t\tcase \"ff0000\": case \"red\": NF = \"[Red]\" + NF; break;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'text-content': // 16.29.28\n\t\t\tNF += \"@\";\n\t\t\tbreak;\n\n\t\tcase 'map': // 16.3\n\t\t\t// TODO: handle more complex maps\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(unescapexml(y[\"condition\"]) == \"value()>=0\") NF = number_format_map[y[\"apply-style-name\"]] + \";\" + NF;\n\t\t\telse console.error(\"ODS number format may be incorrect: \" + y[\"condition\"]);\n\t\t\tbreak;\n\n\t\tcase 'number': // 16.29.3\n\t\t\t// TODO: handle all the attributes\n\t\t\tif(Rn[1]==='/') break;\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\ttNF = \"\";\n\t\t\ttNF += fill(\"0\", +y[\"min-integer-digits\"] || 1);\n\t\t\tif(parsexmlbool(y[\"grouping\"])) tNF = commaify(fill(\"#\", Math.max(0, 4 - tNF.length)) + tNF);\n\t\t\tif(+y[\"min-decimal-places\"] || +y[\"decimal-places\"]) tNF += \".\";\n\t\t\tif(+y[\"min-decimal-places\"]) tNF += fill(\"0\", +y[\"min-decimal-places\"] || 1);\n\t\t\tif(+y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)) tNF += fill(\"0\", +y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)); // TODO: should this be \"#\" ?\n\t\t\tNF += tNF;\n\t\t\tbreak;\n\n\t\tcase 'embedded-text': // 16.29.4\n\t\t\t// TODO: verify interplay with grouping et al\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tif(etpos == 0) NF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t\telse NF = NF.slice(0, etpos) + '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"' + NF.slice(etpos);\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t\tetpos = -+parsexmltag(Rn[0], false)[\"position\"] || 0;\n\t\t\t} break;\n\n\t}}\n\treturn number_format_map;\n}\n\nfunction parse_content_xml(d/*:string*/, _opts, _nfm)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar nfidx, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/, oldtextp = \"\", oldtextpidx = 0;\n\t\tvar textR = [], oldtextR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = _nfm || {}, styles = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[], WBProps:{}};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = remove_doctype(str_remove_ng(str, \"\"));\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_[\\s\\S]*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = []; merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[\"!data\"][R]) ws[\"!data\"][R] = [];\n\t\t\t\t\t\t\tws[\"!data\"][R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_col(C) + encode_row(R)] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = oldtextp = \"\"; textpidx = oldtextpidx = 0; textR = []; oldtextR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type TODO: verify ODS and UOS */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']) || (+ctag['boolean-value'] >= 1); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value);\n\t\t\t\t\t\t\tif(opts.cellDates && q.z && fmt_is_date(q.z)) { q.v = numdate(q.v + (WB.WBProps.date1904 ? 1462 : 0)); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value'], WB.WBProps.date1904);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v, WB.WBProps.date1904); }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'm/d/yy'; break;\n\t\t\t\t\t\t/* NOTE: for `time`, Excel ODS export incorrectly uses durations relative to 1900 epoch even if 1904 is specified */\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.v = numdate(q.v); q.t = typeof q.v == \"number\" ? 'n' : 'd'; }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[\"!data\"][R + rpt]) ws[\"!data\"][R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[\"!data\"][R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[\"!data\"][R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t\ttextp = oldtextp; textpidx = oldtextpidx; textR = oldtextR;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\t\tvar annotag = parsexmltag(Rn[0], true);\n\t\t\t\t\t/* office:display TODO: check if there is a global override */\n\t\t\t\t\tif(!(annotag[\"display\"] && parsexmlbool(annotag[\"display\"]))) comments.hidden = true;\n\t\t\t\t\toldtextp = textp; oldtextpidx = textpidx; oldtextR = textR;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // \n\t\t\tcase 'currency-symbol': // \n\t\t\tcase 'fill-character': // 16.29.5 \n\t\t\t\tbreak;\n\n\t\t\tcase 'text-style': // 16.27.25 \n\t\t\tcase 'boolean-style': // 16.27.23 \n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'currency-style': // 16.29.8 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tvar xlmlidx = xlmlregex.lastIndex;\n\t\t\t\t\tparse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);\n\t\t\t\t\txlmlregex.lastIndex = xlmlidx;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tnfidx = xlmlregex.lastIndex - Rn[0].length;\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': { // 16.2 \n\t\t\t\tvar styletag = parsexmltag(Rn[0], false);\n\t\t\t\tif(styletag[\"family\"] == \"table-cell\" && number_format_map[styletag[\"data-style-name\"]]) styles[styletag[\"name\"]] = number_format_map[styletag[\"data-style-name\"]];\n\t\t\t} break;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tbreak;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tbreak;\n\n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': // 9.4.2 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\tswitch(tag[\"date-value\"]) {\n\t\t\t\t\tcase \"1904-01-01\": WB.WBProps.date1904 = true; break;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else if(Rn[0].slice(-2) == \"/>\") {\n\t\t\t\t\t/* TODO: is self-closing 文本串 valid? */\n\t\t\t\t\ttextp += \"\\n\";\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\n\t\t\t/* 9.5 Filters */\n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\t\t\tcase 'filter-set-item': break; // 9.5.6 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\n\n// TODO: find out if anyone actually read the spec. LO has some wild errors\nfunction write_number_format_ods(nf/*:string*/, nfidx/*:string*/)/*:string*/ {\n\tvar type = \"number\", payload = \"\", nopts = { \"style:name\": nfidx }, c = \"\", i = 0;\n\tnf = nf.replace(/\"[$]\"/g, \"$\");\n\t/* TODO: replace with an actual parser based on a real grammar */\n\tj: {\n\t\t// TODO: support style maps\n\t\tif(nf.indexOf(\";\") > -1) {\n\t\t\tconsole.error(\"Unsupported ODS Style Map exported. Using first branch of \" + nf);\n\t\t\tnf = nf.slice(0, nf.indexOf(\";\"));\n\t\t}\n\n\t\tif(nf == \"@\") { type = \"text\"; payload = \"\"; break j; }\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* opening string literal */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* fractions */\n\t\tvar t = nf.match(/# (\\?+)\\/(\\?+)/);\n\t\tif(t) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:max-denominator-value\": Math.max(+(t[1].replace(/./g, \"9\")), +(t[2].replace(/./g, \"9\"))) }); break j; }\n\t\tif((t=nf.match(/# (\\?+)\\/(\\d+)/))) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:denominator-value\": +t[2]}); break j; }\n\n\t\t/* percentages */\n\t\tif((t=nf.match(/\\b(\\d+)(|\\.\\d+)%/))) { type = \"percentage\"; payload += writextag(\"number:number\", null, {\"number:decimal-places\": t[2] && t.length - 1 || 0, \"number:min-decimal-places\": t[2] && t.length - 1 || 0, \"number:min-integer-digits\": t[1].length }) + \"%\"; break j; }\n\n\t\t/* datetime */\n\t\tvar has_time = false;\n\t\tif([\"y\",\"m\",\"d\"].indexOf(nf[0]) > -1) {\n\t\t\ttype = \"date\";\n\t\t\tk: for(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\tcase \"m\":\n\t\t\t\t\tl: for(var h = i+1; h < nf.length; ++h) switch(nf[h]) {\n\t\t\t\t\t\tcase \"y\": case \"d\": break l;\n\t\t\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\t\t}\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"y\": case \"d\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"y\": case \"yy\": payload += \"\"; break;\n\t\t\t\t\t\tcase \"yyy\": case \"yyyy\": payload += ''; break;\n\t\t\t\t\t\tcase \"mmmmm\": console.error(\"ODS has no equivalent of format |mmmmm|\");\n\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\tcase \"m\": case \"mm\": case \"mmm\": case \"mmmm\":\n\t\t\t\t\t\t\tpayload += '= 3 ? \"true\" : \"false\") + '\"/>';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"d\": case \"dd\": payload += ''; break;\n\t\t\t\t\t\tcase \"ddd\": case \"dddd\": payload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\\\\': c = nf[++i];\n\t\t\t\t\tpayload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase '/': case ':': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tif(!has_time) break j;\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\t\tif(nf.match(/^\\[?[hms]/)) {\n\t\t\tif(type == \"number\") type = \"time\";\n\t\t\tif(nf.match(/\\[/)) {\n\t\t\t\tnf = nf.replace(/[\\[\\]]/g, \"\");\n\t\t\t\tnopts['number:truncate-on-overflow'] = \"false\";\n\t\t\t}\n\t\t\tfor(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"m\": case \"s\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"h\": case \"hh\": payload += ''; break;\n\t\t\t\t\t\tcase \"m\": case \"mm\": payload += ''; break;\n\t\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t\tif(nf[i+1] == \".\") do { c += nf[i+1]; ++i; } while(nf[i+1] == \"0\");\n\t\t\t\t\t\t\tpayload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': case ':': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif(nf.slice(i, i+3).toLowerCase() == \"a/p\") { payload += ''; i += 2; break; } // Note: ODF does not support A/P\n\t\t\t\t\tif(nf.slice(i, i+5).toLowerCase() == \"am/pm\") { payload += ''; i += 4; break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tbreak j;\n\t\t}\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* should be in a char loop */\n\t\tif(nf[0] == \"$\") { payload += '$'; nf = nf.slice(1); i = 0; }\n\t\ti = 0; if(nf[i] == '\"') {\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* number TODO: interstitial text e.g. 000)000-0000 */\n\t\tvar np = nf.match(/([#0][0#,]*)(\\.[0#]*|)(E[+]?0*|)/i);\n\t\tif(!np || !np[0]) console.error(\"Could not find numeric part of \" + nf);\n\t\telse {\n\t\t\tvar base = np[1].replace(/,/g, \"\");\n\t\t\tpayload += ' -1 ? ' number:grouping=\"true\"' : \"\") +\n\t\t\t\t(np[2] && ' number:decimal-places=\"' + (np[2].length - 1) + '\"' || ' number:decimal-places=\"0\"') +\n\t\t\t\t(np[3] && np[3].indexOf(\"+\") > -1 ? ' number:forced-exponent-sign=\"true\"' : \"\" ) +\n\t\t\t\t(np[3] ? ' number:min-exponent-digits=\"' + np[3].match(/0+/)[0].length + '\"' : \"\" ) +\n\t\t\t\t'>' +\n\t\t\t\t/* TODO: interstitial text placeholders */\n\t\t\t\t'';\n\t\t\ti = np.index + np[0].length;\n\t\t}\n\n\t\t/* residual text */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t}\n\t}\n\n\tif(!payload) { console.error(\"Could not generate ODS number format for |\" + nf + \"|\"); return \"\"; }\n\treturn writextag(\"number:\" + type + \"-style\", payload, nopts);\n}\n\nfunction write_names_ods(Names, SheetNames, idx) {\n\t//var scoped = Names.filter(function(name) { return name.Sheet == (idx == -1 ? null : idx); });\n\tvar scoped = []; for(var namei = 0; namei < Names.length; ++namei) {\n\t\tvar name = Names[namei];\n\t\tif(!name) continue;\n\t\tif(name.Sheet == (idx == -1 ? null : idx)) scoped.push(name);\n\t}\n\tif(!scoped.length) return \"\";\n\treturn \" \\n\" + scoped.map(function(name) {\n\t\tvar odsref = (idx == -1 ? \"$\" : \"\") + csf_to_ods_3D(name.Ref);\n\t\treturn \" \" + writextag(\"table:named-range\", null, {\n\t\t\t\"table:name\": name.Name,\n\t\t\t\"table:cell-range-address\": odsref,\n\t\t\t\"table:base-cell-address\": odsref.replace(/[\\.][^\\.]*$/, \".$A$1\")\n\t\t});\n\t}).join(\"\\n\") + \"\\n \\n\";\n}\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/, span)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, span ? \"\": \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*/, opts, nfs, date1904)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(' \\n'); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v, date1904).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v, date1904).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e': // TODO: translate to ODS errors\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue; // TODO: empty cell with comments\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\tif(nfs[cell.z]) ct[\"table:style-name\"] = \"ce\" + nfs[cell.z].slice(1);\n\t\t\t\tvar payload = writextag('text:p', text_p, {});\n\t\t\t\tif(cell.c) {\n\t\t\t\t\tvar acreator = \"\", apayload = \"\", aprops = {};\n\t\t\t\t\tfor(var ci = 0; ci < cell.c.length; ++ci) {\n\t\t\t\t\t\tif(!acreator && cell.c[ci].a) acreator = cell.c[ci].a;\n\t\t\t\t\t\tapayload += \"\" + write_text_p(cell.c[ci].t) + \"\";\n\t\t\t\t\t}\n\t\t\t\t\tif(!cell.c.hidden) aprops[\"office:display\"] = true;\n\t\t\t\t\tpayload = writextag('office:annotation', apayload, aprops) + payload;\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', payload, ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i));\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* number formats, table cells, text */\n\t\tvar nfs = {};\n\t\tvar nfi = 69;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tvar dense = (ws[\"!data\"] != null);\n\t\t\tif(!ws[\"!ref\"]) return;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tfor(var R = 0; R <= range.e.r; ++R) for(var C = 0; C <= range.e.c; ++C) {\n\t\t\t\tvar c = dense ? (ws[\"!data\"][R]||[])[C] : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(!c || !c.z || c.z.toLowerCase() == \"general\") continue;\n\t\t\t\tif(!nfs[c.z]) {\n\t\t\t\t\tvar out = write_number_format_ods(c.z, \"N\" + nfi);\n\t\t\t\t\tif(out) { nfs[c.z] = \"N\" + nfi; ++nfi; o.push(out + \"\\n\"); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\to.push(' \\n');\n\t\tkeys(nfs).forEach(function(nf) {\n\t\t\to.push('\\n');\n\t\t});\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t\treturn nfs;\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/]*?>/, \"\").replace(/<\\/office:document-meta>/, \"\") + \"\\n\");\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\tvar nfs = write_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(((wb.Workbook||{}).WBProps||{}).date1904) o.push(' \\n \\n \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts, nfs, ((wb.Workbook||{}).WBProps||{}).date1904));\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nvar subarray = function() {\n try {\n if (typeof Uint8Array == \"undefined\")\n return \"slice\";\n if (typeof Uint8Array.prototype.subarray == \"undefined\")\n return \"slice\";\n if (typeof Buffer !== \"undefined\") {\n if (typeof Buffer.prototype.subarray == \"undefined\")\n return \"slice\";\n if ((typeof Buffer.from == \"function\" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)\n return \"subarray\";\n return \"slice\";\n }\n return \"subarray\";\n } catch (e) {\n return \"slice\";\n }\n}();\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8concat(u8a) {\n var len = 0;\n for (var i = 0; i < u8a.length; ++i)\n len += u8a[i].length;\n var out = new Uint8Array(len);\n var off = 0;\n for (i = 0; i < u8a.length; ++i) {\n var u8 = u8a[i], L = u8.length;\n if (L < 250) {\n for (var j = 0; j < L; ++j)\n out[off++] = u8[j];\n } else {\n out.set(u8, off);\n off += L;\n }\n }\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr.l;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n ptr.l = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz[subarray](0, L);\n}\nfunction parse_packed_varints(buf) {\n var ptr = { l: 0 };\n var out = [];\n while (ptr.l < buf.length)\n out.push(parse_varint49(buf, ptr));\n return out;\n}\nfunction write_packed_varints(nums) {\n return u8concat(nums.map(function(x) {\n return write_varint49(x);\n }));\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n return i32;\n i32 |= (buf[l] & 15) << 28;\n return i32;\n}\nfunction varint_to_u64(buf) {\n var l = 0, lo = buf[l] & 127, hi = 0;\n varint:\n if (buf[l++] >= 128) {\n lo |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 28;\n hi = buf[l] >> 4 & 7;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 3;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 10;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 17;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 24;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 31;\n }\n return [lo >>> 0, hi >>> 0];\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var off = ptr.l;\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = num / 8 | 0;\n var data;\n var l = ptr.l;\n switch (type) {\n case 0:\n {\n while (buf[l++] >= 128)\n ;\n data = buf[subarray](ptr.l, l);\n ptr.l = l;\n }\n break;\n case 1:\n {\n data = buf[subarray](l, l + 8);\n ptr.l = l + 8;\n }\n break;\n case 2:\n {\n var len = parse_varint49(buf, ptr);\n data = buf[subarray](ptr.l, ptr.l + len);\n ptr.l += len;\n }\n break;\n case 5:\n {\n data = buf[subarray](l, l + 4);\n ptr.l = l + 4;\n }\n break;\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: data, type: type };\n if (out[num] == null)\n out[num] = [];\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n if (idx == 0)\n return;\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));\n ptr.l += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf[subarray](ptr.l, ptr.l + fl)\n });\n ptr.l += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [\n [],\n [{ data: write_varint49(ia.id), type: 0 }],\n []\n ];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = { l: 0 };\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n var l = ptr.l;\n while (l < buf.length) {\n var tag = buf[l] & 3;\n if (tag == 0) {\n var len = buf[l++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[l];\n if (c > 1)\n len |= buf[l + 1] << 8;\n if (c > 2)\n len |= buf[l + 2] << 16;\n if (c > 3)\n len |= buf[l + 3] << 24;\n len >>>= 0;\n len++;\n l += c;\n }\n chunks.push(buf[subarray](l, l + len));\n l += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[l] >> 2 & 7) + 4;\n offset = (buf[l++] & 224) << 3;\n offset |= buf[l++];\n } else {\n length = (buf[l++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[l] | buf[l + 1] << 8;\n l += 2;\n } else {\n offset = (buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16 | buf[l + 3] << 24) >>> 0;\n l += 4;\n }\n }\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n var j = chunks.length - 1, off = offset;\n while (j >= 0 && off >= chunks[j].length) {\n off -= chunks[j].length;\n --j;\n }\n if (j < 0) {\n if (off == 0)\n off = chunks[j = 0].length;\n else\n throw new Error(\"Invalid offset beyond length\");\n }\n if (length < off)\n chunks.push(chunks[j][subarray](chunks[j].length - off, chunks[j].length - off + length));\n else {\n if (off > 0) {\n chunks.push(chunks[j][subarray](chunks[j].length - off));\n length -= off;\n }\n ++j;\n while (length >= chunks[j].length) {\n chunks.push(chunks[j]);\n length -= chunks[j].length;\n ++j;\n }\n if (length)\n chunks.push(chunks[j][subarray](0, length));\n }\n if (chunks.length > 25)\n chunks = [u8concat(chunks)];\n }\n }\n var clen = 0;\n for (var u8i = 0; u8i < chunks.length; ++u8i)\n clen += chunks[u8i].length;\n if (clen != usz)\n throw new Error(\"Unexpected length: \".concat(clen, \" != \").concat(usz));\n return chunks;\n}\nfunction decompress_iwa_file(buf) {\n if (Array.isArray(buf))\n buf = new Uint8Array(buf);\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return out.length == 1 ? out[0] : u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf[subarray](l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nvar numbers_lut_new = function() {\n return { sst: [], rsst: [], ofmt: [], nfmt: [], fmla: [], ferr: [], cmnt: [] };\n};\nfunction numbers_format_cell(cell, t, flags, ofmt, nfmt) {\n var _a, _b, _c, _d;\n var ctype = t & 255, ver = t >> 8;\n var fmt = ver >= 5 ? nfmt : ofmt;\n dur:\n if (flags & (ver > 4 ? 8 : 4) && cell.t == \"n\" && ctype == 7) {\n var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;\n if (dstyle == -1)\n break dur;\n var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;\n var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;\n var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;\n var d = cell.v, dd = d;\n autodur:\n if (auto) {\n if (d == 0) {\n dmin = dmax = 2;\n break autodur;\n }\n if (d >= 604800)\n dmin = 1;\n else if (d >= 86400)\n dmin = 2;\n else if (d >= 3600)\n dmin = 4;\n else if (d >= 60)\n dmin = 8;\n else if (d >= 1)\n dmin = 16;\n else\n dmin = 32;\n if (Math.floor(d) != d)\n dmax = 32;\n else if (d % 60)\n dmax = 16;\n else if (d % 3600)\n dmax = 8;\n else if (d % 86400)\n dmax = 4;\n else if (d % 604800)\n dmax = 2;\n if (dmax < dmin)\n dmax = dmin;\n }\n if (dmin == -1 || dmax == -1)\n break dur;\n var dstr = [], zstr = [];\n if (dmin == 1) {\n dd = d / 604800;\n if (dmax == 1) {\n zstr.push('d\"d\"');\n } else {\n dd |= 0;\n d -= 604800 * dd;\n }\n dstr.push(dd + (dstyle == 2 ? \" week\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"w\" : \"\"));\n }\n if (dmin <= 2 && dmax >= 2) {\n dd = d / 86400;\n if (dmax > 2) {\n dd |= 0;\n d -= 86400 * dd;\n }\n zstr.push('d\"d\"');\n dstr.push(dd + (dstyle == 2 ? \" day\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"d\" : \"\"));\n }\n if (dmin <= 4 && dmax >= 4) {\n dd = d / 3600;\n if (dmax > 4) {\n dd |= 0;\n d -= 3600 * dd;\n }\n zstr.push((dmin >= 4 ? \"[h]\" : \"h\") + '\"h\"');\n dstr.push(dd + (dstyle == 2 ? \" hour\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"h\" : \"\"));\n }\n if (dmin <= 8 && dmax >= 8) {\n dd = d / 60;\n if (dmax > 8) {\n dd |= 0;\n d -= 60 * dd;\n }\n zstr.push((dmin >= 8 ? \"[m]\" : \"m\") + '\"m\"');\n if (dstyle == 0)\n dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" minute\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"m\" : \"\"));\n }\n if (dmin <= 16 && dmax >= 16) {\n dd = d;\n if (dmax > 16) {\n dd |= 0;\n d -= dd;\n }\n zstr.push((dmin >= 16 ? \"[s]\" : \"s\") + '\"s\"');\n if (dstyle == 0)\n dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" second\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"s\" : \"\"));\n }\n if (dmax >= 32) {\n dd = Math.round(1e3 * d);\n if (dmin < 32)\n zstr.push('.000\"ms\"');\n if (dstyle == 0)\n dstr.push((dd >= 100 ? \"\" : dd >= 10 ? \"0\" : \"00\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" millisecond\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"ms\" : \"\"));\n }\n cell.w = dstr.join(dstyle == 0 ? \":\" : \" \");\n cell.z = zstr.join(dstyle == 0 ? '\":\"' : \" \");\n if (dstyle == 0)\n cell.w = cell.w.replace(/:(\\d\\d\\d)$/, \".$1\");\n }\n}\nfunction parse_old_storage(buf, lut, v, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1));\n var doff = v > 1 ? 12 : 8;\n if (flags & 2) {\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 3468 : 396)) * 4;\n if (flags & 512) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (v > 1) {\n flags = dv.getUint32(8, true) >>> 16;\n if (flags & 255) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n }\n var ret;\n var t = buf[v >= 4 ? 1 : 2];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | v << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction parse_new_storage(buf, lut, opts) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var fields = dv.getUint32(8, true);\n var doff = 12;\n var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dc = 0, dt = new Date(Date.UTC(2001, 0, 1)), eidx = -1, fidx = -1;\n if (fields & 1) {\n d128 = readDecimal128LE(buf, doff);\n doff += 16;\n }\n if (fields & 2) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (fields & 4) {\n dt.setTime(dt.getTime() + (dc = dv.getFloat64(doff, true)) * 1e3);\n doff += 8;\n }\n if (fields & 8) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 16) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 480) * 4;\n if (fields & 512) {\n fidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(fields & 1024) * 4;\n if (fields & 2048) {\n eidx = dv.getUint32(doff, true);\n doff += 4;\n }\n var ret;\n var t = buf[1];\n switch (t) {\n case 0:\n ret = { t: \"z\" };\n break;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n {\n if (opts == null ? void 0 : opts.cellDates)\n ret = { t: \"d\", v: dt };\n else\n ret = { t: \"n\", v: dc / 86400 + 35430, z: table_fmt[14] };\n }\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1) {\n var rts = lut.rsst[ridx];\n ret = { t: \"s\", v: rts.v };\n if (rts.l)\n ret.l = { Target: rts.l };\n } else\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n doff += popcnt(fields & 4096) * 4;\n if (fields & 516096) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 524288) {\n var cmntidx = dv.getUint32(doff, true);\n doff += 4;\n if (lut.cmnt[cmntidx])\n ret.c = iwa_to_s5s_comment(lut.cmnt[cmntidx]);\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction write_new_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n if (cell.z && fmt_is_date(cell.z)) {\n out[1] = 5;\n dv.setFloat64(l, (numdate(cell.v + 1462).getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n } else {\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n fields |= 1;\n l += 16;\n }\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 2;\n l += 8;\n break;\n case \"s\":\n {\n var s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 16;\n l += 4;\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 8;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 4;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n lut.cmnt.push(s5s_to_iwa_comment(cell.c));\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 524288;\n l += 4;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction write_old_storage(cell, lut) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, fields = 0, s = \"\";\n out[0] = 4;\n switch (cell.t) {\n case \"n\":\n break;\n case \"b\":\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n var irsst = lut.rsst.findIndex(function(v) {\n var _a;\n return v.v == s && v.l == ((_a = cell.l) == null ? void 0 : _a.Target);\n });\n if (irsst == -1)\n lut.rsst[irsst = lut.rsst.length] = { v: s, l: cell.l.Target };\n out[1] = 9;\n dv.setUint32(l, irsst, true);\n fields |= 512;\n l += 4;\n } else {\n }\n }\n break;\n case \"d\":\n break;\n case \"e\":\n break;\n case \"z\":\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n if (cell.c) {\n dv.setUint32(l, lut.cmnt.length - 1, true);\n fields |= 4096;\n l += 4;\n }\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n dv.setFloat64(l, cell.v, true);\n fields |= 32;\n l += 8;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n fields |= 32;\n l += 8;\n break;\n case \"s\":\n {\n s = cell.v == null ? \"\" : String(cell.v);\n if (cell.l) {\n } else {\n var isst = lut.sst.indexOf(s);\n if (isst == -1)\n lut.sst[isst = lut.sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n fields |= 16;\n l += 4;\n }\n }\n break;\n case \"d\":\n out[1] = 5;\n dv.setFloat64(l, (cell.v.getTime() - Date.UTC(2001, 0, 1)) / 1e3, true);\n fields |= 64;\n l += 8;\n break;\n case \"z\":\n out[1] = 0;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, fields, true);\n return out[subarray](0, l);\n}\nfunction parse_cell_storage(buf, lut, opts) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n return parse_old_storage(buf, lut, buf[0], opts);\n case 5:\n return parse_new_storage(buf, lut, opts);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return varint_to_i32(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(idx) }]\n ]);\n}\nfunction numbers_add_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n var orefidx = orefs.indexOf(ref);\n if (orefidx == -1) {\n orefs.push(ref);\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs) }];\n }\n}\nfunction numbers_del_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs.filter(function(r) {\n return r != ref;\n })) }];\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var _a, _b;\n var le = parse_shallow(entry.data);\n if (!le[1])\n return;\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n var richtext = { v: tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\") };\n data[key] = richtext;\n sfields:\n if ((_a = tswpsa == null ? void 0 : tswpsa[11]) == null ? void 0 : _a[0]) {\n var smartfields = (_b = parse_shallow(tswpsa[11][0].data)) == null ? void 0 : _b[1];\n if (!smartfields)\n break sfields;\n smartfields.forEach(function(sf) {\n var _a2, _b2, _c;\n var attr = parse_shallow(sf.data);\n if ((_a2 = attr[2]) == null ? void 0 : _a2[0]) {\n var obj = M[parse_TSP_Reference((_b2 = attr[2]) == null ? void 0 : _b2[0].data)][0];\n var objtype = varint_to_i32(obj.meta[1][0].data);\n switch (objtype) {\n case 2032:\n var hlink = parse_shallow(obj.data);\n if (((_c = hlink == null ? void 0 : hlink[2]) == null ? void 0 : _c[0]) && !richtext.l)\n richtext.l = u8str(hlink[2][0].data);\n break;\n case 2039:\n break;\n default:\n console.log(\"unrecognized ObjectAttribute type \".concat(objtype));\n }\n }\n });\n }\n }\n break;\n case 2:\n data[key] = parse_shallow(le[6][0].data);\n break;\n case 3:\n data[key] = parse_shallow(le[5][0].data);\n break;\n case 10:\n {\n var cs = M[parse_TSP_Reference(le[10][0].data)][0];\n data[key] = parse_TSD_CommentStorageArchive(M, cs.data);\n }\n break;\n default:\n throw type;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage[subarray](offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = -1;\n if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {\n if (varint_to_i32(pb[7][0].data) >>> 0)\n storage = 1;\n else\n storage = 0;\n }\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TSD_CommentStorageArchive(M, data) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n var out = { t: \"\", a: \"\" };\n var csp = parse_shallow(data);\n if ((_b = (_a = csp == null ? void 0 : csp[1]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data)\n out.t = u8str((_d = (_c = csp == null ? void 0 : csp[1]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) || \"\";\n if ((_f = (_e = csp == null ? void 0 : csp[3]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data) {\n var as = M[parse_TSP_Reference((_h = (_g = csp == null ? void 0 : csp[3]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data)][0];\n var asp = parse_shallow(as.data);\n if ((_j = (_i = asp[1]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data)\n out.a = u8str(asp[1][0].data);\n }\n if (csp == null ? void 0 : csp[4]) {\n out.replies = [];\n csp[4].forEach(function(pi) {\n var cs = M[parse_TSP_Reference(pi.data)][0];\n out.replies.push(parse_TSD_CommentStorageArchive(M, cs.data));\n });\n }\n return out;\n}\nfunction iwa_to_s5s_comment(iwa) {\n var out = [];\n out.push({ t: iwa.t || \"\", a: iwa.a, T: iwa.replies && iwa.replies.length > 0 });\n if (iwa.replies)\n iwa.replies.forEach(function(reply) {\n out.push({ t: reply.t || \"\", a: reply.a, T: true });\n });\n return out;\n}\nfunction s5s_to_iwa_comment(s5s) {\n var out = { a: \"\", t: \"\", replies: [] };\n for (var i = 0; i < s5s.length; ++i) {\n if (i == 0) {\n out.a = s5s[i].a;\n out.t = s5s[i].t;\n } else {\n out.replies.push({ a: s5s[i].a, t: s5s[i].t });\n }\n }\n return out;\n}\nfunction parse_TST_TableModelArchive(M, root, ws, opts) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var dense = ws[\"!data\"] != null, dws = ws;\n var store = parse_shallow(pb[4][0].data);\n var lut = numbers_lut_new();\n if ((_a = store[4]) == null ? void 0 : _a[0])\n lut.sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n if ((_b = store[6]) == null ? void 0 : _b[0])\n lut.fmla = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[6][0].data)][0]);\n if ((_c = store[11]) == null ? void 0 : _c[0])\n lut.ofmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[11][0].data)][0]);\n if ((_d = store[12]) == null ? void 0 : _d[0])\n lut.ferr = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[12][0].data)][0]);\n if ((_e = store[17]) == null ? void 0 : _e[0])\n lut.rsst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]);\n if ((_f = store[19]) == null ? void 0 : _f[0])\n lut.cmnt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[19][0].data)][0]);\n if ((_g = store[22]) == null ? void 0 : _g[0])\n lut.nfmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[22][0].data)][0]);\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n if (!((_h = store[9]) == null ? void 0 : _h[0]))\n throw \"NUMBERS file missing row tree\";\n var rtt = parse_shallow(store[9][0].data)[1].map(function(p) {\n return parse_shallow(p.data);\n });\n rtt.forEach(function(kv) {\n _R = varint_to_i32(kv[1][0].data);\n var tidx = varint_to_i32(kv[2][0].data);\n var t = tile[1][tidx];\n if (!t)\n throw \"NUMBERS missing tile \" + tidx;\n var tl = parse_shallow(t.data);\n var ref2 = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype2 = varint_to_i32(ref2.meta[1][0].data);\n if (mtype2 != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype2));\n var _tile = parse_TST_Tile(M, ref2);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var res = parse_cell_storage(buf, lut, opts);\n if (res) {\n if (dense) {\n if (!dws[\"!data\"][_R + R])\n dws[\"!data\"][_R + R] = [];\n dws[\"!data\"][_R + R][C] = res;\n } else {\n ws[encode_col(C) + encode_row(_R + R)] = res;\n }\n }\n });\n });\n _R += _tile.nrows;\n });\n if ((_i = store[13]) == null ? void 0 : _i[0]) {\n var ref = M[parse_TSP_Reference(store[13][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6144)\n throw new Error(\"Expected merge type 6144, found \".concat(mtype));\n ws[\"!merges\"] = (_j = parse_shallow(ref.data)) == null ? void 0 : _j[1].map(function(pi) {\n var merge = parse_shallow(pi.data);\n var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);\n return {\n s: { r: origin.getUint16(0, true), c: origin.getUint16(2, true) },\n e: {\n r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,\n c: origin.getUint16(2, true) + size.getUint16(2, true) - 1\n }\n };\n });\n }\n}\nfunction parse_TST_TableInfoArchive(M, root, opts) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n if (opts == null ? void 0 : opts.dense)\n out[\"!data\"] = [];\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out, opts);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root, opts) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m, opts));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root, opts) {\n var _a;\n var out = book_new();\n out.Workbook = { WBProps: { date1904: true } };\n var pb = parse_shallow(root.data);\n if ((_a = pb[2]) == null ? void 0 : _a[0])\n throw new Error(\"Keynote presentations are not supported\");\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m, opts);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n out.bookType = \"numbers\";\n return out;\n}\nfunction parse_numbers_iwa(cfb, opts) {\n var _a, _b, _c, _d, _e, _f, _g;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n if (s.content[0] != 0)\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n if (((_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1e4)\n throw new Error(\"Pages documents are not supported\");\n var docroot = ((_g = (_f = (_e = (_d = M == null ? void 0 : M[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot, opts);\n}\nfunction write_TST_TileRowInfo(data, lut, wide) {\n var _a, _b, _c;\n var tri = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(1) }]\n ];\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var cnt = 0;\n if (tri[7][0].data.length < 2 * data.length) {\n var new_7 = new Uint8Array(2 * data.length);\n new_7.set(tri[7][0].data);\n tri[7][0].data = new_7;\n }\n if (tri[4][0].data.length < 2 * data.length) {\n var new_4 = new Uint8Array(2 * data.length);\n new_4.set(tri[4][0].data);\n tri[4][0].data = new_4;\n }\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n var width = wide ? 4 : 1;\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null || data[C].t == \"z\" && !((_c = data[C].c) == null ? void 0 : _c.length) || data[C].t == \"e\") {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset / width, true);\n _dv.setUint16(C * 2, _last_offset / width, true);\n var celload, _celload;\n switch (data[C].t) {\n case \"d\":\n if (data[C].v instanceof Date) {\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n }\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n case \"s\":\n case \"n\":\n case \"b\":\n case \"z\":\n celload = write_new_storage(data[C], lut);\n _celload = write_old_storage(data[C], lut);\n break;\n default:\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n {\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n }\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n tri[5][0].data = write_varint49(5);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n tri[8] = [{ type: 0, data: write_varint49(wide ? 1 : 0) }];\n return tri;\n}\nfunction write_iwam(type, payload) {\n return {\n meta: [\n [],\n [{ type: 0, data: write_varint49(type) }]\n ],\n data: payload\n };\n}\nfunction get_unique_msgid(dep, dependents) {\n if (!dependents.last)\n dependents.last = 927262;\n for (var i = dependents.last; i < 2e6; ++i)\n if (!dependents[i]) {\n dependents[dependents.last = i] = dep;\n return i;\n }\n throw new Error(\"Too many messages\");\n}\nfunction build_numbers_deps(cfb) {\n var dependents = {};\n var indices = [];\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {\n indices.push(packet.id);\n dependents[packet.id] = { deps: [], location: fp, type: varint_to_i32(packet.messages[0].meta[1][0].data) };\n });\n });\n cfb.FileIndex.forEach(function(fi) {\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {\n ia.messages.forEach(function(mess) {\n [5, 6].forEach(function(f) {\n if (!mess.meta[f])\n return;\n mess.meta[f].forEach(function(x) {\n dependents[ia.id].deps.push(varint_to_i32(x.data));\n });\n });\n });\n });\n });\n return dependents;\n}\nfunction write_TSP_Color_RGB(r, g, b) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [{ type: 5, data: new Uint8Array(Float32Array.from([r / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([g / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([b / 255]).buffer) }],\n [{ type: 5, data: new Uint8Array(Float32Array.from([1]).buffer) }],\n [],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(1) }]\n ]);\n}\nfunction get_author_color(n) {\n switch (n) {\n case 0:\n return write_TSP_Color_RGB(99, 222, 171);\n case 1:\n return write_TSP_Color_RGB(162, 197, 240);\n case 2:\n return write_TSP_Color_RGB(255, 189, 189);\n }\n return write_TSP_Color_RGB(Math.random() * 255, Math.random() * 255, Math.random() * 255);\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n var deps = build_numbers_deps(cfb);\n var docroot = numbers_iwa_find(cfb, deps, 1);\n if (docroot == null)\n throw \"Could not find message \".concat(1, \" in Numbers template\");\n var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n if (sheetrefs.length > 1)\n throw new Error(\"Template NUMBERS file must have exactly one sheet\");\n wb.SheetNames.forEach(function(name, idx) {\n if (idx >= 1) {\n numbers_add_ws(cfb, deps, idx + 1);\n docroot = numbers_iwa_find(cfb, deps, 1);\n sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n }\n write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);\n });\n return cfb;\n}\nfunction numbers_iwa_doit(cfb, deps, id, cb) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n cb(ainfo, x);\n entry.content = compress_iwa_file(write_iwa_file(x));\n entry.size = entry.content.length;\n}\nfunction numbers_iwa_find(cfb, deps, id) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n return ainfo;\n}\nfunction numbers_add_meta(mlist, newid, newloc) {\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newid) }],\n [{ type: 2, data: stru8(newloc.replace(/-[\\s\\S]*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newid + 1, varint_to_i32(mlist[1][0].data))) }];\n}\nfunction numbers_add_msg(cfb, type, msg, path, deps, id) {\n if (!id)\n id = get_unique_msgid({ deps: [], location: \"\", type: type }, deps);\n var loc = \"\".concat(path, \"-\").concat(id, \".iwa\");\n deps[id].location = \"Root Entry\" + loc;\n CFB.utils.cfb_add(cfb, loc, compress_iwa_file(write_iwa_file([{\n id: id,\n messages: [write_iwam(type, write_shallow(msg))]\n }])));\n var newloc = loc.replace(/^[\\/]/, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, id || 0, newloc);\n ai.messages[0].data = write_shallow(mlist);\n });\n return id;\n}\nfunction numbers_meta_add_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n (Array.isArray(dep) ? dep : [dep]).forEach(function(dep2) {\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(dep2) }]\n ])\n });\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_meta_del_dep(mlist, deps, id, dep) {\n var loc = deps[id].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6] = parent[6].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != dep;\n });\n mlist[3][parentidx].data = write_shallow(parent);\n}\nfunction numbers_add_ws(cfb, deps, wsidx) {\n var sheetref = -1, newsheetref = -1;\n var remap = {};\n numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {\n var doc = parse_shallow(docroot.messages[0].data);\n sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n newsheetref = get_unique_msgid({ deps: [1], location: deps[sheetref].location, type: 2 }, deps);\n remap[sheetref] = newsheetref;\n numbers_add_oref(docroot, newsheetref);\n doc[1].push({ type: 2, data: write_TSP_Reference(newsheetref) });\n var sheet = numbers_iwa_find(cfb, deps, sheetref);\n sheet.id = newsheetref;\n if (deps[1].location == deps[newsheetref].location)\n arch.push(sheet);\n else\n numbers_iwa_doit(cfb, deps, newsheetref, function(_, x) {\n return x.push(sheet);\n });\n docroot.messages[0].data = write_shallow(doc);\n });\n var tiaref = -1;\n numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {\n var sa = parse_shallow(sheetroot.messages[0].data);\n for (var i = 3; i <= 69; ++i)\n delete sa[i];\n var drawables = mappa(sa[2], parse_TSP_Reference);\n drawables.forEach(function(n) {\n return numbers_del_oref(sheetroot, n);\n });\n tiaref = get_unique_msgid({ deps: [newsheetref], location: deps[drawables[0]].location, type: deps[drawables[0]].type }, deps);\n numbers_add_oref(sheetroot, tiaref);\n remap[drawables[0]] = tiaref;\n sa[2] = [{ type: 2, data: write_TSP_Reference(tiaref) }];\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n tia.id = tiaref;\n if (deps[drawables[0]].location == deps[newsheetref].location)\n arch.push(tia);\n else {\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, newsheetref, tiaref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_iwa_doit(cfb, deps, tiaref, function(_, x) {\n return x.push(tia);\n });\n }\n sheetroot.messages[0].data = write_shallow(sa);\n });\n var tmaref = -1;\n numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {\n var tia = parse_shallow(tiaroot.messages[0].data);\n var da = parse_shallow(tia[1][0].data);\n for (var i = 3; i <= 69; ++i)\n delete da[i];\n var dap = parse_TSP_Reference(da[2][0].data);\n da[2][0].data = write_TSP_Reference(remap[dap]);\n tia[1][0].data = write_shallow(da);\n var oldtmaref = parse_TSP_Reference(tia[2][0].data);\n numbers_del_oref(tiaroot, oldtmaref);\n tmaref = get_unique_msgid({ deps: [tiaref], location: deps[oldtmaref].location, type: deps[oldtmaref].type }, deps);\n numbers_add_oref(tiaroot, tmaref);\n remap[oldtmaref] = tmaref;\n tia[2][0].data = write_TSP_Reference(tmaref);\n var tma = numbers_iwa_find(cfb, deps, oldtmaref);\n tma.id = tmaref;\n if (deps[tiaref].location == deps[tmaref].location)\n arch.push(tma);\n else\n numbers_iwa_doit(cfb, deps, tmaref, function(_, x) {\n return x.push(tma);\n });\n tiaroot.messages[0].data = write_shallow(tia);\n });\n numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {\n var _a, _b;\n var tma = parse_shallow(tmaroot.messages[0].data);\n var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, \"-\".concat((\"0000\" + wsidx.toString(16)).slice(-4)));\n tma[1][0].data = stru8(new_uuid);\n [12, 13, 29, 31, 32, 33, 39, 44, 47, 81, 82, 84].forEach(function(n) {\n return delete tma[n];\n });\n if (tma[45]) {\n var srrta = parse_shallow(tma[45][0].data);\n var ref = parse_TSP_Reference(srrta[1][0].data);\n numbers_del_oref(tmaroot, ref);\n delete tma[45];\n }\n if (tma[70]) {\n var hsoa = parse_shallow(tma[70][0].data);\n (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {\n var hsa = parse_shallow(item.data);\n [2, 3].map(function(n) {\n return hsa[n][0];\n }).forEach(function(hseadata) {\n var hsea = parse_shallow(hseadata.data);\n if (!hsea[8])\n return;\n var ref2 = parse_TSP_Reference(hsea[8][0].data);\n numbers_del_oref(tmaroot, ref2);\n });\n });\n delete tma[70];\n }\n [\n 46,\n 30,\n 34,\n 35,\n 36,\n 38,\n 48,\n 49,\n 60,\n 61,\n 62,\n 63,\n 64,\n 71,\n 72,\n 73,\n 74,\n 75,\n 85,\n 86,\n 87,\n 88,\n 89\n ].forEach(function(n) {\n if (!tma[n])\n return;\n var ref2 = parse_TSP_Reference(tma[n][0].data);\n delete tma[n];\n numbers_del_oref(tmaroot, ref2);\n });\n var store = parse_shallow(tma[4][0].data);\n {\n [2, 4, 5, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22].forEach(function(n) {\n var _a2;\n if (!((_a2 = store[n]) == null ? void 0 : _a2[0]))\n return;\n var oldref = parse_TSP_Reference(store[n][0].data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location)\n arch.push(msg);\n else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n store[n][0].data = write_TSP_Reference(newref);\n });\n var row_headers = parse_shallow(store[1][0].data);\n {\n (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {\n var oldref = parse_TSP_Reference(tspref.data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location) {\n arch.push(msg);\n } else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location.replace(/^Root Entry\\//, \"\").replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_add_meta(mlist, newref, newloc);\n numbers_meta_add_dep(mlist, deps, tmaref, newref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tspref.data = write_TSP_Reference(newref);\n });\n }\n store[1][0].data = write_shallow(row_headers);\n var tiles = parse_shallow(store[3][0].data);\n {\n tiles[1].forEach(function(t) {\n var tst = parse_shallow(t.data);\n var oldtileref = parse_TSP_Reference(tst[2][0].data);\n var newtileref = remap[oldtileref];\n if (!remap[oldtileref]) {\n newtileref = get_unique_msgid({ deps: [tmaref], location: \"\", type: deps[oldtileref].type }, deps);\n deps[newtileref].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileref, \".iwa\");\n remap[oldtileref] = newtileref;\n var oldtile = numbers_iwa_find(cfb, deps, oldtileref);\n oldtile.id = newtileref;\n numbers_del_oref(tmaroot, oldtileref);\n numbers_add_oref(tmaroot, newtileref);\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileref, \".iwa\"), compress_iwa_file(write_iwa_file([oldtile])));\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileref)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tst[2][0].data = write_TSP_Reference(newtileref);\n t.data = write_shallow(tst);\n });\n }\n store[3][0].data = write_shallow(tiles);\n }\n tma[4][0].data = write_shallow(store);\n tmaroot.messages[0].data = write_shallow(tma);\n });\n}\nfunction write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {\n var drawables = [];\n numbers_iwa_doit(cfb, deps, rootref, function(docroot) {\n var sheetref = parse_shallow(docroot.messages[0].data);\n {\n sheetref[1] = [{ type: 2, data: stru8(wsname) }];\n drawables = mappa(sheetref[2], parse_TSP_Reference);\n }\n docroot.messages[0].data = write_shallow(sheetref);\n });\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x) {\n return write_numbers_tma(cfb, deps, ws, docroot, x, tmaref);\n });\n}\nvar USE_WIDE_ROWS = true;\nfunction write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {\n if (!ws[\"!ref\"])\n throw new Error(\"Cannot export empty sheet to NUMBERS\");\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 999) {\n trunc = true;\n range.e.c = 999;\n }\n if (range.e.r > 999999) {\n trunc = true;\n range.e.r = 999999;\n }\n if (trunc)\n console.error(\"Truncating to \".concat(encode_range(range)));\n var data = [];\n if (ws[\"!data\"])\n data = ws[\"!data\"];\n else {\n var colstr = [];\n for (var _C = 0; _C <= range.e.c; ++_C)\n colstr[_C] = encode_col(_C);\n for (var R_ = 0; R_ <= range.e.r; ++R_) {\n data[R_] = [];\n var _R = \"\" + (R_ + 1);\n for (_C = 0; _C <= range.e.c; ++_C) {\n var _cell = ws[colstr[_C] + _R];\n if (!_cell)\n continue;\n data[R_][_C] = _cell;\n }\n }\n }\n var LUT = {\n cmnt: [{ a: \"~54ee77S~\", t: \"... the people who are crazy enough to think they can change the world, are the ones who do.\" }],\n ferr: [],\n fmla: [],\n nfmt: [],\n ofmt: [],\n rsst: [{ v: \"~54ee77S~\", l: \"https://sheetjs.com/\" }],\n sst: [\"~Sh33tJ5~\"]\n };\n var pb = parse_shallow(tmaroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {\n var _a;\n var base_bucket = parse_shallow(rowhead.messages[0].data);\n if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0])\n for (var R2 = 0; R2 < data.length; ++R2) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R2);\n _bucket[4][0].data = write_varint49(data[R2].length);\n base_bucket[2][R2] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n rowhead.messages[0].data = write_shallow(base_bucket);\n });\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {\n var base_bucket = parse_shallow(colhead.messages[0].data);\n for (var C = 0; C <= range.e.c; ++C) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n colhead.messages[0].data = write_shallow(base_bucket);\n });\n var rbtree = parse_shallow(store[9][0].data);\n rbtree[1] = [];\n var tilestore = parse_shallow(store[3][0].data);\n {\n var tstride = 256;\n tilestore[2] = [{ type: 0, data: write_varint49(tstride) }];\n var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);\n var save_token = function() {\n var metadata = numbers_iwa_find(cfb, deps, 2);\n var mlist = parse_shallow(metadata.messages[0].data);\n var mlst = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) == tileref;\n });\n return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;\n }();\n {\n CFB.utils.cfb_del(cfb, deps[tileref].location);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3] = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n numbers_meta_del_dep(mlist, deps, tmaref, tileref);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_del_oref(tmaroot, tileref);\n }\n tilestore[1] = [];\n var ntiles = Math.ceil((range.e.r + 1) / tstride);\n for (var tidx = 0; tidx < ntiles; ++tidx) {\n var newtileid = get_unique_msgid({\n deps: [],\n location: \"\",\n type: 6002\n }, deps);\n deps[newtileid].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileid, \".iwa\");\n var tiledata = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride)) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride) }],\n [],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 0, data: write_varint49(USE_WIDE_ROWS ? 1 : 0) }]\n ];\n for (var R = tidx * tstride; R <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R) {\n var tilerow = write_TST_TileRowInfo(data[R], LUT, USE_WIDE_ROWS);\n tilerow[1][0].data = write_varint49(R - tidx * tstride);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tilestore[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx) }],\n [{ type: 2, data: write_TSP_Reference(newtileid) }]\n ]) });\n var newtile = {\n id: newtileid,\n messages: [write_iwam(6002, write_shallow(tiledata))]\n };\n var tilecontent = compress_iwa_file(write_iwa_file([newtile]));\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileid, \".iwa\"), tilecontent);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileid)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(save_token) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data))) }];\n numbers_meta_add_dep(mlist, deps, tmaref, newtileid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, newtileid);\n rbtree[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx * tstride) }],\n [{ type: 0, data: write_varint49(tidx) }]\n ]) });\n }\n }\n store[3][0].data = write_shallow(tilestore);\n store[9][0].data = write_shallow(rbtree);\n store[10] = [{ type: 2, data: new Uint8Array([]) }];\n if (ws[\"!merges\"]) {\n var mergeid = get_unique_msgid({\n type: 6144,\n deps: [tmaref],\n location: deps[tmaref].location\n }, deps);\n tmafile.push({\n id: mergeid,\n messages: [write_iwam(6144, write_shallow([\n [],\n ws[\"!merges\"].map(function(m) {\n return { type: 2, data: write_shallow([\n [],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.s.r, m.s.c]).buffer) }]\n ]) }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.e.r - m.s.r + 1, m.e.c - m.s.c + 1]).buffer) }]\n ]) }]\n ]) };\n })\n ]))]\n });\n store[13] = [{ type: 2, data: write_TSP_Reference(mergeid) }];\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, tmaref, mergeid);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, mergeid);\n } else\n delete store[13];\n var sstref = parse_TSP_Reference(store[4][0].data);\n numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n LUT.sst.forEach(function(str, i) {\n if (i == 0)\n return;\n sstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 2, data: stru8(str) }]\n ]) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n });\n var rsstref = parse_TSP_Reference(store[17][0].data);\n numbers_iwa_doit(cfb, deps, rsstref, function(rsstroot) {\n var rsstdata = parse_shallow(rsstroot.messages[0].data);\n rsstdata[3] = [];\n var style_indices = [\n 904980,\n 903835,\n 903815,\n 903845\n ];\n LUT.rsst.forEach(function(rsst, i) {\n if (i == 0)\n return;\n var tswpsa = [\n [],\n [{ type: 0, data: new Uint8Array([5]) }],\n [],\n [{ type: 2, data: stru8(rsst.v) }]\n ];\n tswpsa[10] = [{ type: 0, data: new Uint8Array([1]) }];\n tswpsa[19] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 18, 2, 101, 110]) }];\n tswpsa[5] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 155, 149, 55]) }];\n tswpsa[2] = [{ type: 2, data: new Uint8Array([8, 148, 158, 55]) }];\n tswpsa[6] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[7] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 135, 149, 55]) }];\n tswpsa[8] = [{ type: 2, data: new Uint8Array([10, 8, 8, 0, 18, 4, 8, 165, 149, 55]) }];\n tswpsa[14] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n tswpsa[24] = [{ type: 2, data: new Uint8Array([10, 6, 8, 0, 16, 0, 24, 0]) }];\n var tswpsaid = get_unique_msgid({ deps: [], location: \"\", type: 2001 }, deps);\n var tswpsarefs = [];\n if (rsst.l) {\n var newhlinkid = numbers_add_msg(cfb, 2032, [\n [],\n [],\n [{ type: 2, data: stru8(rsst.l) }]\n ], \"/Index/Tables/DataList\", deps);\n tswpsa[11] = [];\n var smartfield = [[], []];\n if (!smartfield[1])\n smartfield[1] = [];\n smartfield[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: write_TSP_Reference(newhlinkid) }]\n ]) });\n tswpsa[11][0] = { type: 2, data: write_shallow(smartfield) };\n tswpsarefs.push(newhlinkid);\n }\n numbers_add_msg(cfb, 2001, tswpsa, \"/Index/Tables/DataList\", deps, tswpsaid);\n numbers_iwa_doit(cfb, deps, tswpsaid, function(iwa) {\n style_indices.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n tswpsarefs.forEach(function(ref) {\n return numbers_add_oref(iwa, ref);\n });\n });\n var rtpaid = numbers_add_msg(cfb, 6218, [\n [],\n [{ type: 2, data: write_TSP_Reference(tswpsaid) }],\n [],\n [{ type: 2, data: new Uint8Array([13, 255, 255, 255, 0, 18, 10, 16, 255, 255, 1, 24, 255, 255, 255, 255, 7]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, rtpaid, function(iwa) {\n return numbers_add_oref(iwa, tswpsaid);\n });\n rsstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(rtpaid) }]\n ]) });\n numbers_add_oref(rsstroot, rtpaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, rsstref, rtpaid);\n numbers_meta_add_dep(mlist, deps, rtpaid, tswpsaid);\n numbers_meta_add_dep(mlist, deps, tswpsaid, tswpsarefs);\n numbers_meta_add_dep(mlist, deps, tswpsaid, style_indices);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n rsstroot.messages[0].data = write_shallow(rsstdata);\n });\n if (LUT.cmnt.length > 1) {\n var cmntref = parse_TSP_Reference(store[19][0].data);\n var authors = {}, iauthor = 0;\n numbers_iwa_doit(cfb, deps, cmntref, function(cmntroot) {\n var cmntdata = parse_shallow(cmntroot.messages[0].data);\n {\n cmntdata[3] = [];\n LUT.cmnt.forEach(function(cc, i) {\n if (i == 0)\n return;\n var replies = [];\n if (cc.replies)\n cc.replies.forEach(function(c) {\n if (!authors[c.a || \"\"])\n authors[c.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(c.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid2 = authors[c.a || \"\"];\n var csaid2 = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(c.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid2) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid2, function(iwa) {\n return numbers_add_oref(iwa, aaaid2);\n });\n replies.push(csaid2);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, csaid2, aaaid2);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n if (!authors[cc.a || \"\"])\n authors[cc.a || \"\"] = numbers_add_msg(cfb, 212, [\n [],\n [{ type: 2, data: stru8(cc.a || \"\") }],\n [{ type: 2, data: get_author_color(++iauthor) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ], \"/Index/Tables/DataList\", deps);\n var aaaid = authors[cc.a || \"\"];\n var csaid = numbers_add_msg(cfb, 3056, [\n [],\n [{ type: 2, data: stru8(cc.t || \"\") }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 1, data: new Uint8Array([0, 0, 0, 128, 116, 109, 182, 65]) }]\n ]) }],\n [{ type: 2, data: write_TSP_Reference(aaaid) }],\n replies.map(function(r) {\n return { type: 2, data: write_TSP_Reference(r) };\n }),\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(0) }]\n ]) }]\n ], \"/Index/Tables/DataList\", deps);\n numbers_iwa_doit(cfb, deps, csaid, function(iwa) {\n numbers_add_oref(iwa, aaaid);\n replies.forEach(function(r) {\n return numbers_add_oref(iwa, r);\n });\n });\n cmntdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [{ type: 2, data: write_TSP_Reference(csaid) }]\n ]) });\n numbers_add_oref(cmntroot, csaid);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n numbers_meta_add_dep(mlist, deps, cmntref, csaid);\n numbers_meta_add_dep(mlist, deps, csaid, aaaid);\n if (replies.length)\n numbers_meta_add_dep(mlist, deps, csaid, replies);\n ai.messages[0].data = write_shallow(mlist);\n });\n });\n }\n cmntdata[2][0].data = write_varint49(LUT.cmnt.length + 1);\n cmntroot.messages[0].data = write_shallow(cmntdata);\n });\n }\n }\n pb[4][0].data = write_shallow(store);\n }\n tmaroot.messages[0].data = write_shallow(pb);\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction parse_sheet_legacy_drawing(sheet, type, zip, path, idx, opts, wb, comments) {\n\tif(!sheet || !sheet['!legdrawel']) return;\n\tvar dfile = resolve_path(sheet['!legdrawel'].Target, path);\n\tvar draw = getzipstr(zip, dfile, true);\n\tif(draw) parse_vml(utf8read(draw), sheet, comments||[]);\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar comments = [], tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t\tparse_sheet_legacy_drawing(_ws, stype, zip, path, idx, opts, wb, comments);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip, opts);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip, opts);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tvar index_zip = CFB.find(zip, 'Index.zip');\n\t\tif(index_zip) {\n\t\t\topts = dup(opts);\n\t\t\tdelete opts.type;\n\t\t\tif(typeof index_zip.content == \"string\") opts.type = \"binary\";\n\t\t\t// TODO: Bun buffer bug\n\t\t\tif(typeof Bun !== \"undefined\" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);\n\t\t\treturn readSync(index_zip.content, opts);\n\t\t}\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\", opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/[\\S\\s]*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\t// TODO: pass back content types metadata for xlsm/xlsx resolution\n\tout.bookType = xlsb ? \"xlsb\" : \"xlsx\";\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip_xlsb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"bin\";\n\tvar vbafmt = true;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_bin(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_bin(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_bin(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_bin(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tvar ww = write_theme(wb.Themes, opts);\n\tzip_add_file(zip, f, ww);\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_bin(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_bin());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\tif(typeof ArrayBuffer !== \"undefined\" && data instanceof ArrayBuffer) d = new Uint8Array(data);\n\td = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(1200, d.slice(2), 'str') : (\n\t\t(has_buf && Buffer.isBuffer(data)) ? data.slice(2).toString(\"utf16le\") :\n\t\t(typeof Uint8Array !== \"undefined\" && d instanceof Uint8Array) ? (\n\t\t\ttypeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\").decode(d.slice(2)) : utf16lereadu(d.slice(2))\n\t\t) : utf16leread(d.slice(2))\n\t);\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(o.codepage && typeof $cptable === \"undefined\") console.error(\"Codepage tables are not loaded. Non-ASCII characters may not give expected results\");\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return rtf_to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t\tcase 0x08: if(n[1] === 0xE7) throw new Error(\"Unsupported Multiplan 1.x file!\"); break;\n\t\tcase 0x0C:\n\t\t\tif(n[1] === 0xEC) throw new Error(\"Unsupported Multiplan 2.x file!\");\n\t\t\tif(n[1] === 0xED) throw new Error(\"Unsupported Multiplan 3.x file!\");\n\t\t\tbreak;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tswitch(opts.bookType) {\n\t\tcase \"ods\": return write_ods(wb, opts);\n\t\tcase \"numbers\": return write_numbers_iwa(wb, opts);\n\t\tcase \"xlsb\": return write_zip_xlsb(wb, opts);\n\t\tdefault: return write_zip_xlsx(wb, opts);\n\t}\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode_pass(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true, dense = (sheet[\"!data\"] != null);\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[\"!data\"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[cols[C] + rr];\n\t\tif(val == null || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'b':\n\t\t\tcase 'n': if(!val.z || !fmt_is_date(val.z)) break;\n\t\t\tv = numdate(v); // TODO: date1904 setting should also be stored in worksheet object\n\t\t\tif(typeof v == \"number\") break;\n\t\t\t/* falls through */\n\t\t\tcase 'd': if(!(o && (o.UTC||(o.raw === false)))) v = utc_to_local(new Date(v)); break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = (val.t === 'n' && typeof o.rawNumbers === 'boolean' ? o.rawNumbers : raw) ? v : format_cell(val, v, o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tvar dense = sheet[\"!data\"] != null;\n\tvar datarow = dense && sheet[\"!data\"][R] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = dense ? datarow[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.strip) while(row[row.length - 1] === \"\") --row.length;\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = sheet[\"!data\"] != null;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({});\n\tif(!_ws && dense) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\tvar ROW = [];\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tif(dense && !ws[\"!data\"][_R + R + offset]) ws[\"!data\"][_R + R + offset] = [];\n\t\tif(dense) ROW = ws[\"!data\"][_R + R + offset];\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = dense ? \"\" : (encode_col(_C + C) + encode_row(_R + R + offset));\n\t\t\tvar cell/*:Cell*/ = dense ? ROW[_C + C] : ws[ref];\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tif(dense) ROW[_C + C] = v;\n\t\t\t\telse ws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.UTC) v = local_to_utc(v);\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (cell != null && cell.z && fmt_is_date(cell.z)) ? cell.z : (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) {\n\t\t\t\t\tif(!dense) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t\telse ROW[_C + C] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t} else {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(dense && !ws[\"!data\"][_R]) ws[\"!data\"][_R] = [];\n\tif(offset) for(C = 0; C < hdr.length; ++C) {\n\t\tif(dense) ws[\"!data\"][_R][C + _C] = {t:'s', v:hdr[C]};\n\t\telse ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\t}\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\tif(ws[\"!data\"] != null) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[\"!data\"][RC.r]) ws[\"!data\"][RC.r] = [];\n\t\t\treturn ws[\"!data\"][RC.r][RC.c] || (ws[\"!data\"][RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_col(C||0) + encode_row(R));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank or single-sheet workbook object */\nfunction book_new(ws/*:?Worksheet*/, wsname/*:?string*/)/*:Workbook*/ {\n\tvar wb = { SheetNames: [], Sheets: {} };\n\tif(ws) book_append_sheet(wb, ws, wsname || \"Sheet1\");\n\treturn wb;\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0 && name.length < 32) {\n\t\tvar m = name.match(/\\d+$/); // at this point, name length is capped at 32\n\t\ti = m && +m[0] || 0;\n\t\tvar root = m && name.slice(0, m.index) || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\tvar wsr = decode_range(ws[\"!ref\"]);\n\tif(wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;\n\tif(wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;\n\tif(wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;\n\tif(wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;\n\tws[\"!ref\"] = encode_range(wsr);\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_new: sheet_new,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n\tset_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\nexport default {\n\tparse_xlscfb,\n\tparse_zip,\n\tread: readSync,\n\treadFile: readFileSync,\n\treadFileSync,\n\twrite: writeSync,\n\twriteFile: writeFileSync,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteXLSX: writeSyncXLSX,\n\twriteFileXLSX: writeFileSyncXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\tstream: __stream,\n\tSSF,\n\tCFB\n}\n","import { modifier } from 'ember-modifier';\nexport default modifier void, (destroying: Element) => void]>(\n (element, [inserted, destroying]) => {\n inserted(element);\n return () => {\n if (destroying) {\n destroying(element);\n }\n };\n },\n { eager: false },\n);\n","import * as XLSX from 'xlsx';\nimport type { DeviceColumn, DeviceData } from '../components/aditools-device-table.ts';\nimport { downloadFile } from './download.ts';\n\n////////////////////////////////////////////////////////////////////////////////////\n// export-to-excel - Class containing functions for export to excel (xlsx format) //\n////////////////////////////////////////////////////////////////////////////////////\n\nexport default {\n ////////////////////////////////////////////////////////////////////////////////\n // Functions //\n ////////////////////////////////////////////////////////////////////////////////\n\n getVersion(): string {\n return XLSX.version;\n },\n exportTable(\n columns: DeviceColumn[],\n rows: DeviceData[],\n locale: string,\n dataSourceName: string | undefined,\n ): void {\n const workBook = XLSX.utils.book_new();\n const now = new Date();\n const createDateStamp =\n ('0' + (now.getMonth() + 1)).slice(-2) +\n '/' +\n ('0' + now.getDate()).slice(-2) +\n '/' +\n now.getFullYear() +\n ' ' +\n ('0' + (((now.getHours() + 11) % 12) + 1)).slice(-2) +\n ':' +\n ('0' + now.getMinutes()).slice(-2) +\n ':' +\n ('0' + now.getSeconds()).slice(-2) +\n ' ' +\n (now.getHours() >= 12 ? 'PM' : 'AM');\n workBook.Props = {\n Title: 'Table Export',\n Subject: 'Exporting Table Data',\n CreatedDate: now,\n };\n workBook.SheetNames.push('Cover');\n workBook.SheetNames.push('Web Display');\n workBook.SheetNames.push('Raw Data Display');\n\n // Build Cover\n const coverData: Array> = [];\n coverData.push(['Date Created:', createDateStamp]);\n coverData.push(['Product Type:', dataSourceName ? dataSourceName : '']);\n\n // Build Display and Raw Worksheets\n const displaySheetData: Array> = [];\n const rawSheetData: Array> = [];\n const headerNameRowLine: Array = [];\n const headerContextRowLine: Array = [];\n const headerUnitRowLine: Array = [];\n\n columns.forEach((column) => {\n const name = column.name + (column.minMaxTyp ? ` (${column.minMaxTyp})` : '');\n const context = column.fieldContext ? column.fieldContext : '';\n const unit = column.unit && column.unit !== 'n/a' ? column.unit : '';\n headerNameRowLine.push(name);\n headerContextRowLine.push(context);\n headerUnitRowLine.push(unit);\n });\n\n const hasContextRow = headerContextRowLine.filter((item) => item !== '').length > 0;\n displaySheetData.push(headerNameRowLine);\n rawSheetData.push(headerNameRowLine);\n if (hasContextRow) {\n displaySheetData.push(headerContextRowLine);\n rawSheetData.push(headerContextRowLine);\n }\n displaySheetData.push(headerUnitRowLine);\n rawSheetData.push(headerUnitRowLine);\n rows.forEach((row) => {\n const rawRow: Array = [];\n const displayRow: Array = [];\n columns.forEach((column) => {\n if (column.id !== '0') {\n const displayId = row['display_' + column.id] ? 'display_' + column.id : (column.id as string);\n const rawId = row['value_' + column.id] ? 'value_' + column.id : (column.id as string);\n const displayField: string = row[displayId]\n ? Array.isArray(row[displayId])\n ? ((row[displayId] as Array).join(', ') as string)\n : (row[displayId] as string)\n : '';\n const rawField: string | number = row[rawId]\n ? Array.isArray(row[rawId])\n ? ((row[rawId] as Array).join(', ') as string)\n : typeof row[rawId] === 'number'\n ? (row[rawId] as number)\n : (row[rawId] as string)\n : '';\n displayRow.push(displayField);\n rawRow.push(rawField);\n } else {\n displayRow.push(row['partNumber'] as string);\n rawRow.push(row['partNumber'] as string);\n }\n });\n displaySheetData.push(displayRow);\n rawSheetData.push(rawRow);\n });\n workBook.Sheets['Cover'] = XLSX.utils.aoa_to_sheet(coverData);\n workBook.Sheets['Web Display'] = XLSX.utils.aoa_to_sheet(displaySheetData);\n workBook.Sheets['Raw Data Display'] = XLSX.utils.aoa_to_sheet(rawSheetData);\n\n // Add links to the part numbers\n const wRange = XLSX.utils.decode_range(workBook.Sheets['Web Display']['!ref'] as string);\n const rowCount = wRange.e.r - wRange.s.r + 1;\n const dataStartRow = hasContextRow ? 4 : 3;\n for (let i = dataStartRow; i <= rowCount; i++) {\n const cell = 'A' + i.toString();\n workBook.Sheets['Web Display'][cell].l = {\n Target: 'https://www.analog.com/' + locale + '/' + workBook.Sheets['Web Display'][cell].v,\n };\n workBook.Sheets['Raw Data Display'][cell].l = {\n Target: 'https://www.analog.com/' + locale + '/' + workBook.Sheets['Raw Data Display'][cell].v,\n };\n }\n\n // Format Column Widths for Cover\n let columnMaxLength: Array = [];\n coverData.forEach((arr) => {\n arr.forEach((value, key) => {\n columnMaxLength[key] = Math.max(columnMaxLength[key] ?? 0, value.length);\n });\n });\n workBook.Sheets['Cover']['!cols'] = columnMaxLength.map((width) => {\n return { width: width + 2 };\n });\n\n // Format Column Widths for Web Display\n columnMaxLength = [];\n displaySheetData.forEach((arr) => {\n arr.forEach((value, key) => {\n columnMaxLength[key] = Math.max(columnMaxLength[key] ?? 0, value.length);\n });\n });\n workBook.Sheets['Web Display']['!cols'] = columnMaxLength.map((width) => {\n return { width: width + 2 };\n });\n\n // Format Column Widths for Raw Display\n columnMaxLength = [];\n rawSheetData.forEach((arr) => {\n arr.forEach((value, key) => {\n let len = 0;\n switch (typeof value) {\n case 'number':\n len = 10;\n break;\n case 'string':\n len = value.length;\n break;\n default:\n len = 10;\n break;\n }\n columnMaxLength[key] = Math.max(columnMaxLength[key] ?? 0, len);\n });\n });\n workBook.Sheets['Raw Data Display']['!cols'] = columnMaxLength.map((width) => {\n return { width: width + 2 };\n });\n downloadFile(\n 'application/octet-stream',\n 'Export.xlsx',\n new Blob([XLSX.write(workBook, { type: 'array', bookType: 'xlsx' })]),\n );\n },\n};\n","// Remove extension of Navigator (and code below that uses msSaveBlob) when we're really, truly done with IE11 support\ndeclare global {\n interface Navigator {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n msSaveBlob: (blob: any, defaultName?: string) => boolean;\n }\n}\n\nexport function downloadFile(contentType: string, fileName: string, fileData: Blob | null): boolean {\n let success = false;\n if (fileData) {\n const blob = new Blob([fileData], { type: contentType });\n if (typeof window.navigator.msSaveBlob !== 'undefined') {\n window.navigator.msSaveBlob(blob, fileName);\n } else {\n const URL = window.URL || window.webkitURL;\n const downloadUrl: string = URL.createObjectURL(blob);\n\n if (fileName) {\n const a = document.createElement('a');\n a.setAttribute('id', 'download-design-link');\n if (typeof a.download === 'undefined') {\n window.location.href = downloadUrl;\n } else {\n a.href = downloadUrl;\n a.download = fileName;\n a.click();\n }\n } else {\n window.location.href = downloadUrl;\n }\n URL.revokeObjectURL(downloadUrl);\n }\n success = true;\n }\n\n return success;\n}\n","/**!\n * Sortable 1.15.3\n * @author\tRubaXa \n * @author\towenm \n * @license MIT\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n 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}\n\nvar version = \"1.15.3\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n return false;\n}\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\nfunction css(el, prop, val) {\n var style = el && el.style;\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n } while (!selfOnly && (el = el.parentNode));\n }\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n return list;\n }\n return [];\n}\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode;\n\n // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect();\n\n // Set relative to edges of padding box of container\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n } while (container = container.parentNode);\n }\n }\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n\n /* jshint boss:true */\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n currentChild++;\n }\n i++;\n }\n return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n var index = 0;\n if (!el || !el.parentNode) {\n return -1;\n }\n\n /* jshint boss:true */\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n } while (elem = elem.parentNode);\n return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n var rect = {};\n Array.from(container.children).forEach(function (child) {\n var _rect$left, _rect$top, _rect$right, _rect$bottom;\n if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n var childRect = getRect(child);\n rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n });\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n // If animating: compensate for current animation\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n target.toRect = toRect;\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n }\n\n // if fromRect != toRect: animate\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n if (!time) {\n time = _this.options.animation;\n }\n _this.animate(target, animatingRect, toRect, time);\n }\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n this.forRepaintDummy = repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\nfunction repaint(target) {\n return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n plugins.forEach(function (p) {\n if (p.pluginName === plugin.pluginName) {\n throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n }\n });\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n this.eventCanceled = false;\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return;\n // Fire global events if it exists in this sortable\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n\n // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread2({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized;\n\n // Add default options from plugin\n _extends(defaults, initialized.defaults);\n });\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return;\n\n // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, _excluded);\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread2({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\n ghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n\n _silent = false,\n savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\n supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return;\n // false when <= IE11\n if (IE11OrLess) {\n return false;\n }\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n }(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n },\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n },\n /**\r\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n * @param {Number} x X position\r\n * @param {Number} y Y position\r\n * @return {HTMLElement} Element of the first found nearest Sortable\r\n */\n _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n var threshold = sortable[expando].options.emptyInsertThreshold;\n if (!threshold || lastChild(sortable)) return;\n var rect = getRect(sortable),\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n if (insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n },\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n var group = {};\n var originalGroup = options.group;\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n },\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n },\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n if (nearest) {\n // Create imitation event\n var event = {};\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n nearest[expando]._onDragOver(event);\n }\n }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n\n/**\r\n * @class Sortable\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n this.el = el; // root element\n this.options = options = _extends({}, options);\n\n // Export instance\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults);\n\n // Set default options\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n _prepareGroup(options);\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n // Setup drag mode\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n }\n\n // Bind events\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n sortables.push(this.el);\n\n // Restore sorting\n options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n // Add animation state manager\n _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n if (!evt.cancelable) return;\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n _saveInputCheckedState(el);\n\n // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n if (dragEl) {\n return;\n }\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n }\n\n // cancel dnd if original target is content editable\n if (originalTarget.isContentEditable) {\n return;\n }\n\n // Safari ignores further event handling after mousedown\n if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n return;\n }\n target = closest(target, options.draggable, el, false);\n if (target && target.animated) {\n return;\n }\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n }\n\n // Get the index of the dragged element within its parent\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable);\n\n // Check filter\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n }\n\n // Prepare `dragstart`\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n _this._onDrop();\n return;\n }\n // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n _this._disableDelayedDragEvents();\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n }\n\n // Bind the events: dragstart/dragend\n _this._triggerDragStart(evt, touch);\n\n // Drag start event\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n });\n\n // Chosen item\n toggleClass(dragEl, options.chosenClass, true);\n };\n\n // Disable \"draggable\"\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop);\n\n // Make dragEl draggable (must be before delay for FireFox)\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n pluginEvent('delayStart', this, {\n evt: evt\n });\n\n // Delay is impossible for native DnD in Edge or IE\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n var touch = e.touches ? e.touches[0] : e;\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n awaitingDragStarted = false;\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n var options = this.options;\n\n // Apply effect\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost();\n\n // Drag start event\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n _hideGhostForTarget();\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n target = parent; // store last element\n }\n /* jshint boss:true */ while (parent = getParentOrHost(parent));\n }\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n // only set the status to dragging, when we are actually dragging\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n this._onDragStart(evt, true);\n }\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options;\n\n // Position absolutely\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl);\n\n // Set transform-origin\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n var _this = this;\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n if (Sortable.eventCanceled) {\n this._onDrop();\n return;\n }\n pluginEvent('setupClone', this);\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.removeAttribute(\"id\");\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n this._hideClone();\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n }\n\n // #1143: IFrame support workaround\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n _this._hideClone();\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true);\n\n // Set proper drop events\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n on(document, 'drop', _this);\n\n // #1276 fix:\n css(dragEl, 'transform', 'translateZ(0)');\n }\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver( /**Event*/evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n if (_silent) return;\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread2({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n }\n\n // Capture animation state\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n _this.captureAnimationState();\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n }\n\n // Return invocation when dragEl is inserted (or completed)\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n }\n\n // Animation\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n }\n\n // Null lastTarget if it is not inside a previously swapped element\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n }\n\n // no bubbling and not fallback\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n // Do not detect for empty insert if already inserted\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n }\n\n // Call when dragEl has been inserted\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n ignoreNextClick = false;\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n if (revert) {\n parentEl = rootEl; // actualization\n capture();\n this._hideClone();\n dragOverEvent('revert');\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n return completed(true);\n }\n var elLastChild = lastChild(el, options.draggable);\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // Insert to end of list\n\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n }\n\n // if there is a last element, it is the target\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n if (target) {\n targetRect = getRect(target);\n }\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n if (elLastChild && elLastChild.nextSibling) {\n // the last draggable element is not the last node\n el.insertBefore(dragEl, elLastChild.nextSibling);\n } else {\n el.appendChild(dragEl);\n }\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n // Insert to start of list\n var firstChild = getChild(el, 0, options, true);\n if (firstChild === dragEl) {\n return completed(false);\n }\n target = firstChild;\n targetRect = getRect(target);\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n capture();\n el.insertBefore(dragEl, firstChild);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n }\n // If dragEl is already beside target: Do not insert\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n }\n\n // Undo chrome's scroll adjustment (has no effect on other browsers)\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n parentEl = dragEl.parentNode; // actualization\n\n // must be done before animation\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n changed();\n return completed(true);\n }\n }\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop( /**Event*/evt) {\n var el = this.el,\n options = this.options;\n\n // Get the index of the dragged element within its parent\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode;\n\n // Get again after plugin event\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n if (Sortable.eventCanceled) {\n this._nulling();\n return;\n }\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n _cancelNextTick(this.cloneId);\n _cancelNextTick(this._dragStartId);\n\n // Unbind events\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n this._offMoveEvents();\n this._offUpEvents();\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n css(dragEl, 'transform', '');\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n _disableDraggable(dragEl);\n dragEl.style['will-change'] = '';\n\n // Remove classes\n // ghostClass is added in dragStarted\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n toggleClass(dragEl, this.options.chosenClass, false);\n\n // Drag stop event\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n // Remove event\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // drag from one list and drop into another\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n });\n\n // Save sorting\n this.save();\n }\n }\n }\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent( /**Event*/evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n break;\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n _globalDragOver(evt);\n }\n break;\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n /**\r\n * Serializes the item into an array of string.\r\n * @returns {String[]}\r\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n for (; i < n; i++) {\n el = children[i];\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n return order;\n },\n /**\r\n * Sorts the elements according to the array.\r\n * @param {String[]} order order of the items\r\n */\n sort: function sort(order, useAnimation) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n useAnimation && this.captureAnimationState();\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n useAnimation && this.animateAll();\n },\n /**\r\n * Save the current sorting\r\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n /**\r\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n * @param {HTMLElement} el\r\n * @param {String} [selector] default: `options.draggable`\r\n * @returns {HTMLElement|null}\r\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n /**\r\n * Set/get option\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {*}\r\n */\n option: function option(name, value) {\n var options = this.options;\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n /**\r\n * Destroy\r\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n }\n // Remove draggable attributes\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n this._onDrop();\n this._disableDelayedDragEvents();\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n return;\n }\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return;\n\n // show clone at dragEl or original position\n if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\nfunction _globalDragOver( /**Event*/evt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal;\n // Support for new CustomEvent feature\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n return retVal;\n}\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\nfunction _unsilent() {\n _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n var spacer = 10;\n return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n invert = invert || invertSwap;\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\r\n * @return {Number} Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n\n/**\r\n * Generate id\r\n * @param {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n while (i--) {\n sum += str.charCodeAt(i);\n }\n return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n}\n\n// Export utils\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild,\n expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param {HTMLElement} element The element\r\n * @return {Sortable|undefined} The instance of Sortable\r\n */\nSortable.get = function (element) {\n return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\r\n */\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement} el\r\n * @param {Object} [options]\r\n */\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n forceAutoScrollFallback: false,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n };\n\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt;\n\n // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback);\n\n // Listener for pointer element change\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval();\n // Detect for pointer elem change, emulating native DnD behaviour\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn;\n\n // New scroll root, set scrollEl\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n var layersOut = 0;\n var currentParent = scrollEl;\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n }\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\nfunction Revert() {}\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n this.sortable.animateAll();\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\n multiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\n folding = false,\n // Folding any other time\n dragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n if (!sortable.options.avoidImplicitDeselect) {\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n }\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n avoidImplicitDeselect: false,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n dataTransfer.setData('Text', data);\n }\n };\n }\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n sortable._hideClone();\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n });\n\n // Sort multi-drag elements\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n\n sortable.captureAnimationState();\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n }\n\n // Remove all auxiliary multidrag items from el, if sorting enabled\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n initialFolding = false;\n // If leaving sort:false root, or already folding - Fold to new location\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute);\n\n // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n }\n\n // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n activeSortable._showClone(sortable);\n\n // Unfold animation for clones if showing from hidden\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children;\n\n // Multi-drag selection\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n\n // Modifier activated, select from last to dragEl\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvent: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvent: evt\n });\n }\n }\n\n // Multi-drag drop\n if (dragStarted && this.isMultiDrag) {\n folding = false;\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect;\n\n // Prepare unfold animation\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n }\n\n // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n multiDragIndex++;\n });\n\n // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n if (update) {\n dispatchSortableEvent('update');\n dispatchSortableEvent('sort');\n }\n }\n }\n\n // Must be done after capturing individual rects (scroll bar)\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n multiDragSortable = toSortable;\n }\n\n // Remove clones if necessary\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n // Only deselect if selection is in this sortable\n if (multiDragSortable !== this.sortable) return;\n\n // Only deselect if target is not item in this sortable\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n // Only deselect if left click\n if (evt && evt.button !== 0) return;\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvent: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n multiDragSortable = sortable;\n }\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n });\n\n // multiDragElements will already be sorted if folding\n var newIndex;\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n return key;\n }\n }\n });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","import $ from 'jquery';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport AditoolsRenderer from '../modifiers/aditools-renderer.ts';\nimport Comparator from '../utils/comparator.ts';\nimport MessageFormat from '@messageformat/core';\nimport exportToExcel from '../utils/export-to-excel.ts';\nimport 'slickgrid/dist/styles/css/slick-icons.css';\nimport 'slickgrid/dist/styles/css/slick-alpine-theme.css';\nimport Sortable from 'sortablejs';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace globalThis {\n // eslint-disable-next-line no-var\n var Sortable: unknown;\n }\n}\nimport { SlickDataView, SlickGrid, SlickRowSelectionModel } from 'slickgrid';\n\nimport type {\n GridOption,\n Column,\n ColumnSort,\n SlickEventData,\n OnRowsChangedEventArgs,\n OnHeaderCellRenderedEventArgs,\n OnHeaderRowCellRenderedEventArgs,\n OnHeaderMouseEventArgs,\n OnRowCountChangedEventArgs,\n SingleColumnSort,\n MultiColumnSort,\n} from 'slickgrid';\n\nglobalThis.Sortable = Sortable;\n\nconst TRANSLATIONS = {\n en: {\n choose: 'Choose Parameters',\n all: 'All',\n table: 'Reset Table',\n sort: 'Sort By Newest',\n export: 'Download To Excel',\n },\n cn: {\n choose: '选择参数',\n all: '全部选择',\n table: '重置表格',\n sort: '按最新排序',\n export: '下载到 Excel',\n },\n jp: {\n choose: 'パラメータを選ぶ',\n all: 'すべて選択',\n table: 'リストを元に戻す',\n sort: '新着順にソート',\n export: 'エクセルにダウンロード',\n },\n ru: {\n choose: 'Choose Parameters',\n all: 'All',\n table: 'Reset Table',\n sort: 'Sort By Newest',\n export: 'Download To Excel',\n },\n /*\n ru: {\n choose: 'Выбрать Параметры',\n all: 'Все',\n table: 'Восстановить таблицу',\n sort: 'Сортировать по Новейшим',\n export: 'Загрузить в Excel',\n },\n */\n};\n\n// Our interfaces\nexport type DeviceData = Record;\n\nexport type DeviceComparator = (first: T, second: T) => 1 | 0 | -1;\n\nexport interface ColumnFilter {\n populate(column: Column): HTMLElement;\n update(control: HTMLElement): void;\n filter(value: unknown): boolean;\n unpack(value: string): void;\n pack(): string;\n reset(): void;\n hasValue(): boolean;\n}\nexport interface FieldValues {\n value: string;\n display: string;\n match?: string;\n}\nexport interface DeviceTableSort {\n field: string;\n sortAsc: boolean;\n comparator?: DeviceComparator;\n}\nexport interface SortColumnRef {\n columnId: string;\n sortAsc: boolean;\n}\nexport interface PackedFilterValue {\n columnId: string;\n filter: string;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface DeviceColumn extends Column {\n filter?: ColumnFilter;\n columnValues?: FieldValues[];\n comparator?: DeviceComparator;\n classification?: string;\n isDefault?: boolean;\n unit?: string | null;\n fieldContext?: string | null;\n minMaxTyp?: string | null;\n}\nexport interface DeviceOptions extends GridOption {\n preSort?: DeviceTableSort[];\n parametersPanel?: boolean;\n}\n\ninterface AditoolsDeviceTableArgs {\n data?: DeviceData[];\n columns?: DeviceColumn[];\n options?: DeviceOptions;\n selectedPart?: string;\n rowSelected?: (part: string) => void;\n rowCountChanged?: (newCount: number) => void;\n summaryRowText?: string;\n onChooseParameters?: () => void;\n onAllParameters?: () => void;\n onResetParameters?: () => void;\n locale: string;\n sortColumns?: SortColumnRef[];\n sortChanged?: (sortColumns: SortColumnRef[]) => void;\n filters?: PackedFilterValue[];\n filterChanged?: (filters: PackedFilterValue[]) => void;\n dataSourceName?: string;\n}\n\ninterface AditoolsDeviceTableSignature {\n Args: AditoolsDeviceTableArgs;\n Element: HTMLDivElement;\n Blocks: { default: [] };\n}\nexport default class AditoolsDeviceTable extends Component {\n // Component properties\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n grid!: SlickGrid> | undefined;\n dataView!: SlickDataView;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n columnFilters: Record[]> = {};\n @tracked totalRows = 0;\n @tracked workingRows = 0;\n @tracked hasParametersPanel = false;\n renderer = AditoolsRenderer;\n\n headerColumnRows = 1;\n\n get _data(): DeviceData[] {\n return this.args.data || [];\n }\n\n get _columns(): DeviceColumn[] {\n return this.args.columns || [];\n }\n\n get _rowCountStatus(): string | undefined {\n let result = undefined;\n if (this.args.summaryRowText) {\n const mf = new MessageFormat('*');\n const msg = mf.compile(this.args.summaryRowText);\n result = msg({ count: this.workingRows.toString(), total: this.totalRows.toString() });\n }\n return result;\n }\n\n get _translations(): Record {\n let locale: 'en' | 'cn' | 'jp' | 'ru' = 'en';\n if (\n this.args.locale === 'en' ||\n this.args.locale === 'cn' ||\n this.args.locale === 'jp' ||\n this.args.locale === 'ru'\n ) {\n locale = this.args.locale;\n }\n return TRANSLATIONS[locale as 'en' | 'cn' | 'jp' | 'ru'];\n }\n\n scrollSelectedPartToTop(\n selectedPart: string,\n dataView: SlickDataView,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n grid: SlickGrid>,\n ): void {\n if (selectedPart) {\n let selectedRow = -1;\n const columns = grid.getColumns();\n const nameColumn = columns[0] as Column;\n if (columns.length > 1 && typeof nameColumn['field'] === 'string') {\n const fieldval = nameColumn.field;\n for (let i = 0; i < dataView.getLength(); i++) {\n if (dataView.getItem(i)[fieldval] === selectedPart) {\n selectedRow = i;\n }\n }\n }\n if (selectedRow !== -1) {\n grid.setSelectedRows([selectedRow]);\n setTimeout(() => {\n grid.scrollRowToTop(selectedRow - 1.75);\n }, 0);\n }\n }\n }\n\n sortRows(columns: ColumnSort[]): void {\n // Build the Columns to Sort (includes the pre-sort, if it is available)\n const preSort = this.args.options && this.args.options['preSort'];\n const colsToSort: DeviceTableSort[] = [];\n if (preSort && preSort.length > 0) {\n for (const presortItem of preSort) {\n colsToSort.push({ field: presortItem.field, sortAsc: presortItem.sortAsc, comparator: presortItem.comparator });\n }\n }\n if (columns.length === 0) {\n // Sort by Vintage when there are no columns selected for sort (both vintage and display_s1 refer to the same thing)\n // Legacy data may use 'vintage' but data from PST will use display_s1\n colsToSort.push({ field: 'vintage', sortAsc: false, comparator: Comparator.integerComparator });\n colsToSort.push({ field: 'display_s1', sortAsc: false, comparator: Comparator.integerComparator });\n } else {\n // Sorted Columns\n for (const sortColumn of columns) {\n const column = this.args.columns?.find((col) => col.id == sortColumn.columnId) as DeviceColumn;\n if (column.field) {\n colsToSort.push({\n field: column.field,\n sortAsc: sortColumn.sortAsc,\n comparator: column.comparator,\n });\n }\n }\n }\n\n // Sort the Data View\n this.dataView.sort((dataRow1: DeviceData, dataRow2: DeviceData) => {\n let result = 0;\n for (const column of colsToSort) {\n const field = column.field;\n let comparator: DeviceComparator = Comparator.textComparator;\n const specificComparator = column.comparator;\n if (specificComparator) {\n comparator = specificComparator;\n }\n const sign = column.sortAsc ? 1 : -1;\n const value1 = dataRow1[field],\n value2 = dataRow2[field];\n result = comparator(value1 as string, value2 as string) * sign;\n if (result !== 0) {\n return result;\n }\n }\n return result;\n }, true);\n }\n\n findVisibleColumn(e: Event | SlickEventData, gridObj: SlickGrid): number {\n const cell = gridObj.getCellFromEvent(e);\n const columns = gridObj.getColumns();\n let index = 0; //set to zero at default, for the case where there is no column in the right side of the table.\n if (cell) {\n for (let i = 0; i < columns.length; i++) {\n if (gridObj.getCellNode(cell.row, i + 1)) {\n index = i + 1;\n break;\n }\n }\n }\n return index;\n }\n\n getDesiredRowObject(e: Event | SlickEventData, gridObj: SlickGrid): HTMLElement | null {\n const cell = gridObj.getCellFromEvent(e);\n let result;\n if (cell) {\n if (cell.cell === 0) {\n //left table row is hovered, gets right table row object\n const columnIndex = this.findVisibleColumn(e, gridObj);\n result = gridObj.getCellNode(cell.row, columnIndex)?.parentElement;\n } else {\n result = gridObj.getCellNode(cell.row, 0)?.parentElement;\n }\n }\n return result || null;\n }\n\n getSortColumnRef(sortCols: ColumnSort[]): SortColumnRef[] {\n const sortColumnRefs: SortColumnRef[] = [];\n for (const column of sortCols) {\n const sortCol = column.sortCol;\n if (sortCol && sortCol.id) {\n sortColumnRefs.push({\n columnId: sortCol.id.toString(),\n sortAsc: column.sortAsc,\n });\n }\n }\n return sortColumnRefs;\n }\n\n getSortColumns(sortColRefs: SortColumnRef[], columns: Column[]): ColumnSort[] {\n const sortColumns: ColumnSort[] = [];\n for (const columnRef of sortColRefs) {\n const column = columns?.find((column) => column.id === columnRef.columnId);\n if (column) {\n sortColumns.push({\n columnId: column.id,\n sortAsc: columnRef.sortAsc,\n });\n }\n }\n return sortColumns;\n }\n\n getPackedFilters(columns: Column[]): PackedFilterValue[] {\n const packedFilters: PackedFilterValue[] = [];\n\n if (this.grid) {\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i] as DeviceColumn;\n if (column.id && column.filter) {\n packedFilters.push({ columnId: column.id.toString(), filter: column.filter.pack() });\n }\n }\n }\n\n return packedFilters;\n }\n\n generateTitleFromColumn(column: DeviceColumn): string {\n let numberedMultiColumnSortElem = '';\n const cssRoot = document.querySelector(':root') as HTMLElement;\n if (column.sortable) {\n const options = this.grid?.getOptions();\n numberedMultiColumnSortElem =\n options && options.numberedMultiColumnSort ? '' : '';\n }\n let fieldContextRow = '';\n if (typeof column.fieldContext !== 'undefined') {\n fieldContextRow = `${column.fieldContext}`;\n if (this.headerColumnRows < 2) {\n this.headerColumnRows = 2;\n }\n }\n if (typeof column.unit != 'undefined' && column.unit !== null) {\n this.headerColumnRows =\n this.headerColumnRows === 3 || (this.headerColumnRows === 2 && typeof column.fieldContext !== 'undefined')\n ? 3\n : 2;\n const unitText = column.unit && column.unit != 'n/a' ? column.unit : '';\n const minMaxText = column.minMaxTyp ?? '';\n let contextText = ' ';\n if (unitText !== '' && minMaxText !== '') {\n contextText = `${minMaxText} | ${unitText}`;\n } else if (unitText !== '') {\n contextText = unitText;\n }\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\n return (\n // Avoid newlines in the generated HTML\n '
    ' +\n `${column.name}` +\n `${numberedMultiColumnSortElem}
    ` +\n fieldContextRow +\n `${contextText}
    `\n );\n } else {\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\n if (column.sortable) {\n return (\n `
    ` +\n `${column.name}${numberedMultiColumnSortElem}
    ${fieldContextRow}
    \n `\n );\n } else {\n return `
    ${column.name}${fieldContextRow}
    \n `;\n }\n }\n }\n\n updateCheckboxContainerEvents(column: DeviceColumn): void {\n const filterClass = column.filter;\n // add class to checkbox-container to overlay, then hide\n $('#checkbox-container' + column.id).addClass('overlay-checkbox-container');\n $('#checkbox-container' + column.id).hide();\n\n // handler for checkbox events\n const handleCheckbox = (e: Event) => {\n if (filterClass && this.grid) {\n filterClass.update(e.target as HTMLInputElement);\n // Set args.filters when the filter on a column is changed\n if (column.id) {\n if (this.args.filterChanged) {\n const columns = this.grid.getColumns();\n if (columns) {\n this.args.filterChanged(this.getPackedFilters(columns));\n }\n }\n }\n this.dataView.refresh();\n }\n };\n // attach event to checkbox\n document.getElementById('cbSelectAll_' + column.id)?.addEventListener('click', handleCheckbox);\n document.querySelectorAll('.cbfilter_' + column.id)?.forEach((cb) => {\n cb.addEventListener('click', handleCheckbox);\n });\n\n const filterToggle = $('#checkbox-filter-toggle' + column.id);\n if (filterToggle[0]) {\n const deviceTable = $('#device-table');\n const header = $('.slick-header-columns');\n\n filterToggle.off('mouseover');\n filterToggle.on('mouseover', function () {\n const newLeft = (filterToggle?.offset()?.left as number) - (deviceTable?.offset()?.left as number) + 11,\n newTop =\n (deviceTable?.position().top as number) +\n (header?.outerHeight() as number) +\n (filterToggle?.outerHeight() as number) +\n 4;\n\n $('#checkbox-container' + column.id).css({\n position: 'absolute',\n left: `${newLeft}px`,\n top: `${newTop}px`,\n });\n\n $('#checkbox-container' + column.id).show();\n });\n\n $('#checkbox-filter-toggle' + column.id).off('mouseleave');\n $('#checkbox-filter-toggle' + column.id).on('mouseleave', function () {\n $('#checkbox-container' + column.id).hide();\n });\n\n $('#checkbox-container' + column.id).off('mouseover');\n $('#checkbox-container' + column.id).on('mouseover', function () {\n $('#checkbox-container' + column.id).show();\n });\n\n $('#checkbox-container' + column.id).off('mouseleave');\n $('#checkbox-container' + column.id).on('mouseleave', function () {\n $('#checkbox-container' + column.id).hide();\n });\n }\n }\n\n forceUpdateRowCountIfNeeded(): Promise {\n return Promise.resolve()\n .then(() => {\n return this.dataView;\n })\n .then((dataView) => {\n const dataViewLength = dataView.getLength();\n if (this.workingRows !== dataViewLength) {\n const onRowsChangedArgs: OnRowCountChangedEventArgs = {\n previous: this.workingRows,\n current: dataViewLength,\n itemCount: dataViewLength,\n dataView: dataView,\n callingOnRowsChanged: true,\n };\n dataView.onRowCountChanged.notify(onRowsChangedArgs);\n }\n return;\n });\n }\n\n @action inserted(): void {\n const self = this; //eslint-disable-line @typescript-eslint/no-this-alias\n // Create element-scope objects\n\n console.log('Sortable: ' + JSON.stringify(Sortable));\n\n // Initialize CSS Variable for Header\n const cssRoot = document.querySelector(':root') as HTMLElement;\n this.headerColumnRows = 1;\n cssRoot.style.setProperty('--alpine-header-name-row-count', this.headerColumnRows.toString());\n\n const slickGridOptions = Object.assign({}, this.args.options);\n if (slickGridOptions['preSort']) {\n delete slickGridOptions['preSort'];\n }\n if (slickGridOptions['parametersPanel']) {\n delete slickGridOptions['parametersPanel'];\n }\n\n if (slickGridOptions.multiColumnSort === true) {\n slickGridOptions.numberedMultiColumnSort = true;\n }\n slickGridOptions.tristateMultiColumnSort = true;\n\n this._columns.forEach((c) => c.filter?.reset());\n this.hasParametersPanel = !!(this.args.options ? this.args.options['parametersPanel'] : false);\n this.dataView = new SlickDataView({ inlineFilters: false });\n this.grid = new SlickGrid('#device-table', this.dataView, this._columns, slickGridOptions);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /// @ts-ignore We don't know how to explicitly invoke node_modules/@types/slickgrid/slick.rowselectionmodel.d.ts\n this.grid.setSelectionModel(new SlickRowSelectionModel({ selectActiveRow: true }));\n\n this.dataView.onRowCountChanged.subscribe((/*_e: any, args: any*/) => {\n if (this.grid) {\n if (this.args.rowCountChanged) {\n this.args.rowCountChanged(this.dataView.getLength());\n }\n this.workingRows = this.dataView.getLength();\n this.grid.updateRowCount();\n this.grid.render();\n }\n });\n this.dataView.onRowsChanged.subscribe((_e: SlickEventData, data: OnRowsChangedEventArgs) => {\n if (this.grid) {\n this.grid.invalidateRows(data.rows);\n this.grid.render();\n if (this.args.selectedPart) {\n this.scrollSelectedPartToTop(this.args.selectedPart, this.dataView, this.grid);\n }\n }\n });\n\n // Selection handling\n\n this.grid.onSelectedRowsChanged.subscribe(\n (\n _e: SlickEventData,\n data: {\n rows: number[];\n grid: { getColumns: () => { field?: string }[] };\n },\n ) => {\n const row = this.dataView.getItem(data.rows[0] as number);\n if (row) {\n const column = data.grid.getColumns()[0] as { field: string };\n const newSelection = row[column.field] as string;\n if (this.args.rowSelected) {\n this.args.rowSelected(newSelection);\n } else {\n if ($('.slick-cell.selected').hasClass('selected')) {\n $('.slick-cell.selected').removeClass('selected');\n }\n }\n }\n },\n );\n\n // Custom Row Classes, Disabling\n\n {\n this.dataView.getItemMetadata = function (rowIndex: number) {\n let result = {\n selectable: true,\n focusable: true,\n cssClasses: '',\n };\n if (self.grid) {\n // Get the row object.\n const rowObj = self.grid.getData().getItem(rowIndex);\n\n // Check if the row object is populated.\n if (rowObj) {\n // Disable the row if it's 'not allowed'.\n if (rowObj['disallowed']) {\n result = {\n selectable: rowObj['selectable'] ? (rowObj['selectable'] as boolean) : false,\n focusable: rowObj['focusable'] ? (rowObj['focusable'] as boolean) : false,\n cssClasses: 'disabled ' + (rowObj['cssClasses'] ? rowObj['cssClasses'] : ''),\n };\n } else {\n result = {\n selectable: rowObj['selectable'] ? (rowObj['selectable'] as boolean) : true,\n focusable: rowObj['focusable'] ? (rowObj['focusable'] as boolean) : true,\n cssClasses: rowObj['cssClasses'] ? (rowObj['cssClasses'] as string) : '',\n };\n }\n }\n }\n return result;\n };\n }\n\n // Filtering\n $(this.grid.getHeaderRow()).on('input', ':input', this, function () {\n if (self.grid) {\n const column = self.grid.getColumns()[\n self.grid.getColumnIndex(this.getAttribute('data-column-id'))\n ] as DeviceColumn;\n if (column.filter) {\n column.filter.update(this);\n }\n self.dataView.refresh();\n }\n });\n\n $(this.grid.getHeaderRow()).on('change', ':input', this, function () {\n if (self.grid) {\n const column = self.grid.getColumns()[\n self.grid.getColumnIndex(this.getAttribute('data-column-id'))\n ] as DeviceColumn;\n if (column.filter) {\n column.filter.update(this);\n\n // Set args.filters when the filter on a column is changed\n if (column.id) {\n if (self.args.filterChanged) {\n self.args.filterChanged(self.getPackedFilters(self.grid.getColumns()));\n }\n }\n }\n self.dataView.refresh();\n }\n });\n\n this.grid.onHeaderCellRendered.subscribe((_e: SlickEventData, data: OnHeaderCellRenderedEventArgs) => {\n $(data.node).empty();\n $(self.generateTitleFromColumn(data.column as DeviceColumn)).appendTo(data.node);\n self.forceUpdateRowCountIfNeeded();\n });\n\n // remove checkbox container first in the device-table-overlays\n $('#device-table-overlays').empty();\n this.grid.onHeaderRowCellRendered.subscribe((_e: SlickEventData, data: OnHeaderRowCellRenderedEventArgs) => {\n $(data.node).empty();\n const column = data.column as DeviceColumn;\n const filterClass = column.filter;\n const filters = this.args.filters;\n\n if (filters && filters.length > 0) {\n const packedFilter = filters?.find((filter) => filter.columnId === column.id);\n if (filterClass) {\n if (!filterClass.hasValue()) {\n if (packedFilter) {\n filterClass.unpack(packedFilter.filter);\n } else {\n filterClass.reset();\n }\n }\n }\n } else if (filters === undefined) {\n if (filterClass) {\n if (!filterClass.hasValue()) {\n filterClass.reset();\n }\n }\n }\n\n const selection = filterClass ? filterClass.populate(column) : $();\n if (typeof column.id === 'string') {\n $(selection).data('columnId', column.id).appendTo(data.node);\n }\n\n // update checkbox and events after appending to column row header\n this.updateCheckboxContainerEvents(column);\n });\n\n // Hovering\n this.grid.onMouseEnter.subscribe((_e: SlickEventData, args: OnHeaderMouseEventArgs) => {\n const rowObj = this.getDesiredRowObject(_e, args.grid);\n if (rowObj) {\n $(rowObj).addClass('row-hover');\n if (!$(rowObj).hasClass('even')) {\n $(rowObj).removeClass('odd');\n }\n }\n });\n this.grid.onMouseLeave.subscribe((_e: SlickEventData, args: OnHeaderMouseEventArgs) => {\n const rowObj = this.getDesiredRowObject(_e, args.grid);\n if (rowObj) {\n $(rowObj).removeClass('row-hover');\n if (!$(rowObj).hasClass('even')) {\n $(rowObj).addClass('odd');\n }\n }\n });\n\n // Sorting\n\n this.grid.onSort.subscribe((_e: SlickEventData, data: SingleColumnSort | MultiColumnSort) => {\n const sortCols = data.multiColumnSort\n ? data.sortCols\n : [{ columnId: data.columnId, sortAsc: data.sortAsc, sortCol: data.sortCol }]; // Array of one ColumnSort\n if (this.grid && sortCols) {\n this.sortRows(sortCols);\n\n // Set sortColumns via callback\n if (this.args.sortChanged) {\n this.args.sortChanged(this.getSortColumnRef(sortCols));\n }\n\n this.grid.invalidate();\n this.grid.render();\n }\n });\n\n // Turn on the lights!\n this.grid.init();\n\n // All of the code so far in the modifier has been happening _during_ rendering.\n // We're set up, but we don't want to perform a DataView update while we're still rendering, so punt it a micro-cycle.\n Promise.resolve().then(() => {\n this.dataView.beginUpdate();\n this.dataView.setItems(this._data);\n this.sortRows([]);\n this.totalRows = this._data.length;\n\n // NOTE: The callback for setFilter is actually compiled by SlickGrid, not by Babel.\n // Implications - it needs to be pure vanilla ES5, without accessing a closure.\n // We use setFilterArgs so we can get at the rest of everything\n this.dataView.setFilterArgs({\n selfRef: this,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.dataView.setFilter((item: any, args: any) => {\n const actualArgs = args as { selfRef: AditoolsDeviceTable };\n const actualItem = item as DeviceData;\n if (actualArgs.selfRef.grid) {\n const columns = actualArgs.selfRef.grid.getColumns() as DeviceColumn[];\n return columns.every((column) => {\n return !column.filter || !column.field || column.filter.filter(actualItem[column.field]); // True if either filter or field doesn't exist or it passes\n });\n } else {\n return true;\n }\n });\n\n const sortColRefs = this.args.sortColumns;\n if (sortColRefs && sortColRefs.length > 0) {\n if (this.grid) {\n this.grid.setSortColumns(sortColRefs);\n this.sortRows(this.getSortColumns(sortColRefs, this.grid.getColumns()));\n }\n }\n\n this.dataView.endUpdate();\n if (this.grid) {\n this.dataView.syncGridSelection(this.grid as SlickGrid, true);\n }\n window.addEventListener('resize', this.screenResized);\n // Delay needed on resize so that Firefox gets benefit - the need for it is a hack, anyway\n setTimeout(() => {\n this.screenResized();\n }, 0);\n });\n }\n\n @action destroying(): void {\n window.removeEventListener('resize', this.screenResized);\n if (this.grid) {\n $(this.grid.getHeaderRow()).off('change keyup', ':input');\n this.grid.destroy();\n this.grid = undefined;\n }\n }\n\n @action screenResized(): void {\n if (this.grid) {\n this.grid.resizeCanvas();\n }\n }\n\n @action resetSort(): void {\n if (this.grid) {\n this.sortRows([]);\n this.grid.setSortColumns([]);\n if (this.args.sortChanged) {\n this.args.sortChanged([]);\n }\n }\n }\n\n @action tableRowUpdated(event: Event): void {\n const custEvent = event as CustomEvent<{ id: string }>;\n if (custEvent.detail && custEvent.detail.id) {\n const row = this.dataView.getItemById(custEvent.detail.id);\n this.dataView.updateItem(custEvent.detail.id, row);\n }\n }\n\n // The following invoke callbacks that change the columns array used by the table\n\n @action chooseParameters(): void {\n if (this.args.onChooseParameters) {\n this.args.onChooseParameters();\n }\n }\n\n @action allParameters(): void {\n if (this.args.onAllParameters) {\n this.args.onAllParameters();\n }\n }\n\n @action resetParameters(): void {\n if (this.args.onResetParameters) {\n this.args.onResetParameters();\n }\n }\n\n @action exportTable(): void {\n if (this.grid) {\n const rows = this.grid.getData();\n exportToExcel.exportTable(\n this.grid.getColumns(),\n rows.getFilteredItems(),\n this.args.locale,\n this.args.dataSourceName,\n );\n }\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n AditoolsDeviceTable: typeof AditoolsDeviceTable;\n }\n}\n","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport type { DeviceData, DeviceColumn } from './aditools-device-table.ts';\n\nconst TRANSLATIONS = {\n en: {\n selectAll: 'Select All',\n deselectAll: 'Deselect All',\n default: 'Default',\n },\n cn: {\n selectAll: '全部选择',\n deselectAll: '全部取消',\n default: '默认',\n },\n jp: {\n selectAll: 'すべて選択',\n deselectAll: 'すべての選択を解除',\n default: 'デフォルト',\n },\n ru: {\n selectAll: 'Select All',\n deselectAll: 'Deselect All',\n default: 'Default',\n },\n /*\n ru: {\n selectAll: 'Выбрать все',\n deselectAll: 'Отменить выбор',\n default: 'По умолчанию',\n },\n */\n};\n\ninterface AditoolsParameterSelectorSignature {\n Args: AditoolsParameterSelectorArgs;\n Element: HTMLDivElement;\n}\ninterface AditoolsParameterSelectorArgs {\n locale: string;\n columns: DeviceColumn[];\n selectedColumns: DeviceColumn[];\n selectionChanged: (newColumns: DeviceColumn[]) => void;\n}\n\ninterface SelectorColumn {\n classification: string;\n state: { index: number; selected: boolean }[];\n}\n\nexport default class AditoolsParameterSelector extends Component {\n get selectorColumns(): SelectorColumn[] {\n const columns: SelectorColumn[] = [];\n const classifications = this.getClassifications(this.args.columns);\n classifications.forEach((classification) => {\n const state: { index: number; selected: boolean }[] = [];\n this.args.columns.forEach((column, index) => {\n if (column.classification === classification && column.id !== '0') {\n let selected = !!column.isDefault;\n if (this.args.selectedColumns.length > 0) {\n selected = false;\n this.args.selectedColumns.forEach((item) => {\n if (column.name === item.name && column.minMaxTyp === item.minMaxTyp) {\n selected = true;\n }\n });\n }\n state.push({ index: index, selected: selected });\n }\n });\n if (state.length > 0) {\n columns.push({ classification: classification ?? '', state: state });\n }\n });\n return columns;\n }\n\n getClassifications(columns: DeviceColumn[]): string[] {\n const classifications: string[] = [];\n columns.forEach((column) => {\n if (column.classification) {\n if (classifications.length === 0) {\n classifications.push(column.classification);\n }\n if (!classifications.includes(column.classification)) {\n classifications.push(column.classification);\n }\n }\n });\n return classifications.sort();\n }\n\n get _translations(): Record {\n let locale: 'en' | 'cn' | 'jp' | 'ru' = 'en';\n if (\n this.args.locale === 'en' ||\n this.args.locale === 'cn' ||\n this.args.locale === 'jp' ||\n this.args.locale === 'ru'\n ) {\n locale = this.args.locale;\n }\n return TRANSLATIONS[locale as 'en' | 'cn' | 'jp' | 'ru'];\n }\n\n @action selectAllParameters(): void {\n const checkboxes = document.querySelectorAll('.parameter-selector-checkbox>input[type=checkbox]');\n checkboxes.forEach((checkbox) => {\n (checkbox as HTMLInputElement).checked = true;\n });\n\n if (this.args.selectionChanged) {\n this.args.selectionChanged(this.args.columns);\n }\n }\n\n @action deselectAllParameters(): void {\n const checkboxes = document.querySelectorAll('.parameter-selector-checkbox>input[type=checkbox]');\n checkboxes.forEach((checkbox) => {\n const splitId = checkbox.id.split('_');\n const index = parseInt(splitId[1] ?? '-1'); // The ?? clause will never happen because the id carries the column index\n // ensures checkbox element for \"Part Name\" is checked\n if (index != 0) {\n (checkbox as HTMLInputElement).checked = false;\n }\n });\n if (this.args.selectionChanged) {\n this.args.selectionChanged(\n this.args.columns.filter((x) => {\n return x.id == '0';\n }),\n );\n }\n }\n\n @action defaultParameters(): void {\n const checkboxes = document.querySelectorAll('.parameter-selector-checkbox>input[type=checkbox]');\n checkboxes.forEach((checkbox) => {\n const splitId = checkbox.id.split('_');\n const index = parseInt(splitId[1] ?? '-1'); // The ?? clause will never happen because the id carries the column index\n const column = this.args.columns[index];\n (checkbox as HTMLInputElement).checked = !!column && !!column.isDefault;\n });\n\n if (this.args.selectionChanged) {\n this.args.selectionChanged(\n this.args.columns.filter((x) => {\n return x.isDefault;\n }),\n );\n }\n }\n\n @action selectionChanged(): void {\n if (this.args.selectionChanged) {\n const newColumns: DeviceColumn[] = this.args.columns.filter((x) => {\n return x.id == '0'; // Columns should always include the part number\n });\n const checkboxes = document.querySelectorAll('.parameter-selector-checkbox>input[type=checkbox]');\n const columnIndices: number[] = [];\n checkboxes.forEach((checkbox) => {\n if ((checkbox as HTMLInputElement).checked) {\n const index = parseInt(checkbox.id.split('_')[1] ?? '-1');\n columnIndices.push(index);\n }\n });\n\n if (columnIndices.length > 0) {\n columnIndices\n .sort((n1: number, n2: number) => n1 - n2)\n .forEach((index) => {\n const column = this.args.columns[index];\n if (column) {\n newColumns.push(column);\n }\n });\n }\n this.args.selectionChanged(newColumns);\n }\n }\n}\n\ndeclare module '@glint/environment-ember-loose/registry' {\n export default interface Registry {\n AditoolsParameterSelector: typeof AditoolsParameterSelector;\n }\n}\n","import { userEntryToNumber } from '@ebiz/pretty-num/';\n\nconst hasAnnotation = function (value: string): boolean {\n if (value.trim().split(' ').length > 1) {\n return true;\n }\n return false;\n};\n\nconst engineeringComparatorCore = function (value1: string, value2: string, isLow = true): 1 | 0 | -1 {\n /**\n * currencyRegExp\n * matches the character with currency symbol for (us,ru,cn,jp) only\n * followed by digits (equivalent to [0-9]\n *\n * areaRegExp\n * matches float numbers\n * followed by the characters mm literally (case sensitive)\n */\n\n // eslint-disable-next-line no-useless-escape\n const currencyRegExp = /[\\$¥₽]\\d/;\n const areaRegExp = /[-+]?[0-9]*\\.?[0-9]+mm/;\n // checking value 1\n if (typeof value1 === 'string' && value1.length > 1) {\n if (hasAnnotation(value1)) {\n const fieldValue1 = value1.trim().split(' ')[0] ?? '';\n if (currencyRegExp.test(fieldValue1)) {\n value1 = fieldValue1.slice(1);\n }\n if (areaRegExp.test(fieldValue1)) {\n value1 = fieldValue1.replace(/[^\\d.-]/g, '');\n }\n }\n }\n // checking value 2\n if (typeof value2 === 'string' && value2.length > 1) {\n if (hasAnnotation(value2)) {\n const fieldValue2 = value2.trim().split(' ')[0] ?? '';\n if (currencyRegExp.test(fieldValue2)) {\n value2 = fieldValue2.slice(1);\n }\n if (areaRegExp.test(fieldValue2)) {\n value2 = fieldValue2.replace(/[^\\d.-]/g, '');\n }\n }\n }\n\n const comparisonValueForNonNumeric = isLow ? Infinity : -Infinity;\n const isValue1Blank: boolean = value1 === '' || value1 === '-';\n const isValue2Blank: boolean = value2 === '' || value2 === '-';\n value1 = isValue1Blank ? '0' : value1;\n value2 = isValue2Blank ? '0' : value2;\n let _obj1 = userEntryToNumber(value1 ? value1.toString() : value1, comparisonValueForNonNumeric);\n let _obj2 = userEntryToNumber(value2 ? value2.toString() : value2, comparisonValueForNonNumeric);\n if (isNaN(_obj1)) {\n _obj1 = comparisonValueForNonNumeric;\n }\n if (isNaN(_obj2)) {\n _obj2 = comparisonValueForNonNumeric;\n }\n return _obj1 < _obj2\n ? -1\n : _obj1 > _obj2\n ? 1\n : isValue1Blank && !isValue2Blank\n ? -1\n : !isValue1Blank && isValue2Blank\n ? 1\n : 0;\n};\n\nexport default {\n partComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n const _obj1 = /([A-Za-z]+)([0-9]+)(.*)/.exec(value1);\n const _obj2 = /([A-Za-z]+)([0-9]+)(.*)/.exec(value2);\n let result: 1 | 0 | -1 = 0;\n if (_obj1 != null && _obj2 != null && _obj1[1] != null && _obj2[1] != null) {\n result = _obj1[1] < _obj2[1] ? -1 : _obj1[1] > _obj2[1] ? 1 : 0;\n if (result === 0 && _obj1[2] != null && _obj2[2] != null) {\n const _num1 = parseInt(_obj1[2]);\n const _num2 = parseInt(_obj2[2]);\n result = _num1 < _num2 ? -1 : _num1 > _num2 ? 1 : 0;\n }\n if (result === 0 && _obj1[3] != null && _obj2[3] != null) {\n result = _obj1[3] < _obj2[3] ? -1 : _obj1[3] > _obj2[3] ? 1 : 0;\n }\n }\n return result;\n },\n\n engineeringComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n return engineeringComparatorCore(value1, value2);\n },\n\n engineeringComparatorNonNumbersHigh: function (value1: string, value2: string): 1 | 0 | -1 {\n return engineeringComparatorCore(value1, value2, false);\n },\n\n engineeringComparatorNonNumbersLow: function (value1: string, value2: string): 1 | 0 | -1 {\n return engineeringComparatorCore(value1, value2, true);\n },\n\n priceComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n const isValue1Blank: boolean = value1 === '' || value1 === '-';\n const isValue2Blank: boolean = value2 === '' || value2 === '-';\n let _obj1 = isValue1Blank ? 0 : -Infinity;\n let _obj2 = isValue2Blank ? 0 : -Infinity;\n if (typeof value1 === 'string' && value1.length > 1) {\n _obj1 = parseFloat(value1.slice(1));\n }\n if (typeof value2 === 'string' && value2.length > 1) {\n _obj2 = parseFloat(value2.slice(1));\n }\n if (isNaN(_obj1)) {\n _obj1 = -Infinity;\n }\n if (isNaN(_obj2)) {\n _obj2 = -Infinity;\n }\n return _obj1 < _obj2\n ? -1\n : _obj1 > _obj2\n ? 1\n : isValue1Blank && !isValue2Blank\n ? -1\n : !isValue1Blank && isValue2Blank\n ? 1\n : 0;\n },\n\n rangeComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n let _obj1 = -Infinity;\n let _obj2 = -Infinity;\n if (typeof value1 === 'string' && value1.length > 3 && /.+ ~ /.test(value1)) {\n _obj1 = userEntryToNumber(value1.split(' ~ ')[0] ?? ''); //We know the ?? clause won't happen due to the guard RE test\n }\n if (typeof value2 === 'string' && value2.length > 3 && /.+ ~ /.test(value2)) {\n _obj2 = userEntryToNumber(value2.split(' ~ ')[0] ?? ''); //We know the ?? clause won't happen due to the guard RE test\n }\n if (isNaN(_obj1)) {\n _obj1 = -Infinity;\n }\n if (isNaN(_obj2)) {\n _obj2 = -Infinity;\n }\n return _obj1 < _obj2 ? -1 : _obj1 > _obj2 ? 1 : 0;\n },\n\n integerComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n const isValue1Blank: boolean = value1 === '' || value1 === '-';\n const isValue2Blank: boolean = value2 === '' || value2 === '-';\n let _obj1 = isValue1Blank ? 0 : parseInt(value1);\n let _obj2 = isValue2Blank ? 0 : parseInt(value2);\n if (isNaN(_obj1)) {\n _obj1 = -Infinity;\n }\n if (isNaN(_obj2)) {\n _obj2 = -Infinity;\n }\n return _obj1 < _obj2\n ? -1\n : _obj1 > _obj2\n ? 1\n : isValue1Blank && !isValue2Blank\n ? -1\n : !isValue1Blank && isValue2Blank\n ? 1\n : 0;\n },\n\n textComparator: function (value1: string, value2: string): 1 | 0 | -1 {\n return value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n },\n\n booleanComparator: function (value1: boolean, value2: boolean): 1 | 0 | -1 {\n return value1 === value2 ? 0 : value1 ? -1 : 1;\n },\n};\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\")","import { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport type IntlService from 'ember-intl/services/intl';\n\ninterface AditoolsCardCheckboxArgs {\n Element: HTMLInputElement;\n Args: {\n qaName?: string;\n tooltip?: string;\n changed?: (event: Event) => void;\n };\n}\n\nexport default class AditoolsCardCheckbox extends Component {\n @service declare intl: IntlService;\n\n get qaName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n get _tooltip() {\n return this.args.tooltip ?? this.intl.t('ember-aditools-page.card.checkbox-tooltip');\n }\n\n @action checkboxChanged(event: Event) {\n if (this.args.changed) {\n this.args.changed(event);\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n{{#if (and this.partSelectionEnabled (has-block)) }}\\n {{yield this.partSelectionClosed }}\\n{{/if}}\")","import { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type IntlService from 'ember-intl/services/intl';\n\ninterface AditoolsCardPartNumberArgs {\n Element: HTMLButtonElement;\n Args: {\n deviceName: string;\n qaName?: string;\n tooltip?: string;\n annotation?: string;\n clicked?: (event: MouseEvent) => void;\n hoverIn?: (event: MouseEvent) => void;\n hoverOut?: (event: MouseEvent) => void;\n };\n Blocks: {\n default: [() => void];\n };\n}\n\nexport default class AditoolsCardPartNumber extends Component {\n @service declare intl: IntlService;\n\n @tracked partSelectionEnabled = false;\n\n get qaName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n get _tooltip() {\n return this.args.tooltip ?? this.intl.t('ember-aditools-page.card.part-number-tooltip');\n }\n\n @action handleClick(event: MouseEvent) {\n this.partSelectionEnabled = true;\n if (this.args.clicked) {\n this.args.clicked(event);\n }\n }\n @action partSelectionClosed() {\n this.partSelectionEnabled = false;\n }\n @action handleHoverIn(event: MouseEvent) {\n if (this.args.hoverIn) {\n this.args.hoverIn(event);\n }\n }\n @action handleHoverOut(event: MouseEvent) {\n if (this.args.hoverOut) {\n this.args.hoverOut(event);\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n{{#if (and this.tooltipEnabled (has-block)) }}\\n {{yield this.tooltipClosed }}\\n{{/if}}\")","import { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport type IntlService from 'ember-intl/services/intl';\n\ninterface AditoolsCardTooltipArgs {\n Element: HTMLButtonElement;\n Args: {\n icon: string;\n qaName?: string;\n tooltip?: string;\n clicked?: (event: MouseEvent) => void;\n };\n Blocks: {\n default: [() => void];\n };\n}\n\nexport default class AditoolsCardTooltip extends Component {\n @service declare intl: IntlService;\n\n @tracked tooltipEnabled = false;\n\n get qaName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n get _tooltip() {\n return this.args.tooltip ?? this.intl.t('ember-aditools-page.card.help-tooltip');\n }\n\n @action headerTooltipClicked(event: MouseEvent) {\n this.tooltipEnabled = true;\n if (this.args.clicked) {\n this.args.clicked(event);\n }\n }\n @action tooltipClosed() {\n this.tooltipEnabled = false;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{! Args \\n @main if it\\'s a main section\\n @title section title\\n @icon icon for section header if applicable\\n @clickAction action to take when icon clicked\\n @bodyClass class to apply to the body\\n}}\\n
    \\n
    \\n {{@title}}\\n {{#if (has-block \\\"header\\\")}}\\n {{ yield to=\\\"header\\\" }}\\n {{/if}}\\n {{#if @icon}}\\n {{#if (eq @icon \\\"checkbox\\\") }}\\n \\n {{else}}\\n \\n {{#if (and this.tooltipEnabled (has-block \\\"tooltip\\\")) }}\\n {{yield this.tooltipClosed to=\\'tooltip\\' }}\\n {{/if}}\\n {{/if}}\\n {{/if}}\\n
    \\n {{#if (has-block)}}\\n
    \\n {{yield}}\\n
    \\n {{/if}}\\n
    \\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\ninterface AditoolsCardArgs {\n Element: HTMLDivElement;\n Args: {\n title: string;\n icon?: string;\n qaName?: string;\n bodyClass?: string;\n main?: boolean;\n tooltip?: string;\n clickAction?: (event: MouseEvent) => void;\n };\n Blocks: {\n header: [];\n tooltip: [() => void];\n default: [];\n };\n}\nexport default class AditoolsCard extends Component {\n @tracked tooltipEnabled = false;\n\n get qaName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n get _tooltip() {\n return this.args.tooltip ?? '';\n }\n\n @action checkboxClicked(event: MouseEvent) {\n if (this.args.clickAction) {\n this.args.clickAction(event);\n }\n }\n @action tooltipClicked(event: MouseEvent) {\n this.tooltipEnabled = true;\n if (this.args.clickAction) {\n this.args.clickAction(event);\n }\n }\n @action tooltipClosed() {\n this.tooltipEnabled = false;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n \\n <:default>\\n
    \\n {{@message}}\\n {{yield}}\\n
    \\n \\n <:footer as | closeDialog |>\\n \\n \\n \\n
    \\n
    \\n\")","import Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type IntlService from 'ember-intl/services/intl';\nimport type { htmlSafe } from '@ember/template';\ntype SafeString = ReturnType;\n\nexport interface AditoolsConfirmationDialogSignature {\n Element: HTMLDivElement;\n Args: {\n title: string | SafeString;\n message?: string | SafeString;\n confirm: () => void;\n close: () => void;\n closeButtonText?: string;\n confirmButtonText?: string;\n dialogClass?: string;\n };\n Blocks: {\n default: [];\n };\n}\ntype AditoolsConfirmationDialogArgs = AditoolsConfirmationDialogSignature['Args'];\nexport default class AditoolsConfirmationDialog extends Component {\n @service declare intl: IntlService;\n\n constructor(owner: unknown, args: AditoolsConfirmationDialogArgs) {\n super(owner, args);\n assert('`title` is required', !isNone(this.args.title));\n assert('`confirm` is required', !isNone(this.args.confirm));\n assert('`close` is required', !isNone(this.args.close));\n }\n\n @action confirmDialog(closeDialog: () => void) {\n this.args.confirm();\n closeDialog();\n }\n\n // Optional parameters with defaults applied\n get _confirmButtonText() {\n return this.args.confirmButtonText ?? this.intl.t('ember-aditools-page.common.ok');\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.cancel');\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n
    \\n {{yield}}\\n
    \\n
    \")","import templateOnlyComponent from '@ember/component/template-only';\n\ninterface AditoolsContentWrapSignature {\n Element: HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nconst AditoolsContentWrap = templateOnlyComponent();\n\nexport default AditoolsContentWrap;\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n \\n <:default>\\n
    \\n
    {{t \\\"ember-aditools-page.dialogs.load.message\\\"}}
    \\n \\n {{this._chooseFileButtonText}}\\n \\n {{this._fileName}}\\n \\n
    \\n \\n <:footer as | closeDialog |>\\n \\n {{#if this.uploadDisabled}}\\n \\n {{else}}\\n \\n {{/if}}\\n \\n
    \\n
    \")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type IntlService from 'ember-intl/services/intl';\n\nexport interface AditoolsDialogLoadSignature {\n Element: HTMLDialogElement;\n Args: {\n title: string;\n load: (design: any) => void;\n close: () => void;\n chooseFileButtonText?: string;\n closeButtonText?: string;\n loadButtonText?: string;\n dialogClass?: string;\n submit?: () => void;\n };\n}\ntype AditoolsDialogLoadArgs = AditoolsDialogLoadSignature['Args'];\nexport default class AditoolsDialogLoad extends Component {\n supportsDataTestProperties = true;\n @service declare intl: IntlService;\n @tracked fileName = ''; // Name of file to be uploaded\n @tracked designData: any = null; // Design Data to be uploaded\n fileObject: any = null; // File to be uploaded\n @tracked uploadDisabled = true; // Flag that Enables/Disables Load Button\n\n constructor(owner: unknown, args: AditoolsDialogLoadArgs) {\n super(owner, args);\n assert('`title` is required', !isNone(this.args.title));\n if (!isNone(this.args.submit)) {\n console.log(`\n The \\`submit\\` parameter has changed to \\`load\\`.\n Please adjust your usage accordingly.\n `);\n }\n assert('`load` is required', !isNone(this.args.load));\n assert('`close` is required', !isNone(this.args.close));\n }\n\n // Optional parameters with defaults applied\n get _chooseFileButtonText() {\n return this.args.chooseFileButtonText ?? this.intl.t('ember-aditools-page.dialogs.load.choose-button');\n }\n\n get _loadButtonText() {\n return this.args.loadButtonText ?? this.intl.t('ember-aditools-page.common.load');\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.cancel');\n }\n\n get _fileName() {\n return this.fileName && this.fileName.length > 0\n ? this.fileName\n : this.intl.t('ember-aditools-page.dialogs.load.no-file-selected');\n }\n\n @action chooseFile(event: MouseEvent) {\n const target = event.currentTarget as HTMLElement; //Safe because we are setting the handlers on an HTML element\n const rootForSelection = target.parentElement; // Limit the scope of the lookup to keep it inside this component\n if (rootForSelection) {\n const designFileUpload = rootForSelection.querySelectorAll('#design-file-upload')[0] as HTMLElement;\n designFileUpload.click();\n }\n }\n // Event Handler when the user selects a file from the Directory/Explorer Dialog\n @action getFileInfo({ target }: { target: any }) {\n const files = target.files;\n const [file] = files;\n const fileobj = files && file ? file : null;\n this.fileObject = fileobj;\n this.fileName = files && file ? file.name : '';\n this.uploadDisabled = fileobj === null;\n }\n // Event Handler when the user selects a file from the Directory/Explorer Dialog\n @action loadFile(closeDialog: () => void) {\n const selfRef = this; // eslint-disable-line @typescript-eslint/no-this-alias\n if (this.fileObject) {\n const reader = new FileReader();\n reader.onload = function (e) {\n if (!e) {\n selfRef.designData = reader.result;\n } else if (e.target) {\n selfRef.designData = e.target.result;\n }\n if (selfRef.args.load) {\n selfRef.args.load(selfRef.designData);\n }\n closeDialog();\n };\n //@ts-ignore\n reader.readAsText(this.fileObject, 'utf-8');\n }\n }\n}\n","var __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { tracked } from '@glimmer/tracking';\nimport { assert } from '@ember/debug';\nclass TrackedStorageImpl {\n constructor(initialValue, isEqual) {\n this._value = this._lastValue = initialValue;\n this._isEqual = isEqual;\n }\n}\n__decorate([tracked], TrackedStorageImpl.prototype, \"_value\", void 0);\nfunction tripleEq(a, b) {\n return a === b;\n}\nexport function createStorage(initialValue, isEqual = tripleEq) {\n assert('the second parameter to `createStorage` must be an equality function or undefined', typeof isEqual === 'function');\n return new TrackedStorageImpl(initialValue, isEqual);\n}\nexport function getValue(storage) {\n assert('getValue must be passed a tracked store created with `createStorage`.', storage instanceof TrackedStorageImpl);\n return storage._value;\n}\nexport function setValue(storage, value) {\n assert('setValue must be passed a tracked store created with `createStorage`.', storage instanceof TrackedStorageImpl);\n const {\n _isEqual: isEqual,\n _lastValue: lastValue\n } = storage;\n if (!isEqual(value, lastValue)) {\n storage._value = storage._lastValue = value;\n }\n}","import {\n TrackedStorage,\n createStorage,\n getValue,\n setValue,\n} from 'ember-tracked-storage-polyfill';\n\nexport class TrackedMap implements Map {\n private collection = createStorage(null, () => false);\n\n private storages: Map> = new Map();\n\n private vals: Map;\n\n private readStorageFor(key: K): void {\n const { storages } = this;\n let storage = storages.get(key);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n storages.set(key, storage);\n }\n\n getValue(storage);\n }\n\n private dirtyStorageFor(key: K): void {\n const storage = this.storages.get(key);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n\n constructor();\n constructor(entries: readonly (readonly [K, V])[] | null);\n constructor(iterable: Iterable);\n constructor(\n existing?:\n | readonly (readonly [K, V])[]\n | Iterable\n | null\n | undefined\n ) {\n // TypeScript doesn't correctly resolve the overloads for calling the `Map`\n // constructor for the no-value constructor. This resolves that.\n this.vals = existing ? new Map(existing) : new Map();\n }\n\n // **** KEY GETTERS ****\n get(key: K): V | undefined {\n // entangle the storage for the key\n this.readStorageFor(key);\n\n return this.vals.get(key);\n }\n\n has(key: K): boolean {\n this.readStorageFor(key);\n\n return this.vals.has(key);\n }\n\n // **** ALL GETTERS ****\n entries(): IterableIterator<[K, V]> {\n getValue(this.collection);\n\n return this.vals.entries();\n }\n\n keys(): IterableIterator {\n getValue(this.collection);\n\n return this.vals.keys();\n }\n\n values(): IterableIterator {\n getValue(this.collection);\n\n return this.vals.values();\n }\n\n forEach(fn: (value: V, key: K, map: Map) => void): void {\n getValue(this.collection);\n\n this.vals.forEach(fn);\n }\n\n get size(): number {\n getValue(this.collection);\n\n return this.vals.size;\n }\n\n [Symbol.iterator](): IterableIterator<[K, V]> {\n getValue(this.collection);\n\n return this.vals[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return this.vals[Symbol.toStringTag];\n }\n\n // **** KEY SETTERS ****\n set(key: K, value: V): this {\n this.dirtyStorageFor(key);\n setValue(this.collection, null);\n\n this.vals.set(key, value);\n\n return this;\n }\n\n delete(key: K): boolean {\n this.dirtyStorageFor(key);\n setValue(this.collection, null);\n\n return this.vals.delete(key);\n }\n\n // **** ALL SETTERS ****\n clear(): void {\n this.storages.forEach((s) => setValue(s, null));\n setValue(this.collection, null);\n\n this.vals.clear();\n }\n}\n\n// So instanceof works\nObject.setPrototypeOf(TrackedMap.prototype, Map.prototype);\n\nexport class TrackedWeakMap\n implements WeakMap\n{\n private storages: WeakMap> = new WeakMap();\n\n private vals: WeakMap;\n\n private readStorageFor(key: K): void {\n const { storages } = this;\n let storage = storages.get(key);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n storages.set(key, storage);\n }\n\n getValue(storage);\n }\n\n private dirtyStorageFor(key: K): void {\n const storage = this.storages.get(key);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n\n constructor();\n constructor(iterable: Iterable);\n constructor(entries: readonly [K, V][] | null);\n constructor(\n existing?: readonly [K, V][] | Iterable | null | undefined\n ) {\n // TypeScript doesn't correctly resolve the overloads for calling the `Map`\n // constructor for the no-value constructor. This resolves that.\n this.vals = existing ? new WeakMap(existing) : new WeakMap();\n }\n\n get(key: K): V | undefined {\n this.readStorageFor(key);\n\n return this.vals.get(key);\n }\n\n has(key: K): boolean {\n this.readStorageFor(key);\n\n return this.vals.has(key);\n }\n\n set(key: K, value: V): this {\n this.dirtyStorageFor(key);\n\n this.vals.set(key, value);\n\n return this;\n }\n\n delete(key: K): boolean {\n this.dirtyStorageFor(key);\n\n return this.vals.delete(key);\n }\n\n get [Symbol.toStringTag](): string {\n return this.vals[Symbol.toStringTag];\n }\n}\n\n// So instanceof works\nObject.setPrototypeOf(TrackedWeakMap.prototype, WeakMap.prototype);\n","import {\n TrackedStorage,\n createStorage,\n getValue,\n setValue,\n} from 'ember-tracked-storage-polyfill';\n\nexport class TrackedSet implements Set {\n private collection = createStorage(null, () => false);\n\n private storages: Map> = new Map();\n\n private vals: Set;\n\n private storageFor(key: T): TrackedStorage {\n const storages = this.storages;\n let storage = storages.get(key);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n storages.set(key, storage);\n }\n\n return storage;\n }\n\n private dirtyStorageFor(key: T): void {\n const storage = this.storages.get(key);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n\n constructor();\n constructor(values: readonly T[] | null);\n constructor(iterable: Iterable);\n constructor(existing?: readonly T[] | Iterable | null | undefined) {\n this.vals = new Set(existing);\n }\n\n // **** KEY GETTERS ****\n has(value: T): boolean {\n getValue(this.storageFor(value));\n\n return this.vals.has(value);\n }\n\n // **** ALL GETTERS ****\n entries(): IterableIterator<[T, T]> {\n getValue(this.collection);\n\n return this.vals.entries();\n }\n\n keys(): IterableIterator {\n getValue(this.collection);\n\n return this.vals.keys();\n }\n\n values(): IterableIterator {\n getValue(this.collection);\n\n return this.vals.values();\n }\n\n forEach(fn: (value1: T, value2: T, set: Set) => void): void {\n getValue(this.collection);\n\n this.vals.forEach(fn);\n }\n\n get size(): number {\n getValue(this.collection);\n\n return this.vals.size;\n }\n\n [Symbol.iterator](): IterableIterator {\n getValue(this.collection);\n\n return this.vals[Symbol.iterator]();\n }\n\n get [Symbol.toStringTag](): string {\n return this.vals[Symbol.toStringTag];\n }\n\n // **** KEY SETTERS ****\n add(value: T): this {\n this.dirtyStorageFor(value);\n setValue(this.collection, null);\n\n this.vals.add(value);\n\n return this;\n }\n\n delete(value: T): boolean {\n this.dirtyStorageFor(value);\n setValue(this.collection, null);\n\n return this.vals.delete(value);\n }\n\n // **** ALL SETTERS ****\n clear(): void {\n this.storages.forEach((s) => setValue(s, null));\n setValue(this.collection, null);\n\n this.vals.clear();\n }\n}\n\n// So instanceof works\nObject.setPrototypeOf(TrackedSet.prototype, Set.prototype);\n\nexport class TrackedWeakSet implements WeakSet {\n private storages: WeakMap> = new WeakMap();\n\n private vals: WeakSet;\n\n private storageFor(key: T): TrackedStorage {\n const storages = this.storages;\n let storage = storages.get(key);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n storages.set(key, storage);\n }\n\n return storage;\n }\n\n private dirtyStorageFor(key: T): void {\n const storage = this.storages.get(key);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n\n constructor(values?: readonly T[] | null) {\n this.vals = new WeakSet(values);\n }\n\n has(value: T): boolean {\n getValue(this.storageFor(value));\n\n return this.vals.has(value);\n }\n\n add(value: T): this {\n // Add to vals first to get better error message\n this.vals.add(value);\n\n this.dirtyStorageFor(value);\n\n return this;\n }\n\n delete(value: T): boolean {\n this.dirtyStorageFor(value);\n\n return this.vals.delete(value);\n }\n\n get [Symbol.toStringTag](): string {\n return this.vals[Symbol.toStringTag];\n }\n}\n\n// So instanceof works\nObject.setPrototypeOf(TrackedWeakSet.prototype, WeakSet.prototype);\n","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classExtractFieldDescriptor from \"./classExtractFieldDescriptor.js\";\nexport default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n}","export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n}","export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n}","/* eslint-disable @typescript-eslint/no-explicit-any */\n// Unfortunately, TypeScript's ability to do inference *or* type-checking in a\n// `Proxy`'s body is very limited, so we have to use a number of casts `as any`\n// to make the internal accesses work. The type safety of these is guaranteed at\n// the *call site* instead of within the body: you cannot do `Array.blah` in TS,\n// and it will blow up in JS in exactly the same way, so it is safe to assume\n// that properties within the getter have the correct type in TS.\n\nimport {\n TrackedStorage,\n createStorage,\n getValue,\n setValue,\n} from 'ember-tracked-storage-polyfill';\n\nconst ARRAY_GETTER_METHODS = new Set([\n Symbol.iterator,\n 'concat',\n 'entries',\n 'every',\n 'filter',\n 'find',\n 'findIndex',\n 'flat',\n 'flatMap',\n 'forEach',\n 'includes',\n 'indexOf',\n 'join',\n 'keys',\n 'lastIndexOf',\n 'map',\n 'reduce',\n 'reduceRight',\n 'slice',\n 'some',\n 'values',\n]);\n\n// For these methods, `Array` itself immediately gets the `.length` to return\n// after invoking them.\nconst ARRAY_WRITE_THEN_READ_METHODS = new Set([\n 'fill',\n 'push',\n 'unshift',\n]);\n\nfunction convertToInt(prop: number | string | symbol): number | null {\n if (typeof prop === 'symbol') return null;\n\n const num = Number(prop);\n\n if (isNaN(num)) return null;\n\n return num % 1 === 0 ? num : null;\n}\n\nclass TrackedArray {\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\n static from(iterable: Iterable | ArrayLike): TrackedArray;\n\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n static from(\n iterable: Iterable | ArrayLike,\n mapfn: (v: T, k: number) => U,\n thisArg?: unknown\n ): TrackedArray;\n\n static from(\n iterable: Iterable | ArrayLike,\n mapfn?: (v: T, k: number) => U,\n thisArg?: unknown\n ): TrackedArray | TrackedArray {\n return mapfn\n ? new TrackedArray(Array.from(iterable, mapfn, thisArg))\n : new TrackedArray(Array.from(iterable));\n }\n\n static of(...arr: T[]): TrackedArray {\n return new TrackedArray(arr);\n }\n\n constructor(arr: T[] = []) {\n let clone = arr.slice();\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let self = this;\n\n let boundFns = new Map any>();\n\n /**\n Flag to track whether we have *just* intercepted a call to `.push()` or\n `.unshift()`, since in those cases (and only those cases!) the `Array`\n itself checks `.length` to return from the function call.\n */\n let nativelyAccessingLengthFromPushOrUnshift = false;\n\n return new Proxy(clone, {\n get(target, prop /*, _receiver */) {\n let index = convertToInt(prop);\n\n if (index !== null) {\n self.#readStorageFor(index);\n getValue(self.#collection);\n\n return target[index];\n }\n\n if (prop === 'length') {\n // If we are reading `.length`, it may be a normal user-triggered\n // read, or it may be a read triggered by Array itself. In the latter\n // case, it is because we have just done `.push()` or `.unshift()`; in\n // that case it is safe not to mark this as a *read* operation, since\n // calling `.push()` or `.unshift()` cannot otherwise be part of a\n // \"read\" operation safely, and if done during an *existing* read\n // (e.g. if the user has already checked `.length` *prior* to this),\n // that will still trigger the mutation-after-consumption assertion.\n if (nativelyAccessingLengthFromPushOrUnshift) {\n nativelyAccessingLengthFromPushOrUnshift = false;\n } else {\n getValue(self.#collection);\n }\n\n return target[prop];\n }\n\n // Here, track that we are doing a `.push()` or `.unshift()` by setting\n // the flag to `true` so that when the `.length` is read by `Array` (see\n // immediately above), it knows not to dirty the collection.\n if (ARRAY_WRITE_THEN_READ_METHODS.has(prop)) {\n nativelyAccessingLengthFromPushOrUnshift = true;\n }\n\n if (ARRAY_GETTER_METHODS.has(prop)) {\n let fn = boundFns.get(prop);\n\n if (fn === undefined) {\n fn = (...args) => {\n getValue(self.#collection);\n return (target as any)[prop](...args);\n };\n\n boundFns.set(prop, fn);\n }\n\n return fn;\n }\n\n return (target as any)[prop];\n },\n\n set(target, prop, value /*, _receiver */) {\n (target as any)[prop] = value;\n\n let index = convertToInt(prop);\n\n if (index !== null) {\n self.#dirtyStorageFor(index);\n setValue(self.#collection, null);\n } else if (prop === 'length') {\n setValue(self.#collection, null);\n }\n\n return true;\n },\n\n getPrototypeOf() {\n return TrackedArray.prototype;\n },\n }) as TrackedArray;\n }\n\n #collection = createStorage(null, () => false);\n\n #storages = new Map>();\n\n #readStorageFor(index: number) {\n let storage = this.#storages.get(index);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n this.#storages.set(index, storage);\n }\n\n getValue(storage);\n }\n\n #dirtyStorageFor(index: number): void {\n const storage = this.#storages.get(index);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n}\n\n// This rule is correct in the general case, but it doesn't understand\n// declaration merging, which is how we're using the interface here. This says\n// `TrackedArray` acts just like `Array`, but also has the properties\n// declared via the `class` declaration above -- but without the cost of a\n// subclass, which is much slower that the proxied array behavior. That is: a\n// `TrackedArray` *is* an `Array`, just with a proxy in front of accessors and\n// setters, rather than a subclass of an `Array` which would be de-optimized by\n// the browsers.\n//\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface TrackedArray extends Array {}\n\nexport default TrackedArray;\n\n// Ensure instanceof works correctly\nObject.setPrototypeOf(TrackedArray.prototype, Array.prototype);\n","import {\n createStorage,\n getValue,\n setValue,\n} from 'ember-tracked-storage-polyfill';\n\nexport default class TrackedObject {\n static fromEntries(entries) {\n return new TrackedObject(Object.fromEntries(entries));\n }\n\n constructor(obj = {}) {\n let proto = Object.getPrototypeOf(obj);\n let descs = Object.getOwnPropertyDescriptors(obj);\n\n let clone = Object.create(proto);\n\n for (let prop in descs) {\n Object.defineProperty(clone, prop, descs[prop]);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let self = this;\n\n return new Proxy(clone, {\n get(target, prop) {\n self.#readStorageFor(prop);\n\n return target[prop];\n },\n\n has(target, prop) {\n self.#readStorageFor(prop);\n\n return prop in target;\n },\n\n ownKeys(target) {\n getValue(self.#collection);\n\n return Reflect.ownKeys(target);\n },\n\n set(target, prop, value) {\n target[prop] = value;\n\n self.#dirtyStorageFor(prop);\n self.#dirtyCollection();\n\n return true;\n },\n\n deleteProperty(target, prop) {\n if (prop in target) {\n delete target[prop];\n self.#dirtyStorageFor(prop);\n self.#dirtyCollection();\n }\n\n return true;\n },\n\n getPrototypeOf() {\n return TrackedObject.prototype;\n },\n });\n }\n\n #storages = new Map();\n\n #collection = createStorage(null, () => false);\n\n #readStorageFor(key) {\n let storage = this.#storages.get(key);\n\n if (storage === undefined) {\n storage = createStorage(null, () => false);\n this.#storages.set(key, storage);\n }\n\n getValue(storage);\n }\n\n #dirtyStorageFor(key) {\n const storage = this.#storages.get(key);\n\n if (storage) {\n setValue(storage, null);\n }\n }\n\n #dirtyCollection() {\n setValue(this.#collection, null);\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if @dialogEnabled}}\\n \\n <:default>\\n
    \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{#each this.samplesData as |item| }}\\n \\n \\n \\n \\n \\n {{/each}}\\n \\n
    {{t \\\"ember-aditools-page.dialogs.samples.part-column\\\"}}{{t \\\"ember-aditools-page.dialogs.samples.model-column\\\"}}{{t \\\"ember-aditools-page.dialogs.samples.add-to-cart-column\\\"}}
    \\n {{item.opAmpPart}}\\n \\n {{#if item.hasModelsWithSamples}}\\n {{!template-lint-disable require-input-label }}\\n \\n {{else}}\\n {{#each item.opAmpPartModels as |part| }}\\n {{part.ModelPackage}}\\n {{/each}}\\n {{/if}}\\n \\n {{#if item.hasModelsWithSamples}}\\n \\n {{t \\\"ember-aditools-page.dialogs.samples.add-link\\\"}}\\n \\n {{/if}}\\n
    \\n

    {{t \\\"ember-aditools-page.dialogs.samples.quantities-warning\\\"}}

    \\n
    \\n \\n <:footer as |closeDialog| >\\n \\n \\n
    \\n{{/if}}\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { helper } from '@ember/component/helper';\nimport { TrackedObject } from 'tracked-built-ins';\n\ninterface SampleData {\n opAmpPartUrl: string;\n opAmpPart: string;\n opAmpPartModels: { ModelPackage: string; ModelNumber: string; Generic: string; [x: string]: any }[];\n hasModelsWithSamples: boolean;\n samplesLink: string;\n modelNumber: string;\n}\n\nexport interface AditoolsDialogSamplesSignature {\n Element: HTMLDialogElement;\n Args: {\n siteURL?: string;\n locale?: string;\n shoppingCartBaseUrl?: string;\n title?: string;\n dialogEnabled?: boolean;\n message?: string;\n samplesModel: { [x: string]: any }[];\n filter?: (arg0: unknown) => boolean;\n close: () => void;\n order: (model: string) => void;\n dialogClass?: string;\n };\n}\n\nconst modelOrderUrlHelperFn = function (baseUrl: string, adiLocale: string, model: { [x: string]: any }) {\n const modelNumber = model['modelNumber'] as string;\n return baseUrl.replace('{partlist}', modelNumber).replace('{adi}', adiLocale);\n};\n\nconst modelOrderUrlHelper = function (positional: Array) {\n return modelOrderUrlHelperFn(positional[0] as string, positional[1] as string, positional[2]);\n};\n\nexport default class AditoolsDialogSamples extends Component {\n @tracked samplesData: SampleData[] = this._buildSamplesData(this._samplesModel);\n modelOrderUrl = helper(modelOrderUrlHelper);\n get _title() {\n return this.args.title || '';\n }\n get _siteURL() {\n return this.args.siteURL || 'https://www.analog.com';\n }\n\n get _locale() {\n return this.args.locale ?? 'en';\n }\n\n get _shoppingCartBaseUrl() {\n return this.args.shoppingCartBaseUrl ?? '';\n }\n\n get _samplesModel() {\n return this.args.samplesModel ?? [];\n }\n\n _buildSamplesData(samplesModel: { [x: string]: any }[]) {\n const samplesData: SampleData[] = [];\n for (const sample of samplesModel) {\n const models: SampleData['opAmpPartModels'] = [];\n let currModelDesc = '',\n hasModelsWithSamples = true,\n partGeneric = '',\n modelNumber = '';\n if (sample['Models']) {\n partGeneric = sample['Generic'];\n for (const model of sample['Models']) {\n const item = model;\n // sort model parameters by Parameter ID value\n item.ModelParameters.sort(function (a: { ParameterID: string }, b: { ParameterID: string }) {\n return parseInt(a.ParameterID) - parseInt(b.ParameterID);\n });\n\n for (let n = 0; n < item.ModelParameters.length; n++) {\n const modelParam = item.ModelParameters[n];\n\n if (modelParam.ParameterID === 3) {\n // ParameterID 3 is 'Package_Descr'\n currModelDesc =\n item.ModelNumber.toString().replace(item.Generic, '') +\n ' - ' +\n modelParam.ParameterValue.toString().toUpperCase();\n }\n if (modelParam.ParameterID === 997) {\n // ParameterID 997 is 'Send Sample'\n if (modelParam.ParameterValue === '94' || modelParam.ParameterValue === 'D') {\n item.ModelPackage = currModelDesc.trim();\n if (!this.args.filter || !this.args.filter(item)) {\n if (!modelNumber) modelNumber = item.ModelNumber;\n models.push(item);\n }\n }\n }\n }\n currModelDesc = '';\n }\n } else {\n if (sample['errorMessage'].length > 0) {\n partGeneric = sample['errorMessage'].errorMessage\n .substring(sample['errorMessage'].lastIndexOf('/') + 1, sample['errorMessage'].lastIndexOf('.js'))\n .toUpperCase();\n }\n }\n if (models.length < 1) {\n models.push({ ModelPackage: 'No Samples Available', ModelNumber: '', Generic: '' });\n hasModelsWithSamples = false;\n }\n\n const sampleURLString =\n this.args.siteURL + '/' + this.args.locale + '/' + partGeneric + '.html#product-samplebuy';\n\n const samplesLink = this._buildSamplesLink(modelNumber);\n\n samplesData.push(\n new TrackedObject({\n opAmpPart: partGeneric,\n opAmpPartModels: models,\n opAmpPartUrl: sampleURLString,\n hasModelsWithSamples: hasModelsWithSamples,\n samplesLink: samplesLink,\n modelNumber: modelNumber,\n })\n );\n }\n return samplesData;\n }\n\n _buildSamplesLink(modelNumber: string) {\n const adiLocale = this.args.locale ?? 'en';\n const cdpLocale = this.args.locale ? (this.args.locale === 'cn' ? 'zh' : this.args.locale) : 'en';\n const isoLocale = this.args.locale\n ? this.args.locale === 'cn'\n ? 'zh'\n : this.args.locale === 'jp'\n ? 'ja'\n : this.args.locale\n : 'en';\n\n if (this.args.shoppingCartBaseUrl) {\n return this.args.shoppingCartBaseUrl\n .replace('{partlist}', modelNumber)\n .replace('{adi}', adiLocale)\n .replace('{cdp}', cdpLocale)\n .replace('{iso}', isoLocale);\n }\n return '';\n }\n\n @action updateSelectedModel(model: { [x: string]: any }, e: Event) {\n const target = e.target as HTMLSelectElement;\n model['modelNumber'] = target?.value;\n }\n\n @action processSamples(model: string) {\n this.args.order(model);\n }\n\n //The following is called after the dialog closes\n @action closeSamples() {\n // Reset the selected value for each dropdown to the first one in the list\n for (const sample of this.samplesData) {\n if (sample.opAmpPartModels[0]) {\n sample.modelNumber = sample.opAmpPartModels[0].ModelNumber;\n }\n }\n this.args.close();\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n \\n <:default>\\n
    \\n
    \\n {{#unless this.isDesignNameValid}}\\n
    {{t \\\"ember-aditools-page.dialogs.save.save-name-error\\\"}}
    \\n {{/unless}}\\n \\n
    \\n \\n
    \\n
    \\n
    \\n {{#unless this.isDesignDescValid}}\\n
    {{t \\\"ember-aditools-page.dialogs.save.save-desc-error\\\"}}
    \\n {{/unless}}\\n \\n
    \\n \\n
    \\n
    \\n
    \\n \\n <:footer as |closeDialog| >\\n \\n \\n \\n
    \\n
    \")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type IntlService from 'ember-intl/services/intl';\n\nexport interface AditoolsDialogSaveSignature {\n Element: HTMLDialogElement;\n Args: {\n title: string;\n save: (name: string, description: string) => void;\n close: () => void;\n designName?: string;\n designDesc?: string;\n designNameClass?: string;\n designDescClass?: string;\n closeButtonText?: string;\n saveButtonText?: string;\n dialogClass?: string;\n submit?: () => void; // Obsolete\n };\n}\ntype AditoolsDialogSaveArgs = AditoolsDialogSaveSignature['Args'];\n\nexport default class AditoolsDialogSave extends Component {\n @service declare intl: IntlService;\n @tracked workingDesignName: string = this._designName;\n @tracked workingDesignDesc: string = this._designDesc;\n @tracked isDesignNameValid = true;\n @tracked isDesignDescValid = true;\n\n constructor(owner: unknown, args: AditoolsDialogSaveArgs) {\n super(owner, args);\n\n assert('`title` is required', !isNone(this.args.title));\n if (!isNone(this.args.submit)) {\n console.log(`\n The \\`submit\\` parameter has changed to \\`save\\`.\n Please adjust your usage accordingly.\n `);\n }\n assert('`save` is required', !isNone(this.args.save));\n assert('`close` is required', !isNone(this.args.close));\n }\n\n // Optional parameters with defaults applied\n get _designName() {\n return this.args.designName ?? '';\n }\n\n get _designDesc() {\n return this.args.designDesc ?? '';\n }\n\n get _designNameClass() {\n return this.args.designNameClass ?? '';\n }\n\n get _designDescClass() {\n return this.args.designDescClass ?? '';\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.cancel');\n }\n\n get _saveButtonText() {\n return this.args.saveButtonText ?? this.intl.t('ember-aditools-page.common.save');\n }\n\n @action onValueChanged(event: Event) {\n const fieldName: string = (event.target).id.toString();\n const value: string = (event.target).value.toString();\n if (fieldName === 'save-design-name-id') {\n if (this.workingDesignName !== value) {\n this.workingDesignName = value;\n }\n } else if (fieldName === 'save-design-desc-id') {\n if (this.workingDesignDesc !== value) {\n this.workingDesignDesc = value;\n }\n }\n }\n\n @action saveDesign(closeDialog: () => void) {\n if (this.validateDesignFields()) {\n this.args.save(this.workingDesignName, this.workingDesignDesc);\n closeDialog();\n }\n }\n\n validateDesignFields(this: AditoolsDialogSave) {\n const workingDesignName = this.workingDesignName ? this.workingDesignName.trim() : '';\n const workingDesignDesc = this.workingDesignDesc ? this.workingDesignDesc.trim() : '';\n this.isDesignNameValid = workingDesignName.length > 0;\n this.isDesignDescValid = workingDesignDesc.length > 0;\n return this.isDesignNameValid && this.isDesignDescValid;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if @dialogEnabled}}\\n \\n <:default>\\n
    \\n
    \\n {{#unless this.isDesignNameValid}}\\n
    {{t \\\"ember-aditools-page.dialogs.share.share-name-error\\\"}}
    \\n {{/unless}}\\n \\n
    \\n \\n
    \\n
    \\n
    \\n {{#unless this.isDesignSenderValid}}\\n
    {{t \\\"ember-aditools-page.dialogs.share.share-sender-error\\\"}}
    \\n {{/unless}}\\n \\n
    \\n \\n
    \\n
    \\n {{#unless this.emailListIsValid}}\\n
    {{t this.emailErrorMessage}}
    \\n {{/unless}}\\n
    \\n
    \\n
    \\n \\n \\n {{#each values key=\\\"guid\\\" as | value index |}}\\n \\n {{/each}}\\n \\n
    \\n
    \\n
    \\n {{t \\\"ember-aditools-page.dialogs.share.share-design-information\\\" htmlSafe=true}}\\n
    \\n
    \\n
    \\n \\n <:footer as |closeDialog| >\\n \\n \\n \\n
    \\n{{/if}}\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\n///////////////////////////////////////////////////////////////////////////////\n// dialog-share - component for the share/mail to colleague dialog //\n///////////////////////////////////////////////////////////////////////////////\n\nexport interface AditoolsDialogShareSignature {\n Element: HTMLDialogElement;\n Args: {\n title: string;\n close: () => void;\n share: (name: string, sender: string, emails: string) => void;\n dialogEnabled: boolean;\n closeButtonText?: string;\n saveButtonText?: string;\n dialogClass?: string;\n submit?: () => void; // Obsolete\n };\n}\ntype AditoolsDialogShareArgs = AditoolsDialogShareSignature['Args'];\n\nexport default class AditoolsDialogShare extends Component {\n @tracked designName = '';\n @tracked designSender = '';\n @tracked designEmailList: string[] = [];\n\n @tracked isDesignNameValid = false;\n @tracked isDesignSenderValid = false;\n @tracked emailListIsValid = false;\n @tracked emailErrorMessage = '';\n\n constructor(owner: unknown, args: AditoolsDialogShareArgs) {\n super(owner, args);\n this.initializeValues();\n }\n\n initializeValues() {\n this.designName = '';\n this.designSender = '';\n this.designEmailList = [''];\n this.isDesignNameValid = true;\n this.isDesignSenderValid = true;\n this.emailListIsValid = true;\n this.emailErrorMessage = '';\n }\n\n // This function is called when the user clicks on the save button. This validates the Design Name,Design Sender Name and Email Receipient Fields\n validateShareFields() {\n const designName = this.designName ? this.designName.trim() : '';\n const designSender = this.designSender ? this.designSender.trim() : '';\n\n this.isDesignNameValid = designName.length > 0;\n this.isDesignSenderValid = designSender.length > 0;\n if (\n this.designEmailList === null ||\n (this.designEmailList && this.designEmailList.length === 0) ||\n (this.designEmailList && this.designEmailList.length === 1 && this.designEmailList[0] === '')\n ) {\n this.emailListIsValid = false;\n this.emailErrorMessage = 'ember-aditools-page.dialogs.share.share-email-empty-error';\n }\n return this.isDesignNameValid && this.isDesignSenderValid && this.emailListIsValid;\n }\n\n @action validateDesignName(event: Event) {\n const target = event.target as HTMLInputElement;\n this.designName = target.value.trim();\n this.isDesignNameValid = this.designName.length > 0;\n }\n\n @action validateSenderName(event: Event) {\n const target = event.target as HTMLInputElement;\n this.designSender = target.value.trim();\n this.isDesignSenderValid = this.designSender.length > 0;\n }\n\n @action onChange(emails: string[], hasInvalids: boolean) {\n this.designEmailList = emails;\n this.emailErrorMessage =\n emails.length > 0 && hasInvalids\n ? 'ember-aditools-page.dialogs.share.share-email-format-error'\n : emails.length === 0\n ? 'ember-aditools-page.dialogs.share.share-email-empty-error'\n : emails.length === 1 && emails[0] === ''\n ? 'ember-aditools-page.dialogs.share.share-email-empty-error'\n : '';\n this.emailListIsValid = this.emailErrorMessage === '' ? true : false;\n }\n\n // Do the work then cause the dialog to close\n @action shareDesign(closeDialog: () => void) {\n if (this.validateShareFields()) {\n if (this.args.share) {\n const distinctEmails = [...new Set(this.designEmailList)];\n const emails = distinctEmails\n .filter(function (e) {\n return e;\n })\n .join(';');\n this.args.share(this.designName, this.designSender, emails);\n }\n closeDialog();\n }\n }\n\n // The following is called after the dialog closes\n @action clearAndClose() {\n this.initializeValues();\n this.args.close();\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n \\n \\n \\n
    \")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type { htmlSafe } from '@ember/template';\nimport AditoolsRenderer from '../modifiers/aditools-renderer.ts';\ntype SafeString = ReturnType;\n\nexport interface AditoolsDialogSignature {\n Element: HTMLDialogElement;\n Args: {\n title: string | SafeString;\n close: () => void;\n dialogClass?: string;\n suppressFocusTrap?: boolean;\n hideCloseX?: boolean;\n hideTitlebar?: boolean;\n };\n Blocks: {\n default: [closeDialog: () => void];\n footer: [closeDialog: () => void];\n };\n}\ntype AditoolsDialogArgs = AditoolsDialogSignature['Args'];\nexport default class AditoolsDialog extends Component {\n renderer = AditoolsRenderer;\n @tracked lastFocus?: HTMLElement | null;\n dialogElement?: HTMLDialogElement;\n\n constructor(owner: unknown, args: AditoolsDialogArgs) {\n super(owner, args);\n assert('`title` is required', !isNone(this.args.title));\n assert('`close` is required', !isNone(this.args.close));\n }\n\n get _suppressFocusTrap() {\n // Return suppressFocusTrap value if explicitly supplied.\n // Otherwise, return true if hideCloseX explicitly supplied as true or false otherwise.\n return this.args.suppressFocusTrap ?? this.args.hideCloseX ?? false;\n }\n\n get _enableFocusTrap() {\n return !this._suppressFocusTrap;\n }\n\n get _hideCloseX() {\n return this.args.hideCloseX ?? false;\n }\n\n get _hideTitlebar() {\n return this.args.hideTitlebar ?? false;\n }\n\n @action closeDialog() {\n if (this.dialogElement) {\n this.dialogElement.close();\n }\n }\n\n @action guardCancel(event: Event) {\n if (this._hideCloseX) {\n event.preventDefault();\n }\n }\n\n @action dialogClosed() {\n this.args.close();\n }\n\n @action inserted(element: HTMLElement) {\n //N.B. document may be null or not have activeElement if we're in FastBoot\n this.lastFocus = document.activeElement as HTMLElement;\n this.dialogElement = element.querySelector('dialog') as HTMLDialogElement;\n this.dialogElement.showModal();\n (document.querySelector('body') as HTMLElement).style.overflow = 'hidden';\n }\n\n @action destroying() {\n //N.B. document may be null or not have activeElement if we're in FastBoot\n if (this.lastFocus && this.lastFocus.focus) {\n //SVG focusable elements don't have a focus() method in IE & Edge\n this.lastFocus.focus();\n }\n (document.querySelector('body') as HTMLElement).style.overflow = 'auto';\n this.dialogElement = undefined;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n <:default>\\n
    \\n

    {{t \\\"ember-aditools-page.dialogs.feedback.invitation\\\"}}

    \\n
    \\n \\n
    \\n
    \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n \\n
    \\n
    \\n \\n <:footer as |closeDialog| >\\n \\n \\n \\n
    \")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\nimport type IntlService from 'ember-intl/services/intl';\n\ninterface FeedbackHash {\n name: string;\n email: string;\n feedback: string;\n}\n\nexport interface AditoolsFeedbackDialogSignature {\n Element: HTMLDialogElement;\n Args: {\n submitFeedback: (feedback: FeedbackHash) => void;\n close: () => void;\n dialogClass?: string;\n model?: FeedbackHash;\n };\n}\n\ninterface FeedbackHash {\n name: string;\n email: string;\n feedback: string;\n}\n\nexport default class AditoolsFeedbackDialog extends Component {\n @service declare intl: IntlService;\n @tracked name = this._model.name;\n @tracked email = this._model.email;\n @tracked feedback = this._model.feedback;\n\n get _model() {\n return this.args.model ?? { name: '', email: '', feedback: '' };\n }\n\n get isDisabled() {\n return this.feedback.length === 0;\n }\n\n validate() {\n return this.feedback.length > 0;\n }\n\n @action onValueChanged(event: Event) {\n const fieldName: string = (event.target).id.toString();\n const value: string = (event.target).value.toString();\n const fieldProperties = { 'feedback-name': 'name', 'feedback-email': 'email', 'feedback-text': 'feedback' };\n if (Object.prototype.hasOwnProperty.call(fieldProperties, fieldName)) {\n // Typescript can't see that the hash makes the values safe, so we have to declare they are.\n const fieldProperty = fieldProperties[fieldName as 'feedback-name' | 'feedback-email' | 'feedback-text'];\n const fieldPropertySafe = fieldProperty as 'name' | 'email' | 'feedback';\n if (this[fieldPropertySafe] !== value) {\n this[fieldPropertySafe] = value;\n }\n }\n }\n\n @action giveFeedback(closeDialog: () => void) {\n if (this.validate() && this.args.submitFeedback) {\n this.args.submitFeedback({ name: this.name, email: this.email, feedback: this.feedback });\n closeDialog();\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \")","import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport Constants from '../constants.ts';\nimport { action } from '@ember/object';\n\nexport interface AditoolsFooterSignature {\n Element: HTMLElement;\n Args: {\n siteURL?: string;\n locale?: string;\n };\n}\ntype AditoolsFooterArgs = AditoolsFooterSignature['Args'];\n\nexport default class AditoolsFooter extends Component {\n constructor(owner: unknown, args: AditoolsFooterArgs) {\n super(owner, args);\n assert('ADI domains now use https -- check `siteURL` string', this._siteURL.startsWith('https'));\n assert(\n 'Locale should be one of the following: en/jp/cn/ru',\n this._locale === 'en' || this._locale === 'jp' || this._locale === 'cn' || this._locale === 'ru'\n );\n }\n\n // Optional parameters with defaults applied\n get _siteURL() {\n return this.args.siteURL ?? 'https://www.analog.com';\n }\n\n get _locale() {\n return this.args.locale ?? 'en';\n }\n\n get sitemapURL() {\n return Constants.urls.sitemap.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get legalURL() {\n return Constants.urls.legal.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get accessibilityURL() {\n return Constants.urls.accessibility.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get privacyPolicyURL() {\n return Constants.urls.privacyPolicy.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get privacySettingsURL() {\n return Constants.urls.privacySettings.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get cookieSettingsURL() {\n return Constants.urls.cookieSettings.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n @action doNotAddToUrl(e: Event): void {\n e.preventDefault(); // Cancel the native event\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n \\n
    \")","import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport Constants from '../constants.ts';\nimport type { htmlSafe } from '@ember/template';\ntype SafeString = ReturnType;\n\nexport interface AditoolsHeaderSignature {\n Element: HTMLElement;\n Args: {\n 'tools-title'?: string | SafeString;\n title?: string | SafeString;\n siteURL?: string;\n locale?: string;\n logo?: string;\n suppressDropdown?: boolean;\n };\n Blocks: {\n default: [];\n footer: [];\n };\n}\ntype AditoolsHeaderArgs = AditoolsHeaderSignature['Args'];\n\nexport default class AditoolsHeader extends Component {\n headerElement: HTMLElement | null = null;\n\n constructor(owner: unknown, args: AditoolsHeaderArgs) {\n super(owner, args);\n assert('ADI domains now use https -- check `siteURL` string', this._siteURL.startsWith('https:'));\n assert('Locale should be one of the following: en/jp/cn/ru', ['en', 'jp', 'cn', 'ru'].includes(this._locale));\n }\n\n // Optional parameters with defaults applied\n get _siteURL() {\n return this.args.siteURL || 'https://www.analog.com';\n }\n\n get _locale() {\n return this.args.locale || 'en';\n }\n\n get title() {\n return this.args.title ?? this.args['tools-title'] ?? '';\n }\n\n get logoClass() {\n return this.args.logo && this.args.logo === 'adi2'\n ? 'logo--adi2'\n : this.args.logo && this.args.logo === 'adi'\n ? 'logo--adi'\n : 'logo--awp';\n }\n\n get companyURL() {\n return Constants.urls.company.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get productsURL() {\n return Constants.urls.products.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get applicationsURL() {\n return Constants.urls.applications.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get designCenterURL() {\n return Constants.urls.designCenter.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get educationURL() {\n return Constants.urls.education.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get supportURL() {\n return Constants.urls.support.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n\n get homeURL() {\n return Constants.urls.home.replace('{siteURL}', this._siteURL).replace('{loc}', this._locale);\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n <:default>\\n
    \\n {{this._message}}\\n {{yield}}\\n
    \\n \\n <:footer as | closeDialog | >\\n \\n \\n
    \\n\")","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type IntlService from 'ember-intl/services/intl';\nimport type { htmlSafe } from '@ember/template';\ntype SafeString = ReturnType;\n\nexport interface AditoolsHelpDialogSignature {\n Element: HTMLDialogElement;\n Args: {\n title: string | SafeString;\n close?: () => void;\n closeButtonText?: string;\n dialogClass?: string;\n message?: string | SafeString;\n suppressFocusTrap?: boolean;\n };\n Blocks: {\n default: [];\n };\n}\ntype AditoolsHelpDialogArgs = AditoolsHelpDialogSignature['Args'];\n\nexport default class AditoolsHelpDialog extends Component {\n @service declare intl: IntlService;\n\n constructor(owner: unknown, args: AditoolsHelpDialogArgs) {\n super(owner, args);\n assert('`title` is required', !isNone(this.args.title));\n }\n\n // Optional parameters with defaults applied\n get _message() {\n return this.args.message ?? '';\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.close');\n }\n\n get _suppressFocusTrap() {\n return this.args.suppressFocusTrap ?? false;\n }\n @action close() {\n if (this.args.close) {\n this.args.close();\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n{{#if this.tooltipModalEnabled}}\\n \\n {{yield}}\\n \\n{{/if}}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\nimport type IntlService from 'ember-intl/services/intl';\n\nexport interface AditoolsHelpTooltipSignature {\n Element: HTMLButtonElement;\n Args: {\n title: string;\n message: string;\n tooltip?: string;\n qaName?: string;\n close?: () => void;\n closeButtonText?: string;\n dialogClass?: string;\n };\n Blocks: {\n default: [];\n };\n}\ntype AditoolsHelpTooltipArgs = AditoolsHelpTooltipSignature['Args'];\nexport default class AditoolsHelpTooltip extends Component {\n @service declare intl: IntlService;\n\n @tracked tooltipModalEnabled = false;\n\n constructor(owner: unknown, args: AditoolsHelpTooltipArgs) {\n super(owner, args);\n assert('`title` is required', !isNone(this.args.title));\n assert('`message` is required', !isNone(this.args.message));\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.cancel');\n }\n\n get _tooltip() {\n return this.args.tooltip ?? this.intl.t('ember-aditools-page.card.help-tooltip');\n }\n\n get qaTooltipName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n @action showTooltipClick() {\n this.tooltipModalEnabled = true;\n }\n\n @action showTooltipClose(close?: () => void) {\n if (typeof close === 'function') {\n close();\n }\n this.tooltipModalEnabled = false;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n
    \\n {{yield (hash \\n menu-context = this.menuContextClass\\n menu-links = this.menuLinksClass\\n menu-tabs = this.menuTabsClass )\\n }}\\n
    \\n
    \")","import Component from '@glimmer/component';\nimport AditoolsMenuContext from './aditools-menu-context.ts';\nimport AditoolsMenuLinks from './aditools-menu-links.ts';\nimport AditoolsMenuTabs from './aditools-menu-tabs.ts';\n\ninterface AditoolsMenubarSignature {\n Element: HTMLMenuElement;\n Blocks: {\n default: [\n {\n 'menu-context': typeof AditoolsMenuContext;\n 'menu-links': typeof AditoolsMenuLinks;\n 'menu-tabs': typeof AditoolsMenuTabs;\n }\n ];\n };\n}\n\nexport default class AditoolsMenubar extends Component {\n menuContextClass = AditoolsMenuContext;\n menuLinksClass = AditoolsMenuLinks;\n menuTabsClass = AditoolsMenuTabs;\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n
    \\n {{yield (hash menu-context=this.menuContextClass menu-links=this.menuLinksClass ) }}\\n
    \\n
    \")","import Component from '@glimmer/component';\nimport AditoolsMenuContext from './aditools-menu-context.ts';\nimport AditoolsMenuLinks from './aditools-menu-links.ts';\n\ninterface AditoolsNarrowMenubarSignature {\n Element: HTMLMenuElement;\n Blocks: {\n default: [\n {\n 'menu-context': typeof AditoolsMenuContext;\n 'menu-links': typeof AditoolsMenuLinks;\n }\n ];\n };\n}\n\nexport default class AditoolsNarrowMenubar extends Component {\n menuContextClass = AditoolsMenuContext;\n menuLinksClass = AditoolsMenuLinks;\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n
    {{@title}}
    \\n
    \\n\")","import templateOnlyComponent from '@ember/component/template-only';\n\ninterface AditoolsSectionHeaderSignature {\n Element: HTMLDivElement;\n Args: {\n title: string;\n };\n}\n\nconst AditoolsSectionHeader = templateOnlyComponent();\n\nexport default AditoolsSectionHeader;\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n
    \\n
    {{@title}}
    \\n {{#if @enableModalIcon}}\\n \\n\\n {{#if this.modalEnabled}}\\n \\n {{yield}}\\n \\n {{/if}}\\n\\n {{/if}}\\n
    \\n
    \")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { inject as service } from '@ember/service';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { isNone } from '@ember/utils';\n\nexport interface AditoolsSectionSubheaderSignature {\n Element: HTMLDivElement;\n Args: {\n modalTitle?: string; // Conditionally required\n modalMessage?: string; // Conditionally required\n title?: string; // Optional\n close?: () => void; // Optional\n tooltip?: string; // Optional\n enableModalIcon?: boolean; // Optional\n qaName?: string; // Optional\n icon?: string; // Optional\n closeButtonText?: string; // Optional\n dialogClass?: string; // Optional\n };\n Blocks: {\n default: [];\n };\n}\ntype AditoolsSectionSubheaderArgs = AditoolsSectionSubheaderSignature['Args'];\n\nexport default class AditoolsSectionSubheader extends Component {\n @service intl: any;\n @tracked modalEnabled = false;\n\n constructor(owner: unknown, args: AditoolsSectionSubheaderArgs) {\n super(owner, args);\n if (this._enableModalIcon) {\n assert('`modalTitle` is required', !isNone(this.args.modalTitle));\n assert('`modalMessage` is required', !isNone(this.args.modalMessage));\n }\n }\n\n get _modalTitle() {\n return this.args.modalTitle ?? '';\n }\n get _modalMessage() {\n return this.args.modalMessage ?? '';\n }\n\n get _closeButtonText() {\n return this.args.closeButtonText ?? this.intl.t('ember-aditools-page.common.cancel');\n }\n\n get _tooltip() {\n return this.args.tooltip ?? this.intl.t('ember-aditools-page.card.help-tooltip');\n }\n\n get _enableModalIcon() {\n return this.args.enableModalIcon ?? false;\n }\n\n get qaTooltipName() {\n return this.args.qaName ?? 'unnamed';\n }\n\n get buttonClass() {\n if (this.args.icon === 'help') {\n return 'action--help';\n } else {\n return 'action--info';\n }\n }\n @action closeModal(close?: () => void) {\n if (close) {\n close();\n }\n this.modalEnabled = false;\n }\n @action enableModal(evt: Event) {\n if (evt instanceof KeyboardEvent) {\n if (evt.type === 'click' || ['Enter', ' '].includes(evt.key)) {\n this.modalEnabled = true;\n } else {\n return;\n }\n }\n this.modalEnabled = true;\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n\")","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport PrecisionStudioMenu from '@ebiz/aditools-precisionstudio-menu';\nimport '@ebiz/aditools-precisionstudio-menu/lib/precisionstudio-menu.css';\nimport AditoolsRenderer from '../modifiers/aditools-renderer.ts';\n\nexport interface AditoolsStudioDropdownSignature {\n Element: HTMLDivElement;\n Args: {\n locale?: string;\n toolUrls?: { [K: string]: string };\n };\n}\n\nexport default class AditoolsStudioDropdown extends Component {\n renderer = AditoolsRenderer;\n precisionStudioMenu?: PrecisionStudioMenu;\n\n // Optional parameters with defaults applied\n get _toolUrls() {\n return this.args.toolUrls ?? {};\n }\n\n get _locale() {\n return this.args.locale ?? 'en';\n }\n\n @action\n insertedMenu(element: Element) {\n this.precisionStudioMenu = new PrecisionStudioMenu({\n locale: this._locale,\n toolurls: this._toolUrls,\n });\n this.precisionStudioMenu.attach(element);\n }\n\n @action\n destroyingMenu(/*element: Element*/) {\n if (this.precisionStudioMenu) {\n this.precisionStudioMenu.detach();\n this.precisionStudioMenu = undefined;\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{#if @dialogEnabled}}\\n \\n <:default>\\n
    \\n
    \\n
    {{this._message}}
    \\n
    \\n \\n
    \\n{{/if}}\")","import Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport type IntlService from 'ember-intl/services/intl';\nimport { assert } from '@ember/debug';\nimport type { htmlSafe } from '@ember/template';\ntype SafeString = ReturnType;\n\nexport interface AditoolsSystemDialogSignature {\n Element: HTMLDialogElement;\n Args: {\n title?: string | SafeString;\n message?: string | SafeString;\n dialogClass?: string;\n bodyClass?: string;\n dialogEnabled?: boolean;\n };\n}\n\nexport default class AditoolsSystemDialog extends Component {\n @service declare intl: IntlService;\n\n // Parameters\n\n // Optional parameters with defaults applied\n get _message() {\n return this.args.message ?? this.intl.t('ember-aditools-page.dialogs.system.application-busy');\n }\n\n get _title() {\n return this.args.title ?? this.intl.t('ember-aditools-page.dialogs.system.title');\n }\n\n dontClose() {\n assert('This function must never be called - reset @dialogEnabled instead', false);\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n
    \\n {{yield (hash \\n menu-tabs=this.menuTabsClass) \\n }}\\n
    \\n
    \\n\")","import Component from '@glimmer/component';\nimport AditoolsMenuTabs from './aditools-menu-tabs.ts';\n\ninterface AditoolsTabBarSignature {\n Element: HTMLMenuElement;\n Blocks: {\n default: [\n {\n 'menu-tabs': typeof AditoolsMenuTabs;\n }\n ];\n };\n}\n\nexport default class AditoolsTabBar extends Component {\n menuTabsClass = AditoolsMenuTabs;\n}\n","import type { htmlSafe } from '@ember/template';\ntype SafeString = ReturnType;\n\nfunction getLongestWordSplit(text: string, count: number) {\n if (count === 1) {\n return text;\n }\n const results = [];\n const delimiterList = [' ', '・'];\n\n const nominalWidth = text.length / count;\n for (let piece = 0; piece < count; piece++) {\n let left = piece * nominalWidth;\n let right = (piece + 1) * nominalWidth;\n let leftIndex = -1;\n for (const delimeter of delimiterList) {\n const currLeftIndex = text.substring(0, left).lastIndexOf(delimeter);\n if (leftIndex === -1) {\n if (currLeftIndex !== -1) leftIndex = currLeftIndex;\n } else {\n if (currLeftIndex !== -1) leftIndex = leftIndex < currLeftIndex ? leftIndex : currLeftIndex;\n }\n }\n if (leftIndex === -1) {\n left = 0;\n } else {\n left = leftIndex + 1;\n }\n let rightIndex = -1;\n let isDelimiterSpace = true;\n for (const delimeter of delimiterList) {\n const currRightIndex = text.indexOf(delimeter, right - 1);\n if (rightIndex === -1) {\n if (currRightIndex !== -1) {\n rightIndex = currRightIndex;\n isDelimiterSpace = delimeter === ' ';\n }\n } else {\n if (currRightIndex !== -1) {\n if (currRightIndex < rightIndex) {\n rightIndex = currRightIndex;\n isDelimiterSpace = delimeter === ' ';\n }\n }\n }\n }\n if (rightIndex === -1) {\n right = text.length;\n } else {\n right = rightIndex < text.length && !isDelimiterSpace ? rightIndex + 1 : rightIndex;\n }\n results.push(text.substring(left, right));\n }\n let item = '';\n results.forEach((value) => {\n if (value.length > item.length) {\n item = value;\n }\n });\n return item;\n}\n\nfunction getMeasuredTextWidth(canvas: HTMLCanvasElement, font: string, weight: string, size: number, text: string) {\n const context = canvas.getContext('2d');\n if (context) {\n context.font = `${weight} ${size}px ${font}`;\n return context.measureText(text).width;\n } else {\n return 0;\n }\n}\n\nfunction fitText(\n font: string,\n weight: string,\n text: string | SafeString,\n height: number,\n width: number,\n maxSize: number,\n minSize: number\n): number {\n const canvas = document.createElement('canvas');\n const sizes = [];\n\n let actualText = '';\n if (typeof text === 'string') {\n actualText = text;\n } else {\n const pElem = document.createElement('p');\n pElem.innerHTML = (text as SafeString).toHTML();\n actualText = pElem.innerText;\n }\n\n for (let count = 0; count < Math.floor(height / (minSize + 4)) + 1; count++) {\n // max row count limited by font height of minimum font size\n const trialText = getLongestWordSplit(actualText, count + 1);\n let size = Math.round(Math.min(maxSize, height / (count + 1) - 8)); // max font size limited fitting the current number of proposed rows\n let testWidth = getMeasuredTextWidth(canvas, font, weight, size, trialText);\n while (testWidth > width) {\n const oldSize = size;\n size = Math.floor((size * width) / testWidth);\n if (size >= oldSize) {\n // it is remotely possible that, due to round-off errors, we might get a size freeze or oscillation - disrupt it.\n size = oldSize;\n break;\n }\n testWidth = getMeasuredTextWidth(canvas, font, weight, size, trialText); // big number\n }\n sizes.push(size);\n }\n return Math.max(...sizes);\n}\n\nexport { fitText };\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n
    \\n {{#if @tools-title}}\\n {{! template-lint-disable no-curly-component-invocation}}\\n
    {{@tools-title}}
    \\n {{/if}}\\n {{yield (hash menu-links=this.menuLinksClass) }}\\n
    \\n
    \")","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport AditoolsMenuLinks from './aditools-menu-links.ts';\nimport AditoolsRenderer from '../modifiers/aditools-renderer.ts';\nimport { fitText } from '../utils/fit-text.ts';\n\ninterface AditoolsTightMenubarSignature {\n Element: HTMLMenuElement;\n Args: {\n 'tools-title': string;\n setTitleWidth?: () => number;\n };\n Blocks: {\n default: [\n {\n 'menu-links': typeof AditoolsMenuLinks;\n }\n ];\n };\n}\n\nexport default class AditoolsTightMenubar extends Component {\n headerElement: HTMLElement | null = null;\n menuLinksClass = AditoolsMenuLinks;\n renderer = AditoolsRenderer;\n @action adjustHeaderTitle() {\n if (this.headerElement) {\n const titleElement = this.headerElement as HTMLElement;\n const textContent = titleElement.textContent as string;\n const maxFontSize = 35;\n const minFontSize = 12;\n const titleHeight = this.headerElement.clientHeight;\n const titleWidth = this.args.setTitleWidth ? this.args.setTitleWidth() : this.headerElement.clientWidth;\n const family = window.getComputedStyle(titleElement, null).getPropertyValue('font-family');\n const weight = window.getComputedStyle(titleElement, null).getPropertyValue('font-weight');\n let fontsize = fitText(family, weight, textContent, titleHeight, titleWidth, maxFontSize, minFontSize);\n fontsize = fontsize < minFontSize ? minFontSize : fontsize;\n titleElement.style.width = titleWidth + 'px';\n titleElement.style.minWidth = titleWidth + 'px';\n titleElement.style.fontSize = fontsize + 'px';\n titleElement.style.lineHeight = fontsize + 4 + 'px';\n }\n }\n\n @action insertResizeListener(element: HTMLElement) {\n if (element) {\n this.headerElement = element;\n this.adjustHeaderTitle();\n addEventListener('resize', this.adjustHeaderTitle);\n }\n }\n @action destroyResizeListener() {\n this.headerElement = null;\n removeEventListener('resize', this.adjustHeaderTitle);\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
  • \\n \\n {{#if this.isActive}}\\n {{yield this.select this.close}}\\n {{/if}}\\n
  • \\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { underscore } from '@ember/string';\n\ninterface AditoolsToolbarActionSignature {\n Element: HTMLButtonElement;\n Args: {\n label: string;\n iconClass: string;\n qaName?: string;\n onOpen?: () => void;\n onSubmit?: () => void;\n onClose?: () => void;\n };\n Blocks: {\n default: [() => void, () => void];\n };\n}\nexport default class AditoolsToolbarAction extends Component {\n @tracked isActive = false;\n\n get qaName() {\n return this.args.qaName || underscore(this.args.label.toLowerCase());\n }\n\n @action activate() {\n this.isActive = true;\n if (this.args.onOpen) {\n this.args.onOpen();\n }\n }\n @action select() {\n this.isActive = false;\n if (this.args.onSubmit) {\n this.args.onSubmit();\n }\n }\n @action close() {\n this.isActive = false;\n if (this.args.onClose) {\n this.args.onClose();\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
  • \\n \\n
  • \\n\")","import Component from '@glimmer/component';\nimport { underscore } from '@ember/string';\n\ninterface AditoolsToolbarTabSignature {\n Element: HTMLButtonElement;\n Args: {\n label: string;\n tab: string;\n activeTab: string;\n iconClass: string;\n disabled?: boolean;\n qaName?: string;\n select: () => void;\n };\n}\n\nexport default class AditoolsToolbarTab extends Component {\n get qaName() {\n return this.args.qaName ?? underscore(this.args.tab.toLowerCase());\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"
    \\n {{#if @useTitle}}\\n
    \\n

    {{@title}}

    \\n
    \\n {{else}}\\n {{#if (has-block \\'context\\')}}\\n
    \\n {{yield to=\\'context\\'}}\\n
    \\n {{/if}}\\n {{/if}}\\n {{#if (and (has-block \\'tabs\\') (not @dropTabs) (not @separateTabs))}}\\n
      \\n {{yield to=\\'tabs\\'}}\\n
    \\n {{/if}}\\n {{#if (has-block \\'actions\\')}}\\n
      \\n {{#if @dropActions}}\\n
    • \\n \\n
      \\n
        \\n {{yield to=\\'actions\\'}}\\n
      \\n
      \\n
    • \\n {{else}}\\n {{yield to=\\'actions\\'}}\\n {{/if}}\\n
    \\n {{/if}}\\n
    \\n{{#if (and (has-block \\'tabs\\') @dropTabs)}} \\n
    \\n
      \\n {{yield to=\\'tabs\\'}}\\n
    \\n
    \\n{{/if}}\\n\")","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { modifier } from 'ember-modifier';\n\ninterface AditoolsToolbarSignature {\n Element: HTMLDivElement;\n Args: {\n title: string;\n dropActions: boolean;\n dropTabs: boolean;\n separateTabs: boolean;\n useTitle: boolean;\n };\n Blocks: {\n context: [];\n tabs: [];\n actions: [];\n };\n}\n\nconst hidePopoverOnClickOutside = modifier(\n function (element) {\n const globalClickListener = function (event: Event) {\n const container = element as HTMLElement;\n if (!(event.target instanceof Node) || !container.contains(event.target as HTMLElement)) {\n container.hidePopover();\n }\n };\n const body = document.querySelector('body');\n body?.addEventListener('click', globalClickListener);\n return () => {\n body?.removeEventListener('click', globalClickListener);\n };\n },\n { eager: false }\n);\n\nexport default class AditoolsToolbar extends Component {\n hideOnClickOutside = hidePopoverOnClickOutside;\n @action hideDropdown(event: FocusEvent) {\n const container = event.currentTarget as HTMLElement;\n const currentFocus = event.target as HTMLElement;\n // First make sure we're not in a dialog nested in a popover (or we'll create a dead UI)\n if (!(currentFocus.closest('dialog') && currentFocus.closest('dialog')?.closest('[popover]'))) {\n // Then make sure the new target isn't in the same popover\n if (!event.relatedTarget || !container.contains(event.relatedTarget as HTMLElement)) {\n container.hidePopover();\n }\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n \\n \\n \\n {{@item.address}}\\n \\n \\n \\n\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\n\ninterface ItemHash {\n guid: string;\n address: string;\n}\nexport interface EmailInputSignature {\n Element: HTMLInputElement;\n Args: {\n index: number;\n item: ItemHash;\n onChangeValue: (arg0: string, arg1: ItemHash) => void;\n onRemove: (arg0: string) => void;\n };\n}\ntype EmailInputArgs = EmailInputSignature['Args'];\n\nconst REGEXP_EMAIL =\n /^(([a-zA-Z0-9_\\-.]+)@([a-zA-Z0-9_\\-.]+)\\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\\-.]+)@([a-zA-Z0-9_\\-.]+)\\.([a-zA-Z]{2,5}){1,25})+)*$/;\n\nexport default class EmailInput extends Component {\n @tracked itemInEdit: boolean;\n\n constructor(owner: unknown, args: EmailInputArgs) {\n super(owner, args);\n this.itemInEdit = this.args.item.address.trim() === '';\n // Defer setting the focus to allow the edit box to become visible first.\n // We may want to consider putting this sequence into a modifier in the future.\n setTimeout(() => {\n const element = document.querySelector(`[data-guid=\"${this.args.item.guid}\"]`) as HTMLInputElement;\n if (element) element.select();\n }, 0);\n }\n\n get itemValueIsInvalid() {\n return this.isAddressInvalid(this.args.item.address);\n }\n\n // Function that tells us if we are working with an email address, or just garbage.\n isAddressInvalid(value: string) {\n return value.length !== 0 && !REGEXP_EMAIL.test(value);\n }\n\n // Focus\n @action onFocus(event: UIEvent) {\n const target = event.target as HTMLInputElement;\n target.select();\n }\n\n // Blur\n @action onBlur(event: UIEvent) {\n const target = event.target as HTMLInputElement;\n const currentValue = target.value.trim();\n this.itemInEdit = currentValue === '';\n }\n\n // ValueChange\n @action onChangeValue(event: Event) {\n const target = event.target as HTMLInputElement;\n const currentValue = target.value.trim();\n if (currentValue !== this.args.item.address.trim()) {\n // Defer invoking the upstream action to let the event queue clear.\n // Auto-fill generates focus actions we want to settle before making changes to the data that will cause other focus actions.\n // Otherwise, you get weird effects like duplicate auto-fills on the field this fill just caused to be created.\n setTimeout(() => {\n this.args.onChangeValue(this.args.item.guid, {\n address: currentValue,\n guid: this.args.item.guid,\n });\n }, 0);\n }\n }\n\n // Change Mode, BUTTON ==> EDIT\n @action onOpenForEdit() {\n this.itemInEdit = true;\n // Defer setting the focus to allow the edit box to become visible first.\n setTimeout(() => {\n (document.querySelector(`[data-guid=\"${this.args.item.guid}\"]`) as HTMLInputElement).select();\n }, 0);\n }\n\n // Clear\n @action onRemove() {\n this.args.onRemove(this.args.item.guid);\n }\n\n // KeyDown, fires ValueChange on certain key presses.\n @action onKeyDown(event: UIEvent) {\n const keyEvent = event as KeyboardEvent;\n if (keyEvent.key) {\n switch (keyEvent.key.toLowerCase()) {\n case ';': //semicolon\n case ',': //comma\n case 'enter':\n {\n event.preventDefault();\n const target = event.target as HTMLInputElement;\n if (target.value.trim() !== '') {\n this.onChangeValue(event);\n this.itemInEdit = false;\n }\n }\n break;\n default:\n break;\n }\n }\n }\n}\n","import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"\\n {{yield \\n this.valuesList\\n this.onChangeValue\\n this.onRemove\\n }}\\n\")","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { guidFor } from '@ember/object/internals';\n\ninterface ItemHash {\n guid: string;\n address: string;\n}\n\nexport interface InputListSignature {\n Element: HTMLDivElement;\n Args: {\n onChange: (arg0: string[], arg1: boolean) => void;\n values: string[];\n };\n Blocks: {\n default: [\n valuesList: ItemHash[],\n onChangeValue: (arg0: string, arg1: ItemHash) => void,\n onRemove: (arg0: string) => void\n ];\n };\n}\ntype InputListArgs = InputListSignature['Args'];\n\nconst REGEXP_EMAIL =\n /^(([a-zA-Z0-9_\\-.]+)@([a-zA-Z0-9_\\-.]+)\\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\\-.]+)@([a-zA-Z0-9_\\-.]+)\\.([a-zA-Z]{2,5}){1,25})+)*$/;\n\nexport default class InputList extends Component {\n @tracked valuesList: ItemHash[] = [];\n\n constructor(owner: unknown, args: InputListArgs) {\n super(owner, args);\n\n const newList = [];\n const item: ItemHash = { guid: '', address: '' };\n item.guid = guidFor(item);\n newList.push(item);\n this.valuesList = newList;\n }\n\n // Function that adds an item until we get to the max of 10 items.\n withEmptyAtEnd(valuesList: ItemHash[]): ItemHash[] {\n const newList: ItemHash[] = [...valuesList];\n const lastValueList = valuesList[valuesList.length - 1];\n if (\n valuesList.length < 10 &&\n (valuesList.length === 0 || (valuesList.length > 0 && lastValueList && lastValueList.address.trim() !== ''))\n ) {\n const item: ItemHash = { guid: '', address: '' };\n item.guid = guidFor(item);\n newList.push(item);\n }\n return newList;\n }\n\n // Function that checks for duplicate emails, if there are no duplicates, it returns false.\n checkDuplicateEmails(emailArray: ItemHash[]) {\n const newEmailArray = emailArray.filter(function (item, index, inputArray) {\n return inputArray.indexOf(item) === index;\n });\n return emailArray.length !== newEmailArray.length;\n }\n\n // Function that checks for valid email values.\n hasInvalids(emailArray: ItemHash[]) {\n return emailArray.some((element) => {\n return element.address.length !== 0 && !REGEXP_EMAIL.test(element.address);\n });\n }\n\n // Function that returns an array of email addresses\n getEmailList(emailArray: ItemHash[]) {\n const retArr = [];\n for (const email of emailArray) {\n retArr.push(email.address.trim());\n }\n return retArr;\n }\n\n // Function bound to ValueChange\n @action onChangeValue(_index: string, hash: ItemHash) {\n this.valuesList = this.withEmptyAtEnd(\n this.valuesList\n .map((item) => {\n return item.guid === hash.guid ? hash : item;\n })\n .filter((item) => {\n return item.address !== '';\n })\n );\n this.args.onChange(this.getEmailList(this.valuesList), this.hasInvalids(this.valuesList));\n }\n\n // Function bound to Clear/Delete\n @action onRemove(index: string) {\n this.valuesList = this.withEmptyAtEnd(\n this.valuesList.filter((item) => {\n return item.guid !== index;\n })\n );\n this.args.onChange(this.getEmailList(this.valuesList), this.hasInvalids(this.valuesList));\n }\n\n @action onFocusOut() {\n const lastValueList = this.valuesList[this.valuesList.length - 1];\n if (lastValueList && lastValueList.address !== '') {\n this.valuesList = this.withEmptyAtEnd(this.valuesList);\n }\n }\n}\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle